@itcenteratunihelsinki/huds-lib 0.8.40 → 0.8.42

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 (559) hide show
  1. package/dist/cjs/color-box_8.cjs.entry.js +13 -36
  2. package/dist/cjs/color-box_8.cjs.entry.js.map +1 -0
  3. package/dist/cjs/{globalScript-6b592153.js → globalScript-45ad6d41.js} +3 -1
  4. package/dist/cjs/globalScript-45ad6d41.js.map +1 -0
  5. package/dist/cjs/huds-lib.cjs.js +13 -4
  6. package/dist/cjs/huds-lib.cjs.js.map +1 -0
  7. package/dist/cjs/hy-accordion-container_83.cjs.entry.js +388 -192
  8. package/dist/cjs/hy-accordion-container_83.cjs.entry.js.map +1 -0
  9. package/dist/cjs/hy-event-item.cjs.entry.js +7 -2
  10. package/dist/cjs/hy-event-item.cjs.entry.js.map +1 -0
  11. package/dist/cjs/hy-events.cjs.entry.js +6 -2
  12. package/dist/cjs/hy-events.cjs.entry.js.map +1 -0
  13. package/dist/cjs/{index-dfc917d9.js → index-25bd964b.js} +692 -287
  14. package/dist/cjs/index-25bd964b.js.map +1 -0
  15. package/dist/cjs/index.cjs.js +2 -0
  16. package/dist/cjs/index.cjs.js.map +1 -0
  17. package/dist/cjs/loader.cjs.js +7 -4
  18. package/dist/cjs/loader.cjs.js.map +1 -0
  19. package/dist/cjs/utils-14d5aa6f.js +2 -0
  20. package/dist/cjs/utils-14d5aa6f.js.map +1 -0
  21. package/dist/collection/collection-manifest.json +2 -2
  22. package/dist/collection/components/accordion-container/accordion-container.js +37 -30
  23. package/dist/collection/components/accordion-container/accordion-container.js.map +1 -0
  24. package/dist/collection/components/accordion-item/accordion-item.js +116 -114
  25. package/dist/collection/components/accordion-item/accordion-item.js.map +1 -0
  26. package/dist/collection/components/adjacent-image-text/adjacent-image-text.js +277 -275
  27. package/dist/collection/components/adjacent-image-text/adjacent-image-text.js.map +1 -0
  28. package/dist/collection/components/baseline/baseline.js +35 -32
  29. package/dist/collection/components/baseline/baseline.js.map +1 -0
  30. package/dist/collection/components/button/button.js +226 -257
  31. package/dist/collection/components/button/button.js.map +1 -0
  32. package/dist/collection/components/color-box/color-box.js +13 -9
  33. package/dist/collection/components/color-box/color-box.js.map +1 -0
  34. package/dist/collection/components/courses/hy-content-list/hy-content-list.js +174 -167
  35. package/dist/collection/components/courses/hy-content-list/hy-content-list.js.map +1 -0
  36. package/dist/collection/components/courses/hy-content-list-item/hy-content-list-item.css +2 -2
  37. package/dist/collection/components/courses/hy-content-list-item/hy-content-list-item.js +320 -312
  38. package/dist/collection/components/courses/hy-content-list-item/hy-content-list-item.js.map +1 -0
  39. package/dist/collection/components/cta-button/cta-button.js +141 -138
  40. package/dist/collection/components/cta-button/cta-button.js.map +1 -0
  41. package/dist/collection/components/cta-link/cta-link.js +107 -103
  42. package/dist/collection/components/cta-link/cta-link.js.map +1 -0
  43. package/dist/collection/components/docs-container/docs-container.js +13 -9
  44. package/dist/collection/components/docs-container/docs-container.js.map +1 -0
  45. package/dist/collection/components/footer/hy-footer/hy-footer.js +13 -9
  46. package/dist/collection/components/footer/hy-footer/hy-footer.js.map +1 -0
  47. package/dist/collection/components/footer/hy-footer-action/hy-footer-action.js +63 -55
  48. package/dist/collection/components/footer/hy-footer-action/hy-footer-action.js.map +1 -0
  49. package/dist/collection/components/footer/hy-footer-base/hy-footer-base.js +183 -187
  50. package/dist/collection/components/footer/hy-footer-base/hy-footer-base.js.map +1 -0
  51. package/dist/collection/components/footer/hy-footer-info/hy-footer-info.js +278 -270
  52. package/dist/collection/components/footer/hy-footer-info/hy-footer-info.js.map +1 -0
  53. package/dist/collection/components/footer/hy-footer-link-item/hy-footer-link-item.js +191 -190
  54. package/dist/collection/components/footer/hy-footer-link-item/hy-footer-link-item.js.map +1 -0
  55. package/dist/collection/components/global-workers/globals.worker.js +1 -0
  56. package/dist/collection/components/global-workers/globals.worker.js.map +1 -0
  57. package/dist/collection/components/grid-container/grid-container.js +13 -9
  58. package/dist/collection/components/grid-container/grid-container.js.map +1 -0
  59. package/dist/collection/components/grid-item/grid-item.css +0 -23
  60. package/dist/collection/components/grid-item/grid-item.js +102 -96
  61. package/dist/collection/components/grid-item/grid-item.js.map +1 -0
  62. package/dist/collection/components/grid-row/grid-row.js +13 -9
  63. package/dist/collection/components/grid-row/grid-row.js.map +1 -0
  64. package/dist/collection/components/heading/heading-fw.css +17 -17
  65. package/dist/collection/components/heading/heading.css +17 -17
  66. package/dist/collection/components/heading/heading.js +142 -146
  67. package/dist/collection/components/heading/heading.js.map +1 -0
  68. package/dist/collection/components/hy-anchor-link-list/hy-anchor-link-list.js +105 -99
  69. package/dist/collection/components/hy-anchor-link-list/hy-anchor-link-list.js.map +1 -0
  70. package/dist/collection/components/hy-badge/hy-badge.js +35 -30
  71. package/dist/collection/components/hy-badge/hy-badge.js.map +1 -0
  72. package/dist/collection/components/hy-banner/hy-banner.js +137 -135
  73. package/dist/collection/components/hy-banner/hy-banner.js.map +1 -0
  74. package/dist/collection/components/hy-box/hy-box.js +323 -318
  75. package/dist/collection/components/hy-box/hy-box.js.map +1 -0
  76. package/dist/collection/components/hy-box-container/hy-box-container.js +53 -54
  77. package/dist/collection/components/hy-box-container/hy-box-container.js.map +1 -0
  78. package/dist/collection/components/hy-breadcrumbs/hy-breadcrumbs.js +89 -82
  79. package/dist/collection/components/hy-breadcrumbs/hy-breadcrumbs.js.map +1 -0
  80. package/dist/collection/components/hy-checkbox/hy-checkbox.js +108 -114
  81. package/dist/collection/components/hy-checkbox/hy-checkbox.js.map +1 -0
  82. package/dist/collection/components/hy-collaboration/hy-collaboration.js +105 -99
  83. package/dist/collection/components/hy-collaboration/hy-collaboration.js.map +1 -0
  84. package/dist/collection/components/hy-crisis-banner/hy-crisis-banner.js +88 -85
  85. package/dist/collection/components/hy-crisis-banner/hy-crisis-banner.js.map +1 -0
  86. package/dist/collection/components/hy-dropdown/hy-dropdown.js +153 -147
  87. package/dist/collection/components/hy-dropdown/hy-dropdown.js.map +1 -0
  88. package/dist/collection/components/hy-dropdown/hy-dropdown.panel.item.js +76 -74
  89. package/dist/collection/components/hy-dropdown/hy-dropdown.panel.item.js.map +1 -0
  90. package/dist/collection/components/hy-dropdown/hy-dropdown.panel.js +27 -22
  91. package/dist/collection/components/hy-dropdown/hy-dropdown.panel.js.map +1 -0
  92. package/dist/collection/components/hy-event-item/hy-event-item.js +184 -192
  93. package/dist/collection/components/hy-event-item/hy-event-item.js.map +1 -0
  94. package/dist/collection/components/hy-events/hy-events.js +131 -127
  95. package/dist/collection/components/hy-events/hy-events.js.map +1 -0
  96. package/dist/collection/components/hy-filter-group/hy-filter-group.item.js +44 -41
  97. package/dist/collection/components/hy-filter-group/hy-filter-group.item.js.map +1 -0
  98. package/dist/collection/components/hy-filter-group/hy-filter-group.js +64 -54
  99. package/dist/collection/components/hy-filter-group/hy-filter-group.js.map +1 -0
  100. package/dist/collection/components/hy-filter-list-type/hy-filter-list-type.js +62 -56
  101. package/dist/collection/components/hy-filter-list-type/hy-filter-list-type.js.map +1 -0
  102. package/dist/collection/components/hy-filter-visibility-tool/hy-filter-visibility-tool.js +38 -30
  103. package/dist/collection/components/hy-filter-visibility-tool/hy-filter-visibility-tool.js.map +1 -0
  104. package/dist/collection/components/hy-filter-visibility-tool/hy-filter-visibility-tool.reset.js +3 -4
  105. package/dist/collection/components/hy-filter-visibility-tool/hy-filter-visibility-tool.reset.js.map +1 -0
  106. package/dist/collection/components/hy-filter-visibility-tool/hy-filter-visibility-tool.reset.toggle.js +3 -8
  107. package/dist/collection/components/hy-filter-visibility-tool/hy-filter-visibility-tool.reset.toggle.js.map +1 -0
  108. package/dist/collection/components/hy-general-list/hy-general-list.js +123 -113
  109. package/dist/collection/components/hy-general-list/hy-general-list.js.map +1 -0
  110. package/dist/collection/components/hy-general-list-item/hy-general-list-item.js +256 -258
  111. package/dist/collection/components/hy-general-list-item/hy-general-list-item.js.map +1 -0
  112. package/dist/collection/components/hy-hero/hy-hero.css +2 -2
  113. package/dist/collection/components/hy-hero/hy-hero.js +296 -308
  114. package/dist/collection/components/hy-hero/hy-hero.js.map +1 -0
  115. package/dist/collection/components/hy-introduction/hy-introduction.js +248 -250
  116. package/dist/collection/components/hy-introduction/hy-introduction.js.map +1 -0
  117. package/dist/collection/components/hy-key-figure/hy-key-figure.js +73 -66
  118. package/dist/collection/components/hy-key-figure/hy-key-figure.js.map +1 -0
  119. package/dist/collection/components/hy-key-figure-group/hy-key-figure-group.css +1 -1
  120. package/dist/collection/components/hy-key-figure-group/hy-key-figure-group.js +67 -65
  121. package/dist/collection/components/hy-key-figure-group/hy-key-figure-group.js.map +1 -0
  122. package/dist/collection/components/hy-key-highlight/hy-key-highlight.js +73 -67
  123. package/dist/collection/components/hy-key-highlight/hy-key-highlight.js.map +1 -0
  124. package/dist/collection/components/hy-key-highlight-group/hy-key-highlight-group.css +2 -2
  125. package/dist/collection/components/hy-key-highlight-group/hy-key-highlight-group.js +79 -71
  126. package/dist/collection/components/hy-key-highlight-group/hy-key-highlight-group.js.map +1 -0
  127. package/dist/collection/components/hy-large-process-flow/hy-large-process-flow.css +6 -6
  128. package/dist/collection/components/hy-large-process-flow/hy-large-process-flow.js +55 -46
  129. package/dist/collection/components/hy-large-process-flow/hy-large-process-flow.js.map +1 -0
  130. package/dist/collection/components/hy-large-process-flow-phase/hy-large-process-flow-phase.css +3 -3
  131. package/dist/collection/components/hy-large-process-flow-phase/hy-large-process-flow-phase.js +41 -37
  132. package/dist/collection/components/hy-large-process-flow-phase/hy-large-process-flow-phase.js.map +1 -0
  133. package/dist/collection/components/hy-link-list/hy-link-list.js +107 -100
  134. package/dist/collection/components/hy-link-list/hy-link-list.js.map +1 -0
  135. package/dist/collection/components/hy-list-item/hy-list-item.js +429 -451
  136. package/dist/collection/components/hy-list-item/hy-list-item.js.map +1 -0
  137. package/dist/collection/components/hy-logo-grid/hy-logo-grid.item.js +54 -47
  138. package/dist/collection/components/hy-logo-grid/hy-logo-grid.item.js.map +1 -0
  139. package/dist/collection/components/hy-logo-grid/hy-logo-grid.js +54 -46
  140. package/dist/collection/components/hy-logo-grid/hy-logo-grid.js.map +1 -0
  141. package/dist/collection/components/hy-main/hy-main.js +35 -29
  142. package/dist/collection/components/hy-main/hy-main.js.map +1 -0
  143. package/dist/collection/components/hy-main-content-wrapper/hy-main-content-wrapper.js +13 -10
  144. package/dist/collection/components/hy-main-content-wrapper/hy-main-content-wrapper.js.map +1 -0
  145. package/dist/collection/components/hy-opening-hours/hy-opening-hours.css +2 -2
  146. package/dist/collection/components/hy-opening-hours/hy-opening-hours.js +305 -308
  147. package/dist/collection/components/hy-opening-hours/hy-opening-hours.js.map +1 -0
  148. package/dist/collection/components/hy-opening-hours-content/hy-opening-hours-content.css +2 -2
  149. package/dist/collection/components/hy-opening-hours-content/hy-opening-hours-content.js +108 -107
  150. package/dist/collection/components/hy-opening-hours-content/hy-opening-hours-content.js.map +1 -0
  151. package/dist/collection/components/hy-person-card/hy-person-card.js +423 -438
  152. package/dist/collection/components/hy-person-card/hy-person-card.js.map +1 -0
  153. package/dist/collection/components/hy-prominent-image/hy-prominent-image.js +107 -100
  154. package/dist/collection/components/hy-prominent-image/hy-prominent-image.js.map +1 -0
  155. package/dist/collection/components/hy-quote/hy-quote.js +52 -51
  156. package/dist/collection/components/hy-quote/hy-quote.js.map +1 -0
  157. package/dist/collection/components/hy-search-field/hy-search-field.js +167 -167
  158. package/dist/collection/components/hy-search-field/hy-search-field.js.map +1 -0
  159. package/dist/collection/components/hy-shortcuts/hy-shortcuts.css +1 -1
  160. package/dist/collection/components/hy-shortcuts/hy-shortcuts.js +90 -87
  161. package/dist/collection/components/hy-shortcuts/hy-shortcuts.js.map +1 -0
  162. package/dist/collection/components/hy-table-container/hy-table-container.css +6 -6
  163. package/dist/collection/components/hy-table-container/hy-table-container.js +13 -10
  164. package/dist/collection/components/hy-table-container/hy-table-container.js.map +1 -0
  165. package/dist/collection/components/hy-tabs/hy-tabs.js +116 -111
  166. package/dist/collection/components/hy-tabs/hy-tabs.js.map +1 -0
  167. package/dist/collection/components/hy-tabs-item/hy-tabs-item.js +37 -28
  168. package/dist/collection/components/hy-tabs-item/hy-tabs-item.js.map +1 -0
  169. package/dist/collection/components/hy-tag/hy-tag.js +13 -11
  170. package/dist/collection/components/hy-tag/hy-tag.js.map +1 -0
  171. package/dist/collection/components/hy-twitter-feed/hy-twitter-feed.js +108 -128
  172. package/dist/collection/components/hy-twitter-feed/hy-twitter-feed.js.map +1 -0
  173. package/dist/collection/components/hy-two-columns/hy-two-columns.js +35 -33
  174. package/dist/collection/components/hy-two-columns/hy-two-columns.js.map +1 -0
  175. package/dist/collection/components/hy-user-login-form/hy-user-login-form.js +54 -46
  176. package/dist/collection/components/hy-user-login-form/hy-user-login-form.js.map +1 -0
  177. package/dist/collection/components/hy-video/hy-video.css +1 -1
  178. package/dist/collection/components/hy-video/hy-video.js +463 -500
  179. package/dist/collection/components/hy-video/hy-video.js.map +1 -0
  180. package/dist/collection/components/icon/AddToTodoList.js +2 -2
  181. package/dist/collection/components/icon/AddToTodoList.js.map +1 -0
  182. package/dist/collection/components/icon/Alert.js +2 -3
  183. package/dist/collection/components/icon/Alert.js.map +1 -0
  184. package/dist/collection/components/icon/Archive.js +2 -5
  185. package/dist/collection/components/icon/Archive.js.map +1 -0
  186. package/dist/collection/components/icon/Arrow.js +2 -2
  187. package/dist/collection/components/icon/Arrow.js.map +1 -0
  188. package/dist/collection/components/icon/ArrowDown.js +2 -2
  189. package/dist/collection/components/icon/ArrowDown.js.map +1 -0
  190. package/dist/collection/components/icon/ArrowRight.js +2 -7
  191. package/dist/collection/components/icon/ArrowRight.js.map +1 -0
  192. package/dist/collection/components/icon/ArrowUp.js +2 -2
  193. package/dist/collection/components/icon/ArrowUp.js.map +1 -0
  194. package/dist/collection/components/icon/Avatar.js +2 -2
  195. package/dist/collection/components/icon/Avatar.js.map +1 -0
  196. package/dist/collection/components/icon/AvatarGroup.js +2 -2
  197. package/dist/collection/components/icon/AvatarGroup.js.map +1 -0
  198. package/dist/collection/components/icon/Bachelor.js +2 -2
  199. package/dist/collection/components/icon/Bachelor.js.map +1 -0
  200. package/dist/collection/components/icon/BulletList.js +2 -2
  201. package/dist/collection/components/icon/BulletList.js.map +1 -0
  202. package/dist/collection/components/icon/Camera.js +2 -2
  203. package/dist/collection/components/icon/Camera.js.map +1 -0
  204. package/dist/collection/components/icon/CaretDown.js +2 -2
  205. package/dist/collection/components/icon/CaretDown.js.map +1 -0
  206. package/dist/collection/components/icon/CaretLeft.js +2 -2
  207. package/dist/collection/components/icon/CaretLeft.js.map +1 -0
  208. package/dist/collection/components/icon/CaretRight.js +2 -2
  209. package/dist/collection/components/icon/CaretRight.js.map +1 -0
  210. package/dist/collection/components/icon/CaretUp.js +2 -2
  211. package/dist/collection/components/icon/CaretUp.js.map +1 -0
  212. package/dist/collection/components/icon/Chat.js +2 -2
  213. package/dist/collection/components/icon/Chat.js.map +1 -0
  214. package/dist/collection/components/icon/CodeFork.js +2 -2
  215. package/dist/collection/components/icon/CodeFork.js.map +1 -0
  216. package/dist/collection/components/icon/Cogs.js +2 -2
  217. package/dist/collection/components/icon/Cogs.js.map +1 -0
  218. package/dist/collection/components/icon/Contentlink.js +2 -2
  219. package/dist/collection/components/icon/Contentlink.js.map +1 -0
  220. package/dist/collection/components/icon/Customlink.js +2 -2
  221. package/dist/collection/components/icon/Customlink.js.map +1 -0
  222. package/dist/collection/components/icon/Date.js +2 -2
  223. package/dist/collection/components/icon/Date.js.map +1 -0
  224. package/dist/collection/components/icon/Discover.js +2 -2
  225. package/dist/collection/components/icon/Discover.js.map +1 -0
  226. package/dist/collection/components/icon/Done.js +2 -2
  227. package/dist/collection/components/icon/Done.js.map +1 -0
  228. package/dist/collection/components/icon/Dot.js +2 -2
  229. package/dist/collection/components/icon/Dot.js.map +1 -0
  230. package/dist/collection/components/icon/DotArrowRight.js +2 -6
  231. package/dist/collection/components/icon/DotArrowRight.js.map +1 -0
  232. package/dist/collection/components/icon/Download.js +2 -2
  233. package/dist/collection/components/icon/Download.js.map +1 -0
  234. package/dist/collection/components/icon/Drag.js +2 -2
  235. package/dist/collection/components/icon/Drag.js.map +1 -0
  236. package/dist/collection/components/icon/Dragbutton.js +2 -2
  237. package/dist/collection/components/icon/Dragbutton.js.map +1 -0
  238. package/dist/collection/components/icon/DropDown.js +2 -2
  239. package/dist/collection/components/icon/DropDown.js.map +1 -0
  240. package/dist/collection/components/icon/Edit.js +2 -2
  241. package/dist/collection/components/icon/Edit.js.map +1 -0
  242. package/dist/collection/components/icon/EditEvent.js +2 -2
  243. package/dist/collection/components/icon/EditEvent.js.map +1 -0
  244. package/dist/collection/components/icon/Embed.js +2 -2
  245. package/dist/collection/components/icon/Embed.js.map +1 -0
  246. package/dist/collection/components/icon/Euro.js +2 -2
  247. package/dist/collection/components/icon/Euro.js.map +1 -0
  248. package/dist/collection/components/icon/Events.js +2 -2
  249. package/dist/collection/components/icon/Events.js.map +1 -0
  250. package/dist/collection/components/icon/ExternalLink.js +2 -2
  251. package/dist/collection/components/icon/ExternalLink.js.map +1 -0
  252. package/dist/collection/components/icon/EyeSlash.js +2 -2
  253. package/dist/collection/components/icon/EyeSlash.js.map +1 -0
  254. package/dist/collection/components/icon/Facebook.js +2 -2
  255. package/dist/collection/components/icon/Facebook.js.map +1 -0
  256. package/dist/collection/components/icon/Favorites.js +2 -2
  257. package/dist/collection/components/icon/Favorites.js.map +1 -0
  258. package/dist/collection/components/icon/Feed.js +2 -2
  259. package/dist/collection/components/icon/Feed.js.map +1 -0
  260. package/dist/collection/components/icon/FileText.js +2 -2
  261. package/dist/collection/components/icon/FileText.js.map +1 -0
  262. package/dist/collection/components/icon/FullScreen.js +2 -2
  263. package/dist/collection/components/icon/FullScreen.js.map +1 -0
  264. package/dist/collection/components/icon/Globe.js +2 -2
  265. package/dist/collection/components/icon/Globe.js.map +1 -0
  266. package/dist/collection/components/icon/GooglePlus.js +2 -2
  267. package/dist/collection/components/icon/GooglePlus.js.map +1 -0
  268. package/dist/collection/components/icon/Grid.js +2 -2
  269. package/dist/collection/components/icon/Grid.js.map +1 -0
  270. package/dist/collection/components/icon/Hamburger.js +2 -2
  271. package/dist/collection/components/icon/Hamburger.js.map +1 -0
  272. package/dist/collection/components/icon/Heart.js +2 -2
  273. package/dist/collection/components/icon/Heart.js.map +1 -0
  274. package/dist/collection/components/icon/HeartSupport.js +2 -2
  275. package/dist/collection/components/icon/HeartSupport.js.map +1 -0
  276. package/dist/collection/components/icon/Helsinginyliopisto.js +2 -2
  277. package/dist/collection/components/icon/Helsinginyliopisto.js.map +1 -0
  278. package/dist/collection/components/icon/Home.js +2 -2
  279. package/dist/collection/components/icon/Home.js.map +1 -0
  280. package/dist/collection/components/icon/HorizontalResize.js +2 -2
  281. package/dist/collection/components/icon/HorizontalResize.js.map +1 -0
  282. package/dist/collection/components/icon/HyLogo.js +2 -2
  283. package/dist/collection/components/icon/HyLogo.js.map +1 -0
  284. package/dist/collection/components/icon/IdNumber.js +2 -2
  285. package/dist/collection/components/icon/IdNumber.js.map +1 -0
  286. package/dist/collection/components/icon/Image.js +2 -2
  287. package/dist/collection/components/icon/Image.js.map +1 -0
  288. package/dist/collection/components/icon/ImageGallery.js +2 -2
  289. package/dist/collection/components/icon/ImageGallery.js.map +1 -0
  290. package/dist/collection/components/icon/Images.js +2 -2
  291. package/dist/collection/components/icon/Images.js.map +1 -0
  292. package/dist/collection/components/icon/Info.js +2 -2
  293. package/dist/collection/components/icon/Info.js.map +1 -0
  294. package/dist/collection/components/icon/InfoStroke.js +2 -2
  295. package/dist/collection/components/icon/InfoStroke.js.map +1 -0
  296. package/dist/collection/components/icon/Instagram.js +2 -2
  297. package/dist/collection/components/icon/Instagram.js.map +1 -0
  298. package/dist/collection/components/icon/LeikiList.js +2 -2
  299. package/dist/collection/components/icon/LeikiList.js.map +1 -0
  300. package/dist/collection/components/icon/LinkArrow.js +2 -2
  301. package/dist/collection/components/icon/LinkArrow.js.map +1 -0
  302. package/dist/collection/components/icon/LinkArrow1.js +2 -2
  303. package/dist/collection/components/icon/LinkArrow1.js.map +1 -0
  304. package/dist/collection/components/icon/LinkArrowDown.js +2 -2
  305. package/dist/collection/components/icon/LinkArrowDown.js.map +1 -0
  306. package/dist/collection/components/icon/LinkArrowLeft.js +2 -2
  307. package/dist/collection/components/icon/LinkArrowLeft.js.map +1 -0
  308. package/dist/collection/components/icon/LinkArrowOffsite.js +2 -2
  309. package/dist/collection/components/icon/LinkArrowOffsite.js.map +1 -0
  310. package/dist/collection/components/icon/LinkArrowUp.js +2 -2
  311. package/dist/collection/components/icon/LinkArrowUp.js.map +1 -0
  312. package/dist/collection/components/icon/Linkedin.js +2 -2
  313. package/dist/collection/components/icon/Linkedin.js.map +1 -0
  314. package/dist/collection/components/icon/List.js +2 -2
  315. package/dist/collection/components/icon/List.js.map +1 -0
  316. package/dist/collection/components/icon/ListAsBlocks.js +2 -2
  317. package/dist/collection/components/icon/ListAsBlocks.js.map +1 -0
  318. package/dist/collection/components/icon/ListStyleGrid.js +2 -10
  319. package/dist/collection/components/icon/ListStyleGrid.js.map +1 -0
  320. package/dist/collection/components/icon/ListStyleList.js +2 -5
  321. package/dist/collection/components/icon/ListStyleList.js.map +1 -0
  322. package/dist/collection/components/icon/Listoflinks.js +2 -2
  323. package/dist/collection/components/icon/Listoflinks.js.map +1 -0
  324. package/dist/collection/components/icon/Location.js +2 -2
  325. package/dist/collection/components/icon/Location.js.map +1 -0
  326. package/dist/collection/components/icon/Log.js +2 -2
  327. package/dist/collection/components/icon/Log.js.map +1 -0
  328. package/dist/collection/components/icon/Login.js +2 -2
  329. package/dist/collection/components/icon/Login.js.map +1 -0
  330. package/dist/collection/components/icon/Logout.js +2 -2
  331. package/dist/collection/components/icon/Logout.js.map +1 -0
  332. package/dist/collection/components/icon/MagnifyMinus.js +2 -2
  333. package/dist/collection/components/icon/MagnifyMinus.js.map +1 -0
  334. package/dist/collection/components/icon/MagnifyPlus.js +2 -2
  335. package/dist/collection/components/icon/MagnifyPlus.js.map +1 -0
  336. package/dist/collection/components/icon/Mail.js +2 -2
  337. package/dist/collection/components/icon/Mail.js.map +1 -0
  338. package/dist/collection/components/icon/Master.js +2 -2
  339. package/dist/collection/components/icon/Master.js.map +1 -0
  340. package/dist/collection/components/icon/Minus.js +2 -2
  341. package/dist/collection/components/icon/Minus.js.map +1 -0
  342. package/dist/collection/components/icon/Mobile.js +2 -2
  343. package/dist/collection/components/icon/Mobile.js.map +1 -0
  344. package/dist/collection/components/icon/Modify.js +2 -2
  345. package/dist/collection/components/icon/Modify.js.map +1 -0
  346. package/dist/collection/components/icon/NaviTriangle.js +2 -2
  347. package/dist/collection/components/icon/NaviTriangle.js.map +1 -0
  348. package/dist/collection/components/icon/NewGroup.js +2 -2
  349. package/dist/collection/components/icon/NewGroup.js.map +1 -0
  350. package/dist/collection/components/icon/NewPerson.js +2 -2
  351. package/dist/collection/components/icon/NewPerson.js.map +1 -0
  352. package/dist/collection/components/icon/Notification.js +2 -2
  353. package/dist/collection/components/icon/Notification.js.map +1 -0
  354. package/dist/collection/components/icon/OpinderLogo.js +2 -2
  355. package/dist/collection/components/icon/OpinderLogo.js.map +1 -0
  356. package/dist/collection/components/icon/OpinderLogoNew.js +2 -2
  357. package/dist/collection/components/icon/OpinderLogoNew.js.map +1 -0
  358. package/dist/collection/components/icon/Pdf.js +2 -2
  359. package/dist/collection/components/icon/Pdf.js.map +1 -0
  360. package/dist/collection/components/icon/People.js +2 -2
  361. package/dist/collection/components/icon/People.js.map +1 -0
  362. package/dist/collection/components/icon/PermissionAll.js +2 -2
  363. package/dist/collection/components/icon/PermissionAll.js.map +1 -0
  364. package/dist/collection/components/icon/PermissionGroup.js +2 -2
  365. package/dist/collection/components/icon/PermissionGroup.js.map +1 -0
  366. package/dist/collection/components/icon/PermissionPrivate.js +2 -2
  367. package/dist/collection/components/icon/PermissionPrivate.js.map +1 -0
  368. package/dist/collection/components/icon/Person.js +2 -2
  369. package/dist/collection/components/icon/Person.js.map +1 -0
  370. package/dist/collection/components/icon/PersonOutline.js +2 -2
  371. package/dist/collection/components/icon/PersonOutline.js.map +1 -0
  372. package/dist/collection/components/icon/Phone.js +2 -2
  373. package/dist/collection/components/icon/Phone.js.map +1 -0
  374. package/dist/collection/components/icon/Play.js +2 -2
  375. package/dist/collection/components/icon/Play.js.map +1 -0
  376. package/dist/collection/components/icon/Plus.js +2 -2
  377. package/dist/collection/components/icon/Plus.js.map +1 -0
  378. package/dist/collection/components/icon/Preview.js +2 -2
  379. package/dist/collection/components/icon/Preview.js.map +1 -0
  380. package/dist/collection/components/icon/Profile.js +2 -2
  381. package/dist/collection/components/icon/Profile.js.map +1 -0
  382. package/dist/collection/components/icon/Question.js +2 -2
  383. package/dist/collection/components/icon/Question.js.map +1 -0
  384. package/dist/collection/components/icon/Remove.js +2 -2
  385. package/dist/collection/components/icon/Remove.js.map +1 -0
  386. package/dist/collection/components/icon/Retweet.js +2 -2
  387. package/dist/collection/components/icon/Retweet.js.map +1 -0
  388. package/dist/collection/components/icon/RotateLeft.js +2 -2
  389. package/dist/collection/components/icon/RotateLeft.js.map +1 -0
  390. package/dist/collection/components/icon/RotateRight.js +2 -2
  391. package/dist/collection/components/icon/RotateRight.js.map +1 -0
  392. package/dist/collection/components/icon/Search.js +2 -2
  393. package/dist/collection/components/icon/Search.js.map +1 -0
  394. package/dist/collection/components/icon/Share.js +2 -2
  395. package/dist/collection/components/icon/Share.js.map +1 -0
  396. package/dist/collection/components/icon/SlimHamburgerMenu.js +2 -2
  397. package/dist/collection/components/icon/SlimHamburgerMenu.js.map +1 -0
  398. package/dist/collection/components/icon/SocialMedia.js +2 -2
  399. package/dist/collection/components/icon/SocialMedia.js.map +1 -0
  400. package/dist/collection/components/icon/SomeFacebook.js +2 -2
  401. package/dist/collection/components/icon/SomeFacebook.js.map +1 -0
  402. package/dist/collection/components/icon/SomeInstagram.js +2 -4
  403. package/dist/collection/components/icon/SomeInstagram.js.map +1 -0
  404. package/dist/collection/components/icon/SomeLinkedin.js +2 -2
  405. package/dist/collection/components/icon/SomeLinkedin.js.map +1 -0
  406. package/dist/collection/components/icon/SomeTwitter.js +2 -2
  407. package/dist/collection/components/icon/SomeTwitter.js.map +1 -0
  408. package/dist/collection/components/icon/SomeYoutube.js +2 -2
  409. package/dist/collection/components/icon/SomeYoutube.js.map +1 -0
  410. package/dist/collection/components/icon/Spinner.js +2 -2
  411. package/dist/collection/components/icon/Spinner.js.map +1 -0
  412. package/dist/collection/components/icon/Square.js +2 -2
  413. package/dist/collection/components/icon/Square.js.map +1 -0
  414. package/dist/collection/components/icon/SquareChecked.js +2 -2
  415. package/dist/collection/components/icon/SquareChecked.js.map +1 -0
  416. package/dist/collection/components/icon/Time.js +2 -2
  417. package/dist/collection/components/icon/Time.js.map +1 -0
  418. package/dist/collection/components/icon/TodoList.js +2 -2
  419. package/dist/collection/components/icon/TodoList.js.map +1 -0
  420. package/dist/collection/components/icon/Tour.js +2 -2
  421. package/dist/collection/components/icon/Tour.js.map +1 -0
  422. package/dist/collection/components/icon/Twitter.js +2 -2
  423. package/dist/collection/components/icon/Twitter.js.map +1 -0
  424. package/dist/collection/components/icon/TwitterLike.js +2 -2
  425. package/dist/collection/components/icon/TwitterLike.js.map +1 -0
  426. package/dist/collection/components/icon/UnitsAndFaculties.js +2 -2
  427. package/dist/collection/components/icon/UnitsAndFaculties.js.map +1 -0
  428. package/dist/collection/components/icon/Url.js +2 -2
  429. package/dist/collection/components/icon/Url.js.map +1 -0
  430. package/dist/collection/components/icon/Video.js +2 -2
  431. package/dist/collection/components/icon/Video.js.map +1 -0
  432. package/dist/collection/components/icon/Warning.js +2 -2
  433. package/dist/collection/components/icon/Warning.js.map +1 -0
  434. package/dist/collection/components/icon/Wrench.js +2 -2
  435. package/dist/collection/components/icon/Wrench.js.map +1 -0
  436. package/dist/collection/components/icon/Youtube.js +2 -2
  437. package/dist/collection/components/icon/Youtube.js.map +1 -0
  438. package/dist/collection/components/icon/allIcons.js +1 -0
  439. package/dist/collection/components/icon/allIcons.js.map +1 -0
  440. package/dist/collection/components/icon/icon.js +68 -60
  441. package/dist/collection/components/icon/icon.js.map +1 -0
  442. package/dist/collection/components/icon/icons.js +5 -8
  443. package/dist/collection/components/icon/icons.js.map +1 -0
  444. package/dist/collection/components/image/image.js +148 -141
  445. package/dist/collection/components/image/image.js.map +1 -0
  446. package/dist/collection/components/ingress/ingress.js +35 -30
  447. package/dist/collection/components/ingress/ingress.js.map +1 -0
  448. package/dist/collection/components/link/link.js +107 -99
  449. package/dist/collection/components/link/link.js.map +1 -0
  450. package/dist/collection/components/link-box/link-box.css +0 -1
  451. package/dist/collection/components/link-box/link-box.js +271 -272
  452. package/dist/collection/components/link-box/link-box.js.map +1 -0
  453. package/dist/collection/components/link-box-list/link-box-list.js +96 -89
  454. package/dist/collection/components/link-box-list/link-box-list.js.map +1 -0
  455. package/dist/collection/components/navigation/hy-menu-main-group/hy-menu-main-group.js +286 -290
  456. package/dist/collection/components/navigation/hy-menu-main-group/hy-menu-main-group.js.map +1 -0
  457. package/dist/collection/components/navigation/menu-language/menu-language.js +148 -138
  458. package/dist/collection/components/navigation/menu-language/menu-language.js.map +1 -0
  459. package/dist/collection/components/navigation/menu-language-item/menu-language-item.js +124 -114
  460. package/dist/collection/components/navigation/menu-language-item/menu-language-item.js.map +1 -0
  461. package/dist/collection/components/pagination/hy-pager/hy-pager.js +13 -9
  462. package/dist/collection/components/pagination/hy-pager/hy-pager.js.map +1 -0
  463. package/dist/collection/components/pagination/hy-pager-item/hy-pager-item.js +93 -95
  464. package/dist/collection/components/pagination/hy-pager-item/hy-pager-item.js.map +1 -0
  465. package/dist/collection/components/paragraph-text/paragraph-text-content.css +14 -14
  466. package/dist/collection/components/paragraph-text/paragraph-text-landing.css +8 -8
  467. package/dist/collection/components/paragraph-text/paragraph-text.css +22 -22
  468. package/dist/collection/components/paragraph-text/paragraph-text.js +73 -67
  469. package/dist/collection/components/paragraph-text/paragraph-text.js.map +1 -0
  470. package/dist/collection/components/person-profile/person-profile-listing/person-profile-listing.css +1 -1
  471. package/dist/collection/components/person-profile/person-profile-listing/person-profile.listing.js +128 -126
  472. package/dist/collection/components/person-profile/person-profile-listing/person-profile.listing.js.map +1 -0
  473. package/dist/collection/components/person-profile/person-profile.css +4 -4
  474. package/dist/collection/components/person-profile/person-profile.js +139 -182
  475. package/dist/collection/components/person-profile/person-profile.js.map +1 -0
  476. package/dist/collection/components/process/process.js +72 -62
  477. package/dist/collection/components/process/process.js.map +1 -0
  478. package/dist/collection/components/process-flow-box/process-flow-box.js +145 -148
  479. package/dist/collection/components/process-flow-box/process-flow-box.js.map +1 -0
  480. package/dist/collection/components/row/row.js +69 -72
  481. package/dist/collection/components/row/row.js.map +1 -0
  482. package/dist/collection/components/section-container/section-container.js +13 -9
  483. package/dist/collection/components/section-container/section-container.js.map +1 -0
  484. package/dist/collection/components/site-header/site-header.css +1 -1
  485. package/dist/collection/components/site-header/site-header.js +541 -560
  486. package/dist/collection/components/site-header/site-header.js.map +1 -0
  487. package/dist/collection/components/site-header/site-logo/site-logo.js +149 -148
  488. package/dist/collection/components/site-header/site-logo/site-logo.js.map +1 -0
  489. package/dist/collection/components/site-header/site-search/site-search.css +3 -3
  490. package/dist/collection/components/site-header/site-search/site-search.js +298 -312
  491. package/dist/collection/components/site-header/site-search/site-search.js.map +1 -0
  492. package/dist/collection/components/tiny-text/tiny-text.js +13 -9
  493. package/dist/collection/components/tiny-text/tiny-text.js.map +1 -0
  494. package/dist/collection/global/colors.js +1 -0
  495. package/dist/collection/global/colors.js.map +1 -0
  496. package/dist/collection/global/globalScript.js +1 -0
  497. package/dist/collection/global/globalScript.js.map +1 -0
  498. package/dist/collection/global/typography.js +1 -0
  499. package/dist/collection/global/typography.js.map +1 -0
  500. package/dist/collection/index.js +1 -0
  501. package/dist/collection/index.js.map +1 -0
  502. package/dist/collection/utils/utils.js +1 -0
  503. package/dist/collection/utils/utils.js.map +1 -0
  504. package/dist/esm/color-box_8.entry.js +14 -37
  505. package/dist/esm/color-box_8.entry.js.map +1 -0
  506. package/dist/esm/{globalScript-9d045b36.js → globalScript-4ad40215.js} +3 -1
  507. package/dist/esm/globalScript-4ad40215.js.map +1 -0
  508. package/dist/esm/huds-lib.js +10 -4
  509. package/dist/esm/huds-lib.js.map +1 -0
  510. package/dist/esm/hy-accordion-container_83.entry.js +389 -193
  511. package/dist/esm/hy-accordion-container_83.entry.js.map +1 -0
  512. package/dist/esm/hy-event-item.entry.js +7 -2
  513. package/dist/esm/hy-event-item.entry.js.map +1 -0
  514. package/dist/esm/hy-events.entry.js +7 -3
  515. package/dist/esm/hy-events.entry.js.map +1 -0
  516. package/dist/esm/{index-daaf0985.js → index-3a66d87e.js} +692 -288
  517. package/dist/esm/index-3a66d87e.js.map +1 -0
  518. package/dist/esm/index.js +2 -0
  519. package/dist/esm/index.js.map +1 -0
  520. package/dist/esm/loader.js +7 -4
  521. package/dist/esm/loader.js.map +1 -0
  522. package/dist/esm/polyfills/css-shim.js +1 -1
  523. package/dist/esm/{utils-7731bbdf.js → utils-43c56d92.js} +3 -1
  524. package/dist/esm/utils-43c56d92.js.map +1 -0
  525. package/dist/huds-lib/huds-lib.esm.js +2 -1
  526. package/dist/huds-lib/huds-lib.esm.js.map +1 -0
  527. package/dist/huds-lib/index.esm.js +2 -0
  528. package/dist/huds-lib/index.esm.js.map +1 -0
  529. package/dist/huds-lib/p-1aeae669.entry.js +2 -0
  530. package/dist/huds-lib/p-1aeae669.entry.js.map +1 -0
  531. package/dist/huds-lib/p-30e3190a.entry.js +88 -0
  532. package/dist/huds-lib/p-30e3190a.entry.js.map +1 -0
  533. package/dist/huds-lib/p-63584350.js +2 -0
  534. package/dist/huds-lib/p-63584350.js.map +1 -0
  535. package/dist/huds-lib/p-7b75f0ea.entry.js +2 -0
  536. package/dist/huds-lib/p-7b75f0ea.entry.js.map +1 -0
  537. package/dist/huds-lib/p-b02e49ad.js +2 -0
  538. package/dist/huds-lib/p-b02e49ad.js.map +1 -0
  539. package/dist/huds-lib/p-c8ed784d.entry.js +2 -0
  540. package/dist/huds-lib/p-c8ed784d.entry.js.map +1 -0
  541. package/dist/huds-lib/p-ff975a68.js +3 -0
  542. package/dist/huds-lib/p-ff975a68.js.map +1 -0
  543. package/dist/types/components/courses/hy-content-list-item/hy-content-list-item.d.ts +1 -1
  544. package/dist/types/components/person-profile/person-profile-listing/person-profile.listing.d.ts +1 -1
  545. package/dist/types/components.d.ts +68 -20
  546. package/dist/types/stencil-public-runtime.d.ts +92 -19
  547. package/dist/types/utils/utils.d.ts +4 -4
  548. package/loader/index.d.ts +11 -12
  549. package/loader/index.es2017.js +1 -0
  550. package/loader/index.js +2 -11
  551. package/loader/package.json +2 -1
  552. package/package.json +12 -11
  553. package/dist/huds-lib/p-04dcccdc.js +0 -1
  554. package/dist/huds-lib/p-0ea3ec9a.js +0 -1
  555. package/dist/huds-lib/p-2244fcda.entry.js +0 -1
  556. package/dist/huds-lib/p-aba9f82a.entry.js +0 -1
  557. package/dist/huds-lib/p-bf06c2eb.entry.js +0 -87
  558. package/dist/huds-lib/p-c68c36c3.entry.js +0 -1
  559. package/dist/huds-lib/p-f8697bf9.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"names":["accordionContainerCss","AccordionContainer","render","classAttributes","id","this","accordionid","toLowerCase","replace","h","Host","class","join","mb","accordionItemCss","keys","enter","tab","pageUp","pageDown","arrowUp","arrowDown","home","end","AccordionItem","AccordionVariants","default","componentDidLoad","ready","hyMainDiv","el","closest","classList","contains","headerstyle","componentDidRender","window","location","hash","expandPanelByAnchor","document","querySelectorAll","forEach","accordion","showOpen","element","style","display","height","scrollHeight","onHashChange","handleKeyDown","event","containerId","parentElement","triggers","Array","prototype","slice","call","target","key","code","ctrlModifier","ctrlKey","includes","index","indexOf","direction","length","newIndex","focus","preventDefault","handleClick","accordionContainer","allowMultiple","hasAttribute","allowToggle","tagName","targetParent","targetContent","getElementsByClassName","isExpanded","getAttribute","activeButtonElement","querySelector","setAttribute","collapseSection","remove","removeAttribute","expandSection","add","stopImmediatePropagation","anchor","setTimeout","substr","targetElementRect","getBoundingClientRect","scrollTo","top","scrollY","behavior","trigger","addEventListener","classIsOpen","classContentIsOpen","variant","classInnerWrapper","classHeadingAttributes","classContentAttributes","classContentInnerWrapper","titleAsId","accordiontitle","accordionItemHref","ariaExpanded","ariaHidden","dataCollapsed","href","tabindex","icon","size","role","adjacentImageTextCss","AdjacentImageText","async","_sourceSet","jsonParserWorker","sourceSet","contentClassAttributes","imageLeftClassAttributes","aspectRatioWidth","aspectRatioHeight","aspect","aspectRatio","map","item","srcSet","src","media","type","sizes","loading","disableLazy","alt","imageAlt","imageUrl","textTitle","textDescription","mainUrl","mainUrlTitle","mainUrlAriaLabel","url","mainUrlIsExternal","mainUrl2","mainUrlTitle2","mainUrlAriaLabel2","mainUrlIsExternal2","hyAnchorLinkListCss","HyAnchorLinkList","_anchorItems","anchorItems","handleLinkClick","e","targetId","targetElement","getElementById","substring","targetRect","preventScroll","stopPropagation","buttonClasses","isOpen","containerClasses","items","listTitle","onClick","fill","closeLabel","openLabel","title","hyBadgeCss","HyBadge","hyBannerCss","HyBanner","hyBannerClass","hyBannerWrapperClass","hyBannerTitle","hyBannerDescription","CtaLinkButtonVariants","onBlueBkgd","pt","urlTitle","scLabel","isExternal","sheetForTag","tag","sheet","i","styleSheets","ownerNode","createStyleElement","options","createElement","nonce","undefined","appendChild","createTextNode","StyleSheet","isSpeedy","speedy","tags","ctr","container","before","_proto","insert","rule","_tag","nextSibling","insertBefore","push","isImportRule","charCodeAt","insertRule","cssRules","flush","parentNode","removeChild","stylis_min","W","M","d","c","a","m","b","v","n","q","g","x","K","k","u","l","r","I","t","B","J","y","f","p","F","G","C","N","trim","charAt","ca","O","A","X","H","D","z","da","ea","fa","w","L","P","Y","E","ha","Q","split","ia","Z","ja","ka","test","aa","ba","la","ma","R","na","oa","S","T","U","prefix","V","use","set","delimiter","needle","toSheet","block","Sheet","current","ruleSheet","context","content","selectors","parents","line","column","ns","depth","at","createCache","stylisOptions","stylis","Stylis","inserted","head","nodes","node","attrib","_insert","stylisPlugins","selector","serialized","shouldCache","name","styles","cache","registered","murmur2","str","len","toString","unitlessKeys","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","memoize","fn","arg","hyphenateRegex","animationRegex","isCustomProperty","property","isProcessableValue","value","processStyleName","styleName","processStyleValue","match","p1","p2","cursor","next","unitless","handleInterpolation","mergedProps","interpolation","couldBeSelectorInterpolation","__emotion_styles","anim","createStringFromObject","previousCursor","result","cached","obj","string","isArray","_key","Error","_i","interpolated","labelPattern","serializeStyles","args","stringMode","strings","raw","lastIndex","identifierName","exec","hashString","isBrowser","getRegisteredStyles","registeredStyles","classNames","rawClassName","className","insertStyles","isStringTag","insertWithoutScoping","merge","css","createEmotion","compat","_len","arguments","keyframes","_len2","_key2","animation","injectGlobal","_len3","_key3","cx","_len4","_key4","classnames","hydrate","ids","bind","cls","toAdd","_createEmotion","baselineCss","createCss","Baseline","margin","hyBoxCss","toRemValue","val","breakpoints","mq","createCssClass","hasSidebar","pb","pl","pr","mt","ml","mr","bg","width","justify","align","last","toNumArray","parseFloat","HyBox","componentWillLoad","_b","_a","_d","_c","_f","_e","_h","_g","_k","_j","_m","_l","_p","_o","_r","_q","hyBoxContainerCss","HyBoxContainer","justifyContent","wrap","maxWidth","hyBreadcrumbsCss","HyBreadcrumbs","BreadcrumbVariants","_dataItems","dataItems","breadcrumbsClass","text","hyCheckboxCss","HyCheckbox","CheckboxVariants","checked","checkboxChecked","checkboxId","checkboxValue","htmlFor","checkboxLabel","hyCollaborationCss","HyCollaboration","imageAltText","linkUrl","linkTitle","hyContentListCss","HyContentList","CourseVariants","CourseStateVariants","dataWatcher","data","JSON","parse","handleCardClick","card","open","dataset","renderItems","courseRealisations","courseObject","stringify","courseListType","row","grid","courseProperty","courseItem","courseCode","courseCredits","realisations","realisationProperty","realizationItem","courseRealisationName","courseRealisationFullName","creditsLabel","courseStudyFormat","courseCancelled","courseStartDate","courseEndDate","formattedTimeRange","courseEnrollmentLink","courseTeachingLanguage","courseOrganisation","courseTags","tagItem","courseTagsJSON","contentListItemClassAttributes","courseStateVariant","cancelledLabel","linkLabel","classAlertAttributes","classAlertLabelAttributes","noResultLabel","hyContentListItemCss","HyContentLstItem","_courseTags","ariaLabel","classItemName","stateVariant","classItemCancelled","courseName","isCancelled","courseLinkLabel","hyCrisisBannerCss","HyCrisisBanner","bannerTitle","bannerDescription","innerHTML","ctaButtonCss","CtaButton","containerClassAttributes","textClassAttributes","iconClassAttributes","typeButton","linkContent","ctaLinkCss","CtaLink","CtaLinkVariants","linkList","hyDropdownCss","HyDropdown","label","defaultLabel","_dropdownOptions","dropdownOptions","componentWillUpdate","some","isChecked","watchPropHandler","newValue","oldValue","single","dropdownPanelCheckboxElements","from","filter","currentSingle","option","handlePanelToggle","isPanelOpen","dropdownToggleButtonElement","dropdownId","dropdownPanelElement","dropdownToggleButtonIconElement","allowedElements","handleSingleClick","currentLabel","currentId","currentValue","dropdownLabel","HyDropdownPanel","isHidden","HyDropdownPanelItem","isLast","dropdownItemId","dropdownItemValue","dropdownItemLabel","hyFilterGroupCss","HyFilterGroup","arrayDataWatcher","_filterGroupFilters","filterGroupFilters","handleFilterDeselect","console","log","filterGroupLabel","HyFilterGroupItem","filterGroupItemLabel","ColorVariant","grey_dark","hyFilterListTypeCss","HyFilterListType","filterLabel","filterValue","ListStyleVariants","list","hyFilterVisibilityToolCss","HyFilterVisibilityTool","filterVisibilityToolType","HyFilterVisibilityToolReset","HyFilterVisibilityToolToggle","hyFooterCss","HyFooter","hyFooterActionCss","scrollTimeout","HyFooterAction","disconnectedCallback","clearTimeout","scrollTop","hyLogo","updatedText","upButtonLabel","hyFooterBaseCss","HyFooterBase","FooterLinkItemColor","white","SiteLogoSize","big","_dataFooterBaseLinks","dataFooterBaseLinks","_dataFooterBaseSome","dataFooterBaseSome","logoColor","links","FooterVariant","footer","color","logoUrl","logoLabel","someLabel","s","link","copyrightText","hasNativeCollections","WeakMap","Map","getIndex","arr","entry","matches","constructor","__entries__","get","delete","entries","splice","has","clear","values","callback","ctx","now","performance","Date","requestAnimFrame","requestAnimationFrame","mutationsSupported","MutationObserver","debounce","delay","timeoutID","apply","ResizeObserverController","idleTimeout","continuousUpdates","_idleTimeout","_isCycleContinuous","_cycleStartTime","_isCycleActive","_isUpdateScheduled","_listenersEnabled","_mutationsObserver","_observers","runUpdates","_resolveScheduled","_onMutation","_continuousCycleHandler","connect","observer","isConnected","_addListeners","disconnect","observers","_removeListeners","_updateObservers","hasChanges","gatherActive","hasActive","broadcastActive","scheduleUpdate","_hasRemainingTime","_endUpdates","timePassed","observe","attributes","childList","characterData","subtree","removeEventListener","attrsChanged","emptyRect","right","bottom","left","getPaddings","getComputedStyle","paddings","createContentRect","clientWidth","clientHeight","getSVGContentRect","bbox","getBBox","getHTMLElementContentRect","isSVGElement","SVGElement","getContentRect","ResizeObservation","_contentRect","broadcastWidth","broadcastHeight","broadcastRect","rect","isActive","ResizeObserverEntry","rectData","contentRect","Object","defineProperties","ResizeObserver","controller","publicObserver","TypeError","_callback","_targets","_activeTargets","_controller","_publicObserver","Element","targets","unobserve","clearActive","observation","activeTargets","_ResizeObserver","method","ResizeObserverPolyfill","ResizeObserver$1","hyFooterInfoCss","HyFooterInfo","_dataFooterInfoLinks","dataFooterInfoLinks","_dataLuomusFooterContent","luomusFooterContent","ro","checkForMobile","body","isMobile","luomusFooterContentItems","isGroup","FooterLinkVariants","group","campus","section","HeadingSectionVariants","groupFooterInfo","defaultFooterInfo","footerLinkItemClass","linkScLabel","linkText","linksColor","isLuomusGroup","black","luomus","heading","HeadingVarians","h2","groupLogoUrl","linkIsExternal","onWhiteBkgd","mainlink","external_link","hyFooterLinkItemCss","HyFooterLinkItem","base","mainLink","headingClassAttributes","linkClassAttributes","h3","hyGeneralListCss","HyGeneralList","GeneralListTypes","listData","truncate","blank","description","truncateDescription","truncateLimit","subLabel","date","hyGeneralListItemCss","HyGeneralListItem","listStyle","imageClassAttributes","sidebarClass","titleClassAttributes","descriptionClassAttributes","itemTitle","defaultHeadingCss","wideHeadingFwCss","Heading","hasChildren","headingInVariants","negative","isSearch","sectionClassAttributes","containerSectionClass","hyphenatedText","hyHeroCss","timeout","HyHero","HeroTypeVariant","landing","HeroGroupTypeVariant","HeroColorVariant","blue","HeroSizeVariant","large","handleHeroImageObjectFitValue","heroSizeVariant","heroElement","heroContentContainerElement","offsetHeight","heroWhite","colorVariantValue","colorVariant","heroTypeValue","heroType","heroBlue","heroBlack","hyHeroClasses","heroGroupType","sizeVariant","heroTitleClasses","hasShortcuts","onload","image","SvgAddToTodoList","props","assign","viewBox","SvgAlert","cy","SvgArrowDown","SvgArrowUp","SvgArchive","points","SvgAvatarGroup","SvgAvatar","SvgBachelor","SvgBulletList","SvgCamera","SvgCaretDown","SvgCaretLeft","SvgCaretRight","SvgCaretUp","SvgChat","SvgCodeFork","SvgCogs","SvgContentlink","SvgCustomlink","SvgDate","SvgDiscover","SvgDone","SvgDot","transform","SvgDownload","SvgDrag","SvgDragbutton","SvgDropDown","SvgEditEvent","SvgEdit","SvgEmbed","SvgEuro","SvgEvents","SvgExternalLink","SvgEyeSlash","SvgFacebook","SvgFavorites","SvgFeed","SvgFileText","SvgFullScreen","SvgGlobe","SvgGooglePlus","SvgGrid","SvgHamburger","SvgHeart","SvgHeartSupport","SvgHelsinginyliopisto","SvgHome","stroke","SvgHorizontalResize","SvgHyLogo","SvgIdNumber","SvgImageGallery","SvgImage","SvgImages","SvgInfoStroke","SvgInfo","SvgInstagram","SvgLeikiList","SvgLinkArrowDown","SvgLinkArrowLeft","SvgLinkArrowOffsite","SvgLinkArrowUp","SvgLinkArrow","SvgLinkedin","SvgListAsBlocks","SvgList","SvgListoflinks","SvgListStyleGrid","SvgListStyleList","SvgLocation","SvgLog","SvgLogin","SvgLogout","SvgMagnifyMinus","SvgMagnifyPlus","SvgMail","SvgMaster","SvgMinus","SvgModify","SvgNaviTriangle","SvgNewGroup","SvgNewPerson","SvgNotification","SvgOpinderLogoNew","SvgPdf","SvgPeople","SvgPermissionAll","SvgPermissionGroup","SvgPermissionPrivate","SvgPersonOutline","SvgPerson","SvgPhone","SvgPlay","SvgPlus","SvgPreview","SvgProfile","SvgQuestion","SvgRemove","SvgRetweet","SvgRotateLeft","SvgRotateRight","SvgSearch","SvgShare","SvgSlimHamburgerMenu","SvgSocialMedia","SomeFacebook","xmlns","SomeInstagram","SomeTwitter","SvgTwitterLike","SomeYoutube","SomeLinkedin","SvgSpinner","SvgSquareChecked","SvgSquare","SvgTime","SvgTodoList","SvgTour","SvgTwitter","SvgUnitsAndFaculties","SvgUrl","SvgVideo","SvgWarning","SvgWrench","SvgYoutube","IconArrowLeft","IconArrowRight","IconArrowToRight","IconQuote","iconCss","iconNames","icons.AddToTodoList","icons.Alert","icons.Archive","icons.ArrowDown","icons.IconArrowLeft","icons.IconArrowRight","icons.IconArrowToRight","icons.ArrowUp","icons.AvatarGroup","icons.Avatar","icons.Bachelor","icons.BulletList","icons.Camera","icons.CaretDown","icons.CaretLeft","icons.CaretRight","icons.CaretUp","icons.Chat","icons.CodeFork","icons.Cogs","icons.Contentlink","icons.Customlink","icons.Date","icons.Discover","icons.Done","icons.Dot","icons.DotArrowRight","icons.Download","icons.Drag","icons.Dragbutton","icons.DropDown","icons.Edit","icons.EditEvent","icons.Embed","icons.Euro","icons.Events","icons.ExternalLink","icons.EyeSlash","icons.Facebook","icons.Favorites","icons.Feed","icons.FileText","icons.FullScreen","icons.Globe","icons.GooglePlus","icons.Grid","icons.Hamburger","icons.Heart","icons.HeartSupport","icons.Helsinginyliopisto","icons.Home","icons.HorizontalResize","icons.HyLogo","icons.IdNumber","icons.Image","icons.ImageGallery","icons.Images","icons.Info","icons.InfoStroke","icons.Instagram","icons.LeikiList","icons.LinkArrow","icons.LinkArrowDown","icons.LinkArrowLeft","icons.LinkArrowOffsite","icons.LinkArrowUp","icons.Linkedin","icons.List","icons.Listoflinks","icons.ListAsBlocks","icons.ListStyleGrid","icons.ListStyleList","icons.Url","icons.Location","icons.Log","icons.Login","icons.Logout","icons.MagnifyMinus","icons.MagnifyPlus","icons.Mail","icons.Master","icons.Minus","icons.Modify","icons.NaviTriangle","icons.NewGroup","icons.NewPerson","icons.Notification","icons.OpinderLogoNew","icons.Pdf","icons.People","icons.PermissionAll","icons.PermissionGroup","icons.PermissionPrivate","icons.Person","icons.PersonOutline","icons.Phone","icons.Play","icons.Plus","icons.Preview","icons.Profile","icons.Question","icons.Remove","icons.Retweet","icons.RotateLeft","icons.RotateRight","icons.Search","icons.Share","icons.SlimHamburgerMenu","icons.SocialMedia","icons.SomeFacebook","icons.SomeInstagram","icons.SomeLinkedin","icons.SomeTwitter","icons.SomeTwitterRetweet","icons.SomeTwitterLike","icons.SomeYoutube","icons.Spinner","icons.Square","icons.SquareChecked","icons.Time","icons.TodoList","icons.Tour","icons.Twitter","icons.UnitsAndFaculties","icons.Video","icons.Warning","icons.Wrench","icons.IconQuote","icons.Youtube","Icon","imageCss","Image","srcSetWatcher","caption","ingressCss","Ingress","hyIntroductionCss","HyIntroduction","reversed","classTitle","classDescription","contentWrapperClasses","limitContentWidth","introduction","hyKeyFigureCss","HyKeyFigure","KeyHighlightVariants","classVariant","hyKeyFigureGroupCss","HyKeyFigureGroup","getBoxClassName","count","keyFiguresVariant","small","classRowAttributes","classRowCenteredAttributes","hyKeyHighlightCss","HyKeyHighlight","hyKeyHighlightGroupCss","HyKeyHighlightGroup","dataItemCount","classItem","hyLargeProcessFlowCss","HyLargeProcessFlow","phases","boxes","headingClasses","phaseTitle","hyLargeProcessFlowPhaseCss","HyLargeProcessFlowPhase","linkItems","linkItemsCount","classLinks","linkCss","Link","LinkVariants","linkBoxCss","LinkBox","LinkBoxVariants","classContainerAttributes","classTextContainer","showLogo","readMoreLabel","linkBoxListCss","LinkBoxList","classItemAttributes","imageSets","boxUrl","hyLinkListCss","HyLinkList","linkVariant","HeadingVariant","headingVariant","columnType","listHeading","variation","hyListItemCss","space","HyListItem","ListItemVariants","relatedLinksWatcher","_relatedLinks","additionalInfoWatcher","_additionalInfo","expandRelatedInfoPanel","contentSelector","targetButtonClass","contentSection","isExpandedRelatedContent","possibleTags","relatedLinks","additionalInfo","degreeProgramme","outputImageAspectRatio","imageHeight","naturalHeight","imageWidth","naturalWidth","inputImageAspectRatio","_imageMinWidth","_imageMinHeight","classWrapperAttributes","classInfoContainerAttributes","classInfoContainerHeader","classInfoContainerTitle","classInfoContainerDescription","classInfoContainerLinkContainer","classInfoContainerLinkIcon","classInfoContainerLink","position","classInfoContainerOutgoingLink","itemType","itemDescription","outGoingUrlLabel","classImageContainerAttributes","classImageContainerImage","classInfoContainerAdditionalInfoAttributes","withAdditionalInfo","classMetadataWrapper","classContentWrapper","classInfoContainerOutgoingLinkUrl","classRelatedInfoContainer","classRelatedInfoHeading","classRelatedInfoHeadingLink","classRelatedInfoHeadingButton","classRelatedInfoHeadingIcon","classRelatedInfoContent","classRelatedInfoLink","relatedLinksBlockTitle","relatedLinksCount","itemImageUrl","itemImageAlt","imageLabel","classInfoContainerAdditionalInfoItem","relatedLinkTarget","hyLogoGridCss","HyLogoGrid","logoGridTitle","HyLogoGridItem","parsedImage","parsedLink","image_sources","sources","image_url","fallback_url","image_alt","parsedSources","elementContent","targetValue","hyMainCss","HyMain","hyMainContentWrapperCss","HyMainContentWrapper","menuLanguageCss","MenuLanguage","handleOutsideMenuClick","isMenuOpen","desktopMenuToggled","searchPanelToggled","universityMainMenuPanelToggled","handleComponentFocus","menuLanguageToggled","emit","handleComponentClick","languageMenuSelector","adjustPosition","languagePanel","shadowRoot","headerHeight","hyHeader","rectHeader","rectLangMenu","_dataMenuLanguage","dataMenuLanguage","_labels","labels","svgColor","globeIconSize","langCode","abbr","isDisabled","menuLanguageItemCss","SiteLanguage","lang","hyMenuMainGroupCss","HyMenuMainGroup","emitEvent","adjustMainMenuPosition","handleComponentKeyDown","universityMainMenuToggled","mobileMenuTopToggle","hyTopHeader","mainMenuToggle","mainMenuDropdown","mainMenuList","rectMenuToggle","showBackdropShadow","state","hyBackdropDiv","children","me","outerHeight","_dataMainMenu","dataMainMenu","handleTopMenuClose","languageMenuToggled","logoSizeGroup","logoColorGroup","menuLabel","siteUrl","siteLabel","donate","menuLabelClose","hyOpeningHoursCss","HyOpeningHours","exceptional","listClasses","venueType","buildingClasses","language","blockId","dateType","multiple","blockTitle","prevLabel","dateTitle","nextLabel","listLabel","buildingLabel","customerServiceLabel","customLink","customLinkTitle","hyOpeningHoursContentCss","HyOpeningHoursContent","dataItemsWatcher","service","itemClasses","today","dateLibrary","building","selfServiceLabel","hoursClasses","officeClasses","hyPagerCss","HyPager","hyPagerItemCss","HyPagerItem","PaginationItemVariants","itemUrl","itemLabel","scAriaLabel","previous","ellipsis","paragraphTextContentCss","defaultParagraphTextCss","paragraphTextLandingCss","ParagraphText","placement","hyPersonCardCss","HyPersonCard","PersonCardVariants","componentWillRender","_fullName","firstName","lastName","_initials","classLinkAttributes","classIsActive","concat","classPositionTitle","categoryTitle","positionTitle","department","extended","field","email","phone","aboutInfo","aboutInfoLabel","personProfileCss","timer","PersonProfile","viewportSize","innerWidth","toggleShowFullAboutText","isFullAboutTextHidden","job_title","additional_information","contact_information","organization_units","about","research","person_content","personDataJson","organizations","research_organizations","aboutDescriptionTextDestructured","aboutDescriptionLength","trimmedAboutDescription","ellipsisTextArray","research_portal_title","research_portal_label","peopleFinderReturnLink","peopleFinderReturnLabel","col","withoutIcons","textSpacingTight","people_finder_path","Fragment","hideFullAboutText","showFullAboutText","research_url","inline","publications","projects","activities","personProfileListingCss","isResearch","processCss","Process","bigVariants","processVariant","ProcessFlowBoxVariants","itemsPerRow","stepState","step","numberTerm","processFlowBoxCss","ProcessFlowBox","classContentVariant","classIsEven","parseInt","boxNumber","classNumberVariant","classStepVariant","intermediateStepTitle","boxTitle","boxDescription","hyProminentImageCss","HyProminentImage","prominentImageClass","prominentImageText","hyQuoteCss","HyQuote","quoteClass","quoteSignature","rowCss","Row","hySearchFieldCss","HySearchField","searchInput","isInputValueEmpty","prefillParameter","urlParams","URLSearchParams","search","searchValue","handleInputReset","isLuomusSearch","inputId","isLabelHidden","labelLarge","isLabelBold","placeholder","hyShortcutsCss","HyShortcuts","isFirstLine","classLinkWrapper","siteHeaderCss","clickTimer","clickTimeout","SiteHeader","mobileMenuToggle","menuMobileToggled","bodyElement","getElementsByTagName","overflow","isTopMenuOpen","menuMobileTopToggled","mainMenuToggled","isDesktopMenuOpen","handleScroll","headerScrollHandler","topOffset","pageYOffset","Math","abs","lastScrollTop","delta","isTopVisible","toggleStickyness","headerScrollDown","headerScrollUp","toggleOn","bodyElementClasses","hySiteHeader","isBottomVisible","applySizeClasses","topOptions","root","rootMargin","threshold","topObserver","IntersectionObserver","nodeName","isIntersecting","header","bottomOptions","bottomObserver","navbarHeight","setProperty","dataSiteHeaderLabels","menuLabels","menu_labels","languageLabels","language_labels","searchLabels","search_labels","groupPages","group_pages","dataMenuDonate","donateLink","groupType","isDesktopMenuDropdown","menuType","MenuType","mobile","desktop","tablet","menuAttribute","logoSize","toggleMenuMobileAndRemoveListener","handleClickOutside","composedPath","activeLang","dataMenuLanguageArray","dataMainMenuLinks","noSearch","isBetaGroup","showSearchLabel","dataSiteSearchLabels","dataSearchTools","researchGroupLabel","siteLogoCss","SiteLogo","isGroupClass","siteSearchCss","SiteSearch","searchTools","_searchTools","_searchLabels","searchTitleLabel","searchCloseLabel","searchToolsLabel","searchDescriptionLabel","closeSearchPanel","mobileMenuToggled","handleWindowClick","detail","isSearchPanelOpen","path","cludoSayt","CludoSayt","hide","handleSearchPanelToggle","beta","luomus_search_url","searchLanguage","cludoSearchContentFormElement","append","shadowTop","searchPanel","initialDisplayStyle","headerHeightValue","headerTop","offsetTop","searchPanelHeight","currentPageUrlPathName","pathname","searchPagePathNames","showLabel","isAlternative","disabled","searchToolTarget","hyTableContainerCss","HyTableContainer","hyTabsCss","up","down","checkTimeout","focusTimeout","HyTabs","tabItems","tabButtonTitles","panel","tabContainer","generateArrays","leftButton","rightButton","tabList","checkScrollHidden","offSetWidth","scrollWidth","oneTabWidth","scrollBy","tc","tabButtons","tabPanelsState","addListeners","activateTab","tabs","clickEventListener","keydownEventListener","tablist","scrollLeft","keyCode","focusTimeoutCleared","determineOrientation","keyupEventListener","vertical","proceed","switchTabOnArrowPress","pressed","focusEventHandler","setFocus","deactivateTabs","controls","panels","focused","activeElement","classComponentAttributes","tabId","tabHash","isUrlHashed","hashElement","hashElementRect","tabListLabel","tabItemHref","hyTabsItemCss","HyTabsItem","tabTitle","hidden","hyTagCss","HyTag","hyTwitterFeedCss","HyTwitterFeed","parsedTweets","tweets","tweetType","twitterFeedKeyword","paragraphTitle","tweet_text","tweet_created","tweet_absolute_url","tweet_like_count","tweet_retweet_count","user_name","user_username","user_profile_image_url","dateFormatted","Intl","DateTimeFormat","format","dateTime","hyTwoColumnsCss","HyTwoColumns","hyUserLoginFormCss","HyUserLoginForm","hyVideoCss","HyVideo","renderPreviewWithLink","linkToVideo","videoTitle","previewImageUrl","renderPlayButton","simplePlayButton","playButtonLabel","videoDescription","descCollapsed","horizontal","styleList","maxChars","charCount","playButtonVisible","contextLabelVisible","contextLabel","duration","views","dateAdded","seriesCount","durationLabel","viewsLabel","dateAddedLabel","seriesLabel","onKeyDown","showMoreLabel","showLessLabel"],"sources":["./src/components/accordion-container/accordion-container.scss?tag=hy-accordion-container","./src/components/accordion-container/accordion-container.tsx","./src/components/accordion-item/accordion-item.scss?tag=hy-accordion-item","./src/components/accordion-item/accordion-item.tsx","./src/components/adjacent-image-text/adjacent-image-text.scss?tag=hy-adjacent-image-text","./src/components/adjacent-image-text/adjacent-image-text.tsx","./src/components/hy-anchor-link-list/hy-anchor-link-list.scss?tag=hy-anchor-link-list","./src/components/hy-anchor-link-list/hy-anchor-link-list.tsx","./src/components/hy-badge/hy-badge.scss?tag=hy-badge&encapsulation=shadow","./src/components/hy-badge/hy-badge.tsx","./src/components/hy-banner/hy-banner.scss?tag=hy-banner","./src/components/hy-banner/hy-banner.tsx","./node_modules/@emotion/sheet/dist/sheet.browser.esm.js","./node_modules/@emotion/stylis/dist/stylis.browser.esm.js","./node_modules/@emotion/cache/dist/cache.browser.esm.js","./node_modules/@emotion/hash/dist/hash.browser.esm.js","./node_modules/@emotion/unitless/dist/unitless.browser.esm.js","./node_modules/@emotion/memoize/dist/memoize.browser.esm.js","./node_modules/@emotion/serialize/dist/serialize.browser.esm.js","./node_modules/@emotion/utils/dist/utils.browser.esm.js","./node_modules/create-emotion/dist/create-emotion.browser.esm.js","./node_modules/emotion/dist/emotion.esm.js","./src/components/baseline/baseline.css?tag=hy-baseline","./src/components/baseline/baseline.tsx","./src/components/hy-box/hy-box.scss?tag=hy-box","./src/components/hy-box/hy-box.tsx","./src/components/hy-box-container/hy-box-container.css?tag=hy-box-container","./src/components/hy-box-container/hy-box-container.tsx","./src/components/hy-breadcrumbs/hy-breadcrumbs.scss?tag=hy-breadcrumbs","./src/components/hy-breadcrumbs/hy-breadcrumbs.tsx","./src/components/hy-checkbox/hy-checkbox.scss?tag=hy-checkbox","./src/components/hy-checkbox/hy-checkbox.tsx","./src/components/hy-collaboration/hy-collaboration.scss?tag=hy-collaboration","./src/components/hy-collaboration/hy-collaboration.tsx","./src/components/courses/hy-content-list/hy-content-list.scss?tag=hy-content-list","./src/components/courses/hy-content-list/hy-content-list.tsx","./src/components/courses/hy-content-list-item/hy-content-list-item.scss?tag=hy-content-list-item","./src/components/courses/hy-content-list-item/hy-content-list-item.tsx","./src/components/hy-crisis-banner/hy-crisis-banner.scss?tag=hy-crisis-banner","./src/components/hy-crisis-banner/hy-crisis-banner.tsx","./src/components/cta-button/cta-button.scss?tag=hy-cta-button","./src/components/cta-button/cta-button.tsx","./src/components/cta-link/cta-link.scss?tag=hy-cta-link","./src/components/cta-link/cta-link.tsx","./src/components/hy-dropdown/hy-dropdown.scss?tag=hy-dropdown","./src/components/hy-dropdown/hy-dropdown.tsx","./src/components/hy-dropdown/hy-dropdown.panel.tsx","./src/components/hy-dropdown/hy-dropdown.panel.item.tsx","./src/components/hy-filter-group/hy-filter-group.scss?tag=hy-filter-group","./src/components/hy-filter-group/hy-filter-group.tsx","./src/components/hy-filter-group/hy-filter-group.item.tsx","./src/components/hy-filter-list-type/hy-filter-list-type.scss?tag=hy-filter-list-type","./src/components/hy-filter-list-type/hy-filter-list-type.tsx","./src/components/hy-filter-visibility-tool/hy-filter-visibility-tool.scss?tag=hy-filter-visibility-tool","./src/components/hy-filter-visibility-tool/hy-filter-visibility-tool.tsx","./src/components/hy-filter-visibility-tool/hy-filter-visibility-tool.reset.tsx","./src/components/hy-filter-visibility-tool/hy-filter-visibility-tool.reset.toggle.tsx","./src/components/footer/hy-footer/hy-footer.scss?tag=hy-footer","./src/components/footer/hy-footer/hy-footer.tsx","./src/components/footer/hy-footer-action/hy-footer-action.scss?tag=hy-footer-action","./src/components/footer/hy-footer-action/hy-footer-action.tsx","./src/components/footer/hy-footer-base/hy-footer-base.scss?tag=hy-footer-base","./src/components/footer/hy-footer-base/hy-footer-base.tsx","./node_modules/resize-observer-polyfill/src/shims/es6-collections.js","./node_modules/resize-observer-polyfill/src/shims/performance.now.js","./node_modules/resize-observer-polyfill/src/shims/requestAnimationFrame.js","./node_modules/resize-observer-polyfill/src/ResizeObserverController.js","./node_modules/resize-observer-polyfill/src/ResizeObservation.js","./node_modules/resize-observer-polyfill/src/ResizeObserverEntry.js","./node_modules/resize-observer-polyfill/src/_ResizeObserver.js","./node_modules/resize-observer-polyfill/src/ResizeObserver.js","./node_modules/resize-observer-polyfill/index.js","./src/components/footer/hy-footer-info/hy-footer-info.scss?tag=hy-footer-info","./src/components/footer/hy-footer-info/hy-footer-info.tsx","./src/components/footer/hy-footer-link-item/hy-footer-link-item.scss?tag=hy-footer-link-item","./src/components/footer/hy-footer-link-item/hy-footer-link-item.tsx","./src/components/hy-general-list/hy-general-list.scss?tag=hy-general-list","./src/components/hy-general-list/hy-general-list.tsx","./src/components/hy-general-list-item/hy-general-list-item.scss?tag=hy-general-list-item","./src/components/hy-general-list-item/hy-general-list-item.tsx","./src/components/heading/heading.scss?tag=hy-heading&mode=default","./src/components/heading/heading-fw.scss?tag=hy-heading&mode=wide","./src/components/heading/heading.tsx","./src/components/hy-hero/hy-hero.scss?tag=hy-hero","./src/components/hy-hero/hy-hero.tsx","./src/components/icon/AddToTodoList.tsx","./src/components/icon/Alert.tsx","./src/components/icon/ArrowDown.tsx","./src/components/icon/ArrowUp.tsx","./src/components/icon/Archive.tsx","./src/components/icon/AvatarGroup.tsx","./src/components/icon/Avatar.tsx","./src/components/icon/Bachelor.tsx","./src/components/icon/BulletList.tsx","./src/components/icon/Camera.tsx","./src/components/icon/CaretDown.tsx","./src/components/icon/CaretLeft.tsx","./src/components/icon/CaretRight.tsx","./src/components/icon/CaretUp.tsx","./src/components/icon/Chat.tsx","./src/components/icon/CodeFork.tsx","./src/components/icon/Cogs.tsx","./src/components/icon/Contentlink.tsx","./src/components/icon/Customlink.tsx","./src/components/icon/Date.tsx","./src/components/icon/Discover.tsx","./src/components/icon/Done.tsx","./src/components/icon/Dot.tsx","./src/components/icon/DotArrowRight.tsx","./src/components/icon/Download.tsx","./src/components/icon/Drag.tsx","./src/components/icon/Dragbutton.tsx","./src/components/icon/DropDown.tsx","./src/components/icon/EditEvent.tsx","./src/components/icon/Edit.tsx","./src/components/icon/Embed.tsx","./src/components/icon/Euro.tsx","./src/components/icon/Events.tsx","./src/components/icon/ExternalLink.tsx","./src/components/icon/EyeSlash.tsx","./src/components/icon/Facebook.tsx","./src/components/icon/Favorites.tsx","./src/components/icon/Feed.tsx","./src/components/icon/FileText.tsx","./src/components/icon/FullScreen.tsx","./src/components/icon/Globe.tsx","./src/components/icon/GooglePlus.tsx","./src/components/icon/Grid.tsx","./src/components/icon/Hamburger.tsx","./src/components/icon/Heart.tsx","./src/components/icon/HeartSupport.tsx","./src/components/icon/Helsinginyliopisto.tsx","./src/components/icon/Home.tsx","./src/components/icon/HorizontalResize.tsx","./src/components/icon/HyLogo.tsx","./src/components/icon/IdNumber.tsx","./src/components/icon/ImageGallery.tsx","./src/components/icon/Image.tsx","./src/components/icon/Images.tsx","./src/components/icon/InfoStroke.tsx","./src/components/icon/Info.tsx","./src/components/icon/Instagram.tsx","./src/components/icon/LeikiList.tsx","./src/components/icon/LinkArrowDown.tsx","./src/components/icon/LinkArrowLeft.tsx","./src/components/icon/LinkArrowOffsite.tsx","./src/components/icon/LinkArrowUp.tsx","./src/components/icon/LinkArrow.tsx","./src/components/icon/Linkedin.tsx","./src/components/icon/ListAsBlocks.tsx","./src/components/icon/List.tsx","./src/components/icon/Listoflinks.tsx","./src/components/icon/ListStyleGrid.tsx","./src/components/icon/ListStyleList.tsx","./src/components/icon/Location.tsx","./src/components/icon/Log.tsx","./src/components/icon/Login.tsx","./src/components/icon/Logout.tsx","./src/components/icon/MagnifyMinus.tsx","./src/components/icon/MagnifyPlus.tsx","./src/components/icon/Mail.tsx","./src/components/icon/Master.tsx","./src/components/icon/Minus.tsx","./src/components/icon/Modify.tsx","./src/components/icon/NaviTriangle.tsx","./src/components/icon/NewGroup.tsx","./src/components/icon/NewPerson.tsx","./src/components/icon/Notification.tsx","./src/components/icon/OpinderLogoNew.tsx","./src/components/icon/Pdf.tsx","./src/components/icon/People.tsx","./src/components/icon/PermissionAll.tsx","./src/components/icon/PermissionGroup.tsx","./src/components/icon/PermissionPrivate.tsx","./src/components/icon/PersonOutline.tsx","./src/components/icon/Person.tsx","./src/components/icon/Phone.tsx","./src/components/icon/Play.tsx","./src/components/icon/Plus.tsx","./src/components/icon/Preview.tsx","./src/components/icon/Profile.tsx","./src/components/icon/Question.tsx","./src/components/icon/Remove.tsx","./src/components/icon/Retweet.tsx","./src/components/icon/RotateLeft.tsx","./src/components/icon/RotateRight.tsx","./src/components/icon/Search.tsx","./src/components/icon/Share.tsx","./src/components/icon/SlimHamburgerMenu.tsx","./src/components/icon/SocialMedia.tsx","./src/components/icon/SomeFacebook.tsx","./src/components/icon/SomeInstagram.tsx","./src/components/icon/SomeTwitter.tsx","./src/components/icon/TwitterLike.tsx","./src/components/icon/SomeYoutube.tsx","./src/components/icon/SomeLinkedin.tsx","./src/components/icon/Spinner.tsx","./src/components/icon/SquareChecked.tsx","./src/components/icon/Square.tsx","./src/components/icon/Time.tsx","./src/components/icon/TodoList.tsx","./src/components/icon/Tour.tsx","./src/components/icon/Twitter.tsx","./src/components/icon/UnitsAndFaculties.tsx","./src/components/icon/Url.tsx","./src/components/icon/Video.tsx","./src/components/icon/Warning.tsx","./src/components/icon/Wrench.tsx","./src/components/icon/Youtube.tsx","./src/components/icon/icons.tsx","./src/components/icon/icon.css?tag=hy-icon","./src/components/icon/icon.tsx","./src/components/image/image.scss?tag=hy-image","./src/components/image/image.tsx","./src/components/ingress/ingress.scss?tag=hy-ingress","./src/components/ingress/ingress.tsx","./src/components/hy-introduction/hy-introduction.scss?tag=hy-introduction","./src/components/hy-introduction/hy-introduction.tsx","./src/components/hy-key-figure/hy-key-figure.scss?tag=hy-key-figure&encapsulation=shadow","./src/components/hy-key-figure/hy-key-figure.tsx","./src/components/hy-key-figure-group/hy-key-figure-group.scss?tag=hy-key-figure-group","./src/components/hy-key-figure-group/hy-key-figure-group.tsx","./src/components/hy-key-highlight/hy-key-highlight.scss?tag=hy-key-highlight&encapsulation=shadow","./src/components/hy-key-highlight/hy-key-highlight.tsx","./src/components/hy-key-highlight-group/hy-key-highlight-group.scss?tag=hy-key-highlight-group&encapsulation=shadow","./src/components/hy-key-highlight-group/hy-key-highlight-group.tsx","./src/components/hy-large-process-flow/hy-large-process-flow.scss?tag=hy-large-process-flow&encapsulation=shadow","./src/components/hy-large-process-flow/hy-large-process-flow.tsx","./src/components/hy-large-process-flow-phase/hy-large-process-flow-phase.scss?tag=hy-large-process-flow-phase&encapsulation=shadow","./src/components/hy-large-process-flow-phase/hy-large-process-flow-phase.tsx","./src/components/link/link.scss?tag=hy-link","./src/components/link/link.tsx","./src/components/link-box/link-box.scss?tag=hy-link-box&encapsulation=shadow","./src/components/link-box/link-box.tsx","./src/components/link-box-list/link-box-list.scss?tag=hy-link-box-list","./src/components/link-box-list/link-box-list.tsx","./src/components/hy-link-list/hy-link-list.scss?tag=hy-link-list","./src/components/hy-link-list/hy-link-list.tsx","./src/components/hy-list-item/hy-list-item.scss?tag=hy-list-item","./src/components/hy-list-item/hy-list-item.tsx","./src/components/hy-logo-grid/hy-logo-grid.scss?tag=hy-logo-grid","./src/components/hy-logo-grid/hy-logo-grid.tsx","./src/components/hy-logo-grid/hy-logo-grid.scss?tag=hy-logo-grid-item","./src/components/hy-logo-grid/hy-logo-grid.item.tsx","./src/components/hy-main/hy-main.scss?tag=hy-main","./src/components/hy-main/hy-main.tsx","./src/components/hy-main-content-wrapper/hy-main-content-wrapper.scss?tag=hy-main-content-wrapper","./src/components/hy-main-content-wrapper/hy-main-content-wrapper.tsx","./src/components/navigation/menu-language/menu-language.scss?tag=hy-menu-language&encapsulation=shadow","./src/components/navigation/menu-language/menu-language.tsx","./src/components/navigation/menu-language-item/menu-language-item.scss?tag=hy-menu-language-item&encapsulation=shadow","./src/components/navigation/menu-language-item/menu-language-item.tsx","./src/components/navigation/hy-menu-main-group/hy-menu-main-group.scss?tag=hy-menu-main-group&encapsulation=shadow","./src/components/navigation/hy-menu-main-group/hy-menu-main-group.tsx","./src/components/hy-opening-hours/hy-opening-hours.scss?tag=hy-opening-hours","./src/components/hy-opening-hours/hy-opening-hours.tsx","./src/components/hy-opening-hours-content/hy-opening-hours-content.scss?tag=hy-opening-hours-content","./src/components/hy-opening-hours-content/hy-opening-hours-content.tsx","./src/components/pagination/hy-pager/hy-pager.scss?tag=hy-pager&encapsulation=shadow","./src/components/pagination/hy-pager/hy-pager.tsx","./src/components/pagination/hy-pager-item/hy-pager-item.scss?tag=hy-pager-item&encapsulation=shadow","./src/components/pagination/hy-pager-item/hy-pager-item.tsx","./src/components/paragraph-text/paragraph-text-content.scss?tag=hy-paragraph-text&mode=content","./src/components/paragraph-text/paragraph-text.scss?tag=hy-paragraph-text&mode=default","./src/components/paragraph-text/paragraph-text-landing.scss?tag=hy-paragraph-text&mode=landing","./src/components/paragraph-text/paragraph-text.tsx","./src/components/hy-person-card/hy-person-card.scss?tag=hy-person-card","./src/components/hy-person-card/hy-person-card.tsx","./src/components/person-profile/person-profile.scss?tag=hy-person-profile","./src/components/person-profile/person-profile.tsx","./src/components/person-profile/person-profile-listing/person-profile-listing.scss?tag=hy-person-profile-listing","./src/components/person-profile/person-profile-listing/person-profile.listing.tsx","./src/components/process/process.scss?tag=hy-process&encapsulation=shadow","./src/components/process/process.tsx","./src/components/process-flow-box/process-flow-box.scss?tag=hy-process-flow-box&encapsulation=shadow","./src/components/process-flow-box/process-flow-box.tsx","./src/components/hy-prominent-image/hy-prominent-image.scss?tag=hy-prominent-image&encapsulation=shadow","./src/components/hy-prominent-image/hy-prominent-image.tsx","./src/components/hy-quote/hy-quote.scss?tag=hy-quote&encapsulation=shadow","./src/components/hy-quote/hy-quote.tsx","./src/components/row/row.css?tag=hy-row","./src/components/row/row.tsx","./src/components/hy-search-field/hy-search-field.scss?tag=hy-search-field","./src/components/hy-search-field/hy-search-field.tsx","./src/components/hy-shortcuts/hy-shortcuts.scss?tag=hy-shortcuts","./src/components/hy-shortcuts/hy-shortcuts.tsx","./src/components/site-header/site-header.scss?tag=hy-site-header","./src/components/site-header/site-header.tsx","./src/components/site-header/site-logo/site-logo.scss?tag=hy-site-logo","./src/components/site-header/site-logo/site-logo.tsx","./src/components/site-header/site-search/site-search.scss?tag=hy-site-search&encapsulation=shadow","./src/components/site-header/site-search/site-search.tsx","./src/components/hy-table-container/hy-table-container.scss?tag=hy-table-container","./src/components/hy-table-container/hy-table-container.tsx","./src/components/hy-tabs/hy-tabs.scss?tag=hy-tabs","./src/components/hy-tabs/hy-tabs.tsx","./src/components/hy-tabs-item/hy-tabs-item.scss?tag=hy-tabs-item","./src/components/hy-tabs-item/hy-tabs-item.tsx","./src/components/hy-tag/hy-tag.scss?tag=hy-tag&encapsulation=shadow","./src/components/hy-tag/hy-tag.tsx","./src/components/hy-twitter-feed/hy-twitter-feed.scss?tag=hy-twitter-feed","./src/components/hy-twitter-feed/hy-twitter-feed.tsx","./src/components/hy-two-columns/hy-two-columns.scss?tag=hy-two-columns","./src/components/hy-two-columns/hy-two-columns.tsx","./src/components/hy-user-login-form/hy-user-login-form.scss?tag=hy-user-login-form","./src/components/hy-user-login-form/hy-user-login-form.tsx","./src/components/hy-video/hy-video.scss?tag=hy-video","./src/components/hy-video/hy-video.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.hy-accordion-container {\n width: 100%;\n}\n","import {Component, Prop, h, Host} from '@stencil/core';\n\n@Component({\n tag: 'hy-accordion-container',\n styleUrl: 'accordion-container.scss',\n shadow: false,\n})\nexport class AccordionContainer {\n @Prop() accordionid?: string;\n\n /*\n * data-allow-toggle\n Allow for each toggle to both open and close individually\n\n data-allow-multiple\n Allow for multiple accordion sections to be expanded at the same time.\n Assumes data-allow-toggle otherwise you would not be able to close any of the accordions\n */\n\n render() {\n const classAttributes = ['hy-accordion-container', 'js-hy-accordion'];\n const id = this.accordionid.toLowerCase().replace(/\\W/g, '-');\n return (\n <Host>\n <div id={id} class={classAttributes.join(' ')} data-allow-multiple=\"true\" data-allow-toggle=\"true\">\n <slot></slot>\n </div>\n <hy-box mb=\"1.75, 1.75, 2, 2.5\" />\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-accordion__item {\n margin-bottom: 12px;\n\n &__is-open {\n border: 1px solid var(--grayscale-dark);\n\n .hy-accordion--heading {\n margin: 0 auto;\n\n .hy-accordion--heading__icon {\n transform: rotateX(180deg);\n }\n }\n }\n}\n\n.hy-accordion__item.mini {\n margin-bottom: 1rem;\n margin-top: 1rem;\n}\n.hy-accordion__item__is-open.mini {\n margin-bottom: 0;\n margin-top: 0;\n\n .hy-accordion__item--container {\n border-bottom: 1px solid var(--grayscale-medium-dark);\n border-top: 1px solid var(--grayscale-medium-dark);\n padding-top: 16px;\n padding-bottom: 32px;\n margin-top: -1px;\n transition: padding 0.5s ease-in-out;\n\n @include breakpoint($narrow) {\n padding-top: 28px;\n padding-bottom: 30px;\n }\n @include breakpoint($wide) {\n padding-top: 32px;\n padding-bottom: 40px;\n }\n }\n}\n\n.hy-accordion__item.hy-accordion__item__is-open.mini {\n background-color: var(--grayscale-white);\n border: none;\n box-shadow: 0 -10px 10px -10px rgba(0, 49, 70, 0.05);\n}\n\n.hy-accordion--heading {\n justify-content: flex-start;\n letter-spacing: -0.69px;\n line-height: 28px;\n margin: 0 auto;\n transition: all 0.25s ease-in-out;\n width: 100%;\n\n .hy-accordion__link {\n text-decoration: none;\n &:hover {\n text-decoration: none;\n }\n }\n\n .hy-accordion__button {\n @include font-size(18px, 22px);\n @include font-weight($bold);\n align-items: flex-start;\n background-color: var(--grayscale-background-box);\n border: none;\n color: var(--brand-main-nearly-black);\n display: flex;\n flex-direction: row;\n font-family: var(--main-font-family);\n height: 100%;\n justify-content: flex-start;\n letter-spacing: -0.45px;\n padding: 13px 20px 13px 16px;\n transition: all 0.35s ease-in;\n width: 100%;\n\n &:hover {\n cursor: pointer;\n }\n\n @include breakpoint($narrow) {\n padding: 1rem 2rem 1rem 1.25rem;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(20px, 24px);\n letter-spacing: -0.5px;\n }\n\n &--large {\n @include breakpoint($extrawide) {\n @include font-size(20px, 24px);\n letter-spacing: -0.5px;\n }\n\n .hy-accordion--heading__icon svg {\n @include breakpoint($extrawide) {\n height: 20px;\n width: 20px;\n }\n }\n }\n\n span {\n text-align: left;\n }\n\n // When accordion item is open.\n &[aria-expanded='true'] {\n background: none;\n position: relative;\n\n &:after {\n background-color: var(--grayscale-medium-dark);\n bottom: 0;\n content: '';\n height: 1px;\n left: 16px;\n position: absolute;\n right: 20px;\n }\n }\n\n * {\n pointer-events: none;\n }\n }\n\n .hy-accordion--heading__icon {\n align-items: center;\n display: inline-flex;\n height: 22px; // Same as text line-height.\n margin-right: 8px;\n z-index: 0;\n\n svg {\n fill: var(--brand-main);\n\n @include breakpoint($narrow) {\n height: 18px;\n width: 18px;\n }\n\n @include breakpoint($xlarge) {\n height: 20px;\n width: 20px;\n }\n }\n }\n}\n\n.hy-accordion--heading.mini {\n // accordion clickable header\n .hy-accordion__button {\n @include font-size(18px, 22px);\n background-color: var(--grayscale-white);\n color: var(--link-blue);\n letter-spacing: -0.56px;\n padding: 0;\n\n @include breakpoint($narrow) {\n @include font-size(22px, 28px);\n letter-spacing: -0.69px;\n padding: 0;\n }\n\n &[aria-expanded='true'] {\n color: var(--grayscale-black);\n margin-bottom: 20px;\n\n @include breakpoint($narrow) {\n margin-bottom: 28px;\n }\n\n @include breakpoint($wide) {\n margin-bottom: 32px;\n }\n }\n }\n\n //accordion arrow\n .hy-accordion--heading__icon {\n margin-right: 0.5rem;\n z-index: 0;\n\n @include breakpoint($narrow) {\n margin-right: 10px;\n }\n\n svg {\n fill: var(--brand-main-light);\n height: 14px;\n width: 14px;\n @include breakpoint($narrow) {\n height: 16px;\n width: 16px;\n }\n }\n }\n}\n\n.hy-accordion__content {\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n transition: all 0.25s ease-in-out;\n\n &--inner-wrapper {\n display: block;\n padding: 16px 12px;\n\n @include breakpoint($narrow) {\n padding: 15px 16px;\n }\n\n @include breakpoint($wide) {\n padding: 16px;\n }\n\n @include breakpoint($extrawide) {\n // without sidebar\n &--large {\n padding: 24px 20px;\n }\n }\n\n @include breakpoint($xlarge) {\n padding: 24px 20px;\n }\n\n &--mini {\n padding: 0;\n .course-heading {\n h4 {\n padding-top: 0 !important;\n }\n }\n }\n }\n}\n","import {Component, Listen, Prop, State, Element, h} from '@stencil/core';\nimport {AccordionVariants} from '../../utils/utils';\n\nlet keys = {\n enter: 'Enter', //13\n tab: 'Tab', //9\n pageUp: 'PageUp', //33\n pageDown: 'PageDown', //34\n arrowUp: 'ArrowUp', // 38\n arrowDown: 'ArrowDown', //40\n home: 'Home', //36\n end: 'End', //35\n};\n\n@Component({\n tag: 'hy-accordion-item',\n styleUrl: 'accordion-item.scss',\n shadow: false,\n})\nexport class AccordionItem {\n @Element() el: HTMLElement;\n @Prop() accordiontitle?: string;\n @Prop() variant: AccordionVariants = AccordionVariants.default;\n @Prop() headerstyle: string = 'common';\n @Prop() showOpen: boolean = false;\n @State() ready: boolean = false;\n\n componentDidLoad() {\n this.ready = true;\n\n let hyMainDiv = this.el.closest('.hy-main');\n if (hyMainDiv) {\n if (!hyMainDiv.classList.contains('with-sidebar')) {\n this.headerstyle = 'large';\n }\n }\n }\n\n componentDidRender() {\n if (window.location.hash) {\n this.expandPanelByAnchor(window.location.hash);\n }\n\n document.querySelectorAll('.hy-accordion__content').forEach(function (accordion) {\n let showOpen = accordion.classList.contains('open');\n let element = accordion as HTMLElement;\n if (showOpen) {\n element.style.display = 'block';\n element.style.height = element.scrollHeight + 'px';\n } else {\n element.style.height = 0 + 'px';\n element.style.display = 'none';\n }\n });\n }\n\n @Listen('hashchange', {target: 'window'})\n onHashChange() {\n if (window.location.hash) {\n this.expandPanelByAnchor(window.location.hash);\n }\n }\n\n @Listen('keydown')\n handleKeyDown(event: KeyboardEvent) {\n const containerId = this.el.parentElement.id;\n let accordion = document.querySelectorAll(`#${containerId}`)[0];\n\n const triggers = Array.prototype.slice.call(accordion.querySelectorAll('.hy-accordion__button'));\n let target = event.target as HTMLButtonElement;\n const key = event.code;\n\n const ctrlModifier = event.ctrlKey && [keys.pageDown, keys.pageUp].includes(key); //key.match(/33|34/);\n\n if (target.classList.contains('hy-accordion__button')) {\n // Up/ Down arrow and Control + Page Up/ Page Down keyboard operations\n if ([keys.arrowDown, keys.arrowUp].includes(key) || ctrlModifier) {\n const index = triggers.indexOf(target);\n const direction = [keys.arrowDown, keys.pageDown].includes(key) ? 1 : -1;\n const length = triggers.length;\n const newIndex = (index + length + direction) % length;\n triggers[newIndex].focus();\n\n event.preventDefault();\n } else if ([keys.home, keys.end].includes(key)) {\n switch (key) {\n // Go to first accordion\n case keys.home:\n triggers[0].focus();\n break;\n // Go to last accordion\n case keys.end:\n triggers[triggers.length - 1].focus();\n break;\n }\n event.preventDefault();\n }\n }\n }\n\n @Listen('click')\n handleClick(event) {\n const target = event.target as HTMLTextAreaElement;\n const accordionContainer = this.el.parentElement;\n const allowMultiple = accordionContainer.hasAttribute('data-allow-multiple');\n const allowToggle = allowMultiple ? allowMultiple : accordionContainer.hasAttribute('data-allow-toggle');\n\n if (target && target.tagName.toLowerCase() === 'button') {\n let targetParent = target.closest('.hy-accordion__item');\n let targetContent = targetParent.getElementsByClassName('hy-accordion__content')[0];\n const isExpanded = target.getAttribute('aria-expanded') === 'true';\n const activeButtonElement = accordionContainer.querySelector('[aria-expanded=\"true\"]');\n\n if (!allowMultiple && activeButtonElement && activeButtonElement !== target) {\n activeButtonElement.setAttribute('aria-expanded', 'false');\n this.collapseSection(targetContent);\n if (targetParent.classList.contains('hy-accordion__item__is-open')) {\n targetParent.classList.remove('hy-accordion__item__is-open');\n }\n\n accordionContainer\n .querySelector(`#${activeButtonElement.getAttribute('aria-controls')}`)\n .setAttribute('aria-hidden', 'true');\n\n if (!allowToggle) {\n activeButtonElement.removeAttribute('aria-disabled');\n }\n }\n\n if (!isExpanded) {\n this.expandSection(targetContent);\n target.setAttribute('aria-expanded', 'true');\n targetParent.classList.add('hy-accordion__item__is-open');\n\n accordionContainer\n .querySelector(`#${target.getAttribute('aria-controls')}`)\n .setAttribute('aria-hidden', 'false');\n\n if (!allowToggle) {\n target.setAttribute('aria-disabled', 'true');\n }\n } else if (allowToggle && isExpanded) {\n target.setAttribute('aria-expanded', 'false');\n\n this.collapseSection(targetContent);\n\n if (targetParent.classList.contains('hy-accordion__item__is-open')) {\n targetParent.classList.remove('hy-accordion__item__is-open');\n }\n\n accordionContainer\n .querySelector(`#${target.getAttribute('aria-controls')}`)\n .setAttribute('aria-hidden', 'true');\n }\n\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n\n expandPanelByAnchor(anchor) {\n setTimeout(() => {\n if (anchor.length > 0) {\n anchor = anchor.substr(1);\n let target = document.querySelectorAll(`[id=${anchor}]`)[0];\n if (target && target.classList.contains('hy-accordion__button')) {\n let targetParent = target.closest('.hy-accordion__item');\n\n let targetContent = targetParent.querySelectorAll('.hy-accordion__content')[0];\n\n this.expandSection(targetContent);\n target.setAttribute('aria-expanded', 'true');\n targetParent.classList.add('hy-accordion__item__is-open');\n\n const targetElementRect = target.getBoundingClientRect();\n window.scrollTo({top: window.scrollY + targetElementRect.top - 200, behavior: 'smooth'});\n\n const containerId = targetParent.parentElement.parentElement.id;\n\n if (containerId.length > 0) {\n let accordion = document.querySelectorAll(`#${containerId}`)[0];\n accordion.querySelector(`#${target.getAttribute('aria-controls')}`).setAttribute('aria-hidden', 'false');\n }\n }\n }\n }, 200);\n }\n\n collapseSection(element) {\n element.style.height = 0 + 'px';\n element.setAttribute('data-collapsed', 'true');\n setTimeout(() => {\n element.style.display = 'none';\n }, 250);\n }\n\n expandSection(element) {\n element.style.display = 'block';\n element.style.height = element.scrollHeight + 'px';\n element.setAttribute('data-collapsed', 'false');\n }\n\n render() {\n const containerId = this.el.parentElement.id;\n\n if (this.ready && containerId.length > 0) {\n document.querySelectorAll(`#${containerId}`).forEach(function (accordion) {\n if (accordion) {\n accordion.querySelectorAll('.hy-accordion__button').forEach(function (trigger) {\n trigger.addEventListener('focus', function () {\n trigger.classList.add('focus');\n });\n trigger.addEventListener('blur', function () {\n trigger.classList.remove('focus');\n });\n });\n }\n });\n }\n\n const classIsOpen = this.showOpen ? 'hy-accordion__item__is-open' : '';\n const classContentIsOpen = this.showOpen ? 'open' : '';\n const classAttributes = ['hy-accordion__item', this.variant, classIsOpen].join(' ');\n const classInnerWrapper = ['hy-accordion__item--container', this.variant].join(' ');\n const classHeadingAttributes = ['hy-accordion--heading', this.variant].join(' ');\n const classContentAttributes = [\n 'hy-accordion__content',\n `hy-accordion__content--${this.variant}`,\n this.variant,\n classContentIsOpen,\n ].join(' ');\n const classContentInnerWrapper = [\n 'hy-accordion__content--inner-wrapper',\n `hy-accordion__content--inner-wrapper--${this.headerstyle}`,\n `hy-accordion__content--inner-wrapper--${this.variant}`,\n ].join(' ');\n\n const titleAsId = this.accordiontitle.toLowerCase().replace(/\\W/g, '-');\n const accordionItemHref = '#' + titleAsId + '--title';\n\n const ariaExpanded = this.showOpen ? 'true' : 'false';\n const ariaHidden = this.showOpen ? 'false' : 'true';\n const dataCollapsed = this.showOpen ? 'false' : 'true';\n\n return (\n <div class={classAttributes}>\n <div class={classInnerWrapper}>\n <h3 class={classHeadingAttributes}>\n <a href={accordionItemHref} class=\"hy-accordion__link\" tabindex=\"-1\">\n <button\n aria-expanded={ariaExpanded}\n aria-controls={`${titleAsId}--content`}\n class={`hy-accordion__button hy-accordion__button--${this.headerstyle}`}\n id={`${titleAsId}--title`}\n >\n <span class=\"hy-accordion--heading__icon\">\n <hy-icon icon={'hy-icon-caret-down'} size={16} />\n </span>\n <span>{this.accordiontitle}</span>\n </button>\n </a>\n </h3>\n <div\n aria-labelledBy={`${titleAsId}--title`}\n class={classContentAttributes}\n id={`${titleAsId}--content`}\n role=\"region\"\n aria-hidden={ariaHidden}\n data-collapsed={dataCollapsed}\n style={{display: 'none'}}\n >\n <div class={classContentInnerWrapper}>\n <slot></slot>\n </div>\n </div>\n </div>\n </div>\n );\n }\n}\n",":host {\n display: block;\n}\n\n$margin-mobile: 16px;\n$margin-narrow: 32px;\n\n.hy-adjacent-image-text {\n background: var(--grayscale-background-box);\n display: flex;\n flex-direction: column;\n position: relative;\n\n @include breakpoint($narrow) {\n background: transparent;\n }\n\n @include breakpoint($wide) {\n background: var(--grayscale-background-box);\n flex-direction: row;\n }\n}\n\n.hy-adjacent-image-text__image-container {\n display: flex;\n flex: 1;\n justify-content: stretch;\n margin-bottom: 0;\n min-height: 10rem;\n position: relative;\n padding-bottom: $margin-narrow;\n\n @include breakpoint($narrow) {\n padding-bottom: 0;\n }\n\n @include breakpoint($wide) {\n flex-basis: 50%;\n margin: 0 calc(#{var(--gutter-wide)} * -1) 0 0;\n z-index: 1;\n }\n\n @include breakpoint($extrawide) {\n margin: 0 calc(#{var(--gutter-extrawide)} * -1) 0 0;\n }\n\n img {\n height: 100%;\n object-fit: cover;\n width: 100%;\n\n @include breakpoint($narrow) {\n max-height: 420px;\n min-height: 160px;\n }\n\n @include breakpoint($wide) {\n max-height: 100%;\n }\n }\n}\n\n.hy-adjacent-image-text__text-container {\n background: var(--grayscale-background-box);\n border-image: none;\n display: flex;\n flex: 1;\n flex-direction: column;\n -webkit-border-image: none;\n -moz-border-image: none;\n -o-border-image: none;\n\n @include breakpoint($narrow) {\n border-left: 1px solid transparent;\n border-image: linear-gradient(to bottom, var(--grayscale-medium-dark), rgba(0, 0, 0, 0)) 1 0 0 100%;\n margin-left: 66px;\n margin-top: -63px;\n padding-top: 38px;\n position: relative;\n z-index: 98;\n -webkit-border-image: -webkit-linear-gradient(to bottom, var(--grayscale-medium-dark), rgba(0, 0, 0, 0)) 1 0 0 100%;\n -moz-border-image: linear-gradient(to bottom, var(--grayscale-medium-dark), rgba(0, 0, 0, 0)) 1 0 0 100%;\n -o-border-image: linear-gradient(to bottom, var(--grayscale-medium-dark), rgba(0, 0, 0, 0)) 1 0 0 100%;\n }\n\n @include breakpoint($wide) {\n border-image: none;\n border-left: none;\n flex-basis: 50%;\n margin-left: 0;\n margin-top: 0;\n padding-top: 0;\n z-index: 0;\n -webkit-border-image: none;\n -moz-border-image: none;\n -o-border-image: none;\n }\n}\n\n.hy-adjacent-image-text__text-container__links-wrapper {\n padding-left: 1rem;\n @include breakpoint($narrow) {\n padding-left: 50px;\n }\n @include breakpoint($wide) {\n margin: 0 0 0 14%;\n padding: 0;\n }\n}\n\n.hy-adjacent-image-text__text-container__info-wrapper {\n padding-left: 0;\n padding-right: 0;\n\n @include breakpoint($narrow) {\n padding-left: 50px;\n }\n\n @include breakpoint($wide) {\n margin: 0 7% 0 14%;\n padding: 0;\n }\n}\n\n.hy-adjacent-image-text__text-container__title {\n @include font-size(22px, 28px);\n @include font-weight($bold);\n color: var(--brand-main-nearly-black);\n font-family: var(--main-font-family);\n letter-spacing: -0.69px;\n margin-top: 32px;\n padding: 0 1rem;\n\n @include breakpoint($narrow) {\n @include font-size(32px, 40px);\n letter-spacing: -1px;\n margin-top: 41px;\n padding: 0;\n }\n}\n\n.hy-adjacent-image-text__text-container__description {\n @include font-size(15px, 22px);\n @include font-weight($regular);\n color: var(--grayscale-dark);\n font-family: var(--main-font-family);\n margin: 20px 0 32px 0;\n padding: 0 1rem;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 24px);\n margin: 20px 0 61px 0;\n padding: 0;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(17px, 26px);\n margin-bottom: 40px;\n }\n\n &__large {\n @include breakpoint($extrawide) {\n @include font-size(17px, 26px);\n }\n }\n}\n\n.hy-adjacent-image-text__text-container__link {\n display: flex;\n justify-content: flex-end;\n margin-bottom: 12px;\n margin-right: -6px;\n}\n\n.hy-adjacent-image-text::after {\n content: '';\n clear: both;\n}\n","export interface ImageSrcSet {\n src: any;\n media: string;\n type: string;\n sizes: string | null;\n}\n\nimport {Component, ComponentInterface, Prop, h, Host, Element} from '@stencil/core';\nimport {jsonParserWorker} from '../../global/globalScript';\n\n@Component({\n tag: 'hy-adjacent-image-text',\n styleUrl: 'adjacent-image-text.scss',\n shadow: false,\n})\nexport class AdjacentImageText implements ComponentInterface {\n @Element() el: HTMLElement;\n @Prop() headerstyle: string = 'default';\n @Prop() imageUrl: string = null;\n @Prop() imageAlt: string = '';\n @Prop() disableLazy: boolean = false;\n @Prop() textTitle?: string;\n @Prop() textDescription: string = null;\n\n @Prop() mainUrl?: string;\n @Prop() mainUrlTitle?: string;\n @Prop() mainUrlAriaLabel?: string;\n @Prop() mainUrlIsExternal: boolean = false;\n\n @Prop() mainUrl2?: string;\n @Prop() mainUrlTitle2?: string;\n @Prop() mainUrlAriaLabel2?: string;\n @Prop() mainUrlIsExternal2: boolean = false;\n\n private _sourceSet: ImageSrcSet[];\n @Prop() sourceSet: ImageSrcSet[] | string;\n\n async componentWillLoad() {\n this._sourceSet = await jsonParserWorker(this.sourceSet);\n }\n\n componentDidLoad() {\n let hyMainDiv = this.el.closest('.hy-main');\n if (hyMainDiv) {\n if (!hyMainDiv.classList.contains('with-sidebar')) {\n this.headerstyle = 'large';\n }\n }\n }\n\n render() {\n const classAttributes = ['hy-adjacent-image-text', `hy-adjacent-image-text__${this.headerstyle}`].join(' ');\n const contentClassAttributes = [\n 'hy-adjacent-image-text__text-container',\n 'hy-adjacent-image-text__text-container--left',\n ].join(' ');\n\n const imageLeftClassAttributes = ['hy-adjacent-image-text__image-container'].join(' ');\n\n const aspectRatioWidth = 6;\n const aspectRatioHeight = 4;\n const aspect = (aspectRatioHeight / aspectRatioWidth) * 100;\n const aspectRatio = {\n '--aspectRatio': `${aspect}%` as 'aspectRatio',\n };\n\n return (\n <Host>\n <div class={classAttributes}>\n <div class={imageLeftClassAttributes} style={aspectRatio}>\n {this._sourceSet ? (\n <picture>\n {this._sourceSet.map((item) => (\n <source srcSet={item.src} media={item.media} type={item.type} sizes={item.sizes ? item.sizes : ''} />\n ))}\n <img\n loading={this.disableLazy ? 'eager' : 'lazy'}\n alt={this.imageAlt}\n class=\"hy-image__image\"\n src={this.imageUrl}\n />\n </picture>\n ) : (\n <img\n loading={this.disableLazy ? 'eager' : 'lazy'}\n alt={this.imageAlt}\n class=\"hy-image__image\"\n src={this.imageUrl}\n />\n )}\n </div>\n <div class={contentClassAttributes}>\n <div class=\"hy-adjacent-image-text__text-container__info-wrapper\">\n <div class=\"hy-adjacent-image-text__text-container__title\">{this.textTitle}</div>\n <p\n class={`hy-adjacent-image-text__text-container__description hy-adjacent-image-text__text-container__description__${this.headerstyle}`}\n >\n {this.textDescription}\n </p>\n </div>\n <div class=\"hy-adjacent-image-text__text-container__links-wrapper\">\n {this.mainUrl && (\n <div class=\"hy-adjacent-image-text__text-container__link\">\n <hy-cta-link\n link-content={this.mainUrlTitle}\n sc-label={this.mainUrlAriaLabel}\n url={this.mainUrl}\n is-external={this.mainUrlIsExternal}\n />\n </div>\n )}\n {this.mainUrl2 && (\n <div class=\"hy-adjacent-image-text__text-container__link\">\n <hy-cta-link\n link-content={this.mainUrlTitle2}\n sc-label={this.mainUrlAriaLabel2}\n url={this.mainUrl2}\n is-external={this.mainUrlIsExternal2}\n />\n </div>\n )}\n </div>\n </div>\n </div>\n <hy-box mb=\"1.75, 1.75, 2, 2.5\" />\n </Host>\n );\n }\n}\n",".hy-anchor-link-list {\n border: 1px solid var(--brand-main);\n display: block;\n width: 100%;\n\n @include breakpoint($narrow) {\n margin-bottom: 1.75rem;\n }\n\n @include breakpoint($medium) {\n margin-bottom: 1.75rem;\n }\n\n @include breakpoint($wide) {\n margin-bottom: 2rem;\n }\n\n @include breakpoint($xlarge) {\n margin-bottom: 2.5rem;\n }\n\n &.is-open {\n border: 1px solid var(--grayscale-dark);\n }\n}\n\n.hy-anchor-link-list__button {\n border: none;\n background: none;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 15px 20px;\n width: 100%;\n\n @include breakpoint($medium) {\n padding: 18px 20px;\n }\n &:hover {\n cursor: pointer;\n }\n\n &.is-open {\n .label-close-icon svg {\n transform: rotate(180deg);\n }\n }\n\n &--title {\n @include font-size(17px, 20px);\n @include font-weight($bold);\n display: flex;\n align-items: center;\n color: var(--brand-main);\n font-family: var(--main-font-family);\n letter-spacing: -0.32px;\n\n svg {\n margin-right: 12px;\n }\n }\n\n &--label {\n @include font-size(16px, 20px);\n @include font-weight($semibold);\n display: flex;\n align-items: center;\n color: var(--link-blue);\n font-family: var(--main-font-family);\n letter-spacing: -0.3px;\n text-align: right;\n\n svg {\n margin-left: 7px;\n }\n }\n}\n\n.hy-anchor-link-list__container {\n display: none;\n flex-direction: column;\n padding: 18px 0;\n margin: 0 20px;\n\n &.is-open {\n display: flex;\n border-top: 1px solid var(--grayscale-dark);\n }\n}\n\n.hy-anchor-link-list__item {\n @include font-size(16px, 20px);\n @include font-weight($semibold);\n\n display: flex;\n align-items: center;\n color: var(--link-blue);\n font-family: var(--main-font-family);\n font-size: 16px;\n font-weight: 600;\n letter-spacing: -0.5px;\n line-height: 20px;\n margin-bottom: 16px;\n text-decoration: none;\n\n &:hover {\n cursor: pointer;\n text-decoration: underline;\n }\n\n svg {\n margin-right: 12px;\n }\n}\n","import {Component, Host, h, Prop, State, Listen} from '@stencil/core';\nimport {jsonParserWorker} from '../../global/globalScript';\n\nexport interface AnchorItem {\n title: string;\n url: string;\n}\n\n@Component({\n tag: 'hy-anchor-link-list',\n styleUrl: 'hy-anchor-link-list.scss',\n shadow: false,\n})\nexport class HyAnchorLinkList {\n private _anchorItems: AnchorItem[];\n\n /**\n * Title for content list button\n */\n @Prop() listTitle?: string;\n /**\n * Open state label\n */\n @Prop() openLabel?: string;\n /**\n * Close state label\n */\n @Prop() closeLabel?: string;\n /**\n * Array of anchor items\n */\n @Prop() anchorItems: AnchorItem[] | string;\n\n @State() isOpen: boolean = false;\n\n async componentWillLoad() {\n this._anchorItems = await jsonParserWorker(this.anchorItems);\n }\n\n @Listen('handleLinkClick')\n handleLinkClick(e) {\n const targetId = e.target.getAttribute('href');\n if (targetId) {\n const targetElement = document.getElementById(targetId.substring(1));\n const targetRect = targetElement.getBoundingClientRect();\n window.scrollTo({top: window.scrollY + targetRect.top - 100, behavior: 'smooth'});\n targetElement.setAttribute('tabIndex', '-1');\n targetElement.focus({preventScroll: true});\n }\n e.preventDefault();\n e.stopPropagation();\n }\n\n render() {\n const classAttributes = ['hy-anchor-link-list'].join(' ');\n const buttonClasses = {\n 'hy-anchor-link-list__button': true,\n 'is-open': this.isOpen,\n };\n const containerClasses = {\n 'hy-anchor-link-list__container': true,\n 'is-open': this.isOpen,\n };\n const items = this._anchorItems as Array<AnchorItem>;\n\n return (\n <Host class={classAttributes}>\n <button aria-label={this.listTitle} onClick={() => (this.isOpen = !this.isOpen)} class={buttonClasses}>\n <span class=\"hy-anchor-link-list__button--title\">\n <hy-icon icon={'hy-icon-bullet-list'} size={18} fill={'var(--brand-main)'} />\n {this.listTitle}\n </span>\n <span class=\"hy-anchor-link-list__button--label\">\n {this.isOpen ? this.closeLabel : this.openLabel}\n <hy-icon class=\"label-close-icon\" icon={'hy-icon-caret-down'} size={16} fill={'var(--brand-main)'} />\n </span>\n </button>\n <div aria-hidden={this.isOpen ? 'false' : 'true'} class={containerClasses}>\n {items &&\n items.map((item) => (\n <a class=\"hy-anchor-link-list__item\" href={item.url} onClick={this.handleLinkClick}>\n <hy-icon icon={'hy-icon-arrow-down'} size={12} fill={'var(--brand-main)'} />\n {item.title}\n </a>\n ))}\n </div>\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\nspan.hy-badge {\n border-radius: 15px;\n padding: 0.25rem 1rem;\n text-align: center;\n color: black;\n font-weight: bold;\n font-family: var(--main-font-family);\n font-size: 0.6rem;\n\n &.primary {\n background-color: var(--brand-main-light);\n color: white;\n }\n &.warn {\n background-color: var(--additional-red-dark);\n color: white;\n }\n &.success {\n background-color: var(--additional-green-dark);\n color: white;\n }\n &.disabled {\n background-color: var(--grayscale-medium-dark);\n color: black;\n }\n}\n","import {Component, ComponentInterface, Host, h, Prop} from '@stencil/core';\n\n@Component({\n tag: 'hy-badge',\n styleUrl: 'hy-badge.scss',\n shadow: true\n})\nexport class HyBadge implements ComponentInterface {\n @Prop() variant: 'primary' | 'warn' | 'success' | 'disabled' = 'primary';\n\n render() {\n const classAttributes = ['hy-badge', this.variant];\n return (\n <Host>\n <span class={classAttributes.join(' ')}>\n <slot></slot>\n </span>\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-banner {\n background-color: var(--brand-main-light);\n padding: 28px 0 24px 0;\n\n @include breakpoint($narrow) {\n padding: 40px 0 32px 0;\n }\n\n @include breakpoint($wide) {\n padding: 48px 0 40px 0;\n margin-left: 8px;\n margin-right: 8px;\n }\n\n @include breakpoint($extrawide) {\n padding-left: 20px;\n padding-right: 20px;\n margin-left: 0;\n margin-right: 0;\n }\n\n @include breakpoint($xlarge) {\n padding: 64px 32px 48px 32px;\n }\n\n @include breakpoint(1664px) {\n margin-left: 0;\n margin-right: 0;\n }\n\n &__large {\n @include breakpoint($extrawide) {\n padding: 64px 30px 48px 30px;\n margin-left: -20px;\n margin-right: -20px;\n }\n @include breakpoint(1344px) {\n margin-left: 0;\n margin-right: 0;\n }\n }\n\n &__info-container {\n @include breakpoint($wide) {\n margin-left: -8px;\n margin-right: -8px;\n }\n @include breakpoint($xlarge) {\n margin-left: 0;\n margin-right: 0;\n }\n &__title {\n @include font-size(24px, 24px);\n color: var(--grayscale-white);\n font-family: var(--main-font-family);\n font-weight: 600;\n letter-spacing: -0.8px;\n margin-bottom: 16px;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n @include font-size(32px, 32px);\n letter-spacing: -1.07px;\n margin-bottom: 24px;\n max-width: 92%;\n }\n\n @include breakpoint($extrawide) {\n @include font-size(32px, 32px);\n letter-spacing: -1.07px;\n margin-bottom: 24px;\n max-width: 92%;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(36px, 36px);\n letter-spacing: -1.2px;\n max-width: 83%;\n }\n\n &__large {\n @include breakpoint($extrawide) {\n @include font-size(36px, 36px);\n letter-spacing: -1.2px;\n max-width: 83%;\n }\n @include breakpoint($xlarge) {\n @include font-size(40px, 40px);\n letter-spacing: -1.33px;\n margin-bottom: 32px;\n }\n }\n }\n\n &__description {\n color: var(--grayscale-white);\n font-family: var(--main-font-family);\n font-weight: 500;\n font-size: 14px;\n letter-spacing: -0.7px;\n line-height: 20px;\n margin-bottom: 24px;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 24px);\n letter-spacing: -0.08px;\n margin-bottom: 28px;\n max-width: 92%;\n }\n\n @include breakpoint($wide) {\n margin-bottom: 32px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(18px, 24px);\n letter-spacing: -0.09px;\n margin-bottom: 36px;\n max-width: 83%;\n }\n\n &__large {\n @include breakpoint($extrawide) {\n @include font-size(18px, 24px);\n letter-spacing: -0.09px;\n margin-bottom: 36px;\n max-width: 83%;\n }\n @include breakpoint($xlarge) {\n margin-bottom: 44px;\n }\n }\n }\n }\n}\n","import {Component, Element, Prop, h, Host} from '@stencil/core';\nimport {CtaLinkButtonVariants} from '../../utils/utils';\n\n@Component({\n tag: 'hy-banner',\n styleUrl: 'hy-banner.scss',\n shadow: false,\n})\nexport class HyBanner {\n @Prop() textTitle?: string;\n @Prop() textDescription: string = null;\n @Prop() url?: string;\n @Prop() scLabel?: string;\n @Prop() urlTitle?: string;\n @Prop() headerstyle: string = 'common';\n @Prop() isExternal: boolean = false;\n @Element() el: HTMLElement;\n\n componentDidLoad() {\n let hyMainDiv = this.el.closest('.hy-main');\n if (hyMainDiv) {\n if (!hyMainDiv.classList.contains('with-sidebar')) {\n this.headerstyle = 'large';\n }\n }\n }\n\n render() {\n const hyBannerClass = ['hy-banner', `hy-banner__${this.headerstyle}`, this.headerstyle].join(' ');\n\n const hyBannerWrapperClass = ['hy-banner__info-container'].join(' ');\n const hyBannerTitle = [\n 'hy-banner__info-container__title',\n `hy-banner__info-container__title__${this.headerstyle}`,\n this.headerstyle,\n ].join(' ');\n const hyBannerDescription = [\n 'hy-banner__info-container__description',\n `hy-banner__info-container__description__${this.headerstyle}`,\n this.headerstyle,\n ].join(' ');\n\n const variant = CtaLinkButtonVariants.onBlueBkgd;\n\n return (\n <Host>\n <hy-box pt=\"1.25, 1.25, 1.5, 2.5\" />\n <div class={hyBannerClass}>\n <hy-main-content-wrapper>\n <div class={hyBannerWrapperClass}>\n <div class={hyBannerTitle}>{this.textTitle}</div>\n <div class={hyBannerDescription}>{this.textDescription}</div>\n {this.url && (\n <div class=\"hy-banner__info-container__link\">\n <hy-cta-button\n link-content={this.urlTitle}\n sc-label={this.scLabel}\n url={this.url}\n is-external={this.isExternal}\n variant={variant}\n />\n </div>\n )}\n </div>\n </hy-main-content-wrapper>\n </div>\n <hy-box mb=\"1.75, 1.75, 2, 2.5\" />\n </Host>\n );\n }\n}\n","/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n return tag;\n}\n\nvar StyleSheet =\n/*#__PURE__*/\nfunction () {\n function StyleSheet(options) {\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n var _tag = createStyleElement(this);\n\n var before;\n\n if (this.tags.length === 0) {\n before = this.before;\n } else {\n before = this.tags[this.tags.length - 1].nextSibling;\n }\n\n this.container.insertBefore(_tag, before);\n this.tags.push(_tag);\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is a really hot path\n // we check the second character first because having \"i\"\n // as the second character will happen less often than\n // having \"@\" as the first character\n var isImportRule = rule.charCodeAt(1) === 105 && rule.charCodeAt(0) === 64; // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n\n sheet.insertRule(rule, // we need to insert @import rules before anything else\n // otherwise there will be an error\n // technically this means that the @import rules will\n // _usually_(not always since there could be multiple style tags)\n // be the first ones in prod and generally later in dev\n // this shouldn't really matter in the real world though\n // @import is generally only used for font faces from google fonts and etc.\n // so while this could be technically correct then it would be slower and larger\n // for a tiny bit of correctness that won't matter in the real world\n isImportRule ? 0 : sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","function stylis_min (W) {\n function M(d, c, e, h, a) {\n for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n g = e.charCodeAt(l);\n l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n\n if (0 === b + n + v + m) {\n if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break;\n\n default:\n f += e.charAt(l);\n }\n\n g = 59;\n }\n\n switch (g) {\n case 123:\n f = f.trim();\n q = f.charCodeAt(0);\n k = 1;\n\n for (t = ++l; l < B;) {\n switch (g = e.charCodeAt(l)) {\n case 123:\n k++;\n break;\n\n case 125:\n k--;\n break;\n\n case 47:\n switch (g = e.charCodeAt(l + 1)) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < J; ++u) {\n switch (e.charCodeAt(u)) {\n case 47:\n if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n l = u + 1;\n break a;\n }\n\n break;\n\n case 10:\n if (47 === g) {\n l = u + 1;\n break a;\n }\n\n }\n }\n\n l = u;\n }\n\n }\n\n break;\n\n case 91:\n g++;\n\n case 40:\n g++;\n\n case 34:\n case 39:\n for (; l++ < J && e.charCodeAt(l) !== g;) {\n }\n\n }\n\n if (0 === k) break;\n l++;\n }\n\n k = e.substring(t, l);\n 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n\n switch (q) {\n case 64:\n 0 < r && (f = f.replace(N, ''));\n g = f.charCodeAt(1);\n\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c;\n break;\n\n default:\n r = O;\n }\n\n k = M(c, r, k, g, a + 1);\n t = k.length;\n 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n if (0 < t) switch (g) {\n case 115:\n f = f.replace(da, ea);\n\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}';\n break;\n\n case 107:\n f = f.replace(fa, '$1 $2');\n k = f + '{' + k + '}';\n k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n break;\n\n default:\n k = f + k, 112 === h && (k = (p += k, ''));\n } else k = '';\n break;\n\n default:\n k = M(c, X(c, f, I), k, h, a + 1);\n }\n\n F += k;\n k = I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n break;\n\n case 125:\n case 59:\n f = (0 < r ? f.replace(N, '') : f).trim();\n if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n case 0:\n break;\n\n case 64:\n if (105 === g || 99 === g) {\n G += f + e.charAt(l);\n break;\n }\n\n default:\n 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n }\n I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n }\n }\n\n switch (g) {\n case 13:\n case 10:\n 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n z = 1;\n D++;\n break;\n\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++;\n break;\n }\n\n default:\n z++;\n y = e.charAt(l);\n\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b) switch (x) {\n case 44:\n case 58:\n case 9:\n case 32:\n y = '';\n break;\n\n default:\n 32 !== g && (y = ' ');\n }\n break;\n\n case 0:\n y = '\\\\0';\n break;\n\n case 12:\n y = '\\\\f';\n break;\n\n case 11:\n y = '\\\\v';\n break;\n\n case 38:\n 0 === n + b + m && (r = I = 1, y = '\\f' + y);\n break;\n\n case 108:\n if (0 === n + b + m + E && 0 < u) switch (l - u) {\n case 2:\n 112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n\n case 8:\n 111 === K && (E = K);\n }\n break;\n\n case 58:\n 0 === n + b + m && (u = l);\n break;\n\n case 44:\n 0 === b + v + n + m && (r = 1, y += '\\r');\n break;\n\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n break;\n\n case 91:\n 0 === n + b + v && m++;\n break;\n\n case 93:\n 0 === n + b + v && m--;\n break;\n\n case 41:\n 0 === n + b + m && v--;\n break;\n\n case 40:\n if (0 === n + b + m) {\n if (0 === q) switch (2 * x + 3 * K) {\n case 533:\n break;\n\n default:\n q = 1;\n }\n v++;\n }\n\n break;\n\n case 64:\n 0 === b + v + n + m + u + k && (k = 1);\n break;\n\n case 42:\n case 47:\n if (!(0 < n + m + v)) switch (b) {\n case 0:\n switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n case 235:\n b = 47;\n break;\n\n case 220:\n t = l, b = 42;\n }\n\n break;\n\n case 42:\n 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n }\n }\n\n 0 === b && (f += y);\n }\n\n K = x;\n x = g;\n l++;\n }\n\n t = p.length;\n\n if (0 < t) {\n r = c;\n if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n p = r.join(',') + '{' + p + '}';\n\n if (0 !== w * E) {\n 2 !== w || L(p, 2) || (E = 0);\n\n switch (E) {\n case 111:\n p = p.replace(ha, ':-moz-$1') + p;\n break;\n\n case 112:\n p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n }\n\n E = 0;\n }\n }\n\n return G + p + F;\n }\n\n function X(d, c, e) {\n var h = c.trim().split(ia);\n c = h;\n var a = h.length,\n m = d.length;\n\n switch (m) {\n case 0:\n case 1:\n var b = 0;\n\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n c[b] = Z(d, c[b], e).trim();\n }\n\n break;\n\n default:\n var v = b = 0;\n\n for (c = []; b < a; ++b) {\n for (var n = 0; n < m; ++n) {\n c[v++] = Z(d[n] + ' ', h[b], e).trim();\n }\n }\n\n }\n\n return c;\n }\n\n function Z(d, c, e) {\n var h = c.charCodeAt(0);\n 33 > h && (h = (c = c.trim()).charCodeAt(0));\n\n switch (h) {\n case 38:\n return c.replace(F, '$1' + d.trim());\n\n case 58:\n return d.trim() + c.replace(F, '$1' + d.trim());\n\n default:\n if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n }\n\n return d + c;\n }\n\n function P(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h;\n\n if (944 === m) {\n d = a.indexOf(':', 9) + 1;\n var b = a.substring(d, a.length - 1).trim();\n b = a.substring(0, d).trim() + b + ';';\n return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n }\n\n if (0 === w || 2 === w && !L(a, 1)) return a;\n\n switch (m) {\n case 1015:\n return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n\n case 951:\n return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n\n case 963:\n return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n\n case 1009:\n if (100 !== a.charCodeAt(4)) break;\n\n case 969:\n case 942:\n return '-webkit-' + a + a;\n\n case 978:\n return '-webkit-' + a + '-moz-' + a + a;\n\n case 1019:\n case 983:\n return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n\n case 883:\n if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n break;\n\n case 932:\n if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n case 103:\n return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n\n case 115:\n return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n\n case 98:\n return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n }\n return '-webkit-' + a + '-ms-' + a + a;\n\n case 964:\n return '-webkit-' + a + '-ms-flex-' + a + a;\n\n case 1023:\n if (99 !== a.charCodeAt(8)) break;\n b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n\n case 1005:\n return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n\n case 1e3:\n b = a.substring(13).trim();\n c = b.indexOf('-') + 1;\n\n switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n case 226:\n b = a.replace(G, 'tb');\n break;\n\n case 232:\n b = a.replace(G, 'tb-rl');\n break;\n\n case 220:\n b = a.replace(G, 'lr');\n break;\n\n default:\n return a;\n }\n\n return '-webkit-' + a + '-ms-' + b + a;\n\n case 1017:\n if (-1 === a.indexOf('sticky', 9)) break;\n\n case 975:\n c = (a = d).length - 10;\n b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n\n switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n case 203:\n if (111 > b.charCodeAt(8)) break;\n\n case 115:\n a = a.replace(b, '-webkit-' + b) + ';' + a;\n break;\n\n case 207:\n case 102:\n a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n }\n\n return a + ';';\n\n case 938:\n if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n case 105:\n return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n\n case 115:\n return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n\n default:\n return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n }\n break;\n\n case 973:\n case 989:\n if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n\n case 931:\n case 953:\n if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n break;\n\n case 962:\n if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n }\n\n return a;\n }\n\n function L(d, c) {\n var e = d.indexOf(1 === c ? ':' : '{'),\n h = d.substring(0, 3 !== c ? e : 10);\n e = d.substring(e + 1, d.length - 1);\n return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n }\n\n function ea(d, c) {\n var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n }\n\n function H(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, x = c, w; g < A; ++g) {\n switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n case void 0:\n case !1:\n case !0:\n case null:\n break;\n\n default:\n x = w;\n }\n }\n\n if (x !== c) return x;\n }\n\n function T(d) {\n switch (d) {\n case void 0:\n case null:\n A = S.length = 0;\n break;\n\n default:\n if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) {\n T(d[c]);\n } else Y = !!d | 0;\n }\n\n return T;\n }\n\n function U(d) {\n d = d.prefix;\n void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n return U;\n }\n\n function B(d, c) {\n var e = d;\n 33 > e.charCodeAt(0) && (e = e.trim());\n V = e;\n e = [V];\n\n if (0 < A) {\n var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n void 0 !== h && 'string' === typeof h && (c = h);\n }\n\n var a = M(O, e, c, 0, 0);\n 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n V = '';\n E = 0;\n z = D = 1;\n return a;\n }\n\n var ca = /^\\0+/g,\n N = /[\\0\\r\\f]/g,\n aa = /: */g,\n ka = /zoo|gra/,\n ma = /([,: ])(transform)/g,\n ia = /,\\r+?/g,\n F = /([\\t\\r\\n ])*\\f?&/g,\n fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n Q = /::(place)/g,\n ha = /:(read-only)/g,\n G = /[svh]\\w+-[tblr]{2}/,\n da = /\\(\\s*(.*)\\s*\\)/g,\n oa = /([\\s\\S]*?);/g,\n ba = /-self|flex-/g,\n na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ja = /([^-])(image-set\\()/,\n z = 1,\n D = 1,\n E = 0,\n w = 1,\n O = [],\n S = [],\n A = 0,\n R = null,\n Y = 0,\n V = '';\n B.use = T;\n B.set = U;\n void 0 !== W && U(W);\n return B;\n}\n\nexport default stylis_min;\n","import { StyleSheet } from '@emotion/sheet';\nimport Stylis from '@emotion/stylis';\nimport '@emotion/weak-memoize';\n\n// https://github.com/thysultan/stylis.js/tree/master/plugins/rule-sheet\n// inlined to avoid umd wrapper and peerDep warnings/installing stylis\n// since we use stylis after closure compiler\nvar delimiter = '/*|*/';\nvar needle = delimiter + '}';\n\nfunction toSheet(block) {\n if (block) {\n Sheet.current.insert(block + '}');\n }\n}\n\nvar Sheet = {\n current: null\n};\nvar ruleSheet = function ruleSheet(context, content, selectors, parents, line, column, length, ns, depth, at) {\n switch (context) {\n // property\n case 1:\n {\n switch (content.charCodeAt(0)) {\n case 64:\n {\n // @import\n Sheet.current.insert(content + ';');\n return '';\n }\n // charcode for l\n\n case 108:\n {\n // charcode for b\n // this ignores label\n if (content.charCodeAt(2) === 98) {\n return '';\n }\n }\n }\n\n break;\n }\n // selector\n\n case 2:\n {\n if (ns === 0) return content + delimiter;\n break;\n }\n // at-rule\n\n case 3:\n {\n switch (ns) {\n // @font-face, @page\n case 102:\n case 112:\n {\n Sheet.current.insert(selectors[0] + content);\n return '';\n }\n\n default:\n {\n return content + (at === 0 ? delimiter : '');\n }\n }\n }\n\n case -2:\n {\n content.split(needle).forEach(toSheet);\n }\n }\n};\n\nvar createCache = function createCache(options) {\n if (options === undefined) options = {};\n var key = options.key || 'css';\n var stylisOptions;\n\n if (options.prefix !== undefined) {\n stylisOptions = {\n prefix: options.prefix\n };\n }\n\n var stylis = new Stylis(stylisOptions);\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {}; // $FlowFixMe\n\n var container;\n\n {\n container = options.container || document.head;\n var nodes = document.querySelectorAll(\"style[data-emotion-\" + key + \"]\");\n Array.prototype.forEach.call(nodes, function (node) {\n var attrib = node.getAttribute(\"data-emotion-\" + key); // $FlowFixMe\n\n attrib.split(' ').forEach(function (id) {\n inserted[id] = true;\n });\n\n if (node.parentNode !== container) {\n container.appendChild(node);\n }\n });\n }\n\n var _insert;\n\n {\n stylis.use(options.stylisPlugins)(ruleSheet);\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n var name = serialized.name;\n Sheet.current = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n var map = serialized.map;\n Sheet.current = {\n insert: function insert(rule) {\n sheet.insert(rule + map);\n }\n };\n }\n\n stylis(selector, serialized.styles);\n\n if (shouldCache) {\n cache.inserted[name] = true;\n }\n };\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // https://esbench.com/bench/5bf7371a4cd7e6009ef61d0a\n var commentStart = /\\/\\*/g;\n var commentEnd = /\\*\\//g;\n stylis.use(function (context, content) {\n switch (context) {\n case -1:\n {\n while (commentStart.test(content)) {\n commentEnd.lastIndex = commentStart.lastIndex;\n\n if (commentEnd.test(content)) {\n commentStart.lastIndex = commentEnd.lastIndex;\n continue;\n }\n\n throw new Error('Your styles have an unterminated comment (\"/*\" without corresponding \"*/\").');\n }\n\n commentStart.lastIndex = 0;\n break;\n }\n }\n });\n stylis.use(function (context, content, selectors) {\n switch (context) {\n case -1:\n {\n var flag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n var unsafePseudoClasses = content.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses && cache.compat !== true) {\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n var ignoreRegExp = new RegExp(unsafePseudoClass + \".*\\\\/\\\\* \" + flag + \" \\\\*\\\\/\");\n var ignore = ignoreRegExp.test(content);\n\n if (unsafePseudoClass && !ignore) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n }\n });\n }\n\n break;\n }\n }\n });\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n return cache;\n};\n\nexport default createCache;\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(attr|calc|counters?|url)\\(/;\n var contentValues = ['normal', 'none', 'counter', 'open-quote', 'close-quote', 'no-open-quote', 'no-close-quote', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n console.error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar shouldWarnAboutInterpolatingClassNameFromCss = true;\n\nfunction handleInterpolation(mergedProps, registered, interpolation, couldBeSelectorInterpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error('Component selectors can only be used in conjunction with babel-plugin-emotion.');\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result, couldBeSelectorInterpolation);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n\n if (process.env.NODE_ENV !== 'production' && couldBeSelectorInterpolation && shouldWarnAboutInterpolatingClassNameFromCss && cached !== undefined) {\n console.error('Interpolating a className from css`` is not recommended and will cause problems with composition.\\n' + 'Interpolating a className from css`` will be completely unsupported in a future major version of Emotion');\n shouldWarnAboutInterpolatingClassNameFromCss = false;\n }\n\n return cached !== undefined && !couldBeSelectorInterpolation ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i], false);\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error('Component selectors can only be used in conjunction with babel-plugin-emotion.');\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value, false);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*;/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings, false);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i], styles.charCodeAt(styles.length - 1) === 46);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className]);\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false && cache.compat !== undefined) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(\".\" + className, current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles };\n","import createCache from '@emotion/cache';\nimport { serializeStyles } from '@emotion/serialize';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\n\nfunction insertWithoutScoping(cache, serialized) {\n if (cache.inserted[serialized.name] === undefined) {\n return cache.insert('', serialized, cache.sheet, true);\n }\n}\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar createEmotion = function createEmotion(options) {\n var cache = createCache(options); // $FlowFixMe\n\n cache.sheet.speedy = function (value) {\n if (process.env.NODE_ENV !== 'production' && this.ctr !== 0) {\n throw new Error('speedy must be changed before any rules are inserted');\n }\n\n this.isSpeedy = value;\n };\n\n cache.compat = true;\n\n var css = function css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered, undefined);\n insertStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var keyframes = function keyframes() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n var animation = \"animation-\" + serialized.name;\n insertWithoutScoping(cache, {\n name: serialized.name,\n styles: \"@keyframes \" + animation + \"{\" + serialized.styles + \"}\"\n });\n return animation;\n };\n\n var injectGlobal = function injectGlobal() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n insertWithoutScoping(cache, serialized);\n };\n\n var cx = function cx() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n return {\n css: css,\n cx: cx,\n injectGlobal: injectGlobal,\n keyframes: keyframes,\n hydrate: function hydrate(ids) {\n ids.forEach(function (key) {\n cache.inserted[key] = true;\n });\n },\n flush: function flush() {\n cache.registered = {};\n cache.inserted = {};\n cache.sheet.flush();\n },\n // $FlowFixMe\n sheet: cache.sheet,\n cache: cache,\n getRegisteredStyles: getRegisteredStyles.bind(null, cache.registered),\n merge: merge.bind(null, cache.registered, css)\n };\n};\n\nvar classnames = function classnames(args) {\n var cls = '';\n\n for (var i = 0; i < args.length; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nexport default createEmotion;\n","import createEmotion from 'create-emotion';\n\nvar _createEmotion = createEmotion(),\n flush = _createEmotion.flush,\n hydrate = _createEmotion.hydrate,\n cx = _createEmotion.cx,\n merge = _createEmotion.merge,\n getRegisteredStyles = _createEmotion.getRegisteredStyles,\n injectGlobal = _createEmotion.injectGlobal,\n keyframes = _createEmotion.keyframes,\n css = _createEmotion.css,\n sheet = _createEmotion.sheet,\n cache = _createEmotion.cache;\n\nexport { cache, css, cx, flush, getRegisteredStyles, hydrate, injectGlobal, keyframes, merge, sheet };\n","div.hy-baseline {\n display: block;\n}\n","import {Component, h, Prop} from '@stencil/core';\nimport {css} from 'emotion';\n\nconst createCss = (value: number) => {\n return css`\n > * + * {\n margin-top: ${value}rem;\n display: block;\n }\n `;\n};\n\n@Component({\n tag: 'hy-baseline',\n styleUrl: 'baseline.css',\n shadow: false\n})\nexport class Baseline {\n /**\n * Top margin to be added to all but first element. Amount of rem:s\n */\n @Prop() margin: number = 1;\n render() {\n return (\n <div class={createCss(this.margin)}>\n <slot></slot>\n </div>\n );\n }\n}\n",":host {\n display: block;\n}\n","import {Component, h, Prop, Host, Element} from '@stencil/core';\nimport {css} from 'emotion';\n\n/*\nExample of using hy-box:\n<hy-box mb=\"1.75, 1.75, 2, 2.5\" />\nWhere mb = margin-bottom,\nmobile up to 30rem: 1.75rem (mb[0])\ntablet, 30rem - 60rem: 1.75rem (mb[1])\nwide, 60rem to 75rem or 60rem to 100.0625rem (depending on hasSidebar) (mb[2])\nxlarge, > 100.0625: 2.5rem (mb[3])\n* */\nconst toRemValue = (val?: number) => {\n return typeof val === 'number' ? `${val}rem` : undefined;\n};\n\ninterface P {\n hasSidebar?: boolean;\n p?: number[];\n pt?: number[];\n pl?: number[];\n pb?: number[];\n pr?: number[];\n m?: number[];\n mt?: number[];\n ml?: number[];\n mb?: number[];\n mr?: number[];\n h?: number;\n bg?: string;\n width: string[];\n justify: string;\n align: string;\n direction: string;\n}\n\nconst breakpoints = ['30rem', '60rem', '75.0625rem', '100.0625rem'];\n\n/*\nDefault - mobile\nmq[0] - tablet\nmq[1] - wide, >960px\nmq[2] - extrawide, > 1200px\nmq[3] - xlarge, >1600px\n* */\nconst mq = breakpoints.map((b) => `@media (min-width: ${b})`);\nconst createCssClass = ({hasSidebar, pt, pb, pl, pr, mt, mb, ml, mr, h, bg, width, justify, align, direction}: P) => {\n const last = width[width.length - 1];\n\n return css`\n padding-top: ${toRemValue(pt[0])};\n padding-right: ${toRemValue(pr[0])};\n padding-bottom: ${toRemValue(pb[0])};\n padding-left: ${toRemValue(pl[0])};\n margin-top: ${toRemValue(mt[0])};\n margin-right: ${toRemValue(mr[0])};\n margin-bottom: ${toRemValue(mb[0])};\n margin-left: ${toRemValue(ml[0])};\n height: ${toRemValue(h)};\n background-color: ${!!bg ? `var(--${bg})` : 'transparent'};\n width: ${width[0]};\n display: flex;\n flex-flow: ${direction || 'row'};\n justify-content: ${justify || 'flex-start'};\n align-items: ${align || 'flex-start'};\n\n ${mq[0]} {\n width: ${width[1]};\n\n padding-top: ${toRemValue(pt[1])};\n padding-right: ${toRemValue(pr[1])};\n padding-bottom: ${toRemValue(pb[1])};\n padding-left: ${toRemValue(pl[1])};\n\n margin-top: ${toRemValue(mt[1])};\n margin-right: ${toRemValue(mr[1])};\n margin-bottom: ${toRemValue(mb[1])};\n margin-left: ${toRemValue(ml[1])};\n }\n ${mq[1]} {\n width: ${width[2] || last};\n\n padding-top: ${toRemValue(pt[2])};\n padding-right: ${toRemValue(pr[2])};\n padding-bottom: ${toRemValue(pb[2])};\n padding-left: ${toRemValue(pl[2])};\n\n margin-top: ${toRemValue(mt[2])};\n margin-right: ${toRemValue(mr[2])};\n margin-bottom: ${toRemValue(mb[2])};\n margin-left: ${toRemValue(ml[2])};\n }\n ${mq[2]} {\n width: ${width[3] || last};\n\n padding-top: ${hasSidebar ? `${toRemValue(pt[2])}` : `${toRemValue(pt[3])}`};\n padding-right: ${hasSidebar ? `${toRemValue(pr[2])}` : `${toRemValue(pr[3])}`};\n padding-bottom: ${hasSidebar ? `${toRemValue(pb[2])}` : `${toRemValue(pb[3])}`};\n padding-left: ${hasSidebar ? `${toRemValue(pl[2])}` : `${toRemValue(pl[3])}`};\n\n margin-top: ${hasSidebar ? `${toRemValue(mt[2])}` : `${toRemValue(mt[3])}`};\n margin-right: ${hasSidebar ? `${toRemValue(mr[2])}` : `${toRemValue(mr[3])}`};\n margin-bottom: ${hasSidebar ? `${toRemValue(mb[2])}` : `${toRemValue(mb[3])}`};\n margin-left: ${hasSidebar ? `${toRemValue(ml[2])}` : `${toRemValue(ml[3])}`};\n }\n ${mq[3]} {\n width: ${width[4] || last};\n\n padding-top: ${toRemValue(pt[3])};\n padding-right: ${toRemValue(pr[3])};\n padding-bottom: ${toRemValue(pb[3])};\n padding-left: ${toRemValue(pl[3])};\n\n margin-top: ${toRemValue(mt[3])};\n margin-right: ${toRemValue(mr[3])};\n margin-bottom: ${toRemValue(mb[3])};\n margin-left: ${toRemValue(ml[3])};\n }\n `;\n};\n\nconst toNumArray = (value?: string) =>\n value\n ?.split(',')\n .map((v) => `${v.trim()}`)\n .map((v) => parseFloat(v));\n\n@Component({\n tag: 'hy-box',\n styleUrl: 'hy-box.scss',\n shadow: false,\n})\nexport class HyBox {\n @Element() el: HTMLElement;\n @Prop() headerstyle: string = 'common';\n /**\n * All sides padding value in rems. Responsive when given Comma separated values.\n */\n @Prop() p?: string;\n\n /**\n * Left padding in rems. Responsive when given Comma separated values.\n */\n @Prop() pl?: string;\n /**\n * Right padding in rems. Responsive when given Comma separated values.\n */\n @Prop() pr?: string;\n /**\n * Bottom padding in rems. Responsive when given Comma separated values.\n */\n @Prop() pb?: string;\n /**\n * Top padding in rems. Responsive when given Comma separated values.\n */\n @Prop() pt?: string;\n /**\n * All sides margin value in rems. Responsive when given Comma separated values.\n */\n @Prop() m?: string;\n\n /**\n * Left margin in rems. Responsive when given Comma separated values.\n */\n @Prop() ml?: string;\n /**\n * Right margin in rems. Responsive when given Comma separated values.\n */\n @Prop() mr?: string;\n /**\n * Bottom margin in rems. Responsive when given Comma separated values.\n */\n @Prop() mb?: string;\n /**\n * Top margin in rems. Responsive when given Comma separated values.\n */\n @Prop() mt?: string;\n /**\n * Value for horisontal alignment (justify-content)\n */\n @Prop() justify: string = 'flex-start';\n /**\n * value for vertical alignment (align-items)\n */\n @Prop() align: string = 'baseline';\n\n /**\n * fixed height for the container, useful for extra spacing containers\n */\n @Prop() h?: number;\n /**\n * background color. Must use one of css variable names from color tokens\n */\n @Prop() bg: string = 'transparent';\n /**\n * Responsive width. Must be a comma separated string of percentage values for breakpoints. First item is the default value.\n */\n @Prop() width: string = '100';\n @Prop() direction: string = 'row';\n\n componentWillLoad() {\n let hyMainDiv = this.el.closest('.hy-main');\n if (hyMainDiv) {\n if (!hyMainDiv.classList.contains('with-sidebar')) {\n this.headerstyle = 'large';\n }\n }\n }\n\n render() {\n const pt = toNumArray(this.pt) ?? toNumArray(this.p) ?? [0];\n const pb = toNumArray(this.pb) ?? toNumArray(this.p) ?? [0];\n const pr = toNumArray(this.pr) ?? toNumArray(this.p) ?? [0];\n const pl = toNumArray(this.pl) ?? toNumArray(this.p) ?? [0];\n const mt = toNumArray(this.mt) ?? toNumArray(this.m) ?? [0];\n const mb = toNumArray(this.mb) ?? toNumArray(this.m) ?? [0];\n const mr = toNumArray(this.mr) ?? toNumArray(this.m) ?? [0];\n const ml = toNumArray(this.ml) ?? toNumArray(this.m) ?? [0];\n const hasSidebar = this.headerstyle == 'common';\n\n return (\n <Host\n class={createCssClass({\n hasSidebar,\n pt,\n pl,\n pr,\n pb,\n mt,\n ml,\n mr,\n mb,\n h: this.h,\n bg: this.bg,\n width: this.width.split(',').map((v) => `${v.trim()}%`),\n justify: this.justify,\n align: this.align,\n direction: this.direction,\n })}\n >\n <slot></slot>\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n","import {Component, Host, h, Prop} from '@stencil/core';\nimport {css} from 'emotion';\n\n@Component({\n tag: 'hy-box-container',\n styleUrl: 'hy-box-container.css',\n shadow: false\n})\nexport class HyBoxContainer {\n /**\n * Should the items wrap to new rows.\n */\n @Prop() wrap: boolean = true;\n /**\n * Should the container have a max width of 90rems\n */\n @Prop() maxWidth: boolean = true;\n render() {\n return (\n <Host style={{width: '100%', display: 'flex', flex: '1', justifyContent: 'center'}}>\n <div\n class={css`\n display: flex;\n width: 100%;\n flex-wrap: ${this.wrap ? 'wrap' : 'no-wrap'};\n max-width: ${this.maxWidth ? '90rem' : '100%'};\n `}\n >\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-breadcrumbs {\n display: inline-block;\n position: relative;\n width: auto;\n\n &.is-condensed {\n width: 100%;\n }\n\n ol {\n margin: 0;\n padding: 0;\n }\n\n .breadcrumb-container {\n display: flex;\n font-family: var(--main-font-family);\n flex-wrap: wrap;\n list-style-type: none;\n margin: 0;\n padding: 20px 0 16px;\n\n @include breakpoint($narrow) {\n padding: 24px 0 16px;\n }\n\n @include breakpoint($extrawide) {\n padding: 32px 0 16px;\n }\n }\n\n .breadcrumb-item {\n @include font-size(15px, 20px);\n align-items: center;\n display: flex;\n font-weight: 600;\n font-family: var(--main-font-family);\n margin-bottom: 0.75rem;\n letter-spacing: -0.5px;\n\n @include breakpoint($narrow) {\n margin-bottom: 1rem;\n }\n\n .breadcrumb-item__link {\n color: var(--brand-main-light);\n text-decoration: none;\n }\n\n .breadcrumb-item__icon {\n margin: 0 21px;\n }\n\n &:hover {\n .breadcrumb-item__link {\n color: var(--brand-main-active);\n }\n }\n }\n\n .breadcrumb-item--current a {\n @include font-size(15px, 20px);\n\n color: var(--grayscale-dark);\n display: block;\n font-family: var(--main-font-family);\n font-weight: 600;\n letter-spacing: -0.5px;\n text-decoration: none;\n }\n}\n","export interface Breadcrumb {\n url: string;\n text: string;\n}\n\nimport {Component, Element, h, Prop, State} from '@stencil/core';\nimport {BreadcrumbVariants} from '../../utils/utils';\nimport {jsonParserWorker} from '../../global/globalScript';\n\n@Component({\n tag: 'hy-breadcrumbs',\n styleUrl: 'hy-breadcrumbs.scss',\n shadow: false,\n})\nexport class HyBreadcrumbs {\n private _dataItems: Breadcrumb[];\n @Prop() dataItems: Breadcrumb[] | string;\n @Prop() variant: BreadcrumbVariants = BreadcrumbVariants.default as any;\n @Prop() headerstyle: string = 'with-sidebar';\n\n @State() menuOpen: boolean = false;\n @Element() el: HTMLElement;\n\n async componentWillLoad() {\n this._dataItems = await jsonParserWorker(this.dataItems);\n }\n\n componentDidLoad() {\n let hyMainDiv = this.el.closest('.hy-main');\n if (hyMainDiv) {\n if (!hyMainDiv.classList.contains('with-sidebar')) {\n this.headerstyle = 'without-sidebar';\n }\n }\n }\n\n render() {\n const breadcrumbsClass = ['hy-breadcrumbs', this.variant, this.headerstyle].join(' ');\n return (\n <nav aria-label=\"Breadcrumb\" role=\"navigation\" aria-labelledby=\"system-breadcrumb\" class={breadcrumbsClass}>\n <ol class=\"breadcrumb-container\">\n {this._dataItems.map((item) => {\n if (item.url.length > 0) {\n return (\n <li class=\"breadcrumb-item\">\n <a class=\"breadcrumb-item__link\" href={item.url}>\n {item.text}\n </a>\n <hy-icon class=\"breadcrumb-item__icon\" icon=\"hy-icon-caret-right\" size={12}></hy-icon>\n </li>\n );\n } else {\n return (\n <li class=\"breadcrumb-item breadcrumb-item--current\">\n <a href={item.url} aria-current=\"page\">\n {item.text}\n </a>\n </li>\n );\n }\n })}\n </ol>\n </nav>\n );\n }\n}\n",".hy-checkbox {\n display: inline-block;\n position: relative;\n margin-right: 1rem;\n}\n\n.hy-checkbox__checkmark {\n border-color: var(--link-blue);\n border-style: solid inset solid solid;\n border-width: 2px;\n height: 20px;\n margin-right: 6px;\n min-width: 20px;\n min-height: 20px;\n position: relative;\n width: 20px;\n\n svg {\n bottom: 0;\n left: 0;\n position: absolute;\n visibility: hidden;\n }\n\n &::before {\n background-color: var(--grayscale-white);\n content: '';\n height: 10px;\n position: absolute;\n right: 0;\n transform: rotate(40deg) translate(6%, -55%);\n visibility: hidden;\n width: 8px;\n }\n}\n\n.hy-checkbox__label {\n @include font-size(14px, 20px);\n align-items: center;\n color: var(--grayscale-black);\n display: inline-flex;\n font-family: var(--main-font-family);\n letter-spacing: -0.4px;\n text-align: left;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 20px);\n }\n}\n\n.hy-checkbox__checkbox {\n height: 100%;\n margin: 0;\n opacity: 0;\n position: absolute;\n width: 100%;\n z-index: 10;\n\n &:checked {\n & + label {\n color: var(--grayscale-black);\n\n .hy-checkbox__checkmark {\n svg,\n &::before {\n visibility: visible;\n }\n }\n }\n }\n\n &:hover {\n cursor: pointer;\n\n & + label {\n color: var(--brand-main);\n }\n }\n\n &:focus {\n & + label {\n outline-offset: 1px;\n outline: 2px solid var(--link-blue);\n }\n }\n}\n\n.hy-checkbox--button {\n display: inline-block;\n margin-right: 4px;\n position: relative;\n\n &__label {\n @include font-size(12px, 14px);\n\n align-items: center;\n border: 0.5px solid var(--grayscale-medium-dark);\n color: var(--link-blue);\n display: inline-flex;\n font-family: var(--main-font-family);\n font-weight: 600;\n letter-spacing: -0.3px;\n padding: 12px 15px 12px 13px;\n z-index: 1;\n\n @include breakpoint($wide) {\n @include font-size(14px, 18px);\n\n letter-spacing: -0.4px;\n padding: 9px 8px 9px 8px;\n }\n }\n\n &__checkmark {\n position: absolute;\n right: 12px;\n top: 0;\n bottom: 0;\n\n @include breakpoint($wide) {\n right: 10px;\n bottom: calc(50% + 10px);\n }\n\n svg {\n bottom: 0;\n left: 0;\n position: absolute;\n visibility: hidden;\n }\n }\n\n &__label-icon {\n height: 13px;\n position: absolute;\n width: 12px;\n\n @include breakpoint($wide) {\n padding: 10px;\n right: -6px;\n top: calc(50% + 5px);\n }\n\n svg {\n background: var(--grayscale-white);\n height: 12px;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n width: 12px;\n }\n }\n\n &__checkbox {\n height: 100%;\n margin: 0;\n opacity: 0;\n position: absolute;\n width: 100%;\n z-index: 10;\n\n &:checked {\n & + label {\n border: 1px solid var(--grayscale-black);\n color: var(--grayscale-black);\n padding: 12px 15px 12px 13px;\n\n @include breakpoint($wide) {\n border: 2px solid var(--grayscale-black);\n padding: 8px 26px 8px 7px;\n }\n\n .hy-checkbox--button__checkmark {\n .hy-checkbox--button__label-icon {\n background: var(--grayscale-white);\n }\n\n svg {\n visibility: visible;\n }\n }\n }\n }\n\n &:hover {\n cursor: pointer;\n }\n\n &:focus {\n & + label {\n outline-offset: 1px;\n outline: 1px solid var(--link-blue);\n }\n }\n }\n}\n","import {Component, Host, h, Prop} from '@stencil/core';\nimport {CheckboxVariants} from '../../utils/utils';\n\n@Component({\n tag: 'hy-checkbox',\n styleUrl: 'hy-checkbox.scss',\n shadow: false,\n})\nexport class HyCheckbox {\n /**\n * Unique id for checkbox element\n */\n @Prop() checkboxId: string | number;\n /**\n * Value for input element\n */\n @Prop() checkboxValue: string | number;\n /**\n * Label for input to describe\n */\n @Prop() checkboxLabel: string;\n /**\n * Checked attribute\n */\n @Prop() checkboxChecked: boolean = false;\n /**\n * Variant to deifne what style of checkbox to use\n */\n @Prop() variant: CheckboxVariants = CheckboxVariants.default;\n\n render() {\n switch (this.variant) {\n case 'button':\n return (\n <Host class=\"hy-checkbox--button\">\n <input\n type=\"checkbox\"\n class=\"hy-checkbox--button__checkbox\"\n checked={this.checkboxChecked}\n id={`${this.checkboxId}`}\n value={`${this.checkboxValue}`}\n />\n <label class=\"hy-checkbox--button__label\" htmlFor={`${this.checkboxId}`}>\n {this.checkboxLabel}\n <span class=\"hy-checkbox--button__checkmark\">\n <hy-icon class=\"hy-checkbox--button__label-icon\" icon={'hy-icon-done'} size={14} aria-hidden=\"true\" />\n </span>\n </label>\n </Host>\n );\n\n default:\n return (\n <Host class=\"hy-checkbox\">\n <input\n type=\"checkbox\"\n class=\"hy-checkbox__checkbox\"\n checked={this.checkboxChecked}\n id={`${this.checkboxId}`}\n value={`${this.checkboxValue}`}\n />\n <label class=\"hy-checkbox__label\" htmlFor={`${this.checkboxId}`}>\n <span class=\"hy-checkbox__checkmark\">\n <hy-icon class=\"hy-checkbox__label-icon\" icon={'hy-icon-done'} size={23} aria-hidden=\"true\" />\n </span>\n {this.checkboxLabel}\n </label>\n </Host>\n );\n }\n }\n}\n",".hy-collaboration {\n border-bottom: 1px solid var(--grayscale-dark);\n padding: 32px 0;\n\n @include breakpoint($wide) {\n align-items: flex-start;\n display: grid;\n grid-template-columns: fit-content(calc(43.75% - 60px)) 1fr;\n gap: 60px;\n }\n\n @include breakpoint($extrawide) {\n grid-template-columns: fit-content(calc(43% - 60px)) 1fr;\n padding: 40px 0;\n }\n\n @include breakpoint($overwide) {\n grid-template-columns: fit-content(calc(42.5% - 60px)) 1fr;\n }\n\n @include breakpoint($xlarge) {\n grid-template-columns: fit-content(calc(41.85% - 60px)) 1fr;\n }\n\n @include breakpoint(1750px) {\n grid-template-columns: fit-content(calc(41% - 60px)) 1fr;\n }\n\n @include breakpoint($fullhd) {\n grid-template-columns: fit-content(428px) 1fr;\n }\n}\n\n.hy-collaboration__logo {\n margin: 0 0 32px;\n padding: 0;\n\n @include breakpoint($wide) {\n margin: 0;\n }\n\n img {\n max-width: 75%;\n max-height: 200px;\n\n @include breakpoint($narrow) {\n max-width: 50%;\n }\n\n @include breakpoint($wide) {\n max-width: 100%;\n max-height: 260px;\n }\n }\n}\n\n.hy-collaboration__description {\n @include font-size(15px, 22px);\n font-family: var(--main-font-family);\n margin: 0 0 12px;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 24px);\n }\n\n @include breakpoint($extrawide) {\n @include font-size(17px, 26px);\n }\n}\n\n.hy-collaboration__link {\n @include font-size(15px, 22px);\n @include font-weight($semibold);\n font-family: var(--main-font-family);\n color: var(--link-blue);\n display: inline-flex;\n align-items: center;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 24px);\n }\n\n @include breakpoint($extrawide) {\n @include font-size(17px, 26px);\n }\n\n span {\n margin-left: 4px;\n\n svg {\n fill: var(--link-blue);\n }\n }\n}\n","import {Component, h, Prop} from '@stencil/core';\n\n@Component({\n tag: 'hy-collaboration',\n styleUrl: 'hy-collaboration.scss',\n shadow: false,\n})\nexport class HyCollaboration {\n @Prop() textDescription: string;\n @Prop() linkUrl?: string;\n @Prop() linkTitle?: string;\n @Prop() imageUrl: string;\n @Prop() imageAltText: string;\n\n render() {\n return (\n <div class=\"hy-collaboration\">\n <figure class=\"hy-collaboration__logo\" role=\"complementary\">\n <img src={this.imageUrl} alt={this.imageAltText} />\n </figure>\n <div class=\"hy-collaboration__content\">\n <p class=\"hy-collaboration__description\">{this.textDescription}</p>\n {this.linkUrl && (\n <a href={this.linkUrl} class=\"hy-collaboration__link\">\n {this.linkTitle}\n <span aria-hidden=\"true\">\n <hy-icon icon={'hy-icon-arrow-right'} size={10} />\n </span>\n </a>\n )}\n </div>\n </div>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-content-list {\n display: flex;\n font-family: var(--main-font-family);\n flex-wrap: wrap;\n\n &--no-result {\n align-items: center;\n display: flex;\n }\n &--alert {\n margin-right: 6px;\n svg {\n fill: var(--grayscale-dark);\n }\n @include breakpoint($xlarge) {\n svg {\n height: 18px;\n width: 18px;\n }\n }\n &--large {\n @include breakpoint($overwide) {\n svg {\n height: 18px;\n width: 18px;\n }\n }\n }\n }\n\n &--alert-label {\n font-family: var(--main-font-family);\n @include font-size(15px, 22px);\n color: var(--grayscale-dark);\n font-style: italic;\n letter-spacing: 0;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 24px);\n }\n @include breakpoint($xlarge) {\n @include font-size(17px, 26px);\n }\n &--large {\n @include breakpoint($overwide) {\n @include font-size(17px, 26px);\n }\n }\n }\n}\n\n.hy-content-list.row {\n flex-direction: column;\n}\n\n.hy-content-list.grid {\n flex-direction: row;\n}\n","import {CourseStateVariants, CourseVariants} from '../../../utils/utils';\nimport {Component, ComponentInterface, Element, h, Host, Prop, State, Watch} from '@stencil/core';\n\n@Component({\n tag: 'hy-content-list',\n styleUrl: 'hy-content-list.scss',\n shadow: false,\n})\nexport class HyContentList implements ComponentInterface {\n @Prop() linkLabel: string = 'Go to course page';\n @Prop() noResultLabel: string = 'No courses scheduled at the moment';\n @Prop() creditsLabel: string = 'cr';\n @Prop() cancelledLabel: string = 'Cancelled';\n @Prop() dataItems: string;\n @Prop() headerstyle: string = 'common';\n @Prop() courseStateVariant: CourseStateVariants = CourseStateVariants.default;\n private _dataItems: [];\n private variant: CourseVariants = CourseVariants.default;\n @State() courseRealisations: Array<object> = [];\n @Element() el: HTMLElement;\n /**\n * Data for links to be displayed.\n */\n\n @Watch('dataItems') dataWatcher(data: [] | string) {\n this._dataItems = typeof data === 'string' ? JSON.parse(data) : data;\n }\n\n componentWillLoad() {\n this.dataWatcher(this.dataItems);\n }\n\n handleCardClick(e, id) {\n e.preventDefault();\n let card = this.el.querySelector(`#${id}`) as HTMLElement;\n\n if (card) {\n window.open(card.dataset.location, '_blank');\n }\n }\n\n async componentDidLoad() {\n let hyMainDiv = this.el.closest('.hy-main');\n if (hyMainDiv) {\n if (!hyMainDiv.classList.contains('with-sidebar')) {\n this.headerstyle = 'large';\n }\n }\n }\n\n renderItems() {\n let courseRealisations = [];\n if (this._dataItems && this._dataItems.length > 0) {\n this._dataItems.forEach((item) => {\n const courseObject = JSON.parse(JSON.stringify(item));\n\n const courseListType = courseObject['courseListType'];\n this.variant = courseListType == 'list' ? CourseVariants.row : CourseVariants.grid;\n\n for (const courseProperty in courseObject) {\n if (courseProperty == 'courseListType') continue;\n\n const courseItem = courseObject[courseProperty];\n const courseCode = courseItem['code'];\n const courseCredits = courseItem['credits'];\n\n // Course realisations.\n if (courseItem['realisations']) {\n const realisations = JSON.parse(JSON.stringify(courseItem['realisations']));\n for (const realisationProperty in realisations) {\n const realizationItem = realisations[realisationProperty];\n const courseRealisationName = realizationItem['name'];\n const courseRealisationFullName = courseRealisationName + ', ' + courseCredits + ' ' + this.creditsLabel;\n const courseStudyFormat = realizationItem['studyFormat'];\n const courseCancelled = realizationItem['cancelled'];\n const courseStartDate = realizationItem['startDate'];\n const courseEndDate = realizationItem['endDate'];\n const formattedTimeRange = realizationItem['formattedTimeRange'];\n const courseEnrollmentLink = realizationItem['enrolmentLink'];\n const courseTeachingLanguage = realizationItem['teachingLanguage'];\n const courseOrganisation = realizationItem['organisation'];\n\n let courseTags = [];\n if (realizationItem['tags']) {\n let tags = JSON.parse(JSON.stringify(realizationItem['tags']));\n for (let z in tags) {\n let tagItem = {name: tags[z]};\n courseTags.push(tagItem);\n }\n }\n const courseTagsJSON = JSON.stringify(courseTags);\n\n const contentListItemClassAttributes = ['item', this.variant].join(' ');\n\n courseRealisations.push(\n <hy-content-list-item\n id={realisationProperty}\n class={contentListItemClassAttributes}\n variant={this.variant}\n state-variant={this.courseStateVariant}\n course-code={courseCode}\n course-name={courseRealisationFullName}\n is-cancelled={courseCancelled}\n cancelled-label={this.cancelledLabel}\n course-credits={courseCredits}\n course-tags={courseTagsJSON}\n course-start-date={courseStartDate}\n course-end-date={courseEndDate}\n formatted-time-range={formattedTimeRange}\n course-study-format={courseStudyFormat}\n course-organisation={courseOrganisation}\n course-enrollment-link={courseEnrollmentLink}\n course-teaching-language={courseTeachingLanguage}\n course-link-label={this.linkLabel}\n data-location={courseEnrollmentLink}\n onClick={(e) => this.handleCardClick(e, realisationProperty)}\n //onKeyDown={() => this.handleKeyDown(window.event, realisationProperty)}\n ></hy-content-list-item>\n );\n }\n }\n }\n });\n }\n\n return courseRealisations;\n }\n\n render() {\n const classAttributes = [this.variant, 'hy-content-list'].join(' ');\n const classAlertAttributes = ['hy-content-list--alert', `hy-content-list--alert--${this.headerstyle}`].join(' ');\n const classAlertLabelAttributes = [\n 'hy-content-list--alert-label',\n `hy-content-list--alert-label--${this.headerstyle}`,\n ].join(' ');\n\n this.courseRealisations = this.renderItems();\n if (this.courseRealisations && this.courseRealisations.length > 0) {\n return (\n <Host>\n <div class={classAttributes}>{this.courseRealisations}</div>\n </Host>\n );\n } else {\n return (\n <Host>\n <div class={classAttributes}>\n <div class=\"hy-content-list--no-result\">\n <span class={classAlertAttributes}>\n <hy-icon icon={'hy-icon-info'} size={16} />\n </span>\n <span class={classAlertLabelAttributes}>{this.noResultLabel}</span>\n </div>\n </div>\n </Host>\n );\n }\n }\n}\n","hy-content-list-item {\n background: radial-gradient(circle, #f8f8f8 0%, #f5f5f5 100%);\n cursor: pointer;\n display: flex;\n margin-bottom: 16px;\n position: relative;\n //width: 100%;\n\n @include breakpoint($narrow) {\n margin-bottom: 24px;\n }\n}\nhy-content-list-item[variant='row'],\nhy-content-list-item.row {\n max-width: 100%;\n padding: 21px 0 60px 12px;\n width: 100%;\n\n @include breakpoint($narrow) {\n padding: 21px 0 12px 24px;\n }\n @include breakpoint($wide) {\n margin-bottom: 16px;\n }\n}\nhy-content-list-item.grid {\n max-width: 100%;\n padding: 21px 0 60px 12px;\n width: 100%;\n\n @include breakpoint($narrow) {\n margin-right: var(--gutter-medium);\n max-width: calc(((100% - #{var(--gutter-medium)} * 11) / 12) * 6 + #{var(--gutter-medium)} * 5);\n padding: 21px 0 60px 12px;\n width: calc(((100% - #{var(--gutter-medium)} * 11) / 12) * 6 + #{var(--gutter-medium)} * 5);\n }\n @include breakpoint($wide) {\n margin-bottom: 27px;\n margin-right: var(--gutter-wide);\n max-width: calc(((100% - #{var(--gutter-wide)} * 11) / 12) * 4 + #{var(--gutter-wide)} * 3);\n width: calc(((100% - #{var(--gutter-wide)} * 11) / 12) * 4 + #{var(--gutter-wide)} * 3);\n }\n @include breakpoint($extrawide) {\n margin-bottom: 32px;\n margin-right: var(--gutter-extrawide);\n max-width: calc(((100% - #{var(--gutter-extrawide)} * 11) / 12) * 4 + #{var(--gutter-extrawide)} * 3);\n width: calc(((100% - #{var(--gutter-extrawide)} * 11) / 12) * 4 + #{var(--gutter-extrawide)} * 3);\n }\n}\n\nhy-content-list-item.grid:nth-of-type(2n + 0) {\n @include breakpoint($narrow) {\n margin-right: 0;\n }\n @include breakpoint($wide) {\n margin-right: var(--gutter-wide);\n }\n @include breakpoint($extrawide) {\n margin-right: var(--gutter-extrawide);\n }\n}\n\nhy-content-list-item.grid:nth-of-type(3n + 0) {\n @include breakpoint($wide) {\n margin-right: 0;\n }\n}\n\n.hy-content-list-item {\n font-family: var(--main-font-family);\n position: relative;\n width: 100%;\n\n a {\n text-decoration: none;\n }\n\n &--container {\n cursor: pointer;\n }\n\n &--item-name {\n color: var(--link-blue);\n @include font-size(20px, 24px);\n @include font-weight($bold);\n letter-spacing: -0.6px;\n margin-bottom: 16px;\n word-break: break-word;\n\n &--past-courses {\n color: var(--grayscale-dark);\n }\n }\n\n &--metadata {\n @include font-size(14px, 16px);\n @include font-weight($semibold);\n\n color: var(--grayscale-black);\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n letter-spacing: -0.44px;\n line-height: 16px;\n margin-bottom: 19px;\n padding-bottom: 0;\n\n &--item {\n padding-bottom: 6px;\n }\n\n @include breakpoint($narrow) {\n padding-bottom: 1rem;\n }\n @include breakpoint($extrawide) {\n padding-bottom: 0;\n }\n\n &--item:after {\n content: '|';\n padding: 0 8px;\n }\n &--item--last:after {\n content: ' ';\n }\n }\n\n .cancelled {\n span {\n @include font-size(12px, 12px);\n @include font-weight($bold);\n background-color: var(--additional-red-light);\n color: var(--grayscale-white);\n letter-spacing: -0.5px;\n padding: 6px 8px;\n text-transform: uppercase;\n }\n &--past-courses {\n span {\n background-color: var(--grayscale-dark);\n }\n }\n\n &:not(.mobile) {\n display: none;\n }\n\n &.mobile {\n bottom: -50px;\n display: block;\n margin: 0;\n padding-bottom: 12px;\n position: absolute;\n }\n\n @include breakpoint($narrow) {\n margin-right: 8px;\n\n &.mobile {\n display: none;\n }\n &:not(.mobile) {\n display: block;\n }\n }\n }\n\n &--link {\n position: absolute;\n right: -6px;\n\n a {\n align-items: center;\n display: flex;\n flex-direction: row;\n text-decoration: none;\n\n .label {\n @include font-size(16px, 16px);\n @include font-weight($bold);\n color: var(--link-blue);\n letter-spacing: -0.5px;\n line-height: 16px;\n margin-right: 8px;\n text-align: right;\n }\n\n .icon-wrapper {\n background-color: var(--brand-main-light);\n z-index: 10;\n\n .icon {\n transform: rotate(-45deg);\n position: relative;\n overflow: hidden;\n\n svg {\n background-color: transparent;\n box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.1);\n fill: var(--grayscale-white);\n padding: 10.29px;\n }\n }\n }\n }\n }\n}\n\n.hy-content-list-item.row {\n .hy-content-list-item--link {\n bottom: -60px;\n padding-bottom: 12px;\n\n @include breakpoint($narrow) {\n bottom: 0;\n padding-bottom: 0;\n }\n }\n\n .hy-content-list-item--tags {\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n @include breakpoint($wide) {\n flex-direction: row;\n padding-right: 200px;\n }\n }\n}\n\n.hy-content-list-item.grid {\n .hy-content-list-item--link {\n bottom: -60px;\n padding-bottom: 12px;\n }\n\n .hy-content-list-item--tags {\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n }\n}\n","export interface TagValue {\n name: string;\n}\n\nimport {Component, Element, h, Listen, Prop} from '@stencil/core';\nimport {CourseStateVariants, CourseVariants} from '../../../utils/utils';\nimport {jsonParserWorker} from '../../../global/globalScript';\n\nlet keys = {\n enter: 'Enter',\n};\n\n@Component({\n tag: 'hy-content-list-item',\n styleUrl: 'hy-content-list-item.scss',\n shadow: false,\n})\nexport class HyContentLstItem {\n @Prop() variant: CourseVariants = CourseVariants.default;\n @Prop() stateVariant: CourseStateVariants = CourseStateVariants.default;\n @Prop() courseCode?: string;\n @Prop() courseName?: string;\n @Prop() isCancelled?: boolean;\n @Prop() cancelledLabel: string = 'Cancelled';\n @Prop() courseCredits?: string;\n private _courseTags: TagValue[];\n @Prop() courseTags: TagValue[] | string;\n @Prop() courseStartDate?: string;\n @Prop() courseEndDate?: string;\n @Prop() formattedTimeRange?: string;\n @Prop() courseStudyFormat?: string;\n @Prop() courseOrganisation?: string;\n @Prop() courseEnrollmentLink?: string;\n @Prop() courseTeachingLanguage?: string;\n @Prop() courseLinkLabel?: string;\n\n @Element() el: HTMLElement;\n\n async componentWillLoad() {\n this._courseTags = await jsonParserWorker(this.courseTags);\n }\n\n @Listen('keydown')\n handleKeyDown(event) {\n const key = (event as KeyboardEvent).code;\n if (key == keys.enter) {\n let card = this.el;\n window.open(card.dataset.location, '_blank', 'noopener');\n }\n }\n\n render() {\n const classAttributes = [this.variant, 'hy-content-list-item'].join(' ');\n\n const target = '_blank';\n const ariaLabel = 'Link points outside the current website.';\n\n const classItemName = [\n 'hy-content-list-item--item-name',\n `hy-content-list-item--item-name--${this.stateVariant}`,\n ].join(' ');\n const classItemCancelled = ['cancelled', `cancelled--${this.stateVariant}`].join(' ');\n\n return [\n <div class={classAttributes} tabindex=\"0\">\n <div class={classItemName}>{this.courseName}</div>\n <div class=\"hy-content-list-item--metadata\">\n {this.isCancelled && (\n <div class={classItemCancelled}>\n <span>{this.cancelledLabel}</span>\n </div>\n )}\n <div class=\"hy-content-list-item--metadata--item hy-content-list-item--metadata--item--first\">\n <span>{this.formattedTimeRange}</span>\n </div>\n {this.courseOrganisation\n ? [\n <div class=\"hy-content-list-item--metadata--item\">\n <span>{this.courseStudyFormat}</span>\n </div>,\n <div class=\"hy-content-list-item--metadata--item hy-content-list-item--metadata--item--last\">\n <span>{this.courseOrganisation}</span>\n </div>,\n ]\n : [\n <div class=\"hy-content-list-item--metadata--item hy-content-list-item--metadata--item--last\">\n <span>{this.courseStudyFormat}</span>\n </div>,\n ]}\n </div>\n {this._courseTags && this._courseTags.length > 0 && (\n <div class=\"hy-content-list-item--tags\">\n {this._courseTags.map((x) => {\n return <hy-tag>{x.name}</hy-tag>;\n })}\n </div>\n )}\n {this.isCancelled && (\n <div class=\"cancelled mobile\">\n <span>{this.cancelledLabel}</span>\n </div>\n )}\n <div class=\"hy-content-list-item--link\">\n <a\n href={this.courseEnrollmentLink}\n target={target}\n aria-label={ariaLabel}\n class=\"hy-content-list-item--link--link\"\n tabindex=\"-1\"\n >\n <span class=\"label\">{this.courseLinkLabel}</span>\n <span class=\"icon-wrapper\">\n <div class=\"icon\">\n <hy-icon icon={'hy-icon-arrow-to-right'} size={40} />\n </div>\n </span>\n </a>\n </div>\n </div>,\n ];\n }\n}\n",".hy-crisis-banner {\n box-shadow: inset 0 -20px 20px -20px rgba(14, 104, 139, 0.1);\n display: block;\n}\n\n.hy-crisis-banner__container {\n display: flex;\n margin: 0 auto;\n max-width: 1216px;\n}\n\n.hy-crisis-banner__indicator {\n background-color: var(--additional-yellow-light);\n flex-shrink: 0;\n\n @include breakpoint($narrow) {\n align-items: center;\n display: flex;\n justify-content: center;\n }\n}\n\n.hy-crisis-banner__indicator-icon {\n margin-left: 8px;\n margin-right: 8px;\n margin-top: 10px;\n\n @include breakpoint($narrow) {\n margin-left: 10px;\n margin-right: 10px;\n margin-top: 0;\n }\n\n svg {\n height: 22px;\n width: 22px;\n\n circle {\n fill: var(--grayscale-white);\n }\n\n path {\n fill: var(--additional-yellow-light);\n }\n }\n}\n\n.hy-crisis-banner__content-wrapper {\n align-items: baseline;\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n padding: 12px 0 12px 12px;\n\n @include breakpoint($narrow) {\n align-items: center;\n flex-direction: row;\n justify-content: space-between;\n padding: 14px 0 14px 14px;\n }\n\n @include breakpoint($wide) {\n padding: 20px 0 20px 20px;\n }\n}\n\n.hy-crisis-banner__content {\n @include breakpoint($narrow) {\n max-width: 61.22%;\n width: 100%;\n }\n\n @include breakpoint($wide) {\n max-width: 65.83%;\n }\n\n @include breakpoint($extrawide) {\n max-width: 65.79%;\n }\n}\n\n.hy-crisis-banner__title {\n @include font-size(14px, 16px);\n @include font-weight($bold);\n color: var(--grayscale-black);\n font-family: var(--main-font-family);\n letter-spacing: -0.35px;\n margin: 0 0 2px 0;\n\n @include breakpoint($xlarge) {\n @include font-size(16px, 18px);\n letter-spacing: -0.4px;\n }\n}\n\n.hy-crisis-banner__description {\n @include font-size(12px, 14px);\n color: var(--grayscale-dark);\n font-family: var(--main-font-family);\n letter-spacing: -0.35px;\n margin: 0;\n\n @include breakpoint($narrow) {\n @include font-size(14px, 16px);\n }\n\n p {\n margin-top: 0;\n\n &:last-of-type {\n margin-bottom: 0;\n }\n }\n}\n\n.hy-crisis-banner__link {\n @include font-size(14px, 16px);\n @include font-weight($semibold);\n align-items: center;\n color: var(--brand-main-light);\n display: inline-flex;\n font-family: var(--main-font-family);\n letter-spacing: -0.5px;\n margin: 12px 0 0;\n overflow: hidden;\n text-decoration: none;\n\n @include breakpoint($narrow) {\n flex-shrink: 0;\n margin-left: 24px;\n margin-right: 32px;\n margin-top: 0;\n text-align: right;\n }\n\n @include breakpoint($extrawide) {\n margin-left: 32px;\n }\n @include breakpoint($xlarge) {\n @include font-size(16px, 18px);\n }\n\n &:hover,\n &:focus {\n color: var(--brand-main);\n text-decoration: underline;\n\n .hy-crisis-banner__link-icon svg {\n fill: var(--brand-main);\n }\n }\n}\n\n.hy-crisis-banner__link-icon {\n margin-left: 4px;\n\n @include breakpoint($narrow) {\n margin-left: 8px;\n }\n\n @include breakpoint($extrawide) {\n margin-left: 12px;\n }\n\n svg {\n fill: var(--brand-main-light);\n height: 12px;\n width: 12px;\n\n @include breakpoint($narrow) {\n height: 14px;\n width: 14px;\n }\n\n @include breakpoint($xlarge) {\n height: 16px;\n width: 16px;\n }\n }\n}\n","import {Component, Host, h, Prop} from '@stencil/core';\n\n@Component({\n tag: 'hy-crisis-banner',\n styleUrl: 'hy-crisis-banner.scss',\n shadow: false,\n})\nexport class HyCrisisBanner {\n @Prop() bannerTitle: string;\n @Prop() bannerDescription?: string;\n @Prop() linkTitle?: string;\n @Prop() linkUrl?: string;\n\n render() {\n return (\n <Host class=\"hy-crisis-banner\" role=\"alert\">\n <div class=\"hy-crisis-banner__container\">\n <div class=\"hy-crisis-banner__indicator\">\n <hy-icon class={'hy-crisis-banner__indicator-icon'} icon={'hy-icon-alert'} />\n </div>\n <div class=\"hy-crisis-banner__content-wrapper\">\n <div class=\"hy-crisis-banner__content\">\n <h3 class=\"hy-crisis-banner__title\">{this.bannerTitle}</h3>\n {this.bannerDescription && (\n <div class=\"hy-crisis-banner__description\" innerHTML={this.bannerDescription}></div>\n )}\n </div>\n {this.linkUrl && (\n <a class=\"hy-crisis-banner__link\" href={this.linkUrl}>\n {this.linkTitle}\n <hy-icon class={'hy-crisis-banner__link-icon'} icon={'hy-icon-arrow-to-right'} />\n </a>\n )}\n </div>\n </div>\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-cta-button-container {\n display: flex;\n}\n\n.hy-cta-button {\n cursor: pointer;\n font-family: var(--main-font-family);\n font-weight: 700;\n position: relative;\n text-decoration: none;\n\n &.transparent-background,\n &.black-background,\n &.blue-background,\n &.white-background,\n &.hero-white,\n &.hero-blue,\n &.hero-black,\n &.dark-blue-background {\n align-items: center;\n box-sizing: border-box;\n display: flex;\n height: 100%;\n justify-content: center;\n max-width: 328px;\n padding: 13px 16px;\n\n .text {\n @include font-size(16px, 18px);\n letter-spacing: -0.3px;\n }\n\n .link-icon {\n margin-left: 8px;\n\n svg {\n height: 16px;\n width: 16px;\n }\n }\n }\n\n &.dark-blue-background {\n background-color: var(--brand-main-dark);\n border: 4px solid var(--grayscale-white);\n color: var(--grayscale-white);\n\n .link-icon svg {\n background-color: var(--brand-main-dark);\n fill: var(--grayscale-white);\n }\n\n .text {\n color: var(--grayscale-white);\n }\n }\n\n &.transparent-background {\n background-color: var(--grayscale-white);\n border: 4px solid var(--grayscale-black);\n color: var(--grayscale-black);\n\n .link-icon svg {\n background-color: var(--grayscale-white);\n fill: var(--grayscale-black);\n }\n\n .text {\n color: var(--grayscale-black);\n }\n }\n\n &.black-background {\n background-color: var(--grayscale-black);\n border: 4px solid var(--grayscale-white);\n color: var(--grayscale-white);\n\n .link-icon svg {\n background-color: var(--grayscale-black);\n fill: var(--grayscale-white);\n }\n\n .text {\n color: var(--grayscale-white);\n }\n\n &:hover {\n background-color: var(--brand-main-active);\n\n .link-icon svg {\n background-color: var(--brand-main-active);\n }\n }\n\n &:focus {\n background-color: var(--brand-main);\n\n .link-icon svg {\n background-color: var(--brand-main);\n }\n }\n }\n\n &.blue-background {\n background-color: var(--brand-main-light);\n border: 4px solid var(--grayscale-white);\n color: var(--grayscale-white);\n\n .link-icon svg {\n background-color: var(--brand-main-light);\n fill: var(--grayscale-white);\n }\n\n .text {\n color: var(--grayscale-white);\n }\n\n &:hover {\n background-color: var(--brand-main);\n\n .link-icon svg {\n background-color: var(--brand-main);\n }\n }\n\n &:focus {\n background-color: var(--brand-main-active);\n\n .link-icon svg {\n background-color: var(--brand-main-active);\n }\n }\n }\n\n &.white-background {\n background-color: var(--grayscale-white);\n border: 4px solid var(--brand-main-light);\n color: var(--brand-main-light);\n\n .link-icon svg {\n background-color: var(--grayscale-white);\n fill: var(--brand-main-light);\n }\n\n .text {\n color: var(--brand-main-light);\n }\n\n &:hover {\n border-color: var(--brand-main-active);\n\n .text {\n color: var(--brand-main-active);\n }\n\n .link-icon svg {\n fill: var(--brand-main-active);\n }\n }\n\n &:focus {\n border-color: var(--brand-main-active);\n\n .text {\n color: var(--brand-main-active);\n }\n\n .link-icon svg {\n fill: var(--brand-main-active);\n }\n }\n }\n\n &.hero-white {\n background-color: var(--brand-main-light);\n color: var(--grayscale-white);\n\n .link-icon svg {\n background-color: var(--brand-main-light);\n fill: var(--grayscale-white);\n }\n\n .text {\n color: var(--grayscale-white);\n }\n\n &:hover {\n background-color: var(--brand-main-active);\n\n .link-icon svg {\n background-color: var(--brand-main-active);\n }\n }\n\n &:focus {\n background-color: var(--brand-main-active);\n\n .link-icon svg {\n background-color: var(--brand-main-active);\n }\n }\n }\n\n &.hero-black {\n background-color: var(--grayscale-black);\n border: 4px solid var(--grayscale-white);\n color: var(--grayscale-white);\n\n .link-icon svg {\n background-color: var(--grayscale-black);\n fill: var(--grayscale-white);\n }\n\n .text {\n color: var(--grayscale-white);\n }\n\n &:hover {\n border-color: var(--brand-main-soft);\n\n .text {\n color: var(--brand-main-soft);\n }\n\n .link-icon svg {\n fill: var(--brand-main-soft);\n }\n }\n\n &:focus {\n border-color: var(--brand-main-soft);\n\n .text {\n color: var(--brand-main-soft);\n }\n\n .link-icon svg {\n fill: var(--brand-main-soft);\n }\n }\n }\n\n &.hero-blue {\n background-color: var(--brand-main);\n border: 4px solid var(--grayscale-white);\n color: var(--grayscale-white);\n\n .link-icon svg {\n background-color: var(--brand-main);\n fill: var(--grayscale-white);\n }\n\n .text {\n color: var(--grayscale-white);\n }\n\n &:hover {\n border-color: var(--brand-main-soft);\n\n .text {\n color: var(--brand-main-soft);\n }\n\n .link-icon svg {\n fill: var(--brand-main-soft);\n }\n }\n\n &:focus {\n border-color: var(--brand-main-soft);\n\n .text {\n color: var(--brand-main-soft);\n }\n\n .link-icon svg {\n fill: var(--brand-main-soft);\n }\n }\n }\n}\n","import {Component, ComponentInterface, Element, Prop, h} from '@stencil/core';\nimport {CtaLinkButtonVariants} from '../../utils/utils';\n\n@Component({\n tag: 'hy-cta-button',\n styleUrl: 'cta-button.scss',\n shadow: false,\n})\nexport class CtaButton implements ComponentInterface {\n @Prop() variant: CtaLinkButtonVariants = CtaLinkButtonVariants.onBlueBkgd;\n @Prop() linkContent: string = '';\n @Prop() typeButton: boolean = false;\n @Prop() url?: string;\n @Prop() scLabel?: string;\n @Prop() isExternal: boolean = false;\n @Prop() headerstyle: string = 'common';\n @Element() el: HTMLElement;\n\n render() {\n const classAttributes = ['hy-cta-button', this.variant, this.headerstyle].join(' ');\n\n const containerClassAttributes = ['hy-cta-button-container'].join(' ');\n\n const textClassAttributes = ['text'].join(' ');\n const iconClassAttributes = ['link-icon'].join(' ');\n\n const target = this.isExternal ? '_blank' : '_self';\n\n return (\n <span class={containerClassAttributes}>\n {!this.typeButton ? (\n <a aria-label={this.scLabel} class={classAttributes} href={this.url} target={target}>\n <span class={textClassAttributes}>{this.linkContent.length === 0 ? <slot /> : this.linkContent}</span>\n <span class={iconClassAttributes}>\n <hy-icon icon={'hy-icon-arrow-right'} size={48} />\n </span>\n </a>\n ) : (\n <button aria-label={this.scLabel} class={classAttributes}>\n <span class={textClassAttributes}>{this.linkContent.length === 0 ? <slot /> : this.linkContent}</span>\n <span class={iconClassAttributes}>\n <hy-icon icon={'hy-icon-arrow-right'} size={48} />\n </span>\n </button>\n )}\n </span>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-cta-link {\n @include font-weight($semibold);\n @include font-size(16px, 24px);\n align-items: center;\n color: var(--brand-main);\n display: inline-grid;\n font-family: var(--main-font-family);\n gap: 16px;\n grid-auto-flow: column;\n letter-spacing: -0.5px;\n overflow: hidden;\n text-decoration: none;\n\n &:hover,\n &:focus {\n text-decoration: underline;\n\n .hy-cta-link__icon {\n background-color: var(--brand-main-active);\n }\n }\n}\n\n.hy-cta-link__icon {\n align-items: center;\n background-color: var(--brand-main-light);\n display: inline-flex;\n height: 40px;\n justify-content: center;\n width: 40px;\n\n svg {\n fill: var(--grayscale-white);\n }\n\n &--external {\n svg {\n transform: rotate(-45deg);\n }\n }\n}\n","import {Component, ComponentInterface, Prop, h, Element} from '@stencil/core';\nimport {CtaLinkVariants} from '../../utils/utils';\n\n@Component({\n tag: 'hy-cta-link',\n styleUrl: 'cta-link.scss',\n shadow: false,\n})\nexport class CtaLink implements ComponentInterface {\n @Element() el: HTMLElement;\n @Prop() variant: CtaLinkVariants = CtaLinkVariants.default;\n @Prop() linkContent: string = '';\n @Prop() url?: string;\n @Prop() scLabel?: string;\n @Prop() isExternal: boolean = false;\n\n render() {\n const iconClassAttributes = ['hy-cta-link__icon', this.isExternal && 'hy-cta-link__icon--external'].join(' ');\n const target = this.isExternal ? '_blank' : '_self';\n\n return (\n <a aria-label={this.scLabel} href={this.url} target={target} class={`hy-cta-link hy-cta-link--${this.variant}`}>\n {this.variant == CtaLinkVariants.linkList && (\n <span class={iconClassAttributes}>\n <hy-icon icon={'hy-icon-arrow-to-right'} size={24} />\n </span>\n )}\n <span>{this.linkContent}</span>\n {this.variant == CtaLinkVariants.default && (\n <span class={iconClassAttributes}>\n <hy-icon icon={'hy-icon-arrow-to-right'} size={24} />\n </span>\n )}\n </a>\n );\n }\n}\n",".hy-dropdown {\n display: inline-block;\n min-width: 100%;\n position: relative;\n\n @include breakpoint($narrow) {\n min-width: 48.3%;\n }\n\n @include breakpoint($extrawide) {\n min-width: 23.03%;\n }\n\n label.hy-dropdown__button-label {\n @include font-size(16px, 20px);\n @include font-weight($bold);\n\n display: block;\n font-family: var(--main-font-family);\n letter-spacing: -0.32px;\n margin-bottom: 8px;\n }\n\n &--single {\n .hy-dropdown__panel {\n width: max-content;\n max-width: 330px;\n min-width: 100%;\n }\n }\n}\n\n.hy-dropdown__toggle {\n @include font-size(14px, 24px);\n align-items: center;\n background-color: var(--grayscale-white);\n border-radius: 0;\n border: 1px solid var(--grayscale-medium-dark);\n color: var(--link-blue);\n display: inline-flex;\n font-family: var(--main-font-family);\n font-weight: $semibold;\n min-height: 40px;\n height: auto;\n justify-content: space-between;\n letter-spacing: normal;\n padding: 0 0 0 16px;\n text-align: left;\n max-width: 280px;\n width: 100%;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 24px);\n min-height: 44px;\n }\n\n @include breakpoint($extrawide) {\n min-height: 48px;\n }\n\n &:hover {\n border-color: var(--brand-main-light);\n cursor: pointer;\n }\n\n &:focus {\n border-color: var(--brand-main-light);\n border-style: solid inset solid solid;\n border-width: 2px;\n outline: 0;\n text-indent: -1px; // Text stays in place.\n }\n\n svg {\n pointer-events: none;\n }\n\n &.is-open {\n .hy-dropdown__icon {\n background-color: var(--brand-main-light);\n transform: rotate(180deg);\n\n &::before {\n display: none;\n }\n\n svg {\n fill: var(--grayscale-white);\n }\n }\n }\n}\n\n.hy-dropdown__icon {\n align-items: center;\n display: inline-flex;\n flex-shrink: 0;\n height: 40px;\n justify-content: center;\n margin: 0 0 0 16px;\n position: relative;\n width: 40px;\n\n &::before {\n //border-left: 1px dashed var(--grayscale-medium-dark);\n //Line weight 0,5 px; Line color #979797\n border-left: 0.5px solid var(--grayscale-medium-dark);\n content: '';\n display: inline-block;\n height: 65%;\n left: 0;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n }\n\n @include breakpoint($narrow) {\n height: 44px;\n width: 44px;\n }\n\n @include breakpoint($extrawide) {\n height: 48px;\n width: 48px;\n }\n\n svg {\n fill: var(--link-blue);\n\n @include breakpoint($narrow) {\n height: 16px;\n width: 16px;\n }\n }\n}\n\n.hy-dropdown__panel {\n background-color: var(--grayscale-white);\n box-shadow: 0 10px 20px 0 rgba(0, 49, 70, 0.2);\n list-style: none;\n margin: 0;\n padding: 6px;\n position: absolute;\n width: 100%;\n z-index: 11;\n\n &.is-hidden {\n display: none;\n visibility: hidden;\n }\n}\n\n.hy-dropdown__panel-item {\n position: relative;\n\n &:not(.is-last) {\n margin-bottom: 6px;\n }\n}\n\n.hy-dropdown__label {\n @include font-size(14px, 24px);\n align-items: center;\n background-color: var(--grayscale-white);\n border-radius: 0;\n border: 1px solid var(--grayscale-medium-dark);\n color: var(--link-blue);\n display: inline-flex;\n font-family: var(--main-font-family);\n font-weight: $semibold;\n min-height: 40px;\n justify-content: space-between;\n letter-spacing: normal;\n padding: 0 16px;\n text-align: left;\n width: 100%;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 24px);\n }\n}\n\n.hy-dropdown__label-icon {\n align-items: center;\n display: none !important;\n flex-shrink: 0;\n height: 40px;\n justify-content: center;\n position: relative;\n visibility: hidden;\n width: 40px;\n}\n\n.hy-dropdown__checkbox {\n height: 100%;\n margin: 0;\n opacity: 0;\n position: absolute;\n width: 100%;\n z-index: 10;\n\n &:checked {\n & + label {\n border-color: var(--grayscale-black);\n border-style: solid inset solid solid;\n border-width: 2px;\n color: var(--grayscale-black);\n outline: 0;\n text-indent: -1px; // Text stays in place.\n\n .hy-dropdown__label-icon {\n display: inline-flex !important;\n visibility: visible;\n }\n }\n }\n\n &:hover {\n cursor: pointer;\n\n & + label {\n border-color: var(--brand-main-light);\n }\n }\n\n &:focus {\n & + label {\n border-color: var(--brand-main-light);\n border-style: solid inset solid solid;\n border-width: 2px;\n outline: 0;\n text-indent: -1px; // Text stays in place.\n }\n }\n}\n","import {Component, Element, Host, h, State, Listen, Prop, Watch} from '@stencil/core';\nimport {jsonParserWorker} from '../../global/globalScript';\n\nexport interface IDropdownItem {\n id: string | number;\n label: string;\n value: string | number;\n}\n\nexport interface DefaultValue {\n id: string | number;\n label: string;\n value: string | number;\n}\n\n@Component({\n tag: 'hy-dropdown',\n styleUrl: 'hy-dropdown.scss',\n shadow: false,\n})\nexport class HyDropdown {\n private _dropdownOptions: IDropdownItem[];\n @Element() el: HTMLElement;\n @Prop() single: boolean = false;\n @Prop() dropdownLabel: string = null;\n @Prop() dropdownId: string = 'dropdownToggle';\n @Prop() dropdownOptions: IDropdownItem[] | string;\n @Prop() defaultLabel: string = 'All';\n @Prop({mutable: true}) defaultOption: string | number = null;\n @State() isPanelOpen: boolean = false;\n @State() isChecked: boolean = false;\n @State() currentSingle: DefaultValue[] = [{id: 0, label: this.defaultLabel, value: 0}];\n\n async componentWillLoad() {\n this._dropdownOptions = await jsonParserWorker(this.dropdownOptions);\n }\n\n componentWillUpdate() {\n const items = this.el.querySelectorAll('.hy-dropdown__checkbox') as any;\n if (items) {\n if ([...items].some((item) => item.checked == true)) {\n this.isChecked = true;\n } else {\n this.isChecked = false;\n }\n }\n }\n\n @Watch('defaultOption')\n watchPropHandler(newValue: string | number, oldValue: string | number) {\n if (!this.single) return;\n\n if (newValue !== oldValue) {\n const dropdownPanelCheckboxElements = this.el.getElementsByClassName('hy-dropdown__checkbox') as HTMLCollectionOf<\n HTMLInputElement\n >;\n\n Array.from(dropdownPanelCheckboxElements).filter((item) => {\n if (item.id == newValue) {\n item.checked = true;\n this.currentSingle = this._dropdownOptions.filter((option) => option.id == newValue) as any;\n return;\n }\n return null;\n });\n }\n }\n\n handlePanelToggle() {\n this.isPanelOpen = !this.isPanelOpen;\n }\n\n @Listen('click', {target: 'window'})\n handleClick(event) {\n const dropdownToggleButtonElement = this.el.querySelector(`#${this.dropdownId}`) as HTMLButtonElement;\n const dropdownPanelElement = this.el.querySelector('.hy-dropdown__panel') as HTMLElement;\n const dropdownPanelCheckboxElements = this.el.querySelectorAll('.hy-dropdown__checkbox');\n const dropdownToggleButtonIconElement = this.el.querySelector('.hy-dropdown__icon') as HTMLElement;\n\n const {target} = event;\n\n const allowedElements = [\n dropdownToggleButtonElement,\n dropdownPanelElement,\n dropdownToggleButtonIconElement,\n ...dropdownPanelCheckboxElements, // Spread (\"copy\") items to allowedElement array.\n ];\n\n if (this.isPanelOpen && !allowedElements.includes(target)) {\n this.isPanelOpen = false;\n }\n event.stopPropagation();\n }\n\n @Listen('click', {capture: true})\n handleSingleClick(event) {\n if (!this.single || !this.isPanelOpen) return;\n const dropdownPanelCheckboxElements = this.el.getElementsByClassName('hy-dropdown__checkbox') as HTMLCollectionOf<\n HTMLInputElement\n >;\n const allowedElements = [...dropdownPanelCheckboxElements];\n const {target} = event;\n if (!allowedElements.includes(target)) return;\n Array.from(dropdownPanelCheckboxElements).filter((item) => {\n if (item.id == target.id) {\n if (!item.checked) {\n this.currentSingle = [{id: null, label: this.defaultLabel, value: null}];\n return;\n }\n this.currentSingle = this._dropdownOptions.filter((option) => option.id == target.id) as any;\n return;\n }\n if (item.id !== target.id && item.checked) {\n item.checked = false;\n return;\n }\n return null;\n });\n\n event.stopPropagation();\n }\n\n render() {\n const {label: currentLabel, id: currentId, value: currentValue} = this.currentSingle[0];\n const classAttributes = ['hy-dropdown', this.single ? 'hy-dropdown--single' : ''].join(' ');\n\n if (this.single) {\n return (\n <Host class={classAttributes}>\n {this.dropdownLabel && (\n <label class=\"hy-dropdown__button-label\" htmlFor={this.dropdownId}>\n {this.dropdownLabel}\n </label>\n )}\n <button\n id={this.dropdownId}\n class={`hy-dropdown__toggle ${this.isPanelOpen ? 'is-open' : ''}`}\n aria-expanded={`${this.isPanelOpen || false}`}\n aria-haspopup=\"true\"\n aria-controls=\"dropdownPanel\"\n onClick={() => this.handlePanelToggle()}\n aria-label={`${!this.isPanelOpen ? 'Open' : 'Close'} dropdown`}\n data-current-id={currentId}\n data-current-value={currentValue}\n value={currentId}\n type=\"button\"\n >\n {currentLabel}\n <hy-icon class=\"hy-dropdown__icon\" icon={'hy-icon-caret-down'} size={14} aria-hidden=\"true\" />\n </button>\n <hy-dropdown-panel checkbox-checked={this.isChecked ? 'true' : 'false'} is-hidden={!this.isPanelOpen}>\n {this._dropdownOptions.map(({id, label, value}, index) => (\n <hy-dropdown-panel-item\n dropdown-item-id={id}\n dropdown-item-label={label}\n dropdown-item-value={value}\n is-last={this._dropdownOptions.length - 1 === index}\n />\n ))}\n </hy-dropdown-panel>\n </Host>\n );\n } else {\n return (\n <Host class={classAttributes}>\n <button\n id={this.dropdownId}\n class={`hy-dropdown__toggle ${this.isPanelOpen ? 'is-open' : ''}`}\n aria-expanded={`${this.isPanelOpen || false}`}\n aria-haspopup=\"true\"\n aria-controls=\"dropdownPanel\"\n onClick={() => this.handlePanelToggle()}\n aria-label={`${!this.isPanelOpen ? 'Open' : 'Close'} dropdown`}\n type=\"button\"\n >\n {this.dropdownLabel && this.dropdownLabel}\n <hy-icon class=\"hy-dropdown__icon\" icon={'hy-icon-caret-down'} size={14} aria-hidden=\"true\" />\n </button>\n <hy-dropdown-panel checkbox-checked={this.isChecked ? 'true' : 'false'} is-hidden={!this.isPanelOpen}>\n {this._dropdownOptions.map(({id, label, value}, index) => (\n <hy-dropdown-panel-item\n dropdown-item-id={id}\n dropdown-item-label={label}\n dropdown-item-value={value}\n is-last={this._dropdownOptions.length - 1 === index}\n />\n ))}\n </hy-dropdown-panel>\n </Host>\n );\n }\n }\n}\n","import {Component, h, Prop} from '@stencil/core';\n\n@Component({\n tag: 'hy-dropdown-panel',\n shadow: false,\n})\nexport class HyDropdownPanel {\n @Prop() isHidden: boolean;\n\n render() {\n return (\n <ul\n id=\"dropdownPanel\"\n class={`hy-dropdown__panel ${this.isHidden ? 'is-hidden' : ''}`}\n aria-hidden={`${this.isHidden || false}`}\n role=\"region\"\n aria-labelledby=\"dropdownToggle\"\n >\n <slot />\n </ul>\n );\n }\n}\n","import {Component, h, Prop} from '@stencil/core';\n\n@Component({\n tag: 'hy-dropdown-panel-item',\n shadow: false,\n})\nexport class HyDropdownPanelItem {\n @Prop() isLast?: boolean = false;\n @Prop() dropdownItemId: string | number;\n @Prop() dropdownItemValue: string | number;\n @Prop() dropdownItemLabel: string;\n\n render() {\n return (\n <li class={`hy-dropdown__panel-item ${this.isLast ? 'is-last' : ''}`}>\n <input\n type=\"checkbox\"\n class=\"hy-dropdown__checkbox\"\n id={`${this.dropdownItemId}`}\n value={`${this.dropdownItemValue}`}\n />\n <label class=\"hy-dropdown__label\" htmlFor={`${this.dropdownItemId}`}>\n {this.dropdownItemLabel}\n <hy-icon class=\"hy-dropdown__label-icon\" icon={'hy-icon-done'} size={14} aria-hidden=\"true\" />\n </label>\n </li>\n );\n }\n}\n",".hy-filter-group {\n align-items: center;\n display: inline-flex;\n flex-wrap: wrap;\n margin-right: 16px;\n}\n\n.hy-filter-group__listing {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.hy-filter-group__label {\n @include font-size(12px, 16px);\n border-radius: 2px;\n color: var(--grayscale-dark);\n font-family: var(--main-font-family);\n font-weight: normal;\n letter-spacing: -0.2px;\n margin: 8px 4px 8px 0;\n padding: 4px 0;\n\n @include breakpoint($narrow) {\n @include font-size(14px, 16px);\n letter-spacing: -0.3px;\n padding: 6px 0;\n }\n}\n\n.hy-filter-group__button {\n @include font-size(12px, 16px);\n align-items: center;\n background-color: var(--grayscale-background-box);\n border-radius: 2px;\n border: 0;\n color: var(--grayscale-dark);\n display: inline-flex;\n font-family: var(--main-font-family);\n font-weight: normal;\n letter-spacing: -0.2px;\n margin: 8px 4px;\n padding: 4px 6px;\n\n @include breakpoint($narrow) {\n @include font-size(14px, 16px);\n letter-spacing: -0.3px;\n padding: 6px 8px;\n }\n\n &:hover {\n cursor: pointer;\n }\n}\n\n.hy-filter-group__button-icon {\n margin-left: 6px;\n\n @include breakpoint($narrow) {\n margin-left: 8px;\n }\n\n svg {\n pointer-events: none;\n\n @include breakpoint($narrow) {\n height: 12px;\n width: 12px;\n }\n }\n}\n\n.hy-filter-group__divider {\n @include font-size(12px, 16px);\n color: var(--grayscale-dark);\n font-family: var(--main-font-family);\n margin: 4px 6px;\n\n @include breakpoint($narrow) {\n @include font-size(14px, 16px);\n letter-spacing: -0.3px;\n }\n}\n","import {Component, Host, h, Prop, Watch} from '@stencil/core';\n\nexport interface IFilterGroupFilter {\n id: string | number;\n label: string;\n}\n\n@Component({\n tag: 'hy-filter-group',\n styleUrl: 'hy-filter-group.scss',\n shadow: false,\n})\nexport class HyFilterGroup {\n private _filterGroupFilters: IFilterGroupFilter[];\n @Prop() filterGroupLabel: string;\n @Prop() filterGroupFilters: IFilterGroupFilter[] | string;\n\n @Watch('filterGroupFilters')\n arrayDataWatcher(newValue: IFilterGroupFilter[] | string) {\n if (typeof newValue === 'string') {\n this._filterGroupFilters = JSON.parse(newValue);\n } else {\n this._filterGroupFilters = newValue;\n }\n }\n\n componentWillLoad() {\n this.arrayDataWatcher(this.filterGroupFilters);\n }\n\n // TODO: Finish handleFilterDeselect functionality with real data.\n handleFilterDeselect(id) {\n console.log(id);\n }\n\n render() {\n return (\n <Host class=\"hy-filter-group\">\n <ul class=\"hy-filter-group__listing\">\n <li>\n <h3 class=\"hy-filter-group__label\">{this.filterGroupLabel}</h3>\n </li>\n {this._filterGroupFilters.map(({id, label}) => (\n <hy-filter-group-item\n filter-group-item-id={id}\n filter-group-item-label={label}\n onClick={() => this.handleFilterDeselect(id)}\n ></hy-filter-group-item>\n ))}\n </ul>\n </Host>\n );\n }\n}\n","import {Component, h, Prop} from '@stencil/core';\nimport {ColorVariant} from '../../utils/utils';\n\n@Component({\n tag: 'hy-filter-group-item',\n shadow: false,\n})\nexport class HyFilterGroupItem {\n @Prop() filterGroupItemId: string | number;\n @Prop() filterGroupItemLabel: string;\n\n render() {\n return (\n <li class=\"hy-filter-group__filter\">\n <button type=\"button\" class=\"hy-filter-group__button\" aria-label={`Deselect ${this.filterGroupItemLabel}`}>\n {this.filterGroupItemLabel}\n <hy-icon\n class=\"hy-filter-group__button-icon\"\n icon={'hy-icon-remove'}\n size={10}\n aria-hidden=\"true\"\n fill={ColorVariant.grey_dark}\n />\n </button>\n <slot />\n </li>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-filter__list-type {\n display: none;\n\n @include breakpoint($wide) {\n display: flex;\n align-items: center;\n font-family: var(--main-font-family);\n }\n\n span {\n @include breakpoint($wide) {\n @include font-size(14px, 18px);\n @include font-weight($semibold);\n color: var(--grayscale-black);\n letter-spacing: -0.5px;\n text-align: right;\n }\n @include breakpoint($xlarge) {\n @include font-size(16px, 20px);\n }\n }\n\n &__list {\n background: var(--grayscale-background-box);\n border: none;\n margin: 0 8px;\n padding: 10px;\n\n svg {\n background-color: var(--grayscale-background-box);\n fill: var(--brand-main-light);\n }\n &.is-active {\n background: white;\n border: black 1px solid;\n\n svg {\n background-color: var(--grayscale-white);\n fill: var(--grayscale-black);\n }\n }\n }\n &__list:hover {\n cursor: pointer;\n }\n\n &__grid {\n background: var(--grayscale-background-box);\n border: none;\n padding: 10px;\n\n svg {\n background-color: var(--grayscale-background-box);\n fill: var(--brand-main-light);\n }\n\n &.is-active {\n background: white;\n border: black 1px solid;\n\n svg {\n background-color: var(--grayscale-white);\n fill: var(--grayscale-black);\n }\n }\n }\n\n &__grid:hover {\n cursor: pointer;\n }\n}\n","import {Component, h, Prop} from '@stencil/core';\nimport {ListStyleVariants} from '../../utils/utils';\n\n@Component({\n tag: 'hy-filter-list-type',\n styleUrl: 'hy-filter-list-type.scss',\n shadow: false,\n})\nexport class HyFilterListType {\n @Prop() filterLabel?: string;\n @Prop() filterValue?: string;\n\n render() {\n return (\n <div class=\"hy-filter__list-type\">\n <span>{this.filterLabel}</span>\n <button\n type=\"button\"\n class={{\n 'hy-filter-item': true,\n 'hy-filter__list-type__list': true,\n 'is-active': this.filterValue == ListStyleVariants.list,\n }}\n aria-label={`${this.filterLabel}--list`}\n >\n <hy-icon class=\"hy-filter-group__button-icon\" icon={'hy-icon-list-style-list'} size={16} aria-hidden=\"true\" />\n </button>\n <button\n type=\"button\"\n class={{\n 'hy-filter-item': true,\n 'hy-filter__list-type__grid': true,\n 'is-active': this.filterValue == ListStyleVariants.grid,\n }}\n aria-label={`${this.filterLabel}--grid`}\n >\n <hy-icon class=\"hy-filter-group__button-icon\" icon={'hy-icon-list-style-grid'} size={16} aria-hidden=\"true\" />\n </button>\n </div>\n );\n }\n}\n",".hy-filter-visibility-tool {\n @include font-size(14px, 20px);\n align-items: center;\n background-color: transparent;\n border: 0;\n color: var(--link-blue);\n display: inline-flex;\n font-family: var(--main-font-family);\n font-weight: $semibold;\n letter-spacing: -0.35px;\n padding: 0;\n margin-right: 1rem;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 20px);\n letter-spacing: -0.5px;\n }\n\n &:hover {\n color: var(--brand-main);\n cursor: pointer;\n\n svg {\n fill: var(--brand-main);\n }\n }\n\n &:focus {\n color: var(--brand-main);\n outline-offset: 1px;\n outline: 2px solid var(--brand-main);\n\n svg {\n fill: var(--brand-main);\n }\n }\n}\n\n.hy-filter-visibility-tool__icon {\n flex-shrink: 0;\n margin-right: 6px;\n\n svg {\n fill: var(--link-blue);\n\n @include breakpoint($narrow) {\n height: 16px;\n width: 16px;\n }\n }\n}\n","import {Component, Host, h, Prop} from '@stencil/core';\n\n@Component({\n tag: 'hy-filter-visibility-tool',\n styleUrl: 'hy-filter-visibility-tool.scss',\n shadow: false,\n})\nexport class HyFilterVisibilityTool {\n @Prop() filterVisibilityToolType: 'toggle' | 'reset';\n\n render() {\n switch (this.filterVisibilityToolType) {\n case 'toggle':\n return (\n <Host>\n <hy-filter-visibility-tool-toggle />\n </Host>\n );\n\n case 'reset':\n return (\n <Host>\n <hy-filter-visibility-tool-reset />\n </Host>\n );\n }\n }\n}\n","import {Component, h} from '@stencil/core';\n\n@Component({\n tag: 'hy-filter-visibility-tool-reset',\n shadow: false,\n})\nexport class HyFilterVisibilityToolReset {\n render() {\n return (\n <button class=\"hy-filter-visibility-tool hy-filter-visibility-tool--reset\" type=\"button\">\n <hy-icon class=\"hy-filter-visibility-tool__icon\" icon={'hy-icon-remove'} size={14} aria-hidden=\"true\" />\n Reset filters\n </button>\n );\n }\n}\n","import {Component, h, Host} from '@stencil/core';\n\n@Component({\n tag: 'hy-filter-visibility-tool-toggle',\n shadow: false,\n})\nexport class HyFilterVisibilityToolToggle {\n render() {\n return (\n <Host>\n <button class=\"hy-filter-visibility-tool hy-filter-visibility-tool--show-more\" type=\"button\">\n <hy-icon class=\"hy-filter-visibility-tool__icon\" icon={'hy-icon-plus'} size={12} aria-hidden=\"true\" />\n Show more filters\n </button>\n <button class=\"hy-filter-visibility-tool hy-filter-visibility-tool--show-less\" type=\"button\">\n <hy-icon class=\"hy-filter-visibility-tool__icon\" icon={'hy-icon-minus'} size={12} aria-hidden=\"true\" />\n Show less filters\n </button>\n </Host>\n );\n }\n}\n",".hy-footer {\n display: block;\n}\n","import {Component, h} from '@stencil/core';\n\n@Component({\n tag: 'hy-footer',\n styleUrl: 'hy-footer.scss',\n shadow: false,\n})\nexport class HyFooter {\n render() {\n const classAttributes = ['hy-footer'];\n return (\n <footer class={classAttributes.join(' ')}>\n <slot></slot>\n </footer>\n );\n }\n}\n",".hy-footer-action {\n align-items: center;\n border-top: 1px solid var(--grayscale-medium-dark);\n display: flex;\n flex-direction: row;\n padding: 8px 16px 16px 16px;\n place-content: center space-between;\n width: 100%;\n\n @include breakpoint($narrow) {\n margin: 0 auto;\n max-width: $fullhd;\n padding: 16px 24px 16px 24px;\n }\n\n @include breakpoint($wide) {\n padding: 16px 32px 24px 32px;\n }\n\n &__updated-text {\n @include font-size(14px, 24px);\n\n color: var(--grayscale-dark);\n font-family: var(--main-font-family);\n letter-spacing: 0;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 24px);\n }\n }\n\n &__scroll-up {\n align-items: center;\n display: flex;\n\n .hy-footer-action__up-button {\n background-color: var(--brand-main-light);\n border: 0;\n box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.05);\n padding: 8px;\n\n &:hover {\n cursor: pointer;\n }\n }\n\n label {\n @include font-size(16px, 24px);\n\n color: var(--grayscale-dark);\n font-family: var(--main-font-family);\n letter-spacing: 0;\n margin-right: 8px;\n }\n\n svg {\n fill: var(--grayscale-white);\n }\n\n &:hover {\n label {\n text-decoration: underline;\n }\n .hy-footer-action__up-button {\n background-color: var(--brand-main);\n }\n }\n }\n}\n","import {Component, Host, Prop, Listen, h} from '@stencil/core';\n\nlet scrollTimeout = null;\n\n@Component({\n tag: 'hy-footer-action',\n styleUrl: 'hy-footer-action.scss',\n shadow: false,\n})\nexport class HyFooterAction {\n /**\n * String of text for updated text to be displayed.\n */\n @Prop() updatedText: string;\n /**\n * Up button label.\n */\n @Prop() upButtonLabel: string;\n\n disconnectedCallback() {\n clearTimeout(scrollTimeout);\n }\n\n @Listen('scrollTop', {capture: true}) scrollTop() {\n const hyLogo = document.querySelector('.hy-site-logo a') as HTMLElement;\n window.scrollTo({top: 0, behavior: 'smooth'});\n scrollTimeout = window.setTimeout(() => {\n hyLogo.focus();\n }, 500);\n }\n\n render() {\n const classAttributes = ['hy-footer-action'].join(' ');\n\n return (\n <Host class={classAttributes}>\n <span class={'hy-footer-action__updated-text'}>{this.updatedText}</span>\n {this.upButtonLabel && (\n <span class=\"hy-footer-action__scroll-up\">\n <label id=\"up-label\" htmlFor=\"scroll-up\">\n {this.upButtonLabel}\n </label>\n <button\n name=\"scroll-up\"\n aria-labelledby=\"up-label\"\n onClick={() => this.scrollTop()}\n class=\"hy-footer-action__up-button\"\n type=\"button\"\n >\n <hy-icon class={'hy-footer-action__up-icon'} icon={'hy-icon-arrow-up'} size={26} />\n </button>\n </span>\n )}\n </Host>\n );\n }\n}\n",".hy-footer-base--content-container {\n background-color: var(--grayscale-black);\n display: block;\n max-width: 100%;\n}\n\n.hy-footer-base {\n background-color: var(--grayscale-black);\n display: flex;\n flex-direction: column-reverse;\n max-height: 100%;\n padding: 32px 16px 32px 16px;\n place-content: center space-between;\n position: relative;\n width: 100%;\n\n @include breakpoint($narrow) {\n flex-direction: column-reverse;\n margin: 0 auto;\n max-width: $fullhd;\n padding: 32px 24px 32px 24px;\n }\n\n @include breakpoint($wide) {\n flex-direction: row;\n padding: 36px 32px 36px 32px;\n }\n\n @include breakpoint($extrawide) {\n padding: 40px 32px 40px 32px;\n }\n\n &__left {\n align-items: center;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n margin-top: 24px;\n\n @include breakpoint($narrow) {\n align-items: center;\n width: 100%;\n }\n\n @include breakpoint($wide) {\n align-items: flex-start;\n width: 31.11%;\n }\n }\n\n &__logo {\n @include font-size(18px, 16px);\n\n font-family: var(--main-font-family);\n font-weight: bold;\n letter-spacing: -0.9px;\n\n .hy-site-logo__label {\n min-width: max-content;\n max-width: max-content;\n }\n }\n\n &__content {\n @include font-size(16px, 24px);\n\n color: var(--grayscale-white);\n font-family: var(--main-font-family);\n font-weight: 600;\n letter-spacing: -0.1px;\n margin: 32px 0;\n white-space: pre-line;\n\n @include breakpoint($narrow) {\n margin: 32px 0;\n }\n\n @include breakpoint($wide) {\n margin: 42px 0;\n }\n\n @include breakpoint($extrawide) {\n margin: 54px 0;\n }\n }\n\n &__some {\n align-items: center;\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-bottom: 64px;\n z-index: 2;\n\n @include breakpoint($wide) {\n align-items: flex-start;\n flex-direction: column;\n margin-bottom: 0;\n }\n\n @include breakpoint($extrawide) {\n align-items: center;\n flex-direction: row;\n }\n\n &__label {\n @include font-size(16px, 24px);\n\n color: var(--grayscale-white);\n font-family: var(--main-font-family);\n font-weight: 600;\n letter-spacing: -0.1px;\n margin-bottom: 8px;\n margin-right: 24px;\n\n @include breakpoint($wide) {\n margin-bottom: 8px;\n }\n }\n\n &__items {\n align-items: center;\n display: flex;\n flex-direction: row;\n }\n\n &__item {\n margin-right: 24px;\n\n :last-child() {\n margin-right: 0;\n }\n\n &:hover {\n color: var(--grayscale-medium) !important;\n svg {\n fill: var(--grayscale-medium);\n }\n }\n }\n\n svg {\n fill: var(--grayscale-white);\n }\n }\n\n &__right {\n display: flex;\n flex-wrap: wrap;\n flex-direction: row;\n justify-content: flex-start;\n max-height: 100%;\n width: 100%;\n\n @include breakpoint($narrow) {\n margin-bottom: 32px;\n max-height: 300px;\n width: calc(100% + 24px);\n }\n\n @include breakpoint($wide) {\n max-height: 350px;\n width: 65.56%;\n }\n }\n\n &__copy {\n @include font-size(16px, 24px);\n\n bottom: 40px;\n color: var(--grayscale-white);\n display: inline-block;\n font-family: var(--main-font-family);\n font-weight: 600;\n letter-spacing: -0.1px;\n position: absolute;\n right: 50%;\n text-align: center;\n transform: translateX(50%);\n width: 100%;\n\n @include breakpoint($narrow) {\n bottom: 32px;\n right: 50%;\n transform: translateX(50%);\n }\n\n @include breakpoint($wide) {\n bottom: 36px;\n right: 32px;\n text-align: right;\n transform: none;\n }\n\n @include breakpoint($extrawide) {\n bottom: 40px;\n }\n }\n}\n","export interface FooterBaseLinks {\n label: string;\n url: string;\n isActive?: boolean;\n mainlink?: boolean;\n items: Array<FooterBaseLinks>;\n}\n\nexport interface FooterBaseSome {\n label: string;\n url: string;\n type: string;\n}\n\nimport {Component, ComponentInterface, Host, Prop, h} from '@stencil/core';\nimport {FooterLinkItemColor, SiteLogoSize, ColorVariant, FooterVariant} from '../../../utils/utils';\nimport {jsonParserWorker} from '../../../global/globalScript';\n\n@Component({\n tag: 'hy-footer-base',\n styleUrl: 'hy-footer-base.scss',\n shadow: false,\n})\nexport class HyFooterBase implements ComponentInterface {\n /**\n * Link item color\n */\n @Prop() color: FooterLinkItemColor = FooterLinkItemColor.white;\n /**\n * Logo url\n */\n @Prop() logoUrl?: string;\n /**\n * Logo label\n */\n @Prop() logoLabel?: string;\n /**\n * Logo size\n */\n @Prop() size: SiteLogoSize = SiteLogoSize.big;\n /**\n * Label for some links\n */\n @Prop() someLabel?: string;\n /**\n * Copyright text\n */\n @Prop() copyrightText: string;\n\n private _dataFooterBaseLinks: FooterBaseLinks[];\n private _dataFooterBaseSome: FooterBaseSome[];\n /**\n * Footer links to be displayed\n */\n @Prop() dataFooterBaseLinks: FooterBaseLinks[] | string;\n /**\n * Footer some links\n */\n @Prop() dataFooterBaseSome: FooterBaseSome[] | string;\n\n async componentWillLoad() {\n this._dataFooterBaseLinks = await jsonParserWorker(this.dataFooterBaseLinks);\n this._dataFooterBaseSome = await jsonParserWorker(this.dataFooterBaseSome);\n }\n\n render() {\n const logoColor = ColorVariant.white;\n const classAttributes = ['hy-footer-base--content-container'].join(' ');\n const links = this._dataFooterBaseLinks as Array<FooterBaseLinks>;\n const some = this._dataFooterBaseSome as Array<FooterBaseSome>;\n\n return (\n <Host class={classAttributes}>\n <div class=\"hy-footer-base\">\n <div class=\"hy-footer-base__left\">\n <div class=\"hy-footer-base__logo\">\n <hy-site-logo\n type={FooterVariant.footer}\n size={56}\n color={logoColor}\n url={this.logoUrl}\n label={this.logoLabel}\n />\n </div>\n <div class=\"hy-footer-base__content\">\n <slot name=\"content\"></slot>\n </div>\n <div class=\"hy-footer-base__some\">\n <span class=\"hy-footer-base__some__label\">{this.someLabel}</span>\n <div class=\"hy-footer-base__some__items\">\n {some &&\n some.map((s) => {\n return (\n <a\n aria-label={s.label}\n href={s.url}\n class={`hy-footer-base__some__item`}\n title={s.label}\n target=\"_blank\"\n >\n <hy-icon icon={`hy-icon-some-${s.type}`} size={36} />\n </a>\n );\n })}\n </div>\n </div>\n </div>\n <div class=\"hy-footer-base__right\">\n {links &&\n links.map((link) => {\n return (\n <hy-footer-link-item\n label={link.label}\n url={link.url}\n color={FooterLinkItemColor.white}\n ></hy-footer-link-item>\n );\n })}\n {this.copyrightText && <span class=\"hy-footer-base__copy\">{this.copyrightText}</span>}\n </div>\n </div>\n </Host>\n );\n }\n}\n","/**\r\n * A collection of shims that provided minimal\r\n * support of WeakMap and Map classes.\r\n *\r\n * These implementations are not meant to be used outside of\r\n * ResizeObserver modules as they cover only a limited range\r\n * of use cases.\r\n */\r\n\r\n/* eslint-disable require-jsdoc */\r\nconst hasNativeCollections =\r\n typeof window.WeakMap === 'function' &&\r\n typeof window.Map === 'function';\r\n\r\nconst WeakMap = (() => {\r\n if (hasNativeCollections) {\r\n return window.WeakMap;\r\n }\r\n\r\n function getIndex(arr, key) {\r\n let result = -1;\r\n\r\n arr.some((entry, index) => {\r\n let matches = entry[0] === key;\r\n\r\n if (matches) {\r\n result = index;\r\n }\r\n\r\n return matches;\r\n });\r\n\r\n return result;\r\n }\r\n\r\n return class {\r\n constructor() {\r\n this.__entries__ = [];\r\n }\r\n\r\n get(key) {\r\n let index = getIndex(this.__entries__, key);\r\n\r\n return this.__entries__[index][1];\r\n }\r\n\r\n set(key, value) {\r\n let index = getIndex(this.__entries__, key);\r\n\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n } else {\r\n this.__entries__.push([key, value]);\r\n }\r\n }\r\n\r\n delete(key) {\r\n let entries = this.__entries__,\r\n index = getIndex(entries, key);\r\n\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n }\r\n\r\n has(key) {\r\n return !!~getIndex(this.__entries__, key);\r\n }\r\n };\r\n})();\r\n\r\nconst Map = (() => {\r\n if (hasNativeCollections) {\r\n return window.Map;\r\n }\r\n\r\n return class extends WeakMap {\r\n get size() {\r\n return this.__entries__.length;\r\n }\r\n\r\n clear() {\r\n this.__entries__.splice(0, this.__entries__.length);\r\n }\r\n\r\n entries() {\r\n return this.__entries__.slice();\r\n }\r\n\r\n keys() {\r\n return this.__entries__.map(entry => entry[0]);\r\n }\r\n\r\n values() {\r\n return this.__entries__.map(entry => entry[1]);\r\n }\r\n\r\n forEach(callback, ctx = null) {\r\n for (const entry of this.__entries__) {\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n }\r\n };\r\n})();\r\n\r\nexport {Map, WeakMap};\r\n","/**\r\n * A shim for performance.now method which falls back\r\n * to Date.now if the first one is not supported.\r\n *\r\n * @returns {Timestamp}\r\n */\r\nexport default (() => {\r\n if (\r\n window.performance &&\r\n typeof window.performance.now === 'function'\r\n ) {\r\n return () => window.performance.now();\r\n }\r\n\r\n return () => Date.now();\r\n})();\r\n","/**\r\n * A shim for requestAnimationFrame which falls back\r\n * to setTimeout if the first one is not supported.\r\n *\r\n * @returns {Number} Requests' identifier.\r\n */\r\nexport default (() => {\r\n if (\r\n window.requestAnimationFrame &&\r\n typeof window.requestAnimationFrame === 'function'\r\n ) {\r\n return window.requestAnimationFrame;\r\n }\r\n\r\n return callback => {\r\n return setTimeout(() => callback(Date.now()), 1000 / 60);\r\n };\r\n})();\r\n","import now from './shims/performance.now';\r\nimport requestAnimFrame from './shims/requestAnimationFrame';\r\n\r\nconst mutationsSupported = typeof window.MutationObserver === 'function';\r\n\r\n/**\r\n * Creates a wrapper function which ensures that\r\n * provided callback will be invoked only once\r\n * during the specified delay.\r\n *\r\n * @param {Function} callback - Function to be invoked.\r\n * @param {Number} [delay = 0] - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction debounce(callback, delay = 0) {\r\n let timeoutID = false;\r\n\r\n return function (...args) {\r\n if (timeoutID !== false) {\r\n clearTimeout(timeoutID);\r\n }\r\n\r\n timeoutID = setTimeout(() => {\r\n timeoutID = false;\r\n\r\n /* eslint-disable no-invalid-this */\r\n callback.apply(this, args);\r\n\r\n /* eslint-enable no-invalid-this */\r\n }, delay);\r\n };\r\n}\r\n\r\n/**\r\n * Controller class which handles updates of ResizeObserver instances.\r\n * It's meant to decide when and for how long it's necessary to run updates by listening to the windows\r\n * \"resize\" event along with a tracking of DOM mutations (nodes removal, changes of attributes, etc.).\r\n *\r\n * Transitions and animations are handled by running a repeatable update cycle either until the dimensions\r\n * of observed elements are changing or the timeout is reached (default timeout is 50 milliseconds).\r\n * Timeout value can be manually increased if transitions have a delay.\r\n *\r\n * Continuous update cycle will be used automatically in case if MutationObserver is not supported.\r\n */\r\nexport default class ResizeObserverController {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @param {Number} [idleTimeout = 0] - Idle timeout value.\r\n * @param {Boolean} [continuousUpdates = false] - Whether to use a continuous update cycle.\r\n */\r\n constructor(idleTimeout = 50, continuousUpdates = false) {\r\n this._idleTimeout = idleTimeout;\r\n this._isCycleContinuous = continuousUpdates;\r\n\r\n this._cycleStartTime = 0;\r\n\r\n // Indicates whether the update cycle is currently running.\r\n this._isCycleActive = false;\r\n\r\n // Indicates whether the update of observers is scheduled.\r\n this._isUpdateScheduled = false;\r\n\r\n // Indicates whether DOM listeners have been added.\r\n this._listenersEnabled = false;\r\n\r\n // Keeps reference to the instance of MutationObserver.\r\n this._mutationsObserver = null;\r\n\r\n // A list of connected observers.\r\n this._observers = [];\r\n\r\n // Fix value of \"this\" binding for the following methods.\r\n this.runUpdates = this.runUpdates.bind(this);\r\n this._resolveScheduled = this._resolveScheduled.bind(this);\r\n this._onMutation = this._onMutation.bind(this);\r\n\r\n // Function that will be invoked to re-run the\r\n // update cycle if continuous cycles are enabled.\r\n this._continuousCycleHandler = debounce(this.runUpdates, 200);\r\n }\r\n\r\n /**\r\n * Returns current idle timeout value.\r\n *\r\n * @returns {Number}\r\n */\r\n get idleTimeout() {\r\n return this._idleTimeout;\r\n }\r\n\r\n /**\r\n * Sets up new idle timeout value.\r\n *\r\n * @param {Number} value - New timeout value.\r\n */\r\n set idleTimeout(value) {\r\n this._idleTimeout = value;\r\n }\r\n\r\n /**\r\n * Tells whether continuous updates are enabled.\r\n *\r\n * @returns {Boolean}\r\n */\r\n get continuousUpdates() {\r\n return this._isCycleContinuous;\r\n }\r\n\r\n /**\r\n * Enables or disables continuous updates.\r\n *\r\n * @param {Boolean} value - Whether to enable or disable\r\n * continuous updates. Note that the value won't be applied\r\n * if MutationObserver is not supported.\r\n */\r\n set continuousUpdates(value) {\r\n if (mutationsSupported) {\r\n this._isCycleContinuous = value;\r\n }\r\n }\r\n\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserver} observer - Observer to be added.\r\n */\r\n connect(observer) {\r\n if (!this.isConnected(observer)) {\r\n this._observers.push(observer);\r\n }\r\n\r\n // Add listeners if they haven't been added yet.\r\n if (!this._listenersEnabled) {\r\n this._addListeners();\r\n }\r\n }\r\n\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserver} observer - Observer to be removed.\r\n */\r\n disconnect(observer) {\r\n let observers = this._observers,\r\n index = observers.indexOf(observer);\r\n\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n\r\n // Remove listeners if controller\r\n // has no connected observers.\r\n if (!observers.length && this._listenersEnabled) {\r\n this._removeListeners();\r\n }\r\n }\r\n\r\n /**\r\n * Tells whether provided observer is connected to controller.\r\n *\r\n * @param {ResizeObserver} observer - Observer to be checked.\r\n * @returns {Boolean}\r\n */\r\n isConnected(observer) {\r\n return !!~this._observers.indexOf(observer);\r\n }\r\n\r\n /**\r\n * Updates every observer from observers list and\r\n * notifies them of queued entries.\r\n *\r\n * @private\r\n * @returns {Boolean} Returns \"true\" if any observer\r\n * has detected changes in dimensions of its' elements.\r\n */\r\n _updateObservers() {\r\n let hasChanges = false;\r\n\r\n for (const observer of this._observers) {\r\n observer.gatherActive();\r\n\r\n if (observer.hasActive()) {\r\n hasChanges = true;\r\n\r\n observer.broadcastActive();\r\n }\r\n }\r\n\r\n return hasChanges;\r\n }\r\n\r\n /**\r\n * Starts the update cycle which will run either\r\n * until it detects changes in the dimensions of\r\n * elements or the idle timeout is reached.\r\n */\r\n runUpdates() {\r\n this._cycleStartTime = now();\r\n this._isCycleActive = true;\r\n\r\n this.scheduleUpdate();\r\n }\r\n\r\n /**\r\n * Schedules the update of observers.\r\n *\r\n * @private\r\n */\r\n scheduleUpdate() {\r\n if (!this._isUpdateScheduled) {\r\n this._isUpdateScheduled = true;\r\n\r\n requestAnimFrame(this._resolveScheduled);\r\n }\r\n }\r\n\r\n /**\r\n * Invokes the update of observers. It may re-run the\r\n * cycle if changes in observers have been detected.\r\n *\r\n * @private\r\n */\r\n _resolveScheduled() {\r\n const hasChanges = this._updateObservers();\r\n\r\n this._isUpdateScheduled = false;\r\n\r\n // Do nothing if cycle wasn't started.\r\n if (!this._isCycleActive) {\r\n return;\r\n }\r\n\r\n // Re-start cycle if changes have been detected.\r\n if (hasChanges) {\r\n this.runUpdates();\r\n } else if (this._hasRemainingTime()) {\r\n this.scheduleUpdate();\r\n } else {\r\n this._endUpdates();\r\n }\r\n }\r\n\r\n /**\r\n * Tells whether the update cycle has time remaining.\r\n *\r\n * @private\r\n * @returns {Boolean}\r\n */\r\n _hasRemainingTime() {\r\n const timePassed = now() - this._cycleStartTime;\r\n\r\n return this._idleTimeout - timePassed > 0;\r\n }\r\n\r\n /**\r\n * Callback which is invoked when update cycle\r\n * is finished. It may start a new cycle if continuous\r\n * updates are enabled.\r\n *\r\n * @private\r\n */\r\n _endUpdates() {\r\n this._isCycleActive = false;\r\n\r\n if (this._isCycleContinuous && this._listenersEnabled) {\r\n this._continuousCycleHandler();\r\n }\r\n }\r\n\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n */\r\n _addListeners() {\r\n // Do nothing if listeners have been already added.\r\n if (this._listenersEnabled) {\r\n return;\r\n }\r\n\r\n this._listenersEnabled = true;\r\n\r\n // Repeatable cycle is used here because the resize event may\r\n // lead to continuous changes, e.g. when width or height of an element\r\n // are controlled by CSS transitions.\r\n window.addEventListener('resize', this.runUpdates);\r\n\r\n // Fall back to an infinite cycle.\r\n if (!mutationsSupported) {\r\n this._isCycleContinuous = true;\r\n\r\n this.runUpdates();\r\n } else {\r\n // Subscribe to DOM mutations as they may lead to\r\n // changes in dimensions of elements.\r\n this._mutationsObserver = new MutationObserver(this._onMutation);\r\n\r\n this._mutationsObserver.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n */\r\n _removeListeners() {\r\n // Do nothing if listeners have been already removed.\r\n if (!this._listenersEnabled) {\r\n return;\r\n }\r\n\r\n window.removeEventListener('resize', this.runUpdates);\r\n\r\n if (this._mutationsObserver) {\r\n this._mutationsObserver.disconnect();\r\n }\r\n\r\n this._mutationsObserver = null;\r\n this._listenersEnabled = false;\r\n }\r\n\r\n /**\r\n * DOM mutations handler.\r\n *\r\n * @private\r\n * @param {Array<MutationRecord>} entries - An array of mutation records.\r\n */\r\n _onMutation(entries) {\r\n // Check if at least one entry\r\n // contains attributes changes.\r\n const attrsChanged = entries.some(entry => {\r\n return entry.type === 'attributes';\r\n });\r\n\r\n // It's expected that animations may start only\r\n // after some attribute changes its' value.\r\n attrsChanged ?\r\n this.runUpdates() :\r\n this.scheduleUpdate();\r\n }\r\n}\r\n","// Placeholder of a content rectangle.\r\nconst emptyRect = {\r\n width: 0,\r\n height: 0,\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n left: 0\r\n};\r\n\r\n/**\r\n * Extracts paddings data from the provided element.\r\n *\r\n * @param {Element} target - Element whose paddings to be extracted.\r\n * @returns {Object} Object that contains\r\n * left, top, right and bottom padding values.\r\n */\r\nfunction getPaddings(target) {\r\n const styles = window.getComputedStyle(target);\r\n const keys = ['top', 'right', 'bottom', 'left'];\r\n\r\n const paddings = {};\r\n\r\n for (const key of keys) {\r\n const value = styles['padding-' + key].replace('px', '');\r\n\r\n paddings[key] = parseFloat(value);\r\n }\r\n\r\n return paddings;\r\n}\r\n\r\n/**\r\n* Subtracts paddings from provided\r\n* dimensions and creates a content rectangle.\r\n*\r\n* @param {Number} clientWidth - Width including paddings.\r\n* @param {Number} clientHeight - Height including paddings.\r\n* @param {Object} paddings - Paddings data.\r\n* @returns {ClientRect}\r\n*/\r\nfunction createContentRect(clientWidth, clientHeight, paddings) {\r\n const top = paddings.top;\r\n const left = paddings.left;\r\n\r\n const width = clientWidth - (left + paddings.right);\r\n const height = clientHeight - (top + paddings.bottom);\r\n\r\n return {\r\n width,\r\n height,\r\n top,\r\n right: width + left,\r\n bottom: height + top,\r\n left\r\n };\r\n}\r\n\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGElement} target - Element whose content\r\n * rectangle needs to be calculated.\r\n * @returns {ClientRect}\r\n */\r\nfunction getSVGContentRect(target) {\r\n const bbox = target.getBBox();\r\n\r\n return createContentRect(bbox.width, bbox.height, emptyRect);\r\n}\r\n\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element whose content\r\n * rectangle needs to be calculated.\r\n * @returns {ClientRect}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n const width = target.clientWidth;\r\n const height = target.clientHeight;\r\n\r\n // It's not necessary to proceed with calculations\r\n // as it's already known that the rectangle is empty.\r\n if (!width && !height) {\r\n return emptyRect;\r\n }\r\n\r\n return createContentRect(width, height, getPaddings(target));\r\n}\r\n\r\n/**\r\n * Checks whether provided element\r\n * is an instance of SVGElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {Boolean}\r\n */\r\nfunction isSVGElement(target) {\r\n return target instanceof window.SVGElement;\r\n}\r\n\r\n/**\r\n * Calculates an appropriate content rectangle\r\n * for provided html or svg element.\r\n *\r\n * @param {Element} target - Element whose content rectangle\r\n * needs to be calculated.\r\n * @returns {ClientRect}\r\n */\r\nfunction getContentRect(target) {\r\n return isSVGElement(target) ?\r\n getSVGContentRect(target) :\r\n getHTMLElementContentRect(target);\r\n}\r\n\r\n/**\r\n * Class that is responsible for computations of the\r\n * content rectangle of provided DOM element and\r\n * for keeping track of its' changes.\r\n */\r\nexport default class ResizeObservation {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element whose content\r\n * rectangle needs to be observed.\r\n */\r\n constructor(target) {\r\n this.target = target;\r\n\r\n // Keeps reference to the last observed content rectangle.\r\n this._contentRect = emptyRect;\r\n\r\n // Broadcasted width of content rectangle.\r\n this.broadcastWidth = 0;\r\n\r\n // Broadcasted height of content rectangle.\r\n this.broadcastHeight = 0;\r\n }\r\n\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight'\r\n * properties with a data from the corresponding\r\n * properties of the last observed content rectangle.\r\n *\r\n * @returns {ClientRect} Last observed content rectangle.\r\n */\r\n broadcastRect() {\r\n const rect = this._contentRect;\r\n\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n\r\n return rect;\r\n }\r\n\r\n /**\r\n * Updates content rectangle and tells whether its'\r\n * width or height properties have changed since\r\n * the last broadcast.\r\n *\r\n * @returns {Boolean}\r\n */\r\n isActive() {\r\n const rect = getContentRect(this.target);\r\n\r\n this._contentRect = rect;\r\n\r\n return (\r\n rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight\r\n );\r\n }\r\n}\r\n","export default class ResizeObserverEntry {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {ClientRect} rectData - Data of the elements' content rectangle.\r\n */\r\n constructor(target, rectData) {\r\n const contentRect = {};\r\n\r\n // According to the specification following properties\r\n // are not writable and in native implementation\r\n // they are also not enumerable.\r\n Object.defineProperties(contentRect, {\r\n width: {value: rectData.width},\r\n height: {value: rectData.height},\r\n top: {value: rectData.top},\r\n right: {value: rectData.right},\r\n bottom: {value: rectData.bottom},\r\n left: {value: rectData.left}\r\n });\r\n\r\n Object.defineProperties(this, {\r\n target: {value: target},\r\n contentRect: {value: contentRect}\r\n });\r\n }\r\n}\r\n","import {Map} from './shims/es6-collections';\r\nimport ResizeObservation from './ResizeObservation';\r\nimport ResizeObserverEntry from './ResizeObserverEntry';\r\n\r\nexport default class ResizeObserver {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {Function} callback - Callback function which will be invoked\r\n * when one of the observed elements changes its' content rectangle.\r\n * @param {ResizeObsreverController} controller - Controller instance\r\n * which is responsible for the updates of observer.\r\n * @param {ResizeObserver} publicObserver - Reference\r\n * to the public ResizeObserver instance which will be passed\r\n * to callback function.\r\n */\r\n constructor(callback, controller, publicObserver) {\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n\r\n // Reference to the callback function.\r\n this._callback = callback;\r\n\r\n // A registry of ResizeObservation instances.\r\n this._targets = new Map();\r\n\r\n // A collection of resize observations that have detected\r\n // changes in dimensions of elements.\r\n this._activeTargets = [];\r\n\r\n // Reference to associated ResizeObserverController.\r\n this._controller = controller;\r\n\r\n // Public ResizeObserver instance which will be passed\r\n // to callback function.\r\n this._publicObserver = publicObserver;\r\n }\r\n\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n observe(target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n\r\n if (!(target instanceof Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n\r\n const targets = this._targets;\r\n\r\n // Do nothing if element is already being observed.\r\n if (targets.has(target)) {\r\n return;\r\n }\r\n\r\n targets.set(target, new ResizeObservation(target));\r\n\r\n // Add observer to controller\r\n // if it hasn't been connected yet.\r\n if (!this._controller.isConnected(this)) {\r\n this._controller.connect(this);\r\n }\r\n\r\n // Update observations.\r\n this._controller.runUpdates();\r\n }\r\n\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n */\r\n unobserve(target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n\r\n if (!(target instanceof Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n\r\n const targets = this._targets;\r\n\r\n // Do nothing if element is not being observed.\r\n if (!targets.has(target)) {\r\n return;\r\n }\r\n\r\n // Remove element and an associated with\r\n // it ResizeObsrvation instance from registry.\r\n targets.delete(target);\r\n\r\n if (!targets.size) {\r\n this.disconnect();\r\n }\r\n }\r\n\r\n /**\r\n * Stops observing all elements and\r\n * clears the observations list.\r\n */\r\n disconnect() {\r\n this.clearActive();\r\n this._targets.clear();\r\n\r\n this._controller.disconnect(this);\r\n }\r\n\r\n /**\r\n * Invokes initial callback function with a list\r\n * of ResizeObserverEntry instances collected from\r\n * active resize observations.\r\n */\r\n broadcastActive() {\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n\r\n const publicObserver = this._publicObserver;\r\n\r\n const entries = this._activeTargets.map(observation => {\r\n return new ResizeObserverEntry(\r\n observation.target,\r\n observation.broadcastRect()\r\n );\r\n });\r\n\r\n this.clearActive();\r\n\r\n this._callback.call(publicObserver, entries, publicObserver);\r\n }\r\n\r\n /**\r\n * Clears the collection of pending/active observations.\r\n */\r\n clearActive() {\r\n this._activeTargets.splice(0);\r\n }\r\n\r\n /**\r\n * Tells whether the observer has\r\n * pending observations.\r\n *\r\n * @returns {Boolean}\r\n */\r\n hasActive() {\r\n return !!this._activeTargets.length;\r\n }\r\n\r\n /**\r\n * Clears an array of previously collected active observations\r\n * and collects observation instances whose associated element\r\n * has changes in its' content rectangle.\r\n */\r\n gatherActive() {\r\n this.clearActive();\r\n\r\n const activeTargets = this._activeTargets;\r\n\r\n this._targets.forEach(observation => {\r\n if (observation.isActive()) {\r\n activeTargets.push(observation);\r\n }\r\n });\r\n }\r\n}\r\n","import {WeakMap} from './shims/es6-collections';\r\nimport ResizeObserverController from './ResizeObserverController';\r\nimport _ResizeObserver from './_ResizeObserver';\r\n\r\n// Controller which will be assigned to all instances of ResizeObserver.\r\nconst controller = new ResizeObserverController();\r\n\r\n// Registry of internal observers.\r\nconst observers = new WeakMap();\r\n\r\n/**\r\n * ResizeObservers' \"Proxy\" class which is meant to hide private\r\n * properties and methods from public instances.\r\n *\r\n * Additionally it implements \"idleTimeout\" and \"continuousUpdates\" static property\r\n * accessors to give a control over the behavior of ResizeObserverController\r\n * instance. Changes made to these properties will affect all future and\r\n * existing observers.\r\n */\r\nclass ResizeObserver {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {Function} callback - Callback which will\r\n * be invoked when dimensions of one of the\r\n * observed elements have been changed.\r\n */\r\n constructor(callback) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n\r\n const observer = new _ResizeObserver(callback, controller, this);\r\n\r\n // Register an internal observer.\r\n observers.set(this, observer);\r\n }\r\n\r\n /**\r\n * Extracts controllers' idle timeout value.\r\n *\r\n * @returns {Number}\r\n */\r\n static get idleTimeout() {\r\n return controller.idleTimeout;\r\n }\r\n\r\n /**\r\n * Sets up new idle timeout.\r\n *\r\n * @param {Number} value - New timeout value.\r\n */\r\n static set idleTimeout(value) {\r\n if (typeof value !== 'number') {\r\n throw new TypeError('type of \"idleTimeout\" value must be a number.');\r\n }\r\n\r\n if (typeof value < 0) {\r\n throw new TypeError('\"idleTimeout\" value must be greater than 0.');\r\n }\r\n\r\n controller.idleTimeout = value;\r\n }\r\n\r\n /**\r\n * Tells whether continuous updates are enabled.\r\n *\r\n * @returns {Boolean}\r\n */\r\n static get continuousUpdates() {\r\n return controller.continuousUpdates;\r\n }\r\n\r\n /**\r\n * Enables or disables continuous updates.\r\n *\r\n * @param {Boolean} value - Whether to enable or disable\r\n * continuous updates.\r\n */\r\n static set continuousUpdates(value) {\r\n if (typeof value !== 'boolean') {\r\n throw new TypeError('type of \"continuousUpdates\" value must be a boolean.');\r\n }\r\n\r\n controller.continuousUpdates = value;\r\n }\r\n}\r\n\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(method => {\r\n ResizeObserver.prototype[method] = function () {\r\n return observers.get(this)[method](...arguments);\r\n };\r\n});\r\n\r\nexport default ResizeObserver;\r\n","import ResizeObserverPolyfill from './src/ResizeObserver';\r\n\r\nlet ResizeObserver = ResizeObserverPolyfill;\r\n\r\n// Export existing implementation if it's available.\r\nif (typeof window.ResizeObserver === 'function') {\r\n ResizeObserver = window.ResizeObserver;\r\n}\r\n\r\nexport default ResizeObserver;\r\n",":host {\n display: block;\n}\n\n.hy-footer-info {\n display: flex;\n flex-direction: column;\n max-height: auto;\n padding: 0 16px 40px 16px;\n place-content: center space-between;\n\n @include breakpoint($narrow) {\n flex-direction: column;\n margin: 0 auto;\n max-width: $fullhd;\n padding: 0 24px 32px 24px;\n }\n\n @include breakpoint($wide) {\n flex-direction: row;\n padding: 0 32px 36px 32px;\n }\n\n @include breakpoint($extrawide) {\n padding: 0 32px 40px 32px;\n }\n\n &__content {\n margin-bottom: 24px;\n width: 100%;\n\n @include breakpoint($narrow) {\n margin-bottom: 32px;\n width: 100%;\n }\n\n @include breakpoint($wide) {\n width: 31.11%;\n }\n\n .hy-heading {\n padding-top: 0 !important;\n }\n }\n\n &__ingress {\n @include font-size(15px, 20px);\n @include font-weight($regular);\n letter-spacing: -0.09px;\n\n color: var(--grayscale-black);\n font-family: var(--main-font-family);\n padding-bottom: 24px;\n\n @include breakpoint($wide) {\n @include font-size(16px, 22px);\n letter-spacing: -0.1px;\n padding-bottom: 16px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(17px, 26px); // Paragraph Large size\n }\n\n @include breakpoint($extrawide) {\n padding-bottom: 24px;\n }\n\n a {\n @include font-size(14px, 20px); // Paragraph Small size\n color: var(--link-blue);\n font-family: var(--main-font-family);\n font-weight: 600;\n display: inline-flex;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 24px);\n letter-spacing: -0.1px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(17px, 26px); // Paragraph Large size\n }\n\n &:hover {\n color: var(--brand-main);\n }\n }\n\n a[target='_blank']:after {\n display: block;\n content: url(\"data:image/svg+xml;utf8, <svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 30 29' fill='rgb(4,121,165)'> <polygon points='29.207 13.783 14.756 .717 14.055 0 11.402 3.118 10.732 3.835 19.665 11.974 0 11.974 0 17.026 19.756 17.026 11.494 24.447 10.823 25.071 11.402 25.882 13.476 28.189 14.055 29 30 14.594' /> </svg>\");\n margin-left: 3px;\n transform: rotate(315deg);\n\n &:hover {\n content: url(\"data:image/svg+xml;utf8, <svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 30 29' fill='pink'> <polygon points='29.207 13.783 14.756 .717 14.055 0 11.402 3.118 10.732 3.835 19.665 11.974 0 11.974 0 17.026 19.756 17.026 11.494 24.447 10.823 25.071 11.402 25.882 13.476 28.189 14.055 29 30 14.594' /> </svg>\");\n }\n }\n\n a[target='_blank']:hover {\n &:after {\n content: url(\"data:image/svg+xml;utf8, <svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 30 29' fill='rgb(14,104,139)'> <polygon points='29.207 13.783 14.756 .717 14.055 0 11.402 3.118 10.732 3.835 19.665 11.974 0 11.974 0 17.026 19.756 17.026 11.494 24.447 10.823 25.071 11.402 25.882 13.476 28.189 14.055 29 30 14.594' /> </svg>\");\n }\n }\n }\n\n &__links {\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n max-height: auto;\n overflow: hidden;\n width: 100%;\n\n @include breakpoint($narrow) {\n align-content: space-between;\n max-height: 555px;\n width: 100%;\n }\n @include breakpoint($wide) {\n max-height: 530px;\n width: 65.56%;\n }\n @include breakpoint($overwide) {\n max-height: 460px;\n }\n\n &.is-group:not(.luomus) {\n @include breakpoint($narrow) {\n flex-direction: row;\n max-height: none;\n }\n }\n }\n\n .hy-accordion__content--inner-wrapper {\n width: 100%;\n }\n}\n\n.hy-footer-info.luomus {\n background-color: var(--grayscale-black);\n color: var(--grayscale-white);\n padding-top: 40px;\n\n .hy-footer-info__logo {\n @include font-size(18px, 16px);\n font-family: var(--main-font-family);\n font-weight: bold;\n letter-spacing: -0.9px;\n\n .hy-site-logo__label {\n max-width: 100%;\n }\n }\n\n .hy-footer-info__branding {\n padding: 22px 0 62px;\n a {\n img {\n height: 32px;\n width: 148px;\n }\n }\n }\n\n .luomus-footer-content {\n color: var(--grayscale-white);\n margin: 8px 0;\n\n &__link {\n @include font-size(18px, 24px);\n @include font-weight($bold);\n\n color: var(--grayscale-white);\n font-family: var(--main-font-family);\n font-style: normal;\n letter-spacing: -0.36px;\n text-decoration: none;\n }\n\n &__description {\n @include font-size(16px, 22px);\n @include font-weight($regular);\n\n color: var(--grayscale-white);\n font-family: var(--main-font-family);\n font-style: normal;\n letter-spacing: -0.1px;\n padding-bottom: 32px;\n }\n }\n}\n","export interface FooterInfoLinks {\n label: string;\n url: string;\n isExternal: string;\n isActive?: boolean;\n mainlink?: boolean;\n items: Array<FooterInfoLinks>;\n}\n\nexport interface LuomusFooterContent {\n heading: string;\n url: string;\n content?: string;\n}\n\nimport {Component, ComponentInterface, Element, h, Host, Prop, State} from '@stencil/core';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport {\n ColorVariant,\n CtaLinkButtonVariants,\n FooterLinkItemColor,\n FooterLinkVariants,\n FooterVariant,\n HeadingSectionVariants,\n HeadingVarians,\n} from '../../../utils/utils';\nimport {jsonParserWorker} from '../../../global/globalScript';\n\n@Component({\n tag: 'hy-footer-info',\n styleUrl: 'hy-footer-info.scss',\n shadow: false,\n})\nexport class HyFooterInfo implements ComponentInterface {\n @Element() el: HTMLElement;\n /**\n * Content area title.\n */\n @Prop() textTitle: string;\n /**\n * Content area text.\n */\n @Prop() textDescription: string;\n /**\n * Content area link button text.\n */\n @Prop() linkText: string;\n /**\n * Content area link button url.\n */\n @Prop() linkUrl: string;\n @Prop() linkIsExternal: boolean = false;\n @Prop() linkScLabel?: string;\n\n /**\n * Logo url\n */\n @Prop() logoUrl?: string;\n /**\n * Logo label\n */\n @Prop() logoLabel?: string;\n\n /**\n * Luomus group Logo url for footer\n */\n @Prop() groupLogoUrl?: string;\n\n @Prop() isGroup: boolean;\n @Prop() isLuomusGroup: boolean = false;\n @State() isMobile: boolean;\n\n private ro: ResizeObserver;\n private _dataFooterInfoLinks: FooterInfoLinks[];\n private _dataLuomusFooterContent: LuomusFooterContent[];\n /**\n * Data for links to be displayed.\n */\n @Prop() dataFooterInfoLinks: FooterInfoLinks[] | string;\n\n @Prop() luomusFooterContent: LuomusFooterContent[] | string;\n\n async componentWillLoad() {\n this._dataFooterInfoLinks = await jsonParserWorker(this.dataFooterInfoLinks);\n this._dataLuomusFooterContent = await jsonParserWorker(this.luomusFooterContent);\n }\n\n componentDidLoad() {\n this.ro = new ResizeObserver((entries) => {\n for (const entry of entries) {\n this.checkForMobile(entry.contentRect.width);\n }\n });\n this.ro.observe(document.body);\n }\n\n disconnectedCallback() {\n this.ro.disconnect();\n }\n\n checkForMobile(size: number) {\n this.isMobile = size <= 479 ? true : false;\n }\n\n render() {\n const links = this._dataFooterInfoLinks as Array<FooterInfoLinks>;\n const luomusFooterContentItems = this._dataLuomusFooterContent as Array<LuomusFooterContent>;\n\n const variant = this.isGroup ? FooterLinkVariants.group : FooterLinkVariants.campus;\n const section = this.isGroup ? HeadingSectionVariants.groupFooterInfo : HeadingSectionVariants.defaultFooterInfo;\n\n const footerLinkItemClass = this.isGroup ? 'group' : 'campus';\n\n const scLabel = this.linkScLabel && this.linkScLabel.length > 0 ? this.linkScLabel : this.linkText;\n const logoColor = ColorVariant.white;\n const linksColor = this.isLuomusGroup ? FooterLinkItemColor.white : FooterLinkItemColor.black;\n\n return (\n <Host\n class={{\n 'hy-footer-info': true,\n luomus: this.isLuomusGroup,\n }}\n >\n <div\n class={{\n 'hy-footer-info__content': true,\n 'is-group': this.isGroup,\n }}\n >\n {!this.isLuomusGroup && (\n <hy-heading heading={HeadingVarians.h2} section={section}>\n {this.textTitle}\n </hy-heading>\n )}\n {this.isLuomusGroup && (\n <div class=\"hy-footer-info__logo\">\n <hy-site-logo\n type={FooterVariant.footer}\n isGroup={this.isGroup}\n size={56}\n color={logoColor}\n url={this.logoUrl}\n label={this.logoLabel}\n />\n </div>\n )}\n {this.isLuomusGroup && (\n <div class={'hy-footer-info__branding'}>\n <a href={this.groupLogoUrl}>\n <img src={this.groupLogoUrl} alt={'Luomus logo'} />\n </a>\n </div>\n )}\n {!this.isLuomusGroup && (\n <div\n class={{\n 'hy-footer-info__ingress': true,\n 'is-group': this.isGroup,\n }}\n innerHTML={this.textDescription}\n ></div>\n )}\n {!this.isLuomusGroup && this.linkUrl && (\n <hy-cta-button\n link-content={this.linkText}\n sc-label={scLabel}\n is-external={this.linkIsExternal}\n url={this.linkUrl}\n variant={CtaLinkButtonVariants.onWhiteBkgd}\n />\n )}\n {this.isLuomusGroup &&\n luomusFooterContentItems &&\n luomusFooterContentItems.map((item) => {\n return (\n <div class=\"luomus-footer-content\">\n <a href={item.url} class=\"luomus-footer-content__link\">\n {item.heading}\n </a>\n {item.content && <div class=\"luomus-footer-content__description\" innerHTML={item.content}></div>}\n </div>\n );\n })}\n </div>\n {this.isMobile && this.isGroup === false ? (\n <div\n class={{\n 'hy-footer-info__links': true,\n 'is-group': this.isGroup,\n luomus: this.isLuomusGroup,\n }}\n >\n <hy-accordion-container accordionid={'test'}>\n {links &&\n links.map((link) => {\n return (\n <hy-accordion-item accordiontitle={link.label}>\n <hy-footer-link-item\n class={footerLinkItemClass}\n variant={variant}\n color={linksColor}\n label={link.label}\n url={link.url}\n main-link={link.mainlink}\n items={link.items}\n isMobile={this.isMobile}\n ></hy-footer-link-item>\n </hy-accordion-item>\n );\n })}\n </hy-accordion-container>\n </div>\n ) : (\n <div\n class={{\n 'hy-footer-info__links': true,\n 'is-group': this.isGroup,\n luomus: this.isLuomusGroup,\n }}\n >\n {links &&\n links.map((link) => {\n const external_link = link.isExternal === 'external';\n return (\n <hy-footer-link-item\n is-luomus-group={this.isLuomusGroup}\n class={footerLinkItemClass}\n variant={variant}\n color={linksColor}\n label={link.label}\n url={link.url}\n is-external={external_link}\n main-link={link.mainlink}\n items={link.items}\n isMobile={this.isMobile}\n ></hy-footer-link-item>\n );\n })}\n </div>\n )}\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\nhy-footer-link-item:not([main-link]) {\n width: 100%;\n\n @include breakpoint($narrow) {\n width: 50%;\n }\n}\n\nhy-footer-link-item[main-link] {\n hyphens: auto;\n min-width: 200px;\n width: 100%;\n\n @include breakpoint($narrow) {\n width: 50%;\n }\n}\n\nhy-footer-link-item.group[main-link]:not([is-luomus-group]) {\n flex-basis: 100%;\n margin-top: 1rem;\n\n @include breakpoint($narrow) {\n flex-basis: 50%;\n margin: 0;\n }\n}\n\n.hy-footer-link-item--container {\n display: flex;\n flex-direction: column;\n\n .hy-footer-link-item:last-child {\n margin-bottom: 16px;\n }\n}\n\n//.hy-footer-link-item__main .hy-heading__container>h3.hy-heading .hy-footer-link-item__link {\n.hy-footer-link-item {\n display: flex;\n font-family: var(--main-font-family);\n margin-left: 0;\n margin-right: 0;\n position: relative;\n text-decoration: none;\n\n @include breakpoint($narrow) {\n margin-left: 0;\n margin-right: 24px;\n //padding: 15px 20px 15px 0;\n }\n\n @include breakpoint($wide) {\n margin-left: 32px;\n margin-right: 0;\n //padding: 15px 20px 15px 0;\n }\n\n @include breakpoint($xlarge) {\n margin-left: 48px;\n }\n\n &__main {\n border: 0;\n padding: 0;\n margin-right: -32px;\n\n .hy-heading__container > h3.hy-heading {\n @include font-size(18px, 22px);\n letter-spacing: -0.45px;\n padding: 0 0 1px 0 !important;\n\n @include breakpoint($narrow) {\n @include font-size(22px, 28px);\n letter-spacing: -0.44px;\n }\n\n .hy-footer-link-item__link {\n color: var(--grayscale-black);\n font-family: var(--main-font-family);\n text-decoration: none;\n margin-bottom: 12px;\n }\n }\n }\n\n &__color-black {\n @include font-size(14px, 18px);\n @include font-weight($regular);\n border-bottom: 1px solid var(--grayscale-black);\n color: var(--grayscale-black);\n letter-spacing: -0.5px;\n padding: 16px 20px 14px 0;\n\n .hy-footer-link-item__icon svg {\n fill: var(--brand-main-nearly-black);\n height: 12px;\n margin-right: 2px;\n width: 12px;\n }\n\n .hy-heading__container > h3.hy-heading {\n &a.hy-footer-link-item__link:hover {\n color: var(--brand-main) !important;\n text-decoration: underline;\n\n svg {\n fill: var(--brand-main);\n }\n }\n }\n }\n\n &__color-white {\n @include font-size(14px, 18px);\n @include font-weight($semibold);\n border-bottom: 1px solid var(--grayscale-white);\n color: var(--grayscale-white);\n letter-spacing: -0.5px;\n padding: 15px 20px 15px 0;\n\n .hy-footer-link-item__icon svg {\n fill: var(--grayscale-white);\n }\n\n .hy-heading__container > h3.hy-heading {\n .hy-footer-link-item__link:hover {\n color: var(--grayscale-medium) !important;\n\n svg {\n fill: var(--grayscale-medium);\n }\n }\n }\n }\n\n &__icon {\n position: absolute;\n right: 0;\n top: 50%;\n transform: translateY(-50%);\n }\n}\n","import {Component, h, Prop} from '@stencil/core';\nimport {FooterLinkItemColor, FooterLinkVariants, HeadingVarians} from '../../../utils/utils';\n\n@Component({\n tag: 'hy-footer-link-item',\n styleUrl: 'hy-footer-link-item.scss',\n shadow: false,\n})\nexport class HyFooterLinkItem {\n @Prop() label: string;\n @Prop() url: string;\n @Prop() isExternal: boolean = false;\n @Prop() mainLink: boolean = false;\n @Prop() items: Array<any>;\n @Prop() color: FooterLinkItemColor = FooterLinkItemColor.black;\n @Prop() isMobile: boolean;\n @Prop() variant: FooterLinkVariants = FooterLinkVariants.base;\n @Prop() isLuomusGroup: boolean = false;\n\n render() {\n const containerClassAttributes = [\n 'hy-footer-link-item--container',\n `hy-footer-link-item__${this.variant}`,\n this.items && 'hy-footer-link-item__has-children',\n ].join(' ');\n const classAttributes = [\n 'hy-footer-link-item',\n this.mainLink && 'hy-footer-link-item__main',\n `hy-footer-link-item__color-${this.color}`,\n ].join(' ');\n const headingClassAttributes = [\n 'hy-footer-link-item',\n 'hy-footer-link-item__heading',\n this.mainLink && 'hy-footer-link-item__main',\n `hy-footer-link-item__heading__color-${this.color}`,\n ].join(' ');\n const linkClassAttributes = [\n 'hy-footer-link-item',\n `hy-footer-link-item__color-${this.color}`,\n this.isLuomusGroup ? `luomus` : '',\n ].join(' ');\n\n if (this.items) {\n if (this.isMobile && this.variant !== FooterLinkVariants.group) {\n return (\n <div class={containerClassAttributes}>\n {this.items.map((item) => {\n const target = item.isExternal === 'external' ? '_blank' : '_self';\n return (\n <a class={linkClassAttributes} href={item.url} target={target} style={{color: this.color}}>\n {item.label}\n <hy-icon class={'hy-footer-link-item__icon'} icon={'hy-icon-arrow-right'} size={16} />\n </a>\n );\n })}\n </div>\n );\n } else {\n return (\n <div class={containerClassAttributes}>\n <hy-heading class={headingClassAttributes} heading={HeadingVarians.h3}>\n {this.url.length > 0 && (\n <a class={'hy-footer-link-item__link'} href={this.url} style={{color: this.color}}>\n {this.label}\n </a>\n )}\n {this.url.length == 0 && <div class={'hy-footer-link-item__link'}>{this.label}</div>}\n </hy-heading>\n {this.items.map((item) => {\n const target = item.isExternal === 'external' ? '_blank' : '_self';\n return (\n <a class={linkClassAttributes} href={item.url} target={target} style={{color: this.color}}>\n {item.label}\n <hy-icon class={'hy-footer-link-item__icon'} icon={'hy-icon-arrow-right'} size={16} />\n </a>\n );\n })}\n </div>\n );\n }\n } else {\n const target = this.isExternal ? '_blank' : '_self';\n return (\n <a class={classAttributes} href={this.url} style={{color: this.color}} target={target}>\n {this.label}\n <hy-icon class={'hy-footer-link-item__icon'} icon={'hy-icon-arrow-right'} size={16} />\n </a>\n );\n }\n }\n}\n",":host {\n display: block;\n}\n\n.hy-general-list {\n list-style: none;\n margin: 0;\n padding: 0;\n\n &--style-grid {\n display: flex;\n display: grid;\n gap: 32px 0;\n\n @media screen and (min-width: 768px) {\n grid-template-columns: repeat(2, 1fr);\n gap: 32px 24px;\n }\n\n @media screen and (min-width: 1024px) {\n grid-template-columns: repeat(3, 1fr);\n }\n\n @media screen and (min-width: 1920px) {\n gap: 32px;\n }\n\n li {\n background-color: var(--grayscale-background-box);\n width: 100%;\n height: auto;\n }\n }\n}\n","export interface ListItemValue {\n description: string;\n id: string;\n imageAlt: string;\n imageUrl: string;\n label: string;\n subLabel: string;\n date: string;\n tag: string;\n title: string;\n type: string;\n url: string;\n target: boolean;\n}\n\nimport {Component, Element, h, Prop, State, Host, Watch} from '@stencil/core';\nimport {GeneralListTypes} from '../../utils/utils';\nimport {jsonParserWorker} from '../../global/globalScript';\n\n@Component({\n tag: 'hy-general-list',\n styleUrl: 'hy-general-list.scss',\n shadow: false,\n})\nexport class HyGeneralList {\n @Prop() type: GeneralListTypes = GeneralListTypes.list;\n @Prop() blank: boolean = true;\n @Prop() dataItems: ListItemValue[] | string;\n @Prop() truncateDescription: boolean = true;\n @Prop() truncateLimit: number = 140;\n private _dataItems: ListItemValue[];\n @Element() el: HTMLElement;\n @State() hasSidebar: boolean = false;\n\n async componentWillLoad() {\n this._dataItems = await jsonParserWorker(this.dataItems);\n\n const hyMainDiv = this.el.closest('.hy-main');\n if (hyMainDiv) {\n if (hyMainDiv.classList.contains('with-sidebar')) {\n this.hasSidebar = true;\n }\n }\n }\n\n @Watch('dataItems')\n async watchPropHandler(newValue: string | number, oldValue: string | number) {\n if (newValue !== oldValue) {\n this._dataItems = await jsonParserWorker(this.dataItems);\n }\n }\n\n render() {\n const classAttributes = [\n 'hy-general-list',\n this.hasSidebar ? 'hy-general-list--with-sidebar' : '',\n `hy-general-list--style-${this.type}`,\n ].join(' ');\n\n let listData = this._dataItems;\n if (typeof this._dataItems === 'object') {\n listData = Object.values(this._dataItems);\n }\n\n function truncate(str, n) {\n return str.length > n ? str.substr(0, n - 1) + '...' : str;\n }\n\n return (\n <Host>\n <ul class={classAttributes}>\n {listData &&\n listData.map((item) => (\n <li>\n <hy-general-list-item\n has-sidebar={this.hasSidebar}\n target={this.blank}\n data-location={item.url}\n description={\n this.truncateDescription ? truncate(item.description, this.truncateLimit) : item.description\n }\n id={item.id}\n imageAlt={item.imageAlt}\n imageUrl={item.imageUrl}\n item-title={item.title}\n label={item.label}\n sub-label={item.subLabel}\n tag={item.tag}\n date={item.date}\n type={item.type}\n url={item.url}\n list-style={this.type}\n ></hy-general-list-item>\n </li>\n ))}\n </ul>\n <hy-box mb=\"1.75, 1.75, 2, 2.5\" />\n </Host>\n );\n }\n}\n",":host {\n display: block;\n height: 100%;\n}\n\n.hy-general-list-item {\n font-family: var(--main-font-family);\n margin-bottom: 1rem;\n height: 100%;\n\n &--style-grid {\n .hy-general-list-item__link {\n height: 100%;\n\n @include breakpoint($narrow) {\n flex-direction: column;\n }\n }\n\n .hy-general-list-item__image-container {\n border: 1px solid var(--grayscale-light);\n max-width: 100%;\n\n @include breakpoint(max-width 479px) {\n display: flex;\n }\n }\n\n .hy-general-list-item__text-container {\n @include breakpoint($wide) {\n padding: 12px 12px 32px 12px;\n }\n @include breakpoint($extrawide) {\n padding: 12px 12px 32px 12px;\n }\n }\n }\n}\n\n.hy-genenral-list-item__meta {\n @include font-size(12px, 14px);\n @include font-weight($semibold);\n color: var(--grayscale-dark);\n font-family: var(--main-font-family);\n letter-spacing: -0.1px;\n text-transform: uppercase;\n margin: 9px 0;\n\n &__date {\n @include font-weight($regular);\n margin-left: 4px;\n }\n}\n\n.hy-general-list-item__link {\n display: flex;\n flex-direction: column;\n position: relative;\n text-decoration: none;\n\n @include breakpoint($narrow) {\n flex-direction: row;\n }\n\n &:hover {\n cursor: pointer;\n }\n\n &:hover,\n &:focus {\n .hy-general-list-item__type span {\n background-color: var(--brand-main);\n }\n\n .hy-general-list-item__title {\n color: var(--brand-main);\n text-decoration: underline;\n }\n }\n}\n\n.hy-general-list-item__image-container {\n display: flex;\n justify-content: stretch;\n margin: 0;\n position: relative;\n width: 100%;\n\n @include breakpoint(max-width 479px) {\n display: none;\n }\n\n @include breakpoint($narrow) {\n max-width: 35.7%;\n }\n\n @include breakpoint($wide) {\n max-width: 23.13%;\n }\n\n @include breakpoint($extrawide) {\n max-width: 23.03%;\n }\n\n &:before {\n content: '';\n display: block;\n padding-top: var(--aspectRatio);\n }\n\n img {\n bottom: 0;\n height: 100%;\n left: 0;\n object-fit: cover;\n position: absolute;\n right: 0;\n top: 0;\n width: 100%;\n }\n}\n\n.hy-general-list-item__image {\n background-color: #ececec;\n width: 100%;\n height: 100%;\n}\n\n.hy-general-list-item__type {\n background-color: var(--grayscale-background-box);\n padding-top: 16px;\n z-index: 10;\n\n @include breakpoint($narrow) {\n background-color: transparent;\n left: -8px;\n padding-top: 0;\n position: absolute;\n top: 16px;\n }\n\n &__major {\n @include font-size(12px, 14px);\n @include font-weight($bold);\n background-color: var(--grayscale-black);\n color: var(--grayscale-white);\n letter-spacing: -0.1px;\n padding: 5px 8px;\n text-transform: uppercase;\n align-self: baseline;\n margin-left: -8px;\n\n @include breakpoint($narrow) {\n margin-left: 0;\n }\n }\n\n &__sub {\n @include font-size(12px, 14px);\n background-color: var(--grayscale-black);\n color: var(--grayscale-white);\n font-family: var(--main-font-family);\n letter-spacing: -0.1px;\n padding: 5px 8px;\n margin-left: -8px;\n }\n}\n\n.hy-general-list-item__text-container {\n background-color: var(--grayscale-background-box);\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n padding: 16px 12px;\n\n @include breakpoint($wide) {\n padding: 14px 32px 24px 24px;\n }\n\n @include breakpoint($extrawide) {\n padding: 20px 104px 32px 32px;\n }\n}\n\n.hy-general-list-item__title {\n @include font-size(18px, 22px);\n @include font-weight($bold);\n color: var(--brand-main-nearly-black);\n letter-spacing: -0.45px;\n margin-bottom: 8px;\n margin-top: 0;\n\n @include breakpoint($xlarge) {\n @include font-size(20px, 24px);\n letter-spacing: -0.5px;\n }\n\n &__large {\n @include breakpoint($extrawide) {\n @include font-size(20px, 24px);\n letter-spacing: -0.5px;\n }\n }\n}\n\n.hy-general-list-item__description {\n @include font-size(15px, 20px);\n color: var(--grayscale-dark);\n display: none;\n letter-spacing: -0.09px;\n margin: 0;\n\n @include breakpoint($narrow) {\n @include font-size(14px, 18px);\n display: block;\n letter-spacing: -0.08px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(14px, 20px);\n }\n\n &__large {\n @include breakpoint($extrawide) {\n @include font-size(14px, 20px);\n }\n }\n}\n","import {Component, Element, h, Prop} from '@stencil/core';\n\n@Component({\n tag: 'hy-general-list-item',\n styleUrl: 'hy-general-list-item.scss',\n shadow: false,\n})\nexport class HyGeneralListItem {\n @Prop() hasSidebar: boolean = true;\n @Prop() description?: string;\n @Prop() imageAlt: string = '';\n @Prop() imageUrl: string = null;\n @Prop() disableLazy: boolean = false;\n @Prop() itemTitle?: string;\n @Prop() label?: string;\n @Prop() subLabel: string = '';\n @Prop() date: string = '';\n @Prop() tag: string = '';\n @Prop() type?: string;\n @Prop() url?: string;\n @Prop() listStyle?: string;\n @Prop() target: boolean = true;\n\n @Element() el: HTMLElement;\n\n render() {\n const classAttributes = ['hy-general-list-item', `hy-general-list-item--style-${this.listStyle}`].join(' ');\n const contentClassAttributes = ['hy-general-list-item__text-container'].join(' ');\n const imageClassAttributes = ['hy-general-list-item__image-container'].join(' ');\n\n const sidebarClass = this.hasSidebar ? 'common' : 'large';\n const titleClassAttributes = ['hy-general-list-item__title', `hy-general-list-item__title__${sidebarClass}`].join(\n ' '\n );\n const descriptionClassAttributes = [\n 'hy-general-list-item__description',\n `hy-general-list-item__description__${sidebarClass}`,\n ].join(' ');\n\n const aspectRatioWidth = 16;\n const aspectRatioHeight = 10;\n const aspect = (aspectRatioHeight / aspectRatioWidth) * 100;\n const aspectRatio = {\n '--aspectRatio': `${aspect}%` as 'aspectRatio',\n };\n\n return (\n <article class={classAttributes}>\n <a class=\"hy-general-list-item__link\" href={this.url} target={this.target ? '_blank' : '_self'}>\n {this.type && (\n <div class=\"hy-general-list-item__type\">\n <span class=\"hy-general-list-item__type__major\">{this.label}</span>\n <span class=\"hy-general-list-item__type__sub\">{this.subLabel}</span>\n </div>\n )}\n {this.imageUrl && (\n <figure class={imageClassAttributes} style={aspectRatio}>\n <img\n loading={this.disableLazy ? 'eager' : 'lazy'}\n alt={this.imageAlt}\n class=\"hy-general-list-item__image\"\n src={this.imageUrl}\n />\n </figure>\n )}\n <div class={contentClassAttributes}>\n {(this.tag || this.date) && (\n <span class=\"hy-genenral-list-item__meta\">\n {this.tag}\n <span class=\"hy-genenral-list-item__meta__date\">\n {this.tag && '|'} {this.date}\n </span>\n </span>\n )}\n <h3 class={titleClassAttributes}>{this.itemTitle}</h3>\n <p class={descriptionClassAttributes}>{this.description}</p>\n </div>\n </a>\n </article>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-heading__container {\n display: flex;\n flex-direction: column-reverse;\n width: 100%;\n\n @include breakpoint($narrow) {\n flex-direction: row;\n }\n\n &__subsection {\n padding: 2.5rem 0 1.375rem;\n\n @include breakpoint($narrow) {\n padding: 4rem 0 2.375rem;\n }\n }\n\n // H1 content page title\n h1.hy-heading__default {\n margin-bottom: 12px;\n\n @include breakpoint($xlarge) {\n margin-bottom: 16px;\n }\n\n // No sidebar, large desktops\n &__large {\n @include breakpoint($extrawide) {\n margin-bottom: 16px;\n }\n }\n }\n\n h1.hy-heading__search {\n margin-bottom: 0;\n padding: 16px 0 0;\n\n @include breakpoint($narrow) {\n padding: 28px 0 0;\n }\n @include breakpoint($wide) {\n padding: 32px 0 0;\n }\n\n &__large {\n @include breakpoint($extrawide) {\n padding: 40px 0 0;\n }\n }\n }\n\n h2,\n h3,\n h4,\n h5,\n h6 {\n padding: 1.5rem 0 1rem;\n\n @include breakpoint($narrow) {\n padding: 2rem 0 1rem;\n }\n }\n\n &.hy-heading__introduction {\n padding-top: 0;\n }\n\n .hy-heading__courses {\n padding-top: 0;\n }\n}\n\n.hy-heading {\n display: flex;\n flex-grow: 1;\n flex-shrink: 0;\n max-width: 100%;\n width: auto;\n}\n\n/*\n Headers (ex. h2, h3) used in Content pages (no caps and line).\n*/\n.hy-heading__subsection--divider,\n.hy-heading__contentsection--divider {\n flex-shrink: 2;\n overflow: hidden;\n width: 100%;\n\n &:after {\n background-color: transparent;\n border-bottom: 6px solid var(--grayscale-dark);\n content: ' ';\n display: flex;\n height: 2px;\n width: 100%;\n margin-left: 0;\n margin-bottom: 0.5rem;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n\n @include breakpoint($narrow) {\n margin-left: 2rem;\n border-bottom: 1px solid var(--grayscale-dark);\n margin-bottom: 1rem;\n }\n }\n}\n\n// H2 used in landing pages and in Introduction paragraph: caps, bigger font.\n// These styles are applied if there is a Sidebar on the page in Desktop sizes\nh2.hy-heading__introduction,\nh2.hy-heading__landingsection {\n @include font-size(28px, 32px);\n @include font-weight($bold);\n letter-spacing: -0.7px;\n text-transform: uppercase;\n}\n\nh1.hy-heading__hero {\n @include font-size(32px, 38px);\n @include font-weight($bold);\n color: var(--grayscale-black);\n font-family: var(--main-font-family);\n letter-spacing: -0.8px;\n margin-bottom: 0;\n\n @include breakpoint(1024px) {\n @include font-size(46px, 54px);\n letter-spacing: -1.15px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(52px, 60px);\n letter-spacing: -1.3px;\n }\n}\n\n// Applied when there is a sidebar\n.hy-heading__container__common {\n h2.hy-heading__introduction,\n h2.hy-heading__landingsection {\n @include breakpoint($narrow) {\n @include font-size(34px, 40px);\n letter-spacing: -0.85px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(42px, 48px);\n letter-spacing: -1.05px;\n }\n }\n\n h2.hy-heading__introduction {\n padding: 0 0 12px;\n @include breakpoint($narrow) {\n padding: 0 0 1rem;\n }\n }\n\n h2.hy-heading__landingsection,\n h2.hy-heading__contentsection {\n padding-bottom: 24px;\n\n @include breakpoint($narrow) {\n padding-bottom: 28px;\n }\n\n @include breakpoint($wide) {\n padding-bottom: 32px;\n }\n\n @include breakpoint($extrawide) {\n padding-bottom: 32px;\n }\n\n @include breakpoint($xlarge) {\n padding-bottom: 40px;\n }\n }\n\n // Footer info box header style for group pages.\n h2.hy-heading__group_footer_info {\n @include font-size(24px, 28px);\n @include font-weight($bold);\n letter-spacing: -0.6px;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n letter-spacing: -0.8px;\n }\n @include breakpoint($xlarge) {\n @include font-size(26px, 30px);\n }\n }\n\n // Footer info box header style for main site pages.\n h2.hy-heading__footer_info {\n @include font-size(28px, 32px);\n @include font-weight($bold);\n letter-spacing: -0.7px;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n @include font-size(34px, 40px);\n letter-spacing: -0.85px;\n }\n @include breakpoint($xlarge) {\n @include font-size(42px, 48px);\n letter-spacing: -1.05px;\n }\n }\n}\n\n// Applied when there is NO sidebar\n.hy-heading__container__large {\n h2.hy-heading__introduction,\n h2.hy-heading__landingsection {\n @include breakpoint($narrow) {\n @include font-size(34px, 40px);\n letter-spacing: -0.85px;\n }\n\n @include breakpoint($extrawide) {\n @include font-size(42px, 48px);\n letter-spacing: -1.05px;\n }\n }\n\n h2.hy-heading__introduction {\n //@todo check here\n @include breakpoint($extrawide) {\n // h2 font large\n padding: 0 0 1rem;\n }\n @include breakpoint($xlarge) {\n // h2 font x-large\n padding: 0 0 20px;\n }\n }\n\n h2.hy-heading__landingsection,\n h2.hy-heading__contentsection {\n padding-bottom: 24px;\n\n @include breakpoint($narrow) {\n padding-bottom: 28px;\n }\n\n @include breakpoint($wide) {\n padding-bottom: 32px;\n }\n\n @include breakpoint($extrawide) {\n padding-bottom: 40px;\n }\n }\n\n // Hero h1 landing minor. no sidebar\n h1.hy-heading__landing_minor {\n @include breakpoint($extrawide) {\n @include font-size(52px, 60px);\n letter-spacing: -1.3px;\n }\n }\n\n // Hero h1 heading frontpage. no sidebar\n h1.hy-heading__frontpage,\n h1.hy-heading__landing_major {\n @include breakpoint($extrawide) {\n @include font-size(56px, 64px);\n letter-spacing: -1.4px;\n }\n }\n\n // Footer info box header style for group pages.\n h2.hy-heading__group_footer_info {\n @include font-size(24px, 28px);\n @include font-weight($bold);\n letter-spacing: -0.6px;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n letter-spacing: -0.8px;\n }\n @include breakpoint($extrawide) {\n @include font-size(26px, 30px);\n }\n }\n\n // Footer info box header style for main site pages.\n h2.hy-heading__footer_info {\n @include font-size(28px, 32px);\n @include font-weight($bold);\n letter-spacing: -0.7px;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n @include font-size(34px, 40px);\n letter-spacing: -0.85px;\n }\n @include breakpoint($extrawide) {\n @include font-size(42px, 48px);\n letter-spacing: -1.05px;\n }\n }\n}\n\n// h3 on landing pages use the same fonts as h2 on content pages; no line; no caps\nh3.hy-heading__landingsection {\n @include font-size(26px, 32px);\n letter-spacing: -0.8px;\n\n @include breakpoint($narrow) {\n // > 480px\n @include font-size(32px, 32px);\n letter-spacing: -1px;\n }\n\n @include breakpoint($extrawide) {\n // > 1200px\n @include font-size(40px, 48px);\n letter-spacing: -1.2px;\n }\n\n @include breakpoint($xlarge) {\n // > 1400px\n @include font-size(40px, 48px);\n letter-spacing: -1.2px;\n }\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n color: var(--brand-main-nearly-black);\n font-family: var(--main-font-family);\n font-weight: 700;\n padding: 0;\n margin: 0;\n width: 100%;\n\n &.negative {\n color: var(--grayscale-white);\n }\n}\n\nh1 {\n @include font-size(32px, 38px);\n letter-spacing: -0.8px;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n @include font-size(46px, 54px);\n letter-spacing: -1.15px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(52px, 60px);\n letter-spacing: -1.3px;\n }\n\n // without Sidebar\n .hy-heading__container__large & {\n @include breakpoint($extrawide) {\n @include font-size(52px, 60px);\n letter-spacing: -1.3px;\n }\n }\n}\n\n// default h2 used in content pages\nh2 {\n @include font-size(26px, 32px);\n @include font-weight($bold);\n letter-spacing: -0.52px;\n\n @include breakpoint($narrow) {\n @include font-size(30px, 36px);\n letter-spacing: -0.6px;\n }\n\n // with Sidebar\n .hy-heading__container__common & {\n @include breakpoint($xlarge) {\n @include font-size(34px, 40px);\n letter-spacing: -0.68px;\n }\n }\n\n // without Sidebar\n .hy-heading__container__large & {\n @include breakpoint($extrawide) {\n @include font-size(34px, 40px);\n letter-spacing: -0.68px;\n }\n }\n}\n\n// default h3 used in content pages\nh3 {\n @include font-size(22px, 28px);\n letter-spacing: -0.7px;\n\n @include breakpoint($narrow) {\n // > 480px\n @include font-size(26px, 32px);\n letter-spacing: -0.8px;\n }\n}\n\nh4 {\n @include font-size(18px, 24px);\n letter-spacing: -0.56px;\n\n @include breakpoint($narrow) {\n // > 480px\n @include font-size(22px, 28px);\n letter-spacing: -0.69px;\n }\n}\n\nh5 {\n @include font-size(16px, 20px);\n letter-spacing: -0.5px;\n\n @include breakpoint($narrow) {\n // > 480px\n @include font-size(18px, 24px);\n letter-spacing: -0.56px;\n }\n}\n\nh6 {\n @include font-size(14px, 16px);\n letter-spacing: -0.44px;\n\n @include breakpoint($narrow) {\n // > 480px\n @include font-size(16px, 20px);\n letter-spacing: -0.5px;\n }\n}\n","@import './heading.scss';\n//overrides for full width views\n// JUST A DEMO, FIX AND EXPAND!\nh1 {\n font-size: $font-size-xxxx-large;\n font-weight: bold;\n text-transform: uppercase;\n line-height: 1.2;\n}\n","import {Component, Element, h, Host, Prop, State} from '@stencil/core';\nimport {HeadingSectionVariants, HeadingVarians} from '../../utils/utils';\n\n@Component({\n tag: 'hy-heading',\n styleUrls: {default: 'heading.scss', wide: 'heading-fw.scss'},\n scoped: false,\n shadow: false,\n})\nexport class Heading {\n /**\n * @type {*}\n */\n @Prop() heading: HeadingVarians = HeadingVarians.default as any;\n @Prop() isSearch: boolean = false;\n /**\n * @type {*}\n */\n @Prop() section: HeadingSectionVariants = HeadingSectionVariants.default as any;\n @Prop() negative: boolean = false;\n @Prop() headerstyle: string = 'common';\n @Prop({reflect: true}) hyphenatedText?: string;\n @Element() el: HTMLElement;\n @State() hasChildren: boolean = true;\n\n componentDidLoad() {\n let hyMainDiv = this.el.closest('.hy-main');\n if (hyMainDiv) {\n if (!hyMainDiv.classList.contains('with-sidebar')) {\n this.headerstyle = 'large';\n }\n }\n if (this.el.parentElement.classList.contains('hy-hero__title-container')) {\n this.hasChildren = false;\n }\n }\n\n render() {\n const headingInVariants = this.heading in HeadingVarians;\n const classAttributes = [\n 'hy-heading',\n this.negative ? 'negative' : '',\n this.isSearch ? 'hy-heading__search' : '',\n this.isSearch ? `hy-heading__search__${this.headerstyle}` : '',\n `hy-heading__${this.section}`,\n `hy-heading__${this.headerstyle}`,\n `hy-heading__${this.section}__${this.headerstyle}`,\n ];\n\n const sectionClassAttributes = [`hy-heading__${this.section}--divider`].join(' ');\n\n const containerSectionClass = [\n 'hy-heading__container',\n `hy-heading__container__${this.section}`,\n `hy-heading__container__${this.headerstyle}`,\n ].join(' ');\n\n return (\n <Host>\n {headingInVariants ? (\n [\n <div class={containerSectionClass}>\n {this.hyphenatedText && !this.hasChildren ? (\n <this.heading class={classAttributes.join(' ')} innerHTML={this.hyphenatedText}></this.heading>\n ) : (\n <this.heading class={classAttributes.join(' ')}>\n <slot />\n </this.heading>\n )}\n\n <span class={sectionClassAttributes}></span>\n </div>,\n ]\n ) : (\n <div class={containerSectionClass}>\n {this.hyphenatedText && !this.hasChildren ? (\n <HeadingVarians.default class={classAttributes.join(' ')}>\n <span innerHTML={this.hyphenatedText}></span>\n </HeadingVarians.default>\n ) : (\n <HeadingVarians.default class={classAttributes.join(' ')}>\n <span>\n <slot />\n </span>\n </HeadingVarians.default>\n )}\n\n <span class={sectionClassAttributes}></span>\n </div>\n )}\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-hero {\n position: relative;\n padding-bottom: 0;\n\n @include breakpoint($wide) {\n margin-top: 32px;\n }\n\n &:not(.has-shortcuts) {\n @include breakpoint($wide) {\n margin-bottom: 32px;\n }\n }\n\n .without-sidebar & {\n @include breakpoint($extrawide) {\n max-width: 1216px;\n margin-right: auto;\n margin-left: auto;\n }\n }\n\n .with-sidebar & {\n @include breakpoint($extrawide) {\n padding-left: 32px;\n padding-right: 32px;\n }\n\n @include breakpoint($xlarge) {\n padding-right: 0;\n padding-left: 0;\n max-width: 1216px;\n margin-right: auto;\n margin-left: auto;\n }\n }\n\n &--white {\n @include breakpoint($wide) {\n margin-top: 0;\n }\n\n &:not(.has-shortcuts) {\n @include breakpoint($wide) {\n padding-bottom: 48px;\n }\n }\n\n &:not(.has-shortcuts):after {\n width: 100%;\n background-color: var(--grayscale-medium-dark);\n height: 1px;\n content: '';\n margin: 0 auto;\n display: block;\n\n @include breakpoint($wide) {\n position: absolute;\n left: 0;\n right: 0;\n bottom: 0;\n }\n }\n\n &:not(.hy-hero--front_page):after {\n max-width: 1216px;\n }\n }\n}\n\n.hy-hero__container {\n position: relative;\n\n @include breakpoint($wide) {\n display: grid;\n position: relative;\n }\n\n .hy-hero--small & {\n @include breakpoint($wide) {\n grid-template-columns: 60% 1fr;\n }\n }\n\n .hy-hero--large & {\n @include breakpoint($wide) {\n grid-template-columns: repeat(2, 1fr);\n }\n }\n}\n\n.hy-hero__content-container {\n padding: 24px 1rem 40px;\n margin: 0 auto;\n width: 100%;\n\n @include breakpoint($narrow) {\n padding: 40px 2rem;\n }\n\n @include breakpoint($extrawide) {\n align-items: center;\n display: flex;\n padding: 40px 24px;\n }\n\n @include breakpoint($xlarge) {\n max-width: 1216px;\n }\n\n .hy-hero--black & {\n background-color: var(--grayscale-black);\n }\n\n .hy-hero--blue & {\n background-color: var(--brand-main);\n }\n\n .hy-hero--white & {\n background-color: var(--grayscale-white);\n\n @include breakpoint($extrawide) {\n padding: 40px 24px 40px 0;\n }\n }\n}\n\n.hy-hero__content {\n position: relative;\n}\n\nh2.hy-hero__title {\n hyphens: auto;\n display: flex;\n flex-grow: 1;\n flex-shrink: 0;\n max-width: 100%;\n width: auto;\n\n .hy-hero--blue & {\n color: var(--grayscale-white) !important;\n }\n\n .hy-hero--black & {\n color: var(--grayscale-white) !important;\n }\n\n .hy-hero--white & {\n color: var(--grayscale-black) !important;\n }\n\n &.hy-heading__hero {\n @include font-size(36px, 33px);\n @include font-weight($bold);\n color: var(--grayscale-black);\n font-family: var(--main-font-family);\n letter-spacing: -0.8px;\n margin-bottom: 0;\n text-transform: none;\n\n @include breakpoint(1024px) {\n @include font-size(36px, 40px);\n letter-spacing: -1.15px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(38px, 48px);\n letter-spacing: -1.3px;\n }\n }\n}\n\n.hy-hero__description {\n @include font-size(16px, 24px);\n font-family: var(--main-font-family);\n margin: 16px 0 0 0;\n padding: 0;\n position: relative;\n\n @include breakpoint($xlarge) {\n @include font-size(17px, 26px);\n }\n\n .hy-hero--black & {\n color: var(--grayscale-white);\n }\n\n .hy-hero--blue & {\n color: var(--grayscale-white);\n }\n\n .hy-hero--white & {\n color: var(--grayscale-black);\n }\n}\n\n.hy-hero__actions {\n margin-top: 24px;\n}\n\n.hy-hero__image-container {\n margin: 0;\n padding: 0;\n position: relative;\n\n figure {\n margin: 0;\n }\n\n @include breakpoint($wide) {\n order: 2;\n padding: 8px 0;\n }\n\n .hy-hero--front_page & {\n @include breakpoint($wide) {\n padding: 0;\n }\n }\n}\n\n.hy-image__image {\n display: block;\n height: 100%;\n min-height: 205px;\n object-fit: contain;\n width: 100%;\n\n .has-cover & {\n object-fit: cover;\n }\n}\n\n// Research group and generic with minor landing\n.hy-hero.hy-hero--group_landing.hy-hero--generic_site_group,\n.hy-hero.hy-hero--research_group {\n h2.hy-hero__title.hy-heading__hero {\n @include font-size(32px, 38px);\n @include font-weight($bold);\n color: var(--grayscale-black);\n font-family: var(--main-font-family);\n letter-spacing: -0.8px;\n margin-bottom: 0;\n text-transform: uppercase;\n\n @include breakpoint(1024px) {\n @include font-size(46px, 54px);\n letter-spacing: -1.15px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(52px, 60px);\n letter-spacing: -1.3px;\n }\n }\n}\n\n// FRONTPAGE VARIATION\n\n.hy-hero.hy-hero--front_page {\n &.hy-hero--white {\n @include breakpoint($wide) {\n padding-top: 40px;\n margin-top: 0;\n }\n }\n\n h2.hy-hero__title.hy-heading__hero {\n @include font-size(32px, 38px);\n @include font-weight($bold);\n color: var(--grayscale-black);\n font-family: var(--main-font-family);\n letter-spacing: -0.8px;\n margin-bottom: 0;\n text-transform: uppercase;\n\n @include breakpoint(1024px) {\n @include font-size(46px, 54px);\n letter-spacing: -1.15px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(52px, 60px);\n letter-spacing: -1.3px;\n }\n }\n\n @include breakpoint($extrawide) {\n margin-left: -32px;\n margin-right: -32px;\n max-width: none;\n }\n\n .hy-hero__container {\n position: relative;\n\n @include breakpoint($wide) {\n display: flex;\n position: relative;\n }\n }\n\n .hy-hero__content-container {\n padding: 24px 1rem 40px;\n margin: 0 auto;\n width: 100%;\n\n .hy-hero--black & {\n background-color: var(--grayscale-black);\n }\n\n .hy-hero--blue & {\n background-color: var(--brand-main);\n }\n\n .hy-hero--white & {\n background-color: var(--grayscale-white);\n }\n\n @include breakpoint($narrow) {\n padding: 24px 2rem 40px;\n }\n\n @include breakpoint($wide) {\n align-items: center;\n display: flex;\n min-height: 330px;\n padding: 56px 2rem;\n }\n\n @include breakpoint(1060px) {\n min-height: 373px;\n }\n\n @include breakpoint(1160px) {\n min-height: 480px;\n }\n\n @include breakpoint($extrawide) {\n padding-left: 32px;\n padding-right: 8px;\n }\n\n @include breakpoint(1260px) {\n min-height: 443px;\n }\n\n @include breakpoint(1280px) {\n max-width: 1216px;\n padding-left: 0;\n }\n\n @include breakpoint(1360px) {\n min-height: 478px;\n }\n\n @include breakpoint(1460px) {\n min-height: 513px;\n }\n\n @include breakpoint(1560px) {\n min-height: 548px;\n }\n\n @include breakpoint($xlarge) {\n padding-left: 0;\n }\n\n @include breakpoint(1660px) {\n min-height: 583px;\n }\n\n @include breakpoint(1760px) {\n min-height: 619px;\n }\n\n @include breakpoint(1860px) {\n min-height: 654px;\n }\n\n @include breakpoint(1920px) {\n min-height: 675px;\n }\n }\n\n &.hy-hero--small {\n .hy-hero__image-container {\n @include breakpoint($wide) {\n width: 40%;\n }\n }\n\n .hy-hero__content {\n @include breakpoint($wide) {\n max-width: 60%;\n }\n }\n }\n\n &.hy-hero--large {\n .hy-hero__image-container {\n @include breakpoint($wide) {\n width: 50%;\n }\n }\n\n .hy-hero__content {\n @include breakpoint($wide) {\n max-width: 50%;\n }\n }\n }\n\n .hy-hero__image-container {\n background-position: 50% 50%;\n background-size: cover;\n background: transparent;\n margin: 0;\n padding: 0;\n position: relative;\n\n figure {\n margin: 0;\n }\n\n @include breakpoint($wide) {\n background-color: var(--grayscale-white);\n bottom: 0;\n order: 2;\n padding: 8px 0;\n position: absolute;\n right: 0;\n top: 0;\n }\n }\n\n .hy-hero__content {\n position: relative;\n\n @include breakpoint($wide) {\n padding-right: 24px;\n }\n }\n\n .hy-image__image {\n display: block;\n height: 100%;\n min-height: 205px;\n object-fit: cover;\n width: 100%;\n }\n}\n\n.hy-hero__spacer-box {\n display: none;\n\n @include breakpoint($wide) {\n display: block;\n order: 1;\n position: absolute;\n inset: 0;\n }\n\n .hy-hero--small & {\n @include breakpoint($wide) {\n width: 60%;\n }\n }\n\n .hy-hero--large & {\n @include breakpoint($wide) {\n width: 50%;\n }\n }\n\n .hy-hero--black & {\n background-color: var(--grayscale-black);\n }\n\n .hy-hero--blue & {\n background-color: var(--brand-main);\n }\n\n .hy-hero--white & {\n background-color: var(--grayscale-white);\n }\n}\n","export interface ImageSrcSet {\n src: any;\n media: string;\n type: string;\n sizes: string | null;\n}\nlet timeout = null;\nlet delay = 250;\n\nimport {Component, Element, h, Host, Prop} from '@stencil/core';\nimport {jsonParserWorker} from '../../global/globalScript';\nimport {\n CtaLinkButtonVariants,\n HeroColorVariant,\n HeroSizeVariant,\n HeroGroupTypeVariant,\n HeroTypeVariant,\n} from '../../utils/utils';\n\n@Component({\n tag: 'hy-hero',\n styleUrl: 'hy-hero.scss',\n shadow: false,\n})\nexport class HyHero {\n @Element() el: HTMLElement;\n @Prop() heroType: HeroTypeVariant = HeroTypeVariant.landing;\n @Prop() heroGroupType: HeroGroupTypeVariant = HeroGroupTypeVariant.default;\n @Prop() colorVariant: HeroColorVariant = HeroColorVariant.blue;\n @Prop() sizeVariant: HeroSizeVariant = HeroSizeVariant.large;\n @Prop() image: string;\n @Prop() imageAltText: string = '';\n @Prop() disableLazy: boolean = false;\n @Prop() hasShortcuts: boolean = false;\n @Prop() heading: string;\n @Prop() description: string;\n @Prop() url: string;\n @Prop() urlTitle: string;\n @Prop() scLabel?: string;\n @Prop() isExternal: boolean = false;\n private _sourceSet: ImageSrcSet[];\n @Prop() sourceSet: ImageSrcSet[] | string;\n\n async componentWillLoad() {\n this._sourceSet = await jsonParserWorker(this.sourceSet);\n }\n\n handleHeroImageObjectFitValue(heroSizeVariant, heroElement) {\n const heroContentContainerElement = heroElement.getElementsByClassName(\n 'hy-hero__content-container'\n )[0] as HTMLElement;\n\n if (heroSizeVariant === 'small') {\n if (heroContentContainerElement.offsetHeight >= 300) {\n heroElement.classList.add('has-cover');\n } else {\n heroElement.classList.remove('has-cover');\n }\n }\n\n if (heroSizeVariant === 'large') {\n if (heroContentContainerElement.offsetHeight >= 344) {\n heroElement.classList.add('has-cover');\n } else {\n heroElement.classList.remove('has-cover');\n }\n }\n }\n\n render() {\n let variant = CtaLinkButtonVariants.heroWhite;\n let colorVariantValue = this.colorVariant;\n let heroTypeValue = this.heroType;\n\n if (this.heroType === 'minor_landing') {\n colorVariantValue = HeroColorVariant.white;\n heroTypeValue = HeroTypeVariant.landing;\n }\n\n if (colorVariantValue === HeroColorVariant.blue) {\n variant = CtaLinkButtonVariants.heroBlue;\n }\n\n if (colorVariantValue === HeroColorVariant.black) {\n variant = CtaLinkButtonVariants.heroBlack;\n }\n\n if (!colorVariantValue || colorVariantValue === 'fp_white') {\n colorVariantValue = HeroColorVariant.white;\n }\n\n const hyHeroClasses = [\n 'hy-hero',\n `hy-hero--${heroTypeValue}`,\n `hy-hero--${this.heroGroupType}`,\n `hy-hero--${colorVariantValue}`,\n `hy-hero--${this.sizeVariant}`,\n ];\n\n const heroTitleClasses = ['hy-hero__title', 'hy-heading__hero'].join(' ');\n\n // If there is a Shortcuts block after hero, add the class 'shortcuts' to remove underline.\n if (this.hasShortcuts) {\n hyHeroClasses.push('has-shortcuts');\n }\n\n const aspectRatioWidth = 16;\n const aspectRatioHeight = 10;\n const aspect = (aspectRatioHeight / aspectRatioWidth) * 100;\n const aspectRatio = {\n '--aspectRatio': `${aspect}%` as 'aspectRatio',\n };\n\n window.onload = () => {\n const heroElement = document.getElementsByClassName('hy-hero')[0] as HTMLElement;\n this.handleHeroImageObjectFitValue(this.sizeVariant, heroElement);\n window.addEventListener('resize', () => {\n clearTimeout(timeout);\n timeout = setTimeout(() => this.handleHeroImageObjectFitValue(this.sizeVariant, heroElement), delay);\n });\n };\n\n if (heroTypeValue === 'front_page') {\n return (\n <Host>\n <div class={hyHeroClasses.join(' ')}>\n <div class={`hy-hero__container`}>\n <div class={`hy-hero__image-container`} style={aspectRatio}>\n {this.image &&\n (this._sourceSet ? (\n <picture>\n {this._sourceSet.map((item) => (\n <source\n srcSet={item.src}\n media={item.media}\n type={item.type}\n sizes={item.sizes ? item.sizes : ''}\n />\n ))}\n <img\n loading={this.disableLazy ? 'eager' : 'lazy'}\n alt={this.imageAltText}\n class={`hy-image__image`}\n src={this.image}\n />\n </picture>\n ) : (\n <img\n loading={this.disableLazy ? 'eager' : 'lazy'}\n alt={this.imageAltText}\n class={`hy-image__image`}\n src={this.image}\n />\n ))}\n </div>\n <div class={`hy-hero__spacer-box`}></div>\n <div class={`hy-hero__content-container`}>\n <div class={`hy-hero__content`}>\n <div class={`hy-hero__title-container`}>\n <h2 innerHTML={this.heading} class={heroTitleClasses}></h2>\n </div>\n {this.description && <p class={`hy-hero__description`}>{this.description}</p>}\n {this.url && (\n <div class={`hy-hero__actions`}>\n <hy-cta-button\n link-content={this.urlTitle}\n sc-label={this.scLabel}\n url={this.url}\n is-external={this.isExternal}\n variant={variant}\n />\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n <hy-box mb=\"2, 2, 1, 1\" />\n </Host>\n );\n }\n\n return (\n <Host>\n <div class={hyHeroClasses.join(' ')}>\n <div class={`hy-hero__container`}>\n <div class={`hy-hero__image-container`} style={aspectRatio}>\n {this.image &&\n (this._sourceSet ? (\n <picture>\n {this._sourceSet.map((item) => (\n <source\n srcSet={item.src}\n media={item.media}\n type={item.type}\n sizes={item.sizes ? item.sizes : ''}\n />\n ))}\n <img\n loading={this.disableLazy ? 'eager' : 'lazy'}\n alt={this.imageAltText}\n class={`hy-image__image`}\n src={this.image}\n />\n </picture>\n ) : (\n <img\n loading={this.disableLazy ? 'eager' : 'lazy'}\n alt={this.imageAltText}\n class={`hy-image__image`}\n src={this.image}\n />\n ))}\n </div>\n <div class={`hy-hero__content-container`}>\n <div class={`hy-hero__content`}>\n <div class={`hy-hero__title-container`}>\n <h2 innerHTML={this.heading} class={heroTitleClasses}></h2>\n </div>\n {this.description && <p class={`hy-hero__description`}>{this.description}</p>}\n {this.url && (\n <div class={`hy-hero__actions`}>\n <hy-cta-button\n link-content={this.urlTitle}\n sc-label={this.scLabel}\n url={this.url}\n is-external={this.isExternal}\n variant={variant}\n />\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n <hy-box mb=\"2, 2, 1, 1\" />\n </Host>\n );\n }\n}\n","import { h } from \"@stencil/core\";\n\nfunction SvgAddToTodoList(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M774 871H226V161h548v129h97V65H129v903h742V742h-97v129zm65-387v-97h-65v97h-97v64h97v97h65v-97h96v-64h-96zm-484 97h258v64H355v-64zm0 96h258v65H355v-65zm0-387h258v65H355v-65zm0 97h258v65H355v-65z\" />\n </svg>\n );\n}\n\nexport default SvgAddToTodoList;\n","import {h} from '@stencil/core';\n\nfunction SvgAlert(props) {\n return (\n <svg viewBox=\"0 0 32 32\" {...props}>\n <circle cx=\"16\" cy=\"16\" r=\"16\" />\n <path d=\"M17.6,18.79H15l-.55-10.5h3.72Zm-3.21,3.67a1.8,1.8,0,0,1,.48-1.36,2,2,0,0,1,1.41-.46,1.94,1.94,0,0,1,1.38.47,1.83,1.83,0,0,1,.49,1.35,1.79,1.79,0,0,1-.5,1.34,1.84,1.84,0,0,1-1.37.49,1.93,1.93,0,0,1-1.4-.48A1.79,1.79,0,0,1,14.39,22.46Z\" />\n </svg>\n );\n}\n\nexport default SvgAlert;\n","import { h } from \"@stencil/core\";\n\nfunction SvgArrowDown(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M513 965l419-475 23-22-100-87-23-23-261 294V6H410v649L171 384l-19-23-26 20-74 67-26 20 461 522z\" />\n </svg>\n );\n}\n\nexport default SvgArrowDown;\n","import { h } from \"@stencil/core\";\n\nfunction SvgArrowUp(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M468 32L48 506l-19 23 23 23 77 64 19 23 26-26 239-268v645h161V342l236 271 22 22 123-106-20-26L516 32 497 6z\" />\n </svg>\n );\n}\n\nexport default SvgArrowUp;\n","import {h} from '@stencil/core';\n\nfunction SvgArchive(props) {\n return (\n <svg viewBox=\"0 0 28 34\" {...props}>\n <path id=\"Shape\" d=\"M28,8.9H0V34H28ZM24.71,30.76H3.29V12.14H24.71Z\" />\n <polygon\n id=\"Shape-2\"\n points=\"20.3 15.66 17.01 15.66 17.01 17.53 10.99 17.53 10.99 15.66 7.7 15.66 7.7 20.76 20.3 20.76 20.3 15.66\"\n />\n <rect x=\"3.71\" y=\"4.45\" width=\"20.59\" height=\"3.24\" />\n <rect x=\"5.76\" width=\"16.47\" height=\"3.24\" />\n </svg>\n );\n}\n\nexport default SvgArchive;\n","import { h } from \"@stencil/core\";\n\nfunction SvgAvatarGroup(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M190 387q0 61 31 113t82 82 113 31 113-31 83-82 30-113-30-113-83-83-113-30-113 30-82 83-31 113zm220 552q-142 0-281-74l90-171q102 53 207 48 94-5 184-55l96 168q-136 76-271 80-9 4-25 4zm329-758q-40 0-62 13 52 39 81 97t26 125q0 19-3 29 41-15 67-49t26-77q2-36-16-68t-49-50-70-20zm116 300q-17 8-41 15-14 4-43 10-20 75-71 126h52q82-10 148-38z\" />\n </svg>\n );\n}\n\nexport default SvgAvatarGroup;\n","import { h } from \"@stencil/core\";\n\nfunction SvgAvatar(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M274 387q0 61 31 113t82 82 113 31 113-31 83-82 30-113-30-113-83-83-113-30-113 30-82 83-31 113zm220 548q-143 0-281-74l90-171q102 53 207 49 94-5 184-55l96 168q-133 79-271 83h-25z\" />\n </svg>\n );\n}\n\nexport default SvgAvatar;\n","import { h } from \"@stencil/core\";\n\nfunction SvgBachelor(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M339 784q-9-5-17-9-22-11-46-18-33-10-67-13-41-2-80 8l8 7q10 9 24 17 19 10 41 16 28 7 59 6 37-1 78-14zm-42-39q0-4 1-9 0-11-3-24-4-17-13-34-11-21-30-40-23-22-55-41l2 18q4 22 13 43 11 28 30 49 23 26 55 38zM158 442l-6 6q-7 8-12 19-7 14-8 31-2 20 5 43 8 27 28 56l5-14q6-16 8-35 4-25 0-49-4-30-20-57zm-29 0q5-4 9-9 12-11 22-25 15-20 25-44 13-29 18-61l-16 10q-19 12-33 27-20 21-27 44-9 28 2 58zm26-139q11-2 21-4 26-5 49-14 33-13 54-31 26-22 34-51l-19 3q-23 5-44 13-30 12-53 30-28 23-42 54zm-49 81q6-35-2-65-7-24-22-45-11-15-25-27l-12-8q0 37 7 66 5 24 15 42 8 14 18 24 7 7 15 10zm97-303q-4 6-9 13-11 16-17 34-10 26-9 51 0 31 16 60l8-11q10-14 16-31 9-23 9-49 0-33-14-67zm123 9q-8 4-15 9-18 10-34 24-22 18-37 38-18 25-24 52l23-5q26-8 46-19 29-16 40-37 14-27 1-62zm-181 68q-5 7-9 13-11 16-17 35-10 25-9 50 0 31 16 60l6-10q10-14 16-30 8-24 9-50 0-33-12-68zm100 561q-26-24-65-38-30-11-67-14-26-3-53-1l-21 2q47 29 86 45 33 13 59 18 21 3 37 0 11-2 19-7zm-58-45q3-26-17-50-17-18-49-34-22-11-50-19l-23-6q27 37 55 63 22 20 44 32 15 9 29 12zM0 455q9 29 29 52 16 19 39 34 16 11 34 18l14 6q3-27-14-50-14-19-40-34-19-11-42-20zm106 32q9-23-1-49-9-21-29-42-15-16-34-30l-16-11q-5 34 7 63 9 22 28 40 14 13 31 22zm552 310l-6-7q12-16 16-35 4-14 2-30-2-10-5-20l-4-8q-58 17-58 119l-6 7q-20 12-71 38l-29 13q-20-6-29-13-46-20-81-45 0-37-8-63-14-44-50-56l-3 8q-4 10-5 20-1 16 3 30 5 19 18 35l-3 4q-28-3-63 3-26 5-54 14l-22 8q63 22 114 21 38-2 63-14 23 16 81 48 2 0 4 2l3 1-13 4q-4 0-11 1l-9 2q-3 0-9 2t-10 1h-32v26h35q3 0 10-1t10-2 10-2l12-5q13-6 23-6 2 0 6-2t7-5q1 2 6 4t6 3l13 4q6 2 10 3t11 3 12 2 10 3 9 1h32v-26h-32q-10 0-16-3-3 0-9-1t-11-2l-12-4q2 0 4-1l2-2q58-32 77-48 78 26 175-10 3 2-3 0-97-26-18-5-16-4-30-7-19-4-36-6-20-2-36-1zm3-13q41 13 78 14 31 1 59-6 22-6 41-16 14-8 24-17l8-7q-39-10-80-8-34 3-67 13-24 7-46 18zm142-187q-33 19-56 41-19 19-31 40-9 17-12 34-2 13-2 24l1 9q32-12 55-38 19-21 30-49 9-21 13-43zm39-155q-16 27-20 57-4 24 0 49 2 19 8 35l5 14q20-29 28-56 7-23 5-43-1-17-8-31-5-11-12-19zm-45-139q5 32 18 61 10 24 25 44 10 14 22 25l9 9q11-30 2-58-7-23-27-44-14-15-33-27zM687 203q8 29 34 51 21 18 54 31 23 9 49 14l21 4q-14-31-42-54-23-18-53-30-21-8-44-13zm207 181q3-1 6-3 8-3 15-10 10-10 18-24 10-18 15-42 7-29 7-66l-12 8q-14 12-25 27-15 21-22 45-8 30-2 65zM797 81q-14 34-14 67 0 26 9 49 6 17 16 31l8 11q16-29 16-60 1-25-9-51-6-18-17-34zm-13 132q-7-27-25-52-15-20-37-38-16-14-33-24l-15-9q-13 35 1 62 11 21 40 37 20 11 46 19zm71-55q-13 34-13 67 0 26 8 50 6 16 16 30l8 11q17-28 18-59 0-24-9-50-7-19-18-36zM755 719q3 3 6 5 8 5 19 7 16 3 38 0 26-5 59-18 38-16 84-45l-22-3q-27-2-53 1-37 3-68 14-38 14-63 39zm200-154q-12 3-23 6-28 8-50 19-32 16-48 34-21 24-18 50 5 0 17-4 23-8 49-28 37-29 73-77zm-71 0q7-3 15-6 18-7 34-18 23-15 39-34 20-23 28-52l-20 6q-23 9-42 20-26 15-40 34-17 23-14 50zm10-78l14-6q17-9 31-21 20-18 29-41 13-29 9-64-2 0-18 11-19 14-34 30-21 21-30 42-10 26-1 49z\" />\n </svg>\n );\n}\n\nexport default SvgBachelor;\n","import { h } from \"@stencil/core\";\n\nfunction SvgBulletList(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M0 0h250v250H0V0zm375 62h625v125H375V62zM0 375h250v250H0V375zm375 62h625v125H375V437zM0 750h250v250H0V750zm375 62h625v125H375V812z\" />\n </svg>\n );\n}\n\nexport default SvgBulletList;\n","import { h } from \"@stencil/core\";\n\nfunction SvgCamera(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M32 161v678h936V161H32zm452 549q-57 0-105-29t-77-76-28-105 28-105 77-77 105-28 105 28 77 77 28 105-28 105-77 76-105 29zm290-339q-26 0-45-19t-19-46 19-45 46-19 45 19 19 45-19 46-46 19z\" />\n </svg>\n );\n}\n\nexport default SvgCamera;\n","import { h } from \"@stencil/core\";\n\nfunction SvgCaretDown(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M503 819l462-532-123-110-339 394-345-394L35 287z\" />\n </svg>\n );\n}\n\nexport default SvgCaretDown;\n","import { h } from \"@stencil/core\";\n\nfunction SvgCaretLeft(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M181 503l532 462 110-123-394-339 394-345L713 35z\" />\n </svg>\n );\n}\n\nexport default SvgCaretLeft;\n","import {h} from '@stencil/core';\n\nfunction SvgCaretRight(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M291,35L181,158l394,345L181,842l110,123l532-462L291,35z\" />\n </svg>\n );\n}\n\nexport default SvgCaretRight;\n","import { h } from \"@stencil/core\";\n\nfunction SvgCaretUp(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M497 177L35 710l123 109 339-393 345 393 123-109z\" />\n </svg>\n );\n}\n\nexport default SvgCaretUp;\n","import { h } from \"@stencil/core\";\n\nfunction SvgChat(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M32 129v645h355v194l226-194h355V129H32zm742 419H226v-64h548v64zm0-129H226v-64h548v64z\" />\n </svg>\n );\n}\n\nexport default SvgChat;\n","import { h } from \"@stencil/core\";\n\nfunction SvgCodeFork(props) {\n return (\n <svg viewBox=\"0 0 571 1000\" {...props}>\n <path d=\"M161 821q0-22-16-38t-38-15-37 15-16 38 16 39 37 15 38-15 16-39zm0-642q0-23-16-39t-38-15-37 15-16 38 16 38 37 16 38-16 16-37zm357 71q0-22-15-38t-38-16-38 16-16 38 16 38 38 16 38-16 15-38zm53 0q0 29-14 54t-39 39q-1 160-126 231-38 21-114 45-71 22-94 39t-23 56v15q24 14 39 38t14 54q0 45-31 77t-76 31-76-31-31-77q0-29 15-54t39-38V271q-25-14-39-39T0 179q0-45 32-77t76-31 75 31 31 77q0 29-14 53t-39 39v278q30-15 86-32 30-10 49-17t39-17 33-22 22-29 16-38 5-51q-25-14-39-39t-15-54q0-45 32-76t76-31 75 31 31 76z\" />\n </svg>\n );\n}\n\nexport default SvgCodeFork;\n","import { h } from \"@stencil/core\";\n\nfunction SvgCogs(props) {\n return (\n <svg viewBox=\"0 0 1071 1000\" {...props}>\n <path d=\"M500 500q0-59-42-101t-101-42-101 42-42 101 42 101 101 42 101-42 42-101zm429 286q0-29-21-51t-51-21-50 21-21 51 21 50 51 21 50-21 21-50zm0-572q0-29-21-50t-51-21-50 21-21 50 21 51 51 21 50-21 21-51zM714 449v103q0 6-4 11t-9 6l-86 14q-6 19-18 42 19 27 50 64 4 6 4 12t-4 10q-13 17-46 50t-44 33q-6 0-11-4l-64-50q-21 11-43 17-7 61-13 87-4 13-17 13H305q-6 0-11-4t-5-10l-13-85q-19-6-42-17l-66 49q-4 4-10 4t-13-4q-80-75-80-90 0-5 4-10 5-8 23-30t26-34q-13-24-20-46l-85-13q-5-1-9-6t-4-10V448q0-6 4-12t9-5l86-14q6-19 18-42-19-27-50-64-4-6-4-12t4-10q12-17 46-50t44-33q6 0 12 4l64 50q19-10 43-18 6-60 13-86 3-13 16-13h104q6 0 11 4t6 10l13 85q19 6 41 17l66-49q5-4 12-4t11 4q81 75 81 90 0 5-4 10l-24 30q-17 22-25 34 13 27 19 46l85 12q5 2 9 6t4 11zm357 298v78q0 9-83 17-6 15-16 29 28 63 28 77 0 2-2 4-68 40-69 40-5 0-26-26t-29-39q-11 2-16 2t-18-2q-7 12-28 39t-26 26q-1 0-69-40-3-2-3-4 0-14 29-77-10-14-17-29-83-8-83-17v-78q0-9 83-18 7-16 17-29-29-63-29-77 0-2 3-4l52-30q16-9 17-9 4 0 26 26t28 38q12-1 18-1t16 1q28-40 51-63l4-1q2 0 69 39 2 2 2 4 0 14-28 77 9 13 16 29 83 9 83 18zm0-572v78q0 9-83 18-6 15-16 29 28 63 28 77 0 2-2 4-68 39-69 39-5 0-26-26t-29-38q-11 1-16 1t-18-1q-7 12-28 38t-26 26q-1 0-69-39-3-2-3-4 0-14 29-77-10-14-17-29-83-9-83-18v-78q0-9 83-17 7-16 17-29-29-63-29-77 0-2 3-4l52-30q16-9 17-9 4 0 26 26t28 38q12-2 18-2t16 2q28-40 51-63l4-1q2 0 69 39 2 2 2 4 0 14-28 77 9 13 16 29 83 8 83 17z\" />\n </svg>\n );\n}\n\nexport default SvgCogs;\n","import { h } from \"@stencil/core\";\n\nfunction SvgContentlink(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M949 236q-30-40-74-85t-85-73q-49-36-77-36H400q-28 0-48 20t-20 48v773q0 28 20 48t48 20h516q29 0 49-20t19-48V313q0-28-35-77zm-113-46q36 36 62 69H767V128q33 26 69 62zm94 693q0 6-4 10t-10 4H400q-5 0-9-4t-4-10V110q0-6 4-10t9-4h313v190q0 11 8 19t19 8h190v570zM699 413H246V256L4 498l242 242V570h453V413z\" />\n </svg>\n );\n}\n\nexport default SvgContentlink;\n","import { h } from \"@stencil/core\";\n\nfunction SvgCustomlink(props) {\n return (\n <svg viewBox=\"0 0 1125 1000\" {...props}>\n <path d=\"M844-1L157 686l-95 317 317-95 687-687zm105 222L401 769 296 664l548-548zM185 879l45-149 7-8 105 105-7 8zm847-33L326 140 426 40 72 34l6 353 110-110 706 707z\" />\n </svg>\n );\n}\n\nexport default SvgCustomlink;\n","import { h } from \"@stencil/core\";\n\nfunction SvgDate(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M871 161V65h-97v96H258V65h-97v96H65v97h903v-97h-97zM65 613v355h903V323H65v290zm96 64h194v194H161V677zm452 0v194H419V677h194zm-194-64V419h194v194H419zm452 258H677V677h194v194zm0-258H677V419h194v194zM355 419v194H161V419h194z\" />\n </svg>\n );\n}\n\nexport default SvgDate;\n","import { h } from \"@stencil/core\";\n\nfunction SvgDiscover(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M500 32q-101 0-188 51-84 50-133 135-50 87-50 188 0 52 13 100t35 84l4 4q9 18 87 112 60 69 152 171l80 88 81-90q93-103 151-172 29-33 57-69 18-24 27-37l7-7q22-36 35-86t13-98q0-101-50-188-49-85-133-135-87-51-188-51zm0 645q-75 0-137-37t-100-99-37-138 37-137 100-100 137-37 138 37 99 100 37 137-37 138-99 99-138 37zM390 335q0 30 15 55t40 40 55 15 55-15 40-40 15-55-15-55-40-40-55-14-55 14-40 40-15 55zm113 149q-43 0-87-19l-61 112q71 36 139 36h12q76-5 136-42l-65-113q-36 26-74 26z\" />\n </svg>\n );\n}\n\nexport default SvgDiscover;\n","import { h } from \"@stencil/core\";\n\nfunction SvgDone(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M923 165l-75-62-25-19-20 26-468 558-138-168-20-23-25 20-75 58-25 22 19 26 239 287 22 33 26-33 571-680 19-23z\" />\n </svg>\n );\n}\n\nexport default SvgDone;\n","import { h } from \"@stencil/core\";\n\nfunction SvgDot(props) {\n return (\n <svg viewBox=\"0 0 1125 1000\" {...props}>\n <path d=\"M1059 500q0 135-68 250-66 113-178 178-116 68-250 68t-251-68q-112-65-178-178-68-115-68-250t68-250q66-113 178-178Q428 4 563 4t250 68q112 65 178 178 68 115 68 250z\" />\n </svg>\n );\n}\n\nexport default SvgDot;\n","import {h} from '@stencil/core';\n\nfunction SvgArrowDown(props) {\n return (\n <svg viewBox=\"0 0 26 18\" {...props}>\n <circle id=\"Oval\" fill=\"#107EAB\" cx=\"8.5\" cy=\"9\" r=\"2\"></circle>\n <g id=\"Icon/arrow/to_right\" transform=\"translate(10.000000, 0.000000)\">\n <g transform=\"translate(9.000000, 9.000000) rotate(270.000000) translate(-9.000000, -9.000000) \">\n <path\n d=\"M15.3739539,2.58885408 L9.05563628,10.0114192 L2.62512723,2.58778423 C2.5650068,2.51838293 2.45894051,2.51196471 2.39075562,2.57360208 L0.0533953737,4.68651506 C-0.0121083665,4.74572874 -0.0181566661,4.84589323 0.039753545,4.91243423 L8.93312424,15.1312497 C8.99867166,15.2065661 9.11651053,15.2061936 9.18157232,15.1304643 L17.9609254,4.91164883 C18.018144,4.84504869 18.011809,4.74545823 17.9466045,4.68651506 L15.6092442,2.57360208 C15.5406475,2.51159238 15.4338255,2.5185168 15.3739539,2.58885408 Z\"\n id=\"Path\"\n transform=\"translate(9.000000, 8.859375) rotate(-360.000000) translate(-9.000000, -8.859375) \"\n ></path>\n </g>\n </g>\n <circle id=\"Oval-Copy\" fill=\"#107EAB\" cx=\"2\" cy=\"9\" r=\"2\"></circle>\n </svg>\n );\n}\n\nexport default SvgArrowDown;\n","import { h } from \"@stencil/core\";\n\nfunction SvgDownload(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M839 613v193H161V613H65v290h870V613h-96zm-97-258l-65-65-129 139V129h-96v303L323 290l-65 65 239 258z\" />\n </svg>\n );\n}\n\nexport default SvgDownload;\n","import { h } from \"@stencil/core\";\n\nfunction SvgDrag(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M65 226h870v129H65V226zm0 193h870v129H65V419zm0 194h870v129H65V613z\" />\n </svg>\n );\n}\n\nexport default SvgDrag;\n","import { h } from \"@stencil/core\";\n\nfunction SvgDragbutton(props) {\n return (\n <svg viewBox=\"0 0 1125 1000\" {...props}>\n <path d=\"M999 991l-8 8h8v-8zm0-144L847 999h144l8-8V847zm0-283L564 999h144l291-291V564zm0-282L282 999h143l574-574V282zm0-282h-1L0 999h143l856-856V0z\" />\n </svg>\n );\n}\n\nexport default SvgDragbutton;\n","import { h } from \"@stencil/core\";\n\nfunction SvgDropDown(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M790 226L500 774 210 226h580z\" />\n </svg>\n );\n}\n\nexport default SvgDropDown;\n","import { h } from \"@stencil/core\";\n\nfunction SvgEditEvent(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M445 787l-268 90 23-280zm132-664l62 48-352 445-61-48zm91 71l61 48-348 445-62-48zm93 71l62 48-352 445-61-48z\" />\n </svg>\n );\n}\n\nexport default SvgEditEvent;\n","import { h } from \"@stencil/core\";\n\nfunction SvgEdit(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M496 661l64-65-85-85-64 65v31h53v54h32zm245-402q-9-9-18 0L527 455q-9 9 0 18t18 0l196-196q9-9 0-18zm45 331v106q0 67-47 114t-114 47H161q-67 0-114-47T0 696V232q0-66 47-114t114-47h464q35 0 65 14 9 4 11 13t-6 16l-27 28q-8 8-18 4-13-3-25-3H161q-37 0-63 26t-27 63v464q0 37 27 63t63 27h464q37 0 63-27t26-63v-70q0-7 5-12l36-36q8-8 20-4t11 16zm-54-411l161 160-375 375H357V554zm248 73l-51 52-161-161 51-51q16-16 38-16t38 16l85 84q16 16 16 38t-16 38z\" />\n </svg>\n );\n}\n\nexport default SvgEdit;\n","import { h } from \"@stencil/core\";\n\nfunction SvgEmbed(props) {\n return (\n <svg viewBox=\"0 0 1250 1000\" {...props}>\n <path d=\"M813 719l93 93 313-312-313-313-93 94 218 219zM438 281l-94-94L31 500l313 312 94-93-219-219zm247-134l68 18-188 688-68-18z\" />\n </svg>\n );\n}\n\nexport default SvgEmbed;\n","import {h} from '@stencil/core';\n\nfunction SvgEuro(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M825.1,752.3c-9.5-8.4-24.2-8.4-32.7,1.1c-49.5,49.5-112.7,75.9-176,75.9 c-92.7,0-181.2-56.9-231.8-150.7h240.2c13.7,0,24.2-10.5,24.2-24.2v-82.2c0-13.7-10.5-24.2-24.2-24.2H342.5 c-2.1-15.8-2.1-31.6-2.1-46.3s1.1-30.5,3.2-47.4h281.3c13.7,0,24.2-10.5,24.2-24.2v-82.2c0-13.7-10.5-24.2-24.2-24.2l-240.2,0 c50.6-92.7,138.1-150.7,231.8-150.7c64.3,0,126.4,27.4,176,76.9c9.5,9.5,24.2,9.5,32.7,1.1l91.7-84.3c5.3-4.2,7.4-10.5,8.4-17.9 c0-6.3-2.1-12.6-6.3-17.9C835.6,46.3,729.2,0,617.5,0C433.1,0,265.6,129.6,199.2,322.4H98c-13.7,0-24.2,10.5-24.2,24.2v82.2 c0,13.7,10.5,24.2,24.2,24.2h73.8c-1.1,16.9-2.1,32.7-2.1,47.4c0,14.7,1.1,30.5,2.1,46.3H98c-13.7,0-24.2,10.5-24.2,24.2v82.2 c0,13.7,10.5,24.2,24.2,24.2h101.2C265.6,870.4,433.1,1000,617.5,1000c111.7,0,219.2-46.3,301.4-130.6c4.2-4.2,7.4-10.5,7.4-17.9 c0-6.3-3.2-12.6-8.4-17.9L825.1,752.3z\" />\n </svg>\n );\n}\n\nexport default SvgEuro;\n","import { h } from \"@stencil/core\";\n\nfunction SvgEvents(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M871 161V65h-97v96H226V65h-97v96H32v97h936v-97h-97zM32 968h936V323H32v645zm97-549h742v452H129V419zm348 239l-67-68-45 45 125 126 149-226-52-38z\" />\n </svg>\n );\n}\n\nexport default SvgEvents;\n","import { h } from \"@stencil/core\";\n\nfunction SvgExternalLink(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M786 518v178q0 67-47 114t-114 47H161q-67 0-114-47T0 696V232q0-66 47-114t114-47h393q7 0 12 5t5 13v36q0 8-5 13t-12 5H161q-37 0-63 26t-27 63v464q0 37 27 63t63 27h464q37 0 63-27t26-63V518q0-8 5-13t13-5h36q8 0 13 5t5 13zm214-482v285q0 15-10 25t-25 11-26-10l-98-99-364 364q-5 6-12 6t-14-6l-63-63q-6-6-6-14t6-12l364-364-99-98q-10-11-10-26t11-25 25-10h285q15 0 26 10t10 26z\" />\n </svg>\n );\n}\n\nexport default SvgExternalLink;\n","import { h } from \"@stencil/core\";\n\nfunction SvgEyeSlash(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M355 500q0 39 20 72t53 53 72 20 73-20 53-53 19-72-19-73-53-53-73-19-72 19-53 53-20 73zm145-371q-61 0-119 16-52 14-102 42-44 25-86 59-36 31-70 69-28 31-54 68-21 29-39 59-12 22-22 42l-8 16 9 16q12 20 26 42 20 30 42 59 28 37 58 68 35 38 72 69 42 34 86 59 48 28 98 42 54 16 109 16t109-16q50-14 98-42 44-25 86-59 37-31 72-69 30-31 58-68 22-29 42-59 14-22 26-42l9-16-8-16q-10-20-22-42-18-30-39-59-26-37-54-68-34-38-70-69-42-34-86-59-50-28-102-42-58-16-119-16zm0 645q-75 0-137-37T263 637t-37-137 37-138 100-99 137-37 138 37 99 99 37 138-37 137-99 100-138 37zm116-274l326-329 23-23L852 35 500 384 384 500 35 852l113 113 352-349z\" />\n </svg>\n );\n}\n\nexport default SvgEyeSlash;\n","import { h } from \"@stencil/core\";\n\nfunction SvgFacebook(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M710 229V103l-31-3q-38-3-73-3-31 0-58 5-30 6-48 17-53 27-74 91-9 21-11 53-2 19-2 56v75H287v145h126v367h145V539h123l19-142H558l-1-49q-1-52 1-64 3-15 13-28t23-17 66-8z\" />\n </svg>\n );\n}\n\nexport default SvgFacebook;\n","import { h } from \"@stencil/core\";\n\nfunction SvgFavorites(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M500 65l106 329h346L671 603l110 332-281-203-281 203 110-332L48 394h346z\" />\n </svg>\n );\n}\n\nexport default SvgFavorites;\n","import { h } from \"@stencil/core\";\n\nfunction SvgFeed(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M133 733q-36 0-66 18t-49 48-18 67 18 67 49 48 66 18 67-18 49-48 17-67-17-67-49-48-67-18zM0 340v191q94 0 179 35t152 102 102 152 35 180h192q0-134-52-257-50-118-141-210T257 392Q134 340 0 340zM0 0v192q164 0 314 63 145 62 257 174t173 257q64 150 64 314h192q0-203-79-389-76-179-214-318T389 79Q203 0 0 0z\" />\n </svg>\n );\n}\n\nexport default SvgFeed;\n","import { h } from \"@stencil/core\";\n\nfunction SvgFileText(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M896 224q-33-46-84-98t-98-85Q658 0 625 0H141q-33 0-55 23T63 78v844q0 32 23 55t55 23h718q33 0 56-23t23-55V312q0-32-42-88zm-129-53q41 41 71 79H688V100q37 29 79 71zm108 751q0 6-4 11t-12 4H141q-7 0-11-4t-5-11V78q0-6 5-11t11-5h484v219q0 13 9 22t22 9h219v610zM719 812H281q-13 0-22-9t-9-22 9-22 22-9h438q13 0 22 9t9 22-9 22-22 9zm0-125H281q-13 0-22-9t-9-22 9-22 22-9h438q13 0 22 9t9 22-9 22-22 9zm0-125H281q-13 0-22-9t-9-22 9-22 22-9h438q13 0 22 9t9 22-9 22-22 9z\" />\n </svg>\n );\n}\n\nexport default SvgFileText;\n","import { h } from \"@stencil/core\";\n\nfunction SvgFullScreen(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M65 65h290v96H242l161 162-80 80-162-161v113H65V65zm870 0H645v96h113L597 323l80 80 162-161v113h96V65zM65 935h290v-96H242l161-162-80-80-162 161V645H65v290zm870 0H645v-96h113L597 677l80-80 162 161V645h96v290z\" />\n </svg>\n );\n}\n\nexport default SvgFullScreen;\n","import {h} from '@stencil/core';\n\nfunction SvgGlobe(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M500,0C223.9,0,0,223.9,0,500s223.9,500,500,500s500-223.9,500-500S776.1,0,500,0z M833.3,291.7H684.1 C670.4,227.7,650,171.2,625,125C712.9,158,786.1,217,833.3,291.7L833.3,291.7z M875,497c0,36-4.5,70.8-12.2,104.2H708.3 c2.8-33.6,4.2-68.5,4.2-104.2c0-35.7-1.4-70.5-4.2-104.2h154.4C870.5,426.2,875,461,875,497L875,497z M392.9,708.3h208.3 C571.6,844,518.9,916.7,497,916.7C475.1,916.7,422.5,844,392.9,708.3z M380.1,601.2c-3.2-32.4-5.1-67-5.1-104.2 c0-37.2,1.9-71.7,5.1-104.2h239.8c3.2,32.4,5.1,67,5.1,104.2c0,37.2-1.9,71.7-5.1,104.2H380.1z M137.2,392.9h154.4 c-2.8,33.6-4.2,68.5-4.2,104.2c0,35.7,1.4,70.5,4.2,104.2H137.2C129.5,567.8,125,533.1,125,497C125,461,129.5,426.2,137.2,392.9z M601.2,291.7l-208.3,0C422.5,156,475.1,83.3,497,83.3C518.9,83.3,571.6,156,601.2,291.7z M375,125c-25,46.2-45.4,102.7-59.1,166.7 H166.7C213.9,217.1,287.1,158,375,125L375,125z M315.9,708.3c13.7,63.9,34,120.5,59.1,166.7c-87.9-33-161.1-92-208.3-166.7H315.9z M625,875c25-46.2,45.4-102.7,59.1-166.7h149.3C786.1,782.9,712.9,842,625,875L625,875z\" />\n </svg>\n );\n}\n\nexport default SvgGlobe;\n","import { h } from \"@stencil/core\";\n\nfunction SvgGooglePlus(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M318 447v109h181q-5 28-22 56-22 35-58 56-43 25-101 25-53 0-98-27t-72-73-27-101 27-101 72-73 98-27q76 0 127 49l86-83q-43-40-95-61-55-22-118-22-86 0-161 43-72 43-114 114Q0 406 0 492t43 161q42 72 114 114 75 43 161 43 91 0 161-40 68-39 107-110t38-161q0-23-5-52H318zm682-10h-94v-93h-93v93h-94v94h94v94h93v-94h94v-94z\" />\n </svg>\n );\n}\n\nexport default SvgGooglePlus;\n","import { h } from \"@stencil/core\";\n\nfunction SvgGrid(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M903 290v-96h-97V97h-96v97H548V97h-96v97H290V97h-96v97H97v96h97v162H97v96h97v162H97v96h97v97h96v-97h162v97h96v-97h162v97h96v-97h97v-96h-97V548h97v-96h-97V290h97zm-613 0h162v162H290V290zm0 420V548h162v162H290zm420 0H548V548h162v162zm0-258H548V290h162v162z\" />\n </svg>\n );\n}\n\nexport default SvgGrid;\n","import { h } from \"@stencil/core\";\n\nfunction SvgHamburger(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M903 419H65v162h870V419h-32zm0 258H65v162h870V677h-32zm0-516H65v162h870V161h-32z\" />\n </svg>\n );\n}\n\nexport default SvgHamburger;\n","import { h } from \"@stencil/core\";\n\nfunction SvgHeart(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M968 326q0-110-48-179-36-53-98-78-44-17-87-17-59 0-114 31-41 24-78 65-16 18-43 55l-31-38q-11-14-22-25-14-14-27-26-16-13-32-24-18-12-37-21t-41-13-45-4q-43 0-87 17-62 25-98 78-48 69-48 179 0 131 79 264 61 105 166 204 74 69 152 122l6 7q25 14 30 19l7 4q9 4 15 6h19q20-7 15-5 8-3 9-5t11-8 17-11l7-7q80-54 156-124 106-100 168-204 79-133 79-262z\" />\n </svg>\n );\n}\n\nexport default SvgHeart;\n","import {h} from '@stencil/core';\n\nfunction SvgHeartSupport(props) {\n return (\n <svg viewBox=\"0 0 16 16\" {...props}>\n <path d=\"M1.26234059,1.47444321 C-0.421989103,3.44260781 -0.419570856,6.56432454 1.26234059,8.53342384 L7.39772074,15.7174761 C7.55302345,15.8974257 7.76996687,16 7.99652384,16 C8.22388007,16 8.44082554,15.897419 8.59532694,15.7174761 C10.641492,13.3259819 12.6907721,10.931817 14.7370601,8.5403228 C16.4213898,6.57215821 16.4205701,3.44955129 14.7370601,1.48134218 C13.0535502,-0.486866922 10.2157575,-0.486822413 8.53138685,1.48134218 L7.99982331,2.10029098 L7.46825978,1.47437645 C6.62609494,0.490294152 5.49814655,0 4.36859966,0 C3.23880685,0 2.10442346,0.490360916 1.26234059,1.47444321 Z M6.35964437,3.16815532 L7.43710533,4.37841446 C7.58389377,4.54236759 7.78894356,4.63582365 8.00307984,4.63582365 C8.21797156,4.63582365 8.42302328,4.5423615 8.56905435,4.37841446 L9.64045249,3.18084837 C10.6672219,2.02367291 12.2031147,2.02367291 13.2299229,3.18084837 C14.2566924,4.33802382 14.2566924,6.24360205 13.2299229,7.40077751 C11.4835935,9.3682191 9.74020842,11.3325787 7.99399527,13.3 L2.77007709,7.39449182 C1.74330764,6.23492374 1.74330764,4.32524968 2.77007709,3.16807422 C3.28382985,2.58908096 3.92699415,2.3 4.56785341,2.3 C5.20879014,2.3 5.84589161,2.58918234 6.35964437,3.16815532 Z\"></path>\n </svg>\n );\n}\n\nexport default SvgHeartSupport;\n","import { h } from \"@stencil/core\";\n\nfunction SvgHelsinginyliopisto(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M454 874h94v94h-94v-94zm0-840h94v93h-94V34zm378 496q-30-19-38-74-26 3-43-3-27-10-39-42-5-11-11-45t-14-54q-12-31-34-55-32-34-74-49-37-14-78-11 29 19 36 46 6 23-7 41t-35 18-42-12q-9-5-35-26-23-18-41-27-26-11-56-11t-53 14q24 3 41 17 13 11 23 32 3 5 17 39 18 43 69 57-13 8-39 8-29 0-54-14-20-12-44-37t-44-36q-27-16-60-16-16 0-30 4-12 3-18 7 24 4 43 15 23 14 23 33 0 12-7 18t-19 5-23-12q-19-21-43-32-26-13-54-13-14 0-27 4T3 329q34 4 57 27t45 74q14 33 33 50 24 22 63 23 6 0 29-3 20-2 31 0 16 2 26 11t13 22q2 6 4 23 3 15 6 23 9 20 29 30t56 12q-19 16-54 17-32 2-65-9t-49-29q2 46 25 79 25 37 69 50 48 15 112-2 18-5 30-1t19 22q15 41 69 34 48-6 79 5t58 44q5-48-23-87-19-26-53-48-20-12-28-28-5-11-6-26 29 33 82 40 82 12 109 50 1-22-6-41-6-15-19-29-10-10-26-23-19-15-23-18-11-10-13-19 19 13 36 18t36 3q8 0 28-5t30-5q16 0 29 7 14 8 26 28 29-20 68-16 35 3 64 22-12-28-34-48-18-17-44-31-12-7-47-23-28-13-42-22zm-284 17h-94v-93h94v93z\" />\n </svg>\n );\n}\n\nexport default SvgHelsinginyliopisto;\n","import {h} from '@stencil/core';\n\nfunction SvgHome(props) {\n return (\n <svg viewBox=\"0 0 56 65\" {...props} stroke=\"black\" stroke-width=\"1\">\n <path d=\"M29.3106262,0.81816473 L55.3106262,23.6051927 C55.7484916,23.9889485 56,24.5457471 56,25.1313539 L56,62.3034274 C56,63.4192907 55.1045695,64.3238767 54,64.3238767 L2,64.3238767 C0.8954305,64.3238767 0,63.4192907 0,62.3034274 L0,25.1313539 C0,24.5457471 0.251508395,23.9889485 0.6893738,23.6051927 L26.6893738,0.81816473 C27.4413507,0.159114007 28.5586493,0.159114007 29.3106262,0.81816473 Z M28,10.3657587 L8,27.8911356 L8,56.2420796 L48,56.2420796 L48,27.8951765 L28,10.3657587 Z\"></path>\n </svg>\n );\n}\n\nexport default SvgHome;\n","import { h } from \"@stencil/core\";\n\nfunction SvgHorizontalResize(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M363 119v358H194V360L0 518l194 156V557h169v358h80V119h-80zm273 796V557h169v117l195-158-195-156v117H636V119h-80v796h80z\" />\n </svg>\n );\n}\n\nexport default SvgHorizontalResize;\n","import { h } from \"@stencil/core\";\n\nfunction SvgHyLogo(props: any) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M452 0h96v97h-96V0zm0 903h96v97h-96v-97zm380-358q-32-20-38-74-25 3-44-3-28-10-40-42-6-13-12-47t-13-52q-12-32-33-56-33-35-74-50-37-14-78-11 30 19 37 46 6 23-7 41t-36 19-42-12q-8-5-35-27-22-18-40-26-26-12-58-12-25 0-51 13 24 3 40 16 13 12 24 32 3 7 16 39 10 23 27 36t44 22q-13 6-38 6-29 0-55-15-20-11-45-36t-43-36q-28-16-61-16-16 0-29 4t-19 9q23 3 42 14 23 15 23 34 0 11-7 17t-19 5-23-12q-18-20-43-33t-54-12q-13 0-26 3T0 339q34 5 58 28t45 72q15 35 33 51 24 23 64 23 5 0 29-3 20-2 31 0 17 2 27 13 9 8 12 21 2 6 5 23 2 15 6 23 10 21 28 31 21 11 56 11-19 19-54 21-32 2-65-9t-49-28q2 46 25 80 25 37 68 50 49 14 113-4 18-5 30-1t19 24q16 41 71 35 48-5 79 6t59 42q8-81-77-135-15-9-23-19-6-8-9-19l-4-17q16 18 38 28 17 8 43 14 82 10 110 52 2-23-6-42-6-15-19-29-10-10-26-22-19-15-23-18-11-10-13-18 19 12 36 17t38 5q7-1 27-6t31-4q16 0 28 7 15 9 27 29 29-18 68-15 35 3 64 21-12-30-34-52-17-18-44-33-12-7-47-23-28-14-43-24zm-284 36h-96v-97h96v97z\" />\n </svg>\n );\n}\n\nexport default SvgHyLogo;\n","import { h } from \"@stencil/core\";\n\nfunction SvgIdNumber(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M419 65H65v354l483 494 365-397zM242 323q-34 0-57-24t-24-57 24-58 57-23 58 23 23 58-23 57-58 24z\" />\n </svg>\n );\n}\n\nexport default SvgIdNumber;\n","import { h } from \"@stencil/core\";\n\nfunction SvgImageGallery(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M728 732q30 0 51-21t21-51V205q0-30-21-51t-51-21H72q-30 0-51 21T0 205v455q0 30 21 51t51 21h656zM72 694q-14 0-24-10t-10-24V205q0-14 10-25t24-10h656q15 0 25 10t10 25v455q0 14-10 24t-25 10H72zm440-224l-112-38-97 87-154 115h570V500l-12-9q-14-14-29-33-20-26-38-60-22-41-38-92-10-31-34 12-16 30-38 94zM278 306q0 35-24 59t-59 25-59-25-24-59 24-59 59-24 59 24 24 59zm517-81q14 0 24 10t10 25v455q0 14-10 24t-24 10H138q-14 0-24-10t-10-24H67q0 30 21 51t50 21h657q30 0 51-21t21-51V260q0-30-21-51t-51-21v37zm133 113q14 0 25 10t10 25v455q0 14-10 24t-25 10H272q-15 0-25-10t-10-24h-37q0 30 21 51t51 21h656q30 0 51-21t21-51V373q0-30-21-51t-51-21v37zm-66-58q14 0 24 10t10 25v455q0 14-10 24t-24 10H205q-14 0-24-10t-10-24h-38q0 30 21 51t51 21h657q29 0 50-21t21-51V315q0-30-21-51t-50-21v37z\" />\n </svg>\n );\n}\n\nexport default SvgImageGallery;\n","import { h } from \"@stencil/core\";\n\nfunction SvgImage(props) {\n return (\n <svg viewBox=\"0 0 1071 1000\" {...props}>\n <path d=\"M357 321q0 45-31 76t-76 32-76-32-31-76 31-76 76-31 76 31 31 76zm572 215v250H143V679l178-179 90 89 285-285zm53-393H89q-7 0-12 5t-6 13v678q0 8 6 13t12 5h893q7 0 13-5t5-13V161q0-8-5-13t-13-5zm89 18v678q0 37-26 64t-63 26H89q-37 0-63-26T0 839V161q0-37 26-64t63-26h893q37 0 63 26t26 64z\" />\n </svg>\n );\n}\n\nexport default SvgImage;\n","import { h } from \"@stencil/core\";\n\nfunction SvgImages(props) {\n return (\n <svg viewBox=\"0 0 1125 1000\" {...props}>\n <path d=\"M1063 125h-63V62q0-25-18-44T938 0H63Q37 0 19 18T0 62v750q0 26 19 45t44 18h62v62q0 26 19 45t44 18h875q25 0 44-18t18-45V187q0-25-18-44t-44-18zm-938 62v625H63V62l875 1v62H188q-26 0-44 18t-19 44zm938 750H188V187l874 1v749h1zM938 344q0 39-27 66t-67 27-66-27-28-66 28-67 66-27 67 27 27 67zm62 531H250V750l219-375 250 312h62l219-187v375z\" />\n </svg>\n );\n}\n\nexport default SvgImages;\n","import { h } from \"@stencil/core\";\n\nfunction SvgInfoStroke(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M500 161q92 0 171 47 77 44 121 121 47 79 47 171t-47 171q-44 77-121 121-79 47-171 47t-171-47q-77-44-121-121-47-79-47-171t47-171q44-77 121-121 79-47 171-47zm0-96q-119 0-220 59-99 57-156 156-59 101-59 220t59 220q57 99 156 156 101 59 220 59t220-59q99-57 156-156 59-101 59-220t-59-220q-57-99-156-156-101-59-220-59zm-48 354h96v258h-96V419zm0-129h96v97h-96v-97z\" />\n </svg>\n );\n}\n\nexport default SvgInfoStroke;\n","import {h} from '@stencil/core';\n\nfunction SvgInfo(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M500 65q-119 0-220 59-99 57-156 156-59 101-59 220t59 220q57 99 156 156 101 59 220 59t220-59q99-57 156-156 59-101 59-220t-59-220q-57-99-156-156-101-59-220-59zm48 612h-96V419h96v258zm0-290h-96v-97h96v97z\" />\n </svg>\n );\n}\n\nexport default SvgInfo;\n","import { h } from \"@stencil/core\";\n\nfunction SvgInstagram(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M760 796V434h-75q11 35 11 73 0 71-36 130t-97 94-134 35q-110 0-188-76t-78-183q0-38 11-73H95v362q0 14 10 24t24 10h597q14 0 24-10t10-24zM602 498q0-69-50-118t-122-49-122 49-51 118 51 118 122 49 122-49 50-118zm158-201v-92q0-15-11-27t-27-11h-98q-16 0-27 11t-11 27v92q0 17 11 28t27 11h98q16 0 27-11t11-28zm97-116v638q0 45-32 78t-78 32H110q-45 0-77-32T0 819V181q0-45 33-78t77-32h637q45 0 78 32t32 78z\" />\n </svg>\n );\n}\n\nexport default SvgInstagram;\n","import { h } from \"@stencil/core\";\n\nfunction SvgLeikiList(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M382 413H222V256L0 498l222 242V570h160V413zm582-79q-24-33-62-73l-12-17q-30-41-74-85t-85-74q-48-35-77-35H342q-28 0-48 19t-20 49v675q0 28 20 48t48 20h6v22q0 28 20 48t48 20h516q28 0 48-20t20-48V411q0-29-36-77zM713 139q31 26 65 59 35 35 61 69H709V139h4zM350 807h-8q-6 0-10-4t-4-10V117q0-5 4-9t10-4h312v190q0 11 8 19t19 8h190v472q0 5-4 9t-9 4H350v1zm596 76q0 6-4 10t-10 4H416q-6 0-10-4t-4-10v-22h456q28 0 48-20t20-48V411h20v472zM424 200h131v411h230v119H424V200z\" />\n </svg>\n );\n}\n\nexport default SvgLeikiList;\n","import { h } from \"@stencil/core\";\n\nfunction SvgLinkArrowDown(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M516 965l419-475 20-22-23-23-74-64-23-23-261 294V6H413v649L174 384l-19-23-26 20-74 67-26 20 19 26 442 496z\" />\n </svg>\n );\n}\n\nexport default SvgLinkArrowDown;\n","import { h } from \"@stencil/core\";\n\nfunction SvgLinkArrowLeft(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M26 523l474 419 23 23 87-100 22-23-293-261h645V419H335l271-238 23-20-19-26-68-74-19-26L0 497z\" />\n </svg>\n );\n}\n\nexport default SvgLinkArrowLeft;\n","import { h } from \"@stencil/core\";\n\nfunction SvgLinkArrowOffsite(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M881 77l-633 36-32 3 3 32 7 100v33l32-4 358-19-455 455 113 113 458-458-22 361v32h32l97 7 32 3 3-32 39-626 3-39z\" />\n </svg>\n );\n}\n\nexport default SvgLinkArrowOffsite;\n","import { h } from \"@stencil/core\";\n\nfunction SvgLinkArrowUp(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M942 513L526 42l-23-26-26 26L58 516l-23 23 100 87 23 22 261-293v645h162V352l238 271 20 22 26-19 74-68 26-19z\" />\n </svg>\n );\n}\n\nexport default SvgLinkArrowUp;\n","import { h } from \"@stencil/core\";\n\nfunction SvgLinkArrow(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M958 477L484 58l-23-23-87 100-22 23 293 261H0v162h648L377 819l-22 20 19 26 68 74 19 26 523-462z\" />\n </svg>\n );\n}\n\nexport default SvgLinkArrow;\n","import { h } from \"@stencil/core\";\n\nfunction SvgLinkedin(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M195 349v553H11V349h184zm11-171q1 41-27 68t-76 27h-1q-46 0-74-27T0 178t29-68 75-27 74 27 28 68zm651 407v317H674V606q0-59-23-92t-71-33q-35 0-58 19t-36 48q-6 17-6 45v309H296q1-223 1-362V376l-1-27h184v80h-1q11-18 23-32t31-29 49-24 64-8q95 0 153 63t58 186z\" />\n </svg>\n );\n}\n\nexport default SvgLinkedin;\n","import { h } from \"@stencil/core\";\n\nfunction SvgListAsBlocks(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M0 106h286v214H0V106zm357 0h286v214H357V106zm357 0h286v214H714V106zM0 392h286v214H0V392zm357 0h286v214H357V392zm357 0h286v214H714V392zM0 677h286v215H0V677zm357 0h286v215H357V677zm357 0h286v215H714V677z\" />\n </svg>\n );\n}\n\nexport default SvgListAsBlocks;\n","import { h } from \"@stencil/core\";\n\nfunction SvgList(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M97 806h806v97H97v-97zm0-225h806v96H97v-96zm0-226h806v97H97v-97zm0-226h806v97H97v-97z\" />\n </svg>\n );\n}\n\nexport default SvgList;\n","import { h } from \"@stencil/core\";\n\nfunction SvgListoflinks(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M640 413H226V256L4 498l222 242V570h414V413zm324-79q-25-34-62-73l-12-17q-29-40-74-85t-85-74q-49-35-77-35H342q-28 0-48 19t-20 48v676q0 28 20 48t48 20h6v22q0 28 20 48t48 20h516q28 0 48-20t20-48V411q0-28-36-77zM712 139q32 25 66 59 36 36 61 69H708V139h4zM350 807h-8q-6 0-10-4t-4-10V117q0-5 4-9t10-4h312v190q0 11 8 19t19 8h190v472q0 6-4 10t-9 4H350zm596 76q0 6-4 10t-10 4H416q-6 0-10-4t-4-10v-22h456q28 0 48-20t20-48V411h20v472z\" />\n </svg>\n );\n}\n\nexport default SvgListoflinks;\n","import {h} from '@stencil/core';\n\nfunction SvgListStyleGrid(props) {\n return (\n <svg viewBox=\"0 0 64 64\" {...props}>\n <rect x=\"-1.77365678e-11\" y=\"-2.74269496e-13\" width=\"15.2380952\" height=\"15.2380952\"></rect>\n <rect x=\"-1.77365678e-11\" y=\"24.3809524\" width=\"15.2380952\" height=\"15.2380952\"></rect>\n <rect x=\"-1.77365678e-11\" y=\"48.7619048\" width=\"15.2380952\" height=\"15.2380952\"></rect>\n <rect x=\"24.3809524\" y=\"-2.74269496e-13\" width=\"15.2380952\" height=\"15.2380952\"></rect>\n <rect x=\"24.3809524\" y=\"24.3809524\" width=\"15.2380952\" height=\"15.2380952\"></rect>\n <rect x=\"24.3809524\" y=\"48.7619048\" width=\"15.2380952\" height=\"15.2380952\"></rect>\n <rect x=\"48.7619048\" y=\"-2.74269496e-13\" width=\"15.2380952\" height=\"15.2380952\"></rect>\n <rect x=\"48.7619048\" y=\"24.3809524\" width=\"15.2380952\" height=\"15.2380952\"></rect>\n <rect x=\"48.7619048\" y=\"48.7619048\" width=\"15.2380952\" height=\"15.2380952\"></rect>\n </svg>\n );\n}\nexport default SvgListStyleGrid;\n","import {h} from '@stencil/core';\n\nfunction SvgListStyleList(props) {\n return (\n <svg viewBox=\"0 0 64 64\" {...props}>\n <rect x=\"0\" y=\"0\" width=\"64\" height=\"9.14285714\"></rect>\n <rect x=\"0\" y=\"18.2857143\" width=\"64\" height=\"9.14285714\"></rect>\n <rect x=\"0\" y=\"36.5714286\" width=\"64\" height=\"9.14285714\"></rect>\n <rect x=\"0\" y=\"54.8571429\" width=\"64\" height=\"9.14285714\"></rect>\n </svg>\n );\n}\n\nexport default SvgListStyleList;\n","import { h } from \"@stencil/core\";\n\nfunction SvgLocation(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M500 32q-101 0-188 51-84 50-133 135-50 87-50 188 0 52 13 100t35 84l4 4q9 18 87 112 60 69 152 171l80 88 81-90q93-103 151-172 29-33 57-69 18-24 27-37l7-7q22-36 35-86t13-98q0-101-50-188-49-85-133-135-87-51-188-51zm0 645q-75 0-137-37t-100-99-37-138 37-137 100-100 137-37 138 37 99 100 37 137-37 138-99 99-138 37zM355 403q0 40 20 73t53 52 72 20 73-20 53-52 19-73-19-73-53-53-73-19-72 19-53 53-20 73z\" />\n </svg>\n );\n}\n\nexport default SvgLocation;\n","import { h } from \"@stencil/core\";\n\nfunction SvgLog(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M258 419h-32v162h774V419H258zm0 258h-32v162h774V677H258zm710-516H226v162h774V161h-32zm-936 0H0v162h161V161H32zm0 258H0v162h161V419H32zm0 258H0v162h161V677H32z\" />\n </svg>\n );\n}\n\nexport default SvgLog;\n","import { h } from \"@stencil/core\";\n\nfunction SvgLogin(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M258 871h548V161H258v129h-97V65h742v903H161V742h97v129zm129-97l258-239-258-245-64 65 138 129H161v97h304L323 710z\" />\n </svg>\n );\n}\n\nexport default SvgLogin;\n","import { h } from \"@stencil/core\";\n\nfunction SvgLogout(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M742 871H194V161h548v129h97V65H97v903h742V742h-97v129zm-97-97l258-239-258-245-64 65 138 129H419v97h304L581 710z\" />\n </svg>\n );\n}\n\nexport default SvgLogout;\n","import { h } from \"@stencil/core\";\n\nfunction SvgMagnifyMinus(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M958 848L758 645q39-54 60-116t21-126q0-109-55-203-54-91-145-145Q545 0 436 0T232 55q-91 54-145 145-55 94-55 203t55 204q54 91 145 144 94 55 203 55 54 0 106-14t98-40l229 229 109-110zM435 161q65 0 121 33t89 88 32 121-32 121-89 88-121 33-120-33-88-88-33-121 33-121 88-88 120-33zM290 355h291v97H290v-97z\" />\n </svg>\n );\n}\n\nexport default SvgMagnifyMinus;\n","import { h } from \"@stencil/core\";\n\nfunction SvgMagnifyPlus(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M958 848L758 645q39-54 60-116t21-126q0-109-55-203-54-91-145-145Q545 0 436 0T232 55q-91 54-145 145-55 94-55 203t55 204q54 91 145 144 94 55 203 55 54 0 106-14t98-40l229 229 109-110zM435 161q65 0 121 33t89 88 32 121-32 121-89 88-121 33-120-33-88-88-33-121 33-121 88-88 120-33zm-48 387h97v-96h97v-97h-97v-97h-97v97h-97v97h97v96z\" />\n </svg>\n );\n}\n\nexport default SvgMagnifyPlus;\n","import { h } from \"@stencil/core\";\n\nfunction SvgMail(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M0 129v742h1000V129H0zm500 477l61-51 287 219H152l287-219zm113-93l290-245v464zm193-287h46L500 523 148 226h658zm-709 0zm290 287L97 735V268zM97 774z\" />\n </svg>\n );\n}\n\nexport default SvgMail;\n","import { h } from \"@stencil/core\";\n\nfunction SvgMaster(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M394 619q-84 0-154-11-58-10-104-27-34-12-58-27-18-11-20-15-13-13-31-87-13-53-24-113v-7l3-6q0-3 15-16 20-18 49-36 39-23 90-41 64-22 141-35 91-14 199-14 112 0 222 21 96 18 172 48 69 28 93 53 13 13 13 29l-3 13q-21 83-32 122-10 35-17 46-5 8-13 10-306 93-541 93zM32 342q33 158 45 174l10 7q14 8 32 16 26 12 56 21 39 11 84 17 53 8 113 9 69 1 146-6 87-8 182-27 105-20 219-53l13-39q14-45 33-116 0-6 3-6-4-12-41-31-41-21-100-40-69-22-146-34-91-15-181-15-209-2-346 51-80 30-122 72zm23 248l10 94 16 11q22 14 48 28 37 18 78 33 50 18 103 29 63 14 127 16 74 3 149-8 83-13 167-42 91-33 182-86l4-75q1 0-23 5-31 7-66 13-50 9-100 15-63 9-125 14-73 7-141 9-78 2-148-3-78-4-146-17-74-13-135-36zm0-74l3 74 15 6q19 8 43 15 33 10 71 17 47 10 99 16 61 8 125 9 74 2 152-3 87-6 177-20 99-16 202-43l3-90q0 1-57 10-70 11-151 19-108 12-211 16-128 6-239 1-130-6-232-27zm887 74q-1 2-3 3-6 3-20 7-25 6-45 13-17 6-13 4-6 2-11 3t-16 2-15 4q-11 1-33 6t-34 7q-45 5-78 13l-84 9q-13 4-42 4t-42 3h-87l-84-7-77-9q-10-3-33-8-21-5-31-9l-59-16-23-8q-13-4-18-8-7-1-15-5t-11-5-8-2l-2-1 2 1q4 1 8 3 6 3 26 9 5 1 19 6t23 8 26 7l32 8q11 2 34 7t33 6l78 10q13 1 41 3t43 3h83q29 0 42-3 29 0 42-3-7 1 42-4 23-2 39-6 52-6 77-13 15-4 35-7-35 6 33-6 12-1 31-6t27-7q32-6 46-9t19-5zm-487 13q0 15 12 25t27 11 27-11 11-25-11-25-27-10-27 10-12 25zM16 335l42 10q28 7 110 13 27 4 72 6 109 5 83 4-1 0 87 1 53 1 90-1 61 0 90-4t87-3q14-1 41-3t40-4 38-3 36-3q76-5 110-9 16-2 31-3l11-1-42 10q-65 16-110 23l-72 11q-48 7-83 11-58 7-87 7-29 3-90 3h-90q-15 0-45-2t-42-1q-27-2-56-5-22-3-52-7l-47-8q-29-4-62-12 6 1-45-13-20-6-34-12z\" />\n </svg>\n );\n}\n\nexport default SvgMaster;\n","import { h } from \"@stencil/core\";\n\nfunction SvgMinus(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M903 419H65v162h870V419h-32z\" />\n </svg>\n );\n}\n\nexport default SvgMinus;\n","import { h } from \"@stencil/core\";\n\nfunction SvgModify(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M952 590V416h-97q-15-53-39-97l71-71-126-125-71 71q-46-28-103-42V55H406v97q-51 15-93 38l-65-64-125 122 64 65q-33 55-42 103H48v174h94q14 57 42 104l-65 64 126 126 65-65q56 32 96 39v90h181v-93q63-17 100-42l71 71 126-126-71-71q31-56 39-97h100zm-452 87q-48 0-88-23t-63-63-23-88 23-87 63-64 88-23 88 23 63 64 23 87-24 88-64 63-86 23z\" />\n </svg>\n );\n}\n\nexport default SvgModify;\n","import { h } from \"@stencil/core\";\n\nfunction SvgNaviTriangle(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M210 774l290-548 290 548H210z\" />\n </svg>\n );\n}\n\nexport default SvgNaviTriangle;\n","import { h } from \"@stencil/core\";\n\nfunction SvgNewGroup(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M61 432q0 62 31 113t82 82 113 31 113-31 83-82 30-113-30-113-83-83-113-30-113 30-82 83-31 113zm236 355q-105 5-207-48L0 910q138 74 281 74h25q135-5 271-81l-96-168q-94 47-184 52zm358-322q0 19-3 29 41-15 67-49t26-77q2-38-16-70t-49-52-71-20-61 13q52 39 80 97 29 60 27 129zm-13 87q-20 74-71 125h52q82-10 148-38l-48-110q-23 10-81 23zm358-455h-97V0h-97v97h-96v97h96v96h97v-96h97V97z\" />\n </svg>\n );\n}\n\nexport default SvgNewGroup;\n","import { h } from \"@stencil/core\";\n\nfunction SvgNewPerson(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M210 400q0 61 30 113t82 82 114 31 113-31 82-82 30-113-30-113-82-83-113-30-114 30-82 83-30 113zm235 355q-105 5-206-49l-91 171q139 75 281 75h26q134-5 271-81l-97-168q-94 47-184 52zM935 97h-96V0h-97v97h-97v97h97v96h97v-96h96V97z\" />\n </svg>\n );\n}\n\nexport default SvgNewPerson;\n","import { h } from \"@stencil/core\";\n\nfunction SvgNotification(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M771 677v-64h-36V384q0-59-31-110t-85-82-116-31h45V97h-96v64h38q-61 0-114 31-51 30-81 81t-30 111v229h-36v64h-68v97h678v-97h-68zM419 806h162v65H419v-65z\" />\n </svg>\n );\n}\n\nexport default SvgNotification;\n","import { h } from \"@stencil/core\";\n\nfunction SvgOpinderLogoNew(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M648 484q-36 0-67 17t-52 47-26 65q-3-37-23-67t-52-46-70-16H97v190q0 39 21 70 20 29 54 45t73 17h561q57 0 79-35 18-30 18-97V484H648zM355 677H194v-32h161v32zm0-64H194v-32h161v32zm451 64H645v-32h161v32zm0-64H645v-32h161v32zM435 145q0 27 19 46t46 19 46-19 19-46-19-46-46-18-46 18-19 46zm0 271q0 27 19 46t46 19 46-19 19-46-19-46-46-18-46 18-19 46zM226 287q0 40 28 68t69 29 68-29 28-68-28-69-68-28-69 28-28 69zm355 0q0 40 28 68t69 29 68-29 28-68-28-69-68-28-69 28-28 69zm-16 523l-65 109-65-109h130z\" />\n </svg>\n );\n}\n\nexport default SvgOpinderLogoNew;\n","import { h } from \"@stencil/core\";\n\nfunction SvgPdf(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M774 871H226V161h548v129h97V65H129v903h742V742h-97v129zm65-387v-97h-65v97h-97v64h97v97h65v-97h96v-64h-96zm-484 97h258v64H355v-64zm0 96h258v65H355v-65zm-10-387h-55v162h33v-65h22q24 0 38-15t13-34-13-34-38-14zm10 49q0 7-5 11t-15 5h-12v-32h12q10 0 15 4t5 12zm129-49h-65v162h65q33 0 52-26 17-22 17-55t-18-55q-19-26-51-26zm32 78q0 27-5 38-6 13-24 13h-35v-96h35q19 0 24 8t5 37zm161-45v-33h-96v162h32v-65h64v-32h-64v-32h64z\" />\n </svg>\n );\n}\n\nexport default SvgPdf;\n","import { h } from \"@stencil/core\";\n\nfunction SvgPeople(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M484 306q0-39-19-73t-53-53-73-19-73 19-53 53-19 73 19 73 53 53 73 20 73-20 53-53 19-73zm-23 146H216L97 661l119 210h245l120-210zm378 32q0-41-28-69t-69-28-69 28-28 69 28 69 69 28 69-28 28-69zm-16 97H661l-80 145 80 145h162l80-145z\" />\n </svg>\n );\n}\n\nexport default SvgPeople;\n","import { h } from \"@stencil/core\";\n\nfunction SvgPermissionAll(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M500 0Q364 0 247 68 134 134 68 247 0 364 0 500t68 253q66 113 179 179 117 68 253 68t253-68q113-66 179-179 68-117 68-253t-68-253Q866 134 753 68 636 0 500 0zm0 903q-109 0-203-55-92-53-145-145-55-94-55-203t55-203q53-92 145-145 94-55 203-55 65 0 126 20t109 57l-87-22q-1 13-11 18t-24 0-23-15q-9 0-35 6-20 8-38 22t-26 28-1 21q15-9 28-10t16 8-5 28q-9 14-18 16t-18-1q-5-1-18-9-11-7-18-9-10-2-18 3 10 8-17 21-22 11-41 15-12-3-11 0t10 11 11 13q4 8-4 11-20 4-23 9t5 10 21 4 22-6q11-8 11-23 21-12 38-4 12 6 28 27 18 23 28 30 19 13 41 8-9-13-6-27t15-24 30-14q21 6 21 15 0 6-12 17-15 12-16 16-5 7 10 10-3 12-20 21l-36 16q-22 9-31 18-19-1-38-11-12-7-32-24t-30-23q-17-11-33-11-20-1-41 11-25 5-44 28-17 21-24 50t0 51q15 46 53 63 27 11 82 11 25 13 36 50 7 22 13 72t13 69q42 37 73 49 49 19 49-40-3-21 7-54 9-27 27-64 13-26 34-62 31-51 29-49 16-25 13-30t-21 1q-25 8-33 9-19 3-27-9-3-22 2-31t18-8q8 0 27 5t28 6q16 2 25-4 9 5 22 6 6 1 23 0 15 0 22 2 12 2 19 10t8 24q4 25 11 26t18-13l55-65v17q3 112-51 208-52 92-143 146-93 55-203 55z\" />\n </svg>\n );\n}\n\nexport default SvgPermissionAll;\n","import { h } from \"@stencil/core\";\n\nfunction SvgPermissionGroup(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M387 290q0 31 15 57t41 41 57 15 57-15 41-41 15-57-15-56-41-42-57-15-57 15-41 42-15 56zm290 16q0 41 29 69t68 28 69-28 28-69-28-68-69-28-68 28-29 68zm-548 0q0 41 29 69t68 28 69-28 28-69-28-68-69-28-68 28-29 68zm645 129q-38 0-73 17t-66 48q-59-65-135-65t-135 65q-30-31-65-48t-74-17q-88 0-136 60-37 45-51 124-7 43-7 107h65q0-94 19-148 16-45 48-64 24-14 62-14 26 0 52 14t48 41q-43 74-52 161-2 21 4 40t20 34 33 24 37 9 39-9 32-24 19-35 3-39q-14-90-55-161 47-52 98-52t96 52q-46 81-55 161-2 21 4 40t20 34 33 24 37 9 39-9 32-24 19-35 3-39q-15-98-51-161 21-27 47-41t53-14q38 0 62 14 31 19 48 64 19 54 19 148h64q1 4-2-33-2-24-5-42-3-26-8-48-6-27-15-49-10-25-23-45-15-23-35-38-21-17-48-26-29-10-64-10zM390 748q-9 10-23 10t-22-10q-5-5-7-11t1-11q9-58 29-107 22 44 32 107zm268 0q-10 10-24 10t-21-10q-5-5-7-11t0-11q11-63 33-107 19 49 29 107z\" />\n </svg>\n );\n}\n\nexport default SvgPermissionGroup;\n","import { h } from \"@stencil/core\";\n\nfunction SvgPermissionPrivate(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M806 419V306q0-82-42-154-41-69-110-110Q582 0 500 0T346 42q-69 41-110 110-42 72-42 154v113h-65v581h742V419h-65zM290 306q0-57 29-105t76-76 105-28 105 28 77 76 28 105v113H290V306zm268 420v113H442V726q-18-13-28-30t-11-35q0-33 29-57t68-23 68 23 29 57q0 19-10 35t-29 30z\" />\n </svg>\n );\n}\n\nexport default SvgPermissionPrivate;\n","import { h } from \"@stencil/core\";\n\nfunction SvgPersonOutline(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M500 226q34 0 58 23t23 57-23 57-58 24-57-24-24-57 24-57 57-23zm0-65q-40 0-73 19t-52 53-20 73 20 73 52 53 73 20 73-20 53-53 19-73-19-73-53-53-73-19zm84 355l84 145-84 145H416l-84-145 84-145h168zm39-64H381L258 661l119 210h242l120-210z\" />\n </svg>\n );\n}\n\nexport default SvgPersonOutline;\n","import { h } from \"@stencil/core\";\n\nfunction SvgPerson(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M645 306q0-39-19-73t-53-53-73-19-73 19-52 53-20 73 20 73 52 53 73 20 73-20 53-53 19-73zm-22 146H377L258 661l119 210h246l119-210z\" />\n </svg>\n );\n}\n\nexport default SvgPerson;\n","import { h } from \"@stencil/core\";\n\nfunction SvgPhone(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M845 139Q771 67 676 31T477 0Q352 6 243 73 138 138 73 243 6 352 0 477q-5 105 31 199t108 169 165 115 196 40h16v-94h-16q-84 0-159-32t-134-93-87-138-26-162q4-102 58-190 52-86 137-139 89-54 192-58 84-5 162 24t138 88 93 134 32 160q0 55-30 104t-79 73q0-3 2-10t1-10 2-12 1-13q7-23-33-48-30-19-67-29-39-11-59-3-15 7-18 22 0 3-7 23-9 38-13 42-9 0-16-7-13-11-34-32l-33-35-65-65q-16-14-36-35-34-35-32-33-4-4-5-10l-1-6q4-2 20-6l34-10q7-1 10-3 14-4 20-18 8-21 0-60-10-35-29-65-25-39-49-35-9 4-25 4-33 6-49 12l-16 10q-30 20-48 48t-23 65q-7 45 8 91t47 86l81 91 29 32 12 13q31 31 50 48 32 29 67 52-1 0 18 7 21 7 41 11 30 6 57 5h67q80 0 148-41 67-39 106-105 40-69 40-148 0-104-40-198T845 139zM481 542z\" />\n </svg>\n );\n}\n\nexport default SvgPhone;\n","import { h } from \"@stencil/core\";\n\nfunction SvgPlay(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M958 156q-218-31-458-31T42 156Q0 320 0 500t42 344q218 31 458 31t458-31q42-164 42-344t-42-344zM375 687V312l313 188z\" />\n </svg>\n );\n}\n\nexport default SvgPlay;\n","import { h } from \"@stencil/core\";\n\nfunction SvgPlus(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M903 419H581V65H419v354H65v162h354v354h162V581h354V419h-32z\" />\n </svg>\n );\n}\n\nexport default SvgPlus;\n","import { h } from \"@stencil/core\";\n\nfunction SvgPreview(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M500 129q-61 0-119 16-52 14-102 42-44 25-86 59-36 31-70 69-28 31-54 68-21 29-39 59-12 22-22 42l-8 16 9 16q12 20 26 42 20 30 42 59 28 37 58 68 35 38 72 69 42 34 86 59 48 28 98 42 54 16 109 16t109-16q50-14 98-42 44-25 86-59 37-31 72-69 30-31 58-68 22-29 42-59 14-22 26-42l9-16-8-16q-10-20-22-42-18-30-39-59-26-37-54-68-34-38-70-69-42-34-86-59-50-28-102-42-58-16-119-16zm0 645q-75 0-137-37T263 637t-37-137 37-138 100-99 137-37 138 37 99 99 37 138-37 137-99 100-138 37zM355 500q0 39 20 72t53 53 72 20 73-20 53-53 19-72-19-73-53-53-73-19-72 19-53 53-20 73z\" />\n </svg>\n );\n}\n\nexport default SvgPreview;\n","import { h } from \"@stencil/core\";\n\nfunction SvgProfile(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M903 226v548H97V226h806zm97-97H0v742h1000V129zM194 548h258v65H194v-65zm0 97h258v65H194v-65zm0-355h258v65H194v-65zm0 97h258v65H194v-65zm387 45q0 30 15 55t40 40 55 15 54-15 40-40 15-55-15-55-40-40-54-14-55 14-40 40-15 55zm106 278q-68 0-139-36l62-113q43 24 87 20 32 0 77-23l65 113q-60 36-136 42-6-3-16-3z\" />\n </svg>\n );\n}\n\nexport default SvgProfile;\n","import { h } from \"@stencil/core\";\n\nfunction SvgQuestion(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M500 65q-119 0-220 59-99 57-156 156-59 101-59 220t59 220q57 99 156 156 101 59 220 59t220-59q99-57 156-156 59-101 59-220t-59-220q-57-99-156-156-101-59-220-59zm42 629h-68v-68h68v68zm97-271q0 47-29 77-25 25-68 35v46h-71v-97q90-10 90-58 0-19-13-31t-35-11q-36 0-71 35l-48-58q25-25 52-38 30-13 67-13 58-3 92 27t34 86z\" />\n </svg>\n );\n}\n\nexport default SvgQuestion;\n","import { h } from \"@stencil/core\";\n\nfunction SvgRemove(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M616 500l326-329 23-23L852 35 500 384 148 35 35 148l349 352L35 852l113 113 352-349 352 349 113-113-23-23z\" />\n </svg>\n );\n}\n\nexport default SvgRemove;\n","import { h } from \"@stencil/core\";\n\nfunction SvgRetweet(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M506 877q13 0 21-8t8-21v-83q0-13-8-22t-21-8H290q-12 0-20-8t-9-21V294q0-13 9-21t20-8h81q12 0 16-7t-3-16L216 16q-7-10-17-10t-18 10L10 239q-8 10-5 16t14 6h81q12 0 21 8t8 21v558q0 12 9 21t20 8h348zm-12-758q-13 0-21 8t-8 21v84q0 12 8 20t21 9h216q12 0 21 8t8 21v416q0 13-8 21t-21 8h-81q-12 0-16 7t3 16l165 223q7 9 18 9t17-9l171-223q7-9 4-16t-14-7h-80q-12 0-20-8t-9-21V148q0-12-8-21t-21-8H494z\" />\n </svg>\n );\n}\n\nexport default SvgRetweet;\n","import { h } from \"@stencil/core\";\n\nfunction SvgRotateLeft(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M555 129q-99 0-183 49-81 48-129 130-49 84-49 182v155L68 516 0 587l245 252 239-255-71-68-123 132V494q0-73 37-136 35-60 96-96t132-36 132 35 97 97 35 132-36 132-96 97q-63 36-135 36h-4v97h7q100 0 185-50 82-47 130-129 49-84 49-183t-49-182q-48-82-130-130-85-49-185-49zM242 700l-7-6h10z\" />\n </svg>\n );\n}\n\nexport default SvgRotateLeft;\n","import { h } from \"@stencil/core\";\n\nfunction SvgRotateRight(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M932 519L806 648V494q0-100-49-185-47-83-129-131-84-49-182-49t-184 49q-83 48-131 130-50 84-50 182t50 183q48 82 131 129 85 50 183 50h7v-97h-7q-73 0-135-36-61-36-97-97t-36-132 36-132 97-96q62-36 135-36t135 36q59 35 95 96t35 132v155L587 516l-71 68 239 255 245-252zM752 694h9l-6 6z\" />\n </svg>\n );\n}\n\nexport default SvgRotateRight;\n","import {h} from '@stencil/core';\n\nfunction SvgSearch(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M964.9,864.4l19.5,23.4L871.6,1000L636.9,766.6c-31.4,17.7-64.9,31.3-100.5,40.8s-71.4,14.3-107.6,14.3 c-74.5,0-143.9-18.7-208.1-56.1c-62.2-36-111.7-84.9-148.6-146.8c-37.6-63.9-56.4-133-56.4-207.4S34.4,267.8,72,203.9 C108.9,142,158.5,92.8,220.7,56.1C284.9,18.7,354.4,0,429.3,0s144.4,18.7,208.6,56.1c62.2,36.7,111.4,86,147.6,147.8 c37.6,63.9,56.4,132.9,56.4,206.9c0,44.2-7,87.2-21,129c-14,41.8-34.3,81-61,117.7L964.9,864.4z M421.9,656.2 c44.8,0,86.4-11.2,125-33.6s69-52.9,91.4-91.4s33.6-80.2,33.6-125s-11.2-86.3-33.6-124.5s-52.9-68.7-91.4-91.4s-80.2-34.1-125-34.1 s-86.3,11.4-124.5,34.1s-68.7,53.2-91.4,91.4s-34.1,79.7-34.1,124.5s11.4,86.4,34.1,125s53.2,69,91.4,91.4S377.1,656.2,421.9,656.2 z\" />\n </svg>\n );\n}\n\nexport default SvgSearch;\n","import { h } from \"@stencil/core\";\n\nfunction SvgShare(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M794 584q-41 0-78 15t-64 43L419 526q0-5 2-13t2-13q0-16-4-26l233-116q63 58 145 58 57 0 105-28t76-76 28-102q-3-58-32-106t-77-76T794 0 690 28t-77 75-29 103v26L352 348q-60-54-142-54-58 0-106 27t-76 74T0 500t28 105 77 76 105 29q40 0 78-16t64-42l232 116q0 5-1 13t-2 13q0 57 28 104t76 75 105 27 106-28 76-75 28-104-28-105-75-76-103-28z\" />\n </svg>\n );\n}\n\nexport default SvgShare;\n","import {h} from '@stencil/core';\n\nfunction SvgSlimHamburgerMenu(props) {\n return (\n <svg viewBox=\"0 0 13 64\" {...props}>\n <path d=\"M12.8,38.4 L12.8,25.6 L0,25.6 L0,38.4 L12.32608,38.4 L12.8,38.4 Z M0,64 L12.8,64 L12.8,51.2 L0,51.2 L0,61.44 L0,64 Z M12.8,12.8 L12.8,0 L0,0 L0,12.8 L12.32608,12.8 L12.8,12.8 Z\"></path>\n </svg>\n );\n}\n\nexport default SvgSlimHamburgerMenu;\n","import { h } from \"@stencil/core\";\n\nfunction SvgSocialMedia(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M816 813L645 658v74q-64 0-97 2-19 1-174 14 81-99 197-144 79-30 158-30v71l171-155-171-155v78q-97 0-197 35-120 41-216 126 42-146 125-227 54-54 117-73v68l171-155L561 32v78q-32 4-75 24-60 28-114 75-68 60-119 146-62 103-95 237-39 156-39 350v3q164-21 308-32t218-10v65z\" />\n </svg>\n );\n}\n\nexport default SvgSocialMedia;\n","import {h} from '@stencil/core';\n\nfunction SomeFacebook(props) {\n return (\n <svg {...props} data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 56 56\">\n <path\n class=\"cls-1\"\n d=\"M56,28A28,28,0,1,0,23.62,55.66V36.09h-7.1V28h7.1V21.83c0-7,4.19-10.89,10.58-10.89a43.71,43.71,0,0,1,6.27.54v6.9H36.94c-3.48,0-4.56,2.15-4.56,4.37V28h7.76L38.9,36.09H32.38V55.66A28,28,0,0,0,56,28Z\"\n />\n </svg>\n );\n}\n\nexport default SomeFacebook;\n","import {h} from '@stencil/core';\n\nfunction SomeInstagram(props) {\n return (\n <svg {...props} data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 56 56\">\n <path\n class=\"cls-1\"\n d=\"M28,0c-7.6,0-8.56,0-11.54.17a20.68,20.68,0,0,0-6.8,1.3,13.74,13.74,0,0,0-5,3.23,13.72,13.72,0,0,0-3.22,5,20.2,20.2,0,0,0-1.31,6.8C0,19.44,0,20.4,0,28s0,8.56.17,11.54a20.68,20.68,0,0,0,1.3,6.8,13.74,13.74,0,0,0,3.23,5,13.74,13.74,0,0,0,5,3.23,20.48,20.48,0,0,0,6.8,1.3C19.44,56,20.4,56,28,56s8.56,0,11.54-.17a20.42,20.42,0,0,0,6.8-1.3,14.3,14.3,0,0,0,8.19-8.19,20.48,20.48,0,0,0,1.3-6.8C56,36.56,56,35.6,56,28s0-8.56-.17-11.54a20.68,20.68,0,0,0-1.3-6.8,13.74,13.74,0,0,0-3.23-5,13.72,13.72,0,0,0-5-3.22A20.2,20.2,0,0,0,39.54.17C36.56,0,35.6,0,28,0Zm0,5c7.48,0,8.36,0,11.31.17a15.46,15.46,0,0,1,5.2,1,8.77,8.77,0,0,1,3.23,2.1,8.62,8.62,0,0,1,2.09,3.22,15.45,15.45,0,0,1,1,5.2c.13,2.95.16,3.84.16,11.31s0,8.36-.16,11.32a15.45,15.45,0,0,1-1,5.2,9.26,9.26,0,0,1-5.31,5.31,15.71,15.71,0,0,1-5.2,1c-3,.13-3.84.16-11.32.16s-8.36,0-11.31-.16a15.71,15.71,0,0,1-5.2-1,8.62,8.62,0,0,1-3.22-2.09,8.77,8.77,0,0,1-2.1-3.23,15.46,15.46,0,0,1-1-5.2C5.07,36.36,5,35.48,5,28s0-8.36.17-11.32a15.38,15.38,0,0,1,1-5.19,8.77,8.77,0,0,1,2.1-3.23,8.62,8.62,0,0,1,3.22-2.09,15.45,15.45,0,0,1,5.2-1C19.64,5.07,20.53,5,28,5\"\n />\n <path\n class=\"cls-1\"\n d=\"M28,37.33A9.34,9.34,0,1,1,37.34,28h0A9.34,9.34,0,0,1,28,37.33Zm0-23.71A14.38,14.38,0,1,0,42.38,28h0A14.38,14.38,0,0,0,28,13.62Z\"\n />\n <path class=\"cls-1\" d=\"M46.31,13.05A3.36,3.36,0,1,1,43,9.69,3.36,3.36,0,0,1,46.31,13.05Z\" />\n </svg>\n );\n}\n\nexport default SomeInstagram;\n","import {h} from '@stencil/core';\n\nfunction SomeTwitter(props) {\n return (\n <svg {...props} data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 56 56\">\n <path\n class=\"cls-1\"\n d=\"M56,28A28,28,0,1,1,28,0,28,28,0,0,1,56,28ZM22.88,42.77c12.41,0,19.2-10.29,19.2-19.21,0-.3,0-.59,0-.87a13.68,13.68,0,0,0,3.37-3.5,13.43,13.43,0,0,1-3.87,1.06,6.71,6.71,0,0,0,3-3.73,13.42,13.42,0,0,1-4.28,1.63,6.76,6.76,0,0,0-11.68,4.62,6,6,0,0,0,.19,1.54,19.13,19.13,0,0,1-13.92-7,6.79,6.79,0,0,0-.91,3.39,6.72,6.72,0,0,0,3,5.61,6.68,6.68,0,0,1-3.05-.84v.08a6.76,6.76,0,0,0,5.42,6.63,7,7,0,0,1-1.78.23,6.77,6.77,0,0,1-1.28-.12,6.75,6.75,0,0,0,6.3,4.69,13.6,13.6,0,0,1-8.38,2.88,12.21,12.21,0,0,1-1.61-.1,18.74,18.74,0,0,0,10.32,3.06\"\n />\n </svg>\n );\n}\n\nexport default SomeTwitter;\n","import {h} from '@stencil/core';\n\nfunction SvgTwitterLike(props) {\n return (\n <svg viewBox=\"0 0 16 16\" {...props}>\n <path d=\"M1.26234059,1.47444321 C-0.421989103,3.44260781 -0.419570856,6.56432454 1.26234059,8.53342384 L7.39772074,15.7174761 C7.55302345,15.8974257 7.76996687,16 7.99652384,16 C8.22388007,16 8.44082554,15.897419 8.59532694,15.7174761 C10.641492,13.3259819 12.6907721,10.931817 14.7370601,8.5403228 C16.4213898,6.57215821 16.4205701,3.44955129 14.7370601,1.48134218 C13.0535502,-0.486866922 10.2157575,-0.486822413 8.53138685,1.48134218 L7.99982331,2.10029098 L7.46825978,1.47437645 C6.62609494,0.490294152 5.49814655,0 4.36859966,0 C3.23880685,0 2.10442346,0.490360916 1.26234059,1.47444321 Z M6.35964437,3.16815532 L7.43710533,4.37841446 C7.58389377,4.54236759 7.78894356,4.63582365 8.00307984,4.63582365 C8.21797156,4.63582365 8.42302328,4.5423615 8.56905435,4.37841446 L9.64045249,3.18084837 C10.6672219,2.02367291 12.2031147,2.02367291 13.2299229,3.18084837 C14.2566924,4.33802382 14.2566924,6.24360205 13.2299229,7.40077751 C11.4835935,9.3682191 9.74020842,11.3325787 7.99399527,13.3 L2.77007709,7.39449182 C1.74330764,6.23492374 1.74330764,4.32524968 2.77007709,3.16807422 C3.28382985,2.58908096 3.92699415,2.3 4.56785341,2.3 C5.20879014,2.3 5.84589161,2.58918234 6.35964437,3.16815532 Z\"></path>\n </svg>\n );\n}\n\nexport default SvgTwitterLike;\n","import {h} from '@stencil/core';\n\nfunction SomeYoutube(props) {\n return (\n <svg {...props} data-name=\"Layer 1\" viewBox=\"0 0 56 56\">\n <path\n class=\"cls-3\"\n d=\"M52.59,15.56A6.44,6.44,0,0,0,48.05,11C44,9.92,28,9.92,28,9.92S12,9.92,7.94,11a6.44,6.44,0,0,0-4.53,4.56C2.33,19.6,2.33,28,2.33,28s0,8.41,1.08,12.44A6.47,6.47,0,0,0,7.94,45C12,46.08,28,46.08,28,46.08s16,0,20.06-1.07a6.47,6.47,0,0,0,4.53-4.57c1.08-4,1.08-12.44,1.08-12.44s0-8.4-1.08-12.44M22.75,35.63V20.37L36.17,28Z\"\n />\n </svg>\n );\n}\n\nexport default SomeYoutube;\n","import {h} from '@stencil/core';\n\nfunction SomeLinkedin(props) {\n return (\n <svg {...props} data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 56 56\">\n <path\n class=\"cls-1\"\n d=\"M50.46,0H5.54A5.54,5.54,0,0,0,0,5.54V50.47A5.54,5.54,0,0,0,5.54,56H50.46A5.54,5.54,0,0,0,56,50.47V5.54A5.54,5.54,0,0,0,50.46,0ZM17.24,48.06H8.77V21h8.47Zm-.73-32.13A4.68,4.68,0,0,1,13,17.25h0a4.47,4.47,0,0,1-4.7-4.65A4.48,4.48,0,0,1,9.59,9.27a4.7,4.7,0,0,1,3.46-1.33,4.49,4.49,0,0,1,4.7,4.66A4.42,4.42,0,0,1,16.51,15.93ZM47.74,48.06H39.31V33.56a8.15,8.15,0,0,0-1.06-4.51A3.66,3.66,0,0,0,35,27.44a3.88,3.88,0,0,0-2.67.93,6.3,6.3,0,0,0-1.66,2.35,7,7,0,0,0-.28,2.2V48.06H21.9q0-10.92,0-17.73v-8l0-1.32h8.47v3.85a11.89,11.89,0,0,1,1-1.5,10.54,10.54,0,0,1,1.42-1.42,6.59,6.59,0,0,1,2.26-1.17,8.43,8.43,0,0,1,3-.39,8.85,8.85,0,0,1,7,3.08q2.67,3.09,2.67,9.11Z\"\n />\n </svg>\n );\n}\n\nexport default SomeLinkedin;\n","import { h } from \"@stencil/core\";\n\nfunction SvgSpinner(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M500 1000q-99 0-190-37T146 856 36 692Q0 601 0 501t38-192 107-163T308 36Q399 0 499 0t192 37 163 107 110 163q36 90 36 193 0 27-19 46t-45 19-46-19-19-46q0-75-28-143t-82-118q-50-53-118-82t-143-28-143 28-118 82q-53 50-81 118t-29 143 29 143 81 118q53 53 121 81t140 29h16v129h-16z\" />\n </svg>\n );\n}\n\nexport default SvgSpinner;\n","import { h } from \"@stencil/core\";\n\nfunction SvgSquareChecked(props) {\n return (\n <svg viewBox=\"0 0 1125 1000\" {...props}>\n <path d=\"M1010 21L984 1l-20 26-467 558-139-168-19-22-26 19-74 58-26 23 20 25 238 287 23 32 26-32 570-680 20-23-26-22zM870 910H90V129h590l74-88H1v958h958V520l-89 106v284z\" />\n </svg>\n );\n}\n\nexport default SvgSquareChecked;\n","import { h } from \"@stencil/core\";\n\nfunction SvgSquare(props) {\n return (\n <svg viewBox=\"0 0 1125 1000\" {...props}>\n <path d=\"M870 129v781H90V129h780zm89-88H1v958h958V41z\" />\n </svg>\n );\n}\n\nexport default SvgSquare;\n","import { h } from \"@stencil/core\";\n\nfunction SvgTime(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M500 65q-119 0-220 59-99 57-156 156-59 101-59 220t59 220q57 99 156 156 101 59 220 59t220-59q99-57 156-156 59-101 59-220t-59-220q-57-99-156-156-101-59-220-59zm0 774q-92 0-171-47-77-44-121-121-47-79-47-171t47-171q44-77 121-121 79-47 171-47t171 47q77 44 121 121 47 79 47 171t-47 171q-44 77-121 121-79 47-171 47zm42-549h-90v291h225v-91H542V290z\" />\n </svg>\n );\n}\n\nexport default SvgTime;\n","import { h } from \"@stencil/core\";\n\nfunction SvgTodoList(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M0 129v742h1000V129H0zm903 645H97V226h451v284l129-123 129 129V226h97v548zM194 548h258v65H194v-65zm0 97h258v65H194v-65zm0-355h258v65H194v-65zm0 97h258v65H194v-65z\" />\n </svg>\n );\n}\n\nexport default SvgTodoList;\n","import { h } from \"@stencil/core\";\n\nfunction SvgTour(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M500 32q-101 0-188 51-84 50-133 135-50 87-50 188 0 52 13 100t35 84l4 4q9 18 87 112 60 69 152 171l80 88 81-90q93-103 151-172 29-33 57-69 18-24 27-37l7-7q22-36 35-86t13-98q0-101-50-188-49-85-133-135-87-51-188-51zm0 645q-75 0-137-37t-100-99-37-138 37-137 100-100 137-37 138 37 99 100 37 137-37 138-99 99-138 37zm-48-322h96v258h-96V355zm0-129h96v97h-96v-97z\" />\n </svg>\n );\n}\n\nexport default SvgTour;\n","import { h } from \"@stencil/core\";\n\nfunction SvgTwitter(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M113 748h1-1q39 5 77 0 85-9 155-64l2-1q1 0 1-2h-19q-46-8-79-36t-50-71q0-2 1-3t2 0q24 5 52 0 10 0 13-3h-3q-53-13-94-65-29-38-29-90 0-3 1-3h2q32 13 49 16 3 0 9 1l7 2q0-2-2-3h-2q-18-14-32-32-24-35-31-73t5-76l10-19 7-16q0-3 2-3t1 3q32 38 51 55 74 64 171 93 34 10 94 16 5 0 6-1t-3-5q-5-25 0-55 7-49 39-87t77-49q5-1 14-3t12-3h32q54 5 94 45 3 3 10 3 41-8 90-35l1-1q2-1 2 1v3q-22 54-61 81h-2q-1 1-1 3 38-4 87-26v3l-4 4q-32 48-71 74-3 3-3 9v30q0 22-6 54-12 80-48 149t-94 126q-40 40-97 71-77 43-190 48-52 0-78-3-91-14-177-65 2 4 1 4z\" />\n </svg>\n );\n}\n\nexport default SvgTwitter;\n","import { h } from \"@stencil/core\";\n\nfunction SvgUnitsAndFaculties(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M903 774v-32H97v32H65v97h870v-97h-32zm-742-97h97V419h97v258h97V419h96v258h97V419h97v258h97V419h64v-96h-32v-29L500 129 129 294v29H97v96h64v258z\" />\n </svg>\n );\n}\n\nexport default SvgUnitsAndFaculties;\n","import { h } from \"@stencil/core\";\n\nfunction SvgUrl(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M916 416L668 665q-34 33-79 44t-90 0-80-44l-84-84 84-84 84 84q17 17 42 17t42-17l248-249q17-17 17-42t-17-42l-83-83q-17-17-42-17t-42 17l-91 90q-60-37-135-32L584 81q33-34 79-46t91 0 78 46l84 84q33 34 45 80t0 92-45 79zM423 745l-91 90q-17 17-42 17t-42-17l-83-83q-17-17-17-42t17-42l248-249q17-17 42-17t42 17l84 84 84-84-84-84q-34-33-79-45t-91 0-79 45L84 584q-33 33-45 78t0 91 45 79l84 84q33 33 79 45t91 0 78-45l142-142q-73 5-135-29z\" />\n </svg>\n );\n}\n\nexport default SvgUrl;\n","import { h } from \"@stencil/core\";\n\nfunction SvgVideo(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M419 355l226 145-226 145V355zm81-194q92 0 171 47 77 44 121 121 47 79 47 171t-47 171q-44 77-121 121-79 47-171 47t-171-47q-77-44-121-121-47-79-47-171t47-171q44-77 121-121 79-47 171-47zm0-96q-119 0-220 59-99 57-156 156-59 101-59 220t59 220q57 99 156 156 101 59 220 59t220-59q99-57 156-156 59-101 59-220t-59-220q-57-99-156-156-101-59-220-59z\" />\n </svg>\n );\n}\n\nexport default SvgVideo;\n","import { h } from \"@stencil/core\";\n\nfunction SvgWarning(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M500 129L65 871h870zm48 645h-96v-97h96v97zm-96-129V387h96v258h-96z\" />\n </svg>\n );\n}\n\nexport default SvgWarning;\n","import { h } from \"@stencil/core\";\n\nfunction SvgWrench(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M979 799L530 413q33-61 33-132 0-76-39-142-37-63-101-101Q358 0 281 0q-42 0-81 12l162 163q18 18 18 44t-18 44l-99 99q-18 18-44 18t-44-18L12 200Q0 239 0 281q0 77 38 142 38 64 101 101 66 38 142 38 71 0 132-32l386 449q16 20 41 21t44-17l99-99q18-19 17-44t-21-41z\" />\n </svg>\n );\n}\n\nexport default SvgWrench;\n","import { h } from \"@stencil/core\";\n\nfunction SvgYoutube(props) {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path d=\"M542 694v118q0 37-22 37-13 0-25-12V669q12-12 25-12 22 0 22 37zm188 1v25h-50v-25q0-38 25-38t25 38zM191 573h60v-52H77v52h59v318h55V573zm161 318h50V615h-50v211q-17 23-32 23-10 0-11-11-1-2-1-20V615h-50v218q0 27 5 41 7 21 33 21t56-35v31zm240-83V698q0-41-6-55-9-31-39-31-28 0-52 30V521h-50v370h50v-27q25 31 52 31 30 0 39-31 6-15 6-56zm188-6v-7h-51q0 29-1 34-4 20-22 20-26 0-26-38v-49h100v-57q0-44-15-65-22-28-59-28t-60 28q-15 21-15 65v96q0 44 16 65 22 29 61 29t59-30q10-15 12-30 1-5 1-33zM441 293V176q0-39-24-39t-24 39v117q0 39 24 39t24-39zm401 419q0 131-14 195-8 33-32 56t-58 25q-102 12-309 12t-310-12q-33-3-57-25t-32-56q-15-62-15-195 0-131 15-195 7-33 32-56t57-26q103-11 310-11t309 11q33 4 58 26t32 56q14 62 14 195zM285 0h57l-67 223v151h-56V223q-8-42-34-119-21-57-37-104h60l39 147zm207 186v97q0 46-16 66-21 29-59 29t-59-29q-15-21-15-66v-97q0-45 15-65 21-29 59-29t59 29q16 20 16 65zm187-91v279h-51v-31q-30 35-58 35-25 0-33-21-4-13-4-42V95h51v225q2 12 12 12 15 0 32-24V95h51z\" />\n </svg>\n );\n}\n\nexport default SvgYoutube;\n","import {h, FunctionalComponent} from '@stencil/core';\n\nexport const IconArrowLeft: FunctionalComponent = (props: any) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={props.width || 30}\n height={props.height || 29}\n viewBox=\"0 0 30 29\"\n fill={props.fill || 'black'}\n >\n <polygon\n points=\"29.207 13.783 14.756 .717 14.055 0 11.402 3.118 10.732 3.835 19.665 11.974 0 11.974 0 17.026 19.756 17.026 11.494 24.447 10.823 25.071 11.402 25.882 13.476 28.189 14.055 29 30 14.594\"\n transform=\"rotate(-180 15 14.5)\"\n />\n </svg>\n );\n};\nexport const IconArrowRight: FunctionalComponent = (props: any) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={props.width || 30}\n height={props.height || 29}\n viewBox=\"0 0 30 29\"\n fill={props.fill || 'black'}\n >\n <polygon points=\"29.207 13.783 14.756 .717 14.055 0 11.402 3.118 10.732 3.835 19.665 11.974 0 11.974 0 17.026 19.756 17.026 11.494 24.447 10.823 25.071 11.402 25.882 13.476 28.189 14.055 29 30 14.594\" />\n </svg>\n );\n};\nexport const IconArrowToRight: FunctionalComponent = (props: any) => {\n return (\n <svg viewBox=\"0 0 1000 1000\" {...props}>\n <path\n d=\"M993.6,482.3L518.2,6.4c-4.6-4.6-11-6.9-17.4-6.3c-6.4,0.6-12.3,4-15.9,9.4l-73.5,107.7\n c-5.9,8.6-4.8,20.2,2.6,27.6l265,265.3H21.7c-12,0-21.7,9.7-21.7,21.7v128.2c0,12,9.7,21.7,21.7,21.7H687L414,855.2\n c-7.4,7.4-8.5,19-2.6,27.6l73.5,107.7c3.6,5.3,9.5,8.8,15.9,9.4c0.7,0.1,1.3,0.1,2,0.1c5.7,0,11.3-2.3,15.4-6.4l475.4-475.9\n c4.8-4.8,6.9-11.4,6.2-17.7c0.1-0.8,0.1-1.5,0.1-2.3C1000,491.9,997.7,486.4,993.6,482.3z\"\n />\n </svg>\n );\n};\n\nexport const IconQuote: FunctionalComponent = (props: any) => {\n return (\n <svg viewBox=\"0 0 1000 660\" {...props}>\n <path\n id=\"Quote-icon\"\n d=\"M222.8,660C330.3,422.9,407.2,212.5,453.5,29L433.8,0H131.1C104,186.2,60.3,406.2,0,660H222.8z M769.3,660\n\t C876.8,422.9,953.7,212.5,1000,29l0,0L981.7,0H678.9c-29.7,202-74.7,422-135,660l0,0H769.3z\"\n />\n </svg>\n );\n};\n\nexport {default as AddToTodoList} from './AddToTodoList';\nexport {default as Alert} from './Alert';\nexport {default as ArrowDown} from './ArrowDown';\nexport {default as ArrowUp} from './ArrowUp';\nexport {default as Archive} from './Archive';\nexport {default as Arrow} from './Arrow';\nexport {default as AvatarGroup} from './AvatarGroup';\nexport {default as Avatar} from './Avatar';\nexport {default as Bachelor} from './Bachelor';\nexport {default as BulletList} from './BulletList';\nexport {default as Camera} from './Camera';\nexport {default as CaretDown} from './CaretDown';\nexport {default as CaretLeft} from './CaretLeft';\nexport {default as CaretRight} from './CaretRight';\nexport {default as CaretUp} from './CaretUp';\nexport {default as Chat} from './Chat';\nexport {default as CodeFork} from './CodeFork';\nexport {default as Cogs} from './Cogs';\nexport {default as Contentlink} from './Contentlink';\nexport {default as Customlink} from './Customlink';\nexport {default as Date} from './Date';\nexport {default as Discover} from './Discover';\nexport {default as Done} from './Done';\nexport {default as Dot} from './Dot';\nexport {default as DotArrowRight} from './DotArrowRight';\nexport {default as Download} from './Download';\nexport {default as Drag} from './Drag';\nexport {default as Dragbutton} from './Dragbutton';\nexport {default as DropDown} from './DropDown';\nexport {default as EditEvent} from './EditEvent';\nexport {default as Edit} from './Edit';\nexport {default as Embed} from './Embed';\nexport {default as Euro} from './Euro';\nexport {default as Events} from './Events';\nexport {default as ExternalLink} from './ExternalLink';\nexport {default as EyeSlash} from './EyeSlash';\nexport {default as Facebook} from './Facebook';\nexport {default as Favorites} from './Favorites';\nexport {default as Feed} from './Feed';\nexport {default as FileText} from './FileText';\nexport {default as FullScreen} from './FullScreen';\nexport {default as Globe} from './Globe';\nexport {default as GooglePlus} from './GooglePlus';\nexport {default as Grid} from './Grid';\nexport {default as Hamburger} from './Hamburger';\nexport {default as Heart} from './Heart';\nexport {default as HeartSupport} from './HeartSupport';\nexport {default as Helsinginyliopisto} from './Helsinginyliopisto';\nexport {default as Home} from './Home';\nexport {default as HorizontalResize} from './HorizontalResize';\nexport {default as HyLogo} from './HyLogo';\nexport {default as IdNumber} from './IdNumber';\nexport {default as ImageGallery} from './ImageGallery';\nexport {default as Image} from './Image';\nexport {default as Images} from './Images';\nexport {default as InfoStroke} from './InfoStroke';\nexport {default as Info} from './Info';\nexport {default as Instagram} from './Instagram';\nexport {default as LeikiList} from './LeikiList';\nexport {default as LinkArrow1} from './LinkArrow1';\nexport {default as LinkArrowDown} from './LinkArrowDown';\nexport {default as LinkArrowLeft} from './LinkArrowLeft';\nexport {default as LinkArrowOffsite} from './LinkArrowOffsite';\nexport {default as LinkArrowUp} from './LinkArrowUp';\nexport {default as LinkArrow} from './LinkArrow';\nexport {default as Linkedin} from './Linkedin';\nexport {default as ListAsBlocks} from './ListAsBlocks';\nexport {default as List} from './List';\nexport {default as Listoflinks} from './Listoflinks';\nexport {default as ListStyleGrid} from './ListStyleGrid';\nexport {default as ListStyleList} from './ListStyleList';\nexport {default as Location} from './Location';\nexport {default as Log} from './Log';\nexport {default as Login} from './Login';\nexport {default as Logout} from './Logout';\nexport {default as MagnifyMinus} from './MagnifyMinus';\nexport {default as MagnifyPlus} from './MagnifyPlus';\nexport {default as Mail} from './Mail';\nexport {default as Master} from './Master';\nexport {default as Minus} from './Minus';\nexport {default as Mobile} from './Mobile';\nexport {default as Modify} from './Modify';\nexport {default as NaviTriangle} from './NaviTriangle';\nexport {default as NewGroup} from './NewGroup';\nexport {default as NewPerson} from './NewPerson';\nexport {default as Notification} from './Notification';\nexport {default as OpinderLogoNew} from './OpinderLogoNew';\nexport {default as OpinderLogo} from './OpinderLogo';\nexport {default as Pdf} from './Pdf';\nexport {default as People} from './People';\nexport {default as PermissionAll} from './PermissionAll';\nexport {default as PermissionGroup} from './PermissionGroup';\nexport {default as PermissionPrivate} from './PermissionPrivate';\nexport {default as PersonOutline} from './PersonOutline';\nexport {default as Person} from './Person';\nexport {default as Phone} from './Phone';\nexport {default as Play} from './Play';\nexport {default as Plus} from './Plus';\nexport {default as Preview} from './Preview';\nexport {default as Profile} from './Profile';\nexport {default as Question} from './Question';\nexport {default as Remove} from './Remove';\nexport {default as Retweet} from './Retweet';\nexport {default as RotateLeft} from './RotateLeft';\nexport {default as RotateRight} from './RotateRight';\nexport {default as Search} from './Search';\nexport {default as Share} from './Share';\nexport {default as SlimHamburgerMenu} from './SlimHamburgerMenu';\nexport {default as SocialMedia} from './SocialMedia';\nexport {default as SomeFacebook} from './SomeFacebook';\nexport {default as SomeInstagram} from './SomeInstagram';\nexport {default as SomeTwitter} from './SomeTwitter';\nexport {default as SomeTwitterRetweet} from './Retweet';\nexport {default as SomeTwitterLike} from './TwitterLike';\nexport {default as SomeYoutube} from './SomeYoutube';\nexport {default as SomeLinkedin} from './SomeLinkedin';\nexport {default as Spinner} from './Spinner';\nexport {default as SquareChecked} from './SquareChecked';\nexport {default as Square} from './Square';\nexport {default as Time} from './Time';\nexport {default as TodoList} from './TodoList';\nexport {default as Tour} from './Tour';\nexport {default as Twitter} from './Twitter';\nexport {default as UnitsAndFaculties} from './UnitsAndFaculties';\nexport {default as Url} from './Url';\nexport {default as Video} from './Video';\nexport {default as Warning} from './Warning';\nexport {default as Wrench} from './Wrench';\nexport {default as Youtube} from './Youtube';\n",":host {\n display: block;\n}\n","import {Component, h, Prop, Host} from '@stencil/core';\nimport * as icons from './icons';\nimport {IconName} from '../../utils/utils';\n\n// TODO: add all icons\nconst iconNames: IconName = {\n 'hy-icon-add-todo': (p) => <icons.AddToTodoList {...p} />,\n 'hy-icon-alert': (p) => <icons.Alert {...p} />,\n 'hy-icon-archive': (p) => <icons.Archive {...p} />,\n 'hy-icon-arrow-down': (p) => <icons.ArrowDown {...p} />,\n 'hy-icon-arrow-left': (p) => <icons.IconArrowLeft {...p} />,\n 'hy-icon-arrow-right': (p) => <icons.IconArrowRight {...p} />,\n 'hy-icon-arrow-to-right': (p) => <icons.IconArrowToRight {...p} />,\n 'hy-icon-arrow-up': (p) => <icons.ArrowUp {...p} />,\n 'hy-icon-avatar-group': (p) => <icons.AvatarGroup {...p} />,\n 'hy-icon-avatar': (p) => <icons.Avatar {...p} />,\n 'hy-icon-bachelor': (p) => <icons.Bachelor {...p} />,\n 'hy-icon-bullet-list': (p) => <icons.BulletList {...p} />,\n 'hy-icon-camera': (p) => <icons.Camera {...p} />,\n 'hy-icon-caret-down': (p) => <icons.CaretDown {...p} />,\n 'hy-icon-caret-left': (p) => <icons.CaretLeft {...p} />,\n 'hy-icon-caret-right': (p) => <icons.CaretRight {...p} />,\n 'hy-icon-caret-up': (p) => <icons.CaretUp {...p} />,\n 'hy-icon-chat': (p) => <icons.Chat {...p} />,\n 'hy-icon-code-fork': (p) => <icons.CodeFork {...p} />,\n 'hy-icon-cogs': (p) => <icons.Cogs {...p} />,\n 'hy-icon-content-link': (p) => <icons.Contentlink {...p} />,\n 'hy-icon-custom-link': (p) => <icons.Customlink {...p} />,\n 'hy-icon-date': (p) => <icons.Date {...p} />,\n 'hy-icon-discover': (p) => <icons.Discover {...p} />,\n 'hy-icon-done': (p) => <icons.Done {...p} />,\n 'hy-icon-dot': (p) => <icons.Dot {...p} />,\n 'hy-icon-dot-arrow-right': (p) => <icons.DotArrowRight {...p} />,\n 'hy-icon-download': (p) => <icons.Download {...p} />,\n 'hy-icon-drag': (p) => <icons.Drag {...p} />,\n 'hy-icon-drag-button': (p) => <icons.Dragbutton {...p} />,\n 'hy-icon-drop-down': (p) => <icons.DropDown {...p} />,\n 'hy-icon-edit': (p) => <icons.Edit {...p} />,\n 'hy-icon-edit-event': (p) => <icons.EditEvent {...p} />,\n 'hy-icon-embed': (p) => <icons.Embed {...p} />,\n 'hy-icon-euro': (p) => <icons.Euro {...p} />,\n 'hy-icon-events': (p) => <icons.Events {...p} />,\n 'hy-icon-external-link': (p) => <icons.ExternalLink {...p} />,\n 'hy-icon-eyelash': (p) => <icons.EyeSlash {...p} />,\n 'hy-icon-facebook': (p) => <icons.Facebook {...p} />,\n 'hy-icon-favorites': (p) => <icons.Favorites {...p} />,\n 'hy-icon-feed': (p) => <icons.Feed {...p} />,\n 'hy-icon-file-text': (p) => <icons.FileText {...p} />,\n 'hy-icon-fullscreen': (p) => <icons.FullScreen {...p} />,\n 'hy-icon-globe': (p) => <icons.Globe {...p} />,\n 'hy-icon-googleplus': (p) => <icons.GooglePlus {...p} />,\n 'hy-icon-grid': (p) => <icons.Grid {...p} />,\n 'hy-icon-hamburger': (p) => <icons.Hamburger {...p} />,\n 'hy-icon-heart': (p) => <icons.Heart {...p} />,\n 'hy-icon-heart-support': (p) => <icons.HeartSupport {...p} />,\n 'hy-icon-helsingin-yliopisto': (p) => <icons.Helsinginyliopisto {...p} />,\n 'hy-icon-home': (p) => <icons.Home {...p} />,\n 'hy-icon-horizontal-resize': (p) => <icons.HorizontalResize {...p} />,\n 'hy-icon-hy-logo': (p) => <icons.HyLogo {...p} />,\n 'hy-icon-id-number': (p) => <icons.IdNumber {...p} />,\n 'hy-icon-image': (p) => <icons.Image {...p} />,\n 'hy-icon-image-gallery': (p) => <icons.ImageGallery {...p} />,\n 'hy-icon-images': (p) => <icons.Images {...p} />,\n 'hy-icon-info': (p) => <icons.Info {...p} />,\n 'hy-icon-info-stroke': (p) => <icons.InfoStroke {...p} />,\n 'hy-icon-instagram': (p) => <icons.Instagram {...p} />,\n 'hy-icon-leiki-list': (p) => <icons.LeikiList {...p} />,\n 'hy-icon-link-arrow': (p) => <icons.LinkArrow {...p} />,\n 'hy-icon-link-arrow-down': (p) => <icons.LinkArrowDown {...p} />,\n 'hy-icon-link-arrow-left': (p) => <icons.LinkArrowLeft {...p} />,\n 'hy-icon-link-arrow-offsite': (p) => <icons.LinkArrowOffsite {...p} />,\n 'hy-icon-link-arrow-up': (p) => <icons.LinkArrowUp {...p} />,\n 'hy-icon-linkedin': (p) => <icons.Linkedin {...p} />,\n 'hy-icon-list': (p) => <icons.List {...p} />,\n 'hy-icon-list-of-links': (p) => <icons.Listoflinks {...p} />,\n 'hy-icon-list-as-blocks': (p) => <icons.ListAsBlocks {...p} />,\n 'hy-icon-list-style-grid': (p) => <icons.ListStyleGrid {...p} />,\n 'hy-icon-list-style-list': (p) => <icons.ListStyleList {...p} />,\n 'hy-icon-link': (p) => <icons.Url {...p} />,\n 'hy-icon-location': (p) => <icons.Location {...p} />,\n 'hy-icon-log': (p) => <icons.Log {...p} />,\n 'hy-icon-log-in': (p) => <icons.Login {...p} />,\n 'hy-icon-log-out': (p) => <icons.Logout {...p} />,\n 'hy-icon-magnify-minus': (p) => <icons.MagnifyMinus {...p} />,\n 'hy-icon-magnify-plus': (p) => <icons.MagnifyPlus {...p} />,\n 'hy-icon-email': (p) => <icons.Mail {...p} />,\n 'hy-icon-master': (p) => <icons.Master {...p} />,\n 'hy-icon-minus': (p) => <icons.Minus {...p} />,\n 'hy-icon-modify': (p) => <icons.Modify {...p} />,\n 'hy-icon-navi-triangle': (p) => <icons.NaviTriangle {...p} />,\n 'hy-icon-new-group': (p) => <icons.NewGroup {...p} />,\n 'hy-icon-new-person': (p) => <icons.NewPerson {...p} />,\n 'hy-icon-notification': (p) => <icons.Notification {...p} />,\n 'hy-icon-opinder-logo': (p) => <icons.OpinderLogoNew {...p} />,\n 'hy-icon-pdf': (p) => <icons.Pdf {...p} />,\n 'hy-icon-people': (p) => <icons.People {...p} />,\n 'hy-icon-permission-all': (p) => <icons.PermissionAll {...p} />,\n 'hy-icon-permission-group': (p) => <icons.PermissionGroup {...p} />,\n 'hy-icon-permission-private': (p) => <icons.PermissionPrivate {...p} />,\n 'hy-icon-person': (p) => <icons.Person {...p} />,\n 'hy-icon-person-outline': (p) => <icons.PersonOutline {...p} />,\n 'hy-icon-phone': (p) => <icons.Phone {...p} />,\n 'hy-icon-play': (p) => <icons.Play {...p} />,\n 'hy-icon-plus': (p) => <icons.Plus {...p} />,\n 'hy-icon-preview': (p) => <icons.Preview {...p} />,\n 'hy-icon-profile': (p) => <icons.Profile {...p} />,\n 'hy-icon-question': (p) => <icons.Question {...p} />,\n 'hy-icon-remove': (p) => <icons.Remove {...p} />,\n 'hy-icon-retweet': (p) => <icons.Retweet {...p} />,\n 'hy-icon-rotate-left': (p) => <icons.RotateLeft {...p} />,\n 'hy-icon-rotate-right': (p) => <icons.RotateRight {...p} />,\n 'hy-icon-search': (p) => <icons.Search {...p} />,\n 'hy-icon-share': (p) => <icons.Share {...p} />,\n 'hy-icon-slim-hamburger-menu': (p) => <icons.SlimHamburgerMenu {...p} />,\n 'hy-icon-social-media': (p) => <icons.SocialMedia {...p} />,\n 'hy-icon-some-facebook': (p) => <icons.SomeFacebook {...p} />,\n 'hy-icon-some-instagram': (p) => <icons.SomeInstagram {...p} />,\n 'hy-icon-some-linkedin': (p) => <icons.SomeLinkedin {...p} />,\n 'hy-icon-some-twitter': (p) => <icons.SomeTwitter {...p} />,\n 'hy-icon-some-twitter-retweet': (p) => <icons.SomeTwitterRetweet {...p} />,\n 'hy-icon-some-twitter-like': (p) => <icons.SomeTwitterLike {...p} />,\n 'hy-icon-some-youtube': (p) => <icons.SomeYoutube {...p} />,\n 'hy-icon-spinner': (p) => <icons.Spinner {...p} />,\n 'hy-icon-square': (p) => <icons.Square {...p} />,\n 'hy-icon-square-checked': (p) => <icons.SquareChecked {...p} />,\n 'hy-icon-time': (p) => <icons.Time {...p} />,\n 'hy-icon-todolist': (p) => <icons.TodoList {...p} />,\n 'hy-icon-tour': (p) => <icons.Tour {...p} />,\n 'hy-icon-twitter': (p) => <icons.Twitter {...p} />,\n 'hy-icon-units-and-faculties': (p) => <icons.UnitsAndFaculties {...p} />,\n 'hy-icon-video': (p) => <icons.Video {...p} />,\n 'hy-icon-warning': (p) => <icons.Warning {...p} />,\n 'hy-icon-wrench': (p) => <icons.Wrench {...p} />,\n 'hy-icon-quote': (p) => <icons.IconQuote {...p} />,\n 'hy-icon-youtube': (p) => <icons.Youtube {...p} />,\n};\n\n@Component({\n tag: 'hy-icon',\n styleUrl: 'icon.css',\n shadow: false,\n})\nexport class Icon {\n @Prop() icon: string;\n @Prop() fill: string = 'black';\n @Prop() size: number = 20;\n\n render() {\n return (\n <Host aria-hidden=\"true\" style={{display: 'flex'}}>\n {iconNames[this.icon]({\n height: this.size,\n width: this.size,\n fill: this.fill,\n })}\n </Host>\n );\n }\n}\n",".hy-image {\n width: 100%;\n}\n\n.hy-image__image-container {\n &.hy-image--no-aspect {\n img {\n height: auto;\n width: auto;\n max-width: 100%;\n }\n }\n\n &.hy-image--with-aspect {\n display: flex;\n justify-content: stretch;\n margin-bottom: 0;\n min-height: 10rem;\n position: relative;\n\n &:before {\n content: '';\n display: block;\n padding-top: var(--aspectRatio);\n }\n\n img {\n bottom: 0;\n height: 100%;\n left: 0;\n object-fit: cover;\n position: absolute;\n right: 0;\n top: 0;\n width: 100%;\n\n .hy-two-columns & {\n object-fit: contain;\n object-position: top;\n }\n }\n }\n}\n\n.hy-image__caption {\n color: var(--grayscale-dark);\n font-family: var(--main-font-family);\n font-size: 12px;\n letter-spacing: -0.07px;\n line-height: 16px;\n padding: 19px 0;\n}\n","export interface ImageSrcSet {\n src: any;\n media: string;\n type: string;\n sizes: string | null;\n}\n\nimport {Component, ComponentInterface, Prop, h, Watch} from '@stencil/core';\n\n@Component({\n tag: 'hy-image',\n styleUrl: 'image.scss',\n shadow: false,\n})\nexport class Image implements ComponentInterface {\n @Prop() imageUrl: string = null;\n @Prop() imageAlt: string = null;\n @Prop() disableLazy: boolean = false;\n @Prop() caption: string = null;\n @Prop() aspectRatioWidth: number = 16;\n @Prop() aspectRatioHeight: number = 9;\n private _sourceSet: ImageSrcSet[];\n @Prop() sourceSet: ImageSrcSet[] | string;\n\n @Watch('sourceSet') srcSetWatcher(data: ImageSrcSet[] | string) {\n this._sourceSet = typeof data === 'string' ? JSON.parse(data) : data;\n }\n\n componentWillLoad() {\n this.srcSetWatcher(this.sourceSet);\n }\n\n render() {\n let aspectRatio = null;\n if (this.aspectRatioWidth !== 0 && this.aspectRatioWidth !== 0) {\n const aspect = (this.aspectRatioHeight / this.aspectRatioWidth) * 100;\n aspectRatio = {\n '--aspectRatio': `${aspect}%` as 'aspectRatio',\n };\n }\n const classAttributes = ['hy-image', this.caption ? 'hy-image--with-caption' : null].join(' ');\n\n const containerClasses = [\n 'hy-image__image-container',\n aspectRatio !== null ? 'hy-image--with-aspect' : 'hy-image--no-aspect',\n ].join(' ');\n\n return [\n <div class={classAttributes}>\n <div class={containerClasses} style={aspectRatio !== null ? aspectRatio : ''}>\n {this.imageUrl &&\n (this._sourceSet ? (\n <picture>\n {this._sourceSet.map(({src, media, type, sizes}) => (\n <source srcSet={src} media={media} type={type} sizes={sizes || ''} />\n ))}\n <img\n loading={this.disableLazy ? 'eager' : 'lazy'}\n alt={this.imageAlt}\n class=\"hy-image__image\"\n src={this.imageUrl}\n />\n </picture>\n ) : (\n <img\n loading={this.disableLazy ? 'eager' : 'lazy'}\n alt={this.imageAlt}\n class=\"hy-image__image\"\n src={this.imageUrl}\n />\n ))}\n </div>\n {this.caption && <div class=\"hy-image__caption\">{this.caption}</div>}\n </div>,\n <hy-box mb=\"1.75, 1.75, 2, 2.5\" />,\n ];\n }\n}\n",":host {\n display: block;\n}\n\np.hy-ingress {\n @include font-size(16px, 24px);\n color: var(--grayscale-black);\n font-family: var(--main-font-family);\n margin: 0 0 2rem;\n\n @include breakpoint($narrow) {\n @include font-size(18px, 28px);\n }\n\n @include breakpoint($wide) {\n margin: 0 0 2.25rem;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(18px, 32px);\n margin: 0 0 3rem;\n }\n\n // No sidebar, large desktop styles\n &__large {\n @include breakpoint($extrawide) {\n @include font-size(18px, 32px);\n margin: 0 0 3rem;\n }\n }\n}\n","import {Component, Element, h, Host, Prop} from '@stencil/core';\n\n@Component({\n tag: 'hy-ingress',\n styleUrl: 'ingress.scss',\n shadow: false,\n})\nexport class Ingress {\n @Element() el: HTMLElement;\n @Prop() headerstyle: string = 'common';\n\n componentDidLoad() {\n let hyMainDiv = this.el.closest('.hy-main');\n if (hyMainDiv) {\n if (!hyMainDiv.classList.contains('with-sidebar')) {\n this.headerstyle = 'large';\n }\n }\n }\n\n render() {\n const classAttributes = ['hy-ingress', `hy-ingress__${this.headerstyle}`].join(' ');\n return (\n <Host>\n <p class={classAttributes}>\n <slot></slot>\n </p>\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-introduction {\n &__content {\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n &.hy-introduction__content--without-image.hy-introduction__content--limit-width {\n @include breakpoint($wide) {\n width: calc(50% - 16px);\n }\n }\n }\n\n &--reversed {\n .hy-introduction__outer-content {\n align-items: flex-end;\n flex-direction: column-reverse;\n\n @include breakpoint($wide) {\n align-items: stretch;\n flex-direction: row-reverse;\n }\n }\n }\n\n &--with-bg {\n width: auto;\n\n @include breakpoint($wide) {\n padding: 0;\n }\n\n @include breakpoint($xlarge) {\n //padding: 0 0 0 32px;\n }\n\n &__white {\n background: var(--grayscale-white);\n\n .hy-introduction__content--with-image {\n background: var(--grayscale-white);\n }\n\n .hy-introduction__title h2,\n .hy-introduction__description {\n color: var(--grayscale-black);\n }\n\n .hy-introduction__link {\n background: var(--brand-main-light);\n color: var(--grayscale-white);\n\n &__icon svg {\n fill: var(--grayscale-white);\n }\n\n &:hover {\n background: var(--brand-main-active);\n }\n }\n }\n }\n\n &__outer-content {\n display: flex;\n flex-direction: column-reverse;\n flex: 1 1 auto;\n justify-content: space-between;\n\n @include breakpoint($wide) {\n flex-direction: row;\n justify-content: space-between;\n padding-bottom: 0;\n\n @supports (gap: 32px) {\n gap: 32px;\n }\n }\n @include breakpoint($xlarge) {\n @supports (gap: 48px) {\n gap: 48px;\n }\n }\n }\n\n &__content--without-image {\n width: 100%;\n\n @include breakpoint($wide) {\n width: 91.46%;\n }\n @include breakpoint($extrawide) {\n width: 82.89%;\n }\n @include breakpoint($xlarge) {\n width: 74.2%;\n }\n }\n\n &__content--with-image {\n @include breakpoint($wide) {\n margin: 0;\n padding: 0;\n width: 50%;\n }\n }\n\n &__title {\n .hy-heading__container {\n @include breakpoint($wide) {\n padding-top: 0;\n }\n }\n }\n\n &__image {\n width: 100%;\n\n @include breakpoint($wide) {\n width: 50%;\n @supports not (gap: 32px) {\n width: calc(50% - 32px);\n }\n }\n\n img,\n .hy-image,\n .hy-image .hy-image__image-container {\n height: 100% !important;\n }\n }\n\n &__description {\n @include font-size(15px, 22px);\n @include font-weight($regular);\n color: var(--grayscale-black);\n font-family: var(--main-font-family);\n margin-bottom: 24px;\n margin-top: 0;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 24px);\n }\n @include breakpoint($wide) {\n margin-bottom: 28px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(17px, 26px);\n }\n\n &__large {\n @include breakpoint($extrawide) {\n @include font-size(17px, 26px);\n margin-bottom: 28px;\n }\n }\n }\n\n &__link {\n @include font-size(16px, 20px);\n letter-spacing: -0.5px;\n\n background-color: var(--brand-main-light);\n box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.1);\n box-sizing: border-box;\n color: var(--grayscale-white);\n cursor: pointer;\n display: inline-block;\n font-family: var(--main-font-family);\n font-weight: 700;\n height: 100%;\n padding: 12px 60px 12px 12px;\n position: relative;\n text-decoration: none;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 20px);\n letter-spacing: -0.6px;\n padding: 15px 62px 15px 16px;\n }\n\n @include breakpoint($wide) {\n @include font-size(18px, 20px);\n }\n\n @include breakpoint($extrawide) {\n @include font-size(20px, 20px);\n letter-spacing: -0.7px;\n padding: 16px 70px 16px 18px;\n }\n\n &__icon {\n position: absolute;\n right: 16px;\n top: 50%;\n transform: translateY(-50%);\n\n svg {\n fill: var(--grayscale-white);\n }\n }\n }\n}\n","export interface ImageSrcSet {\n src: any;\n media: string;\n type: string;\n sizes: string | null;\n}\n\nimport {Component, Element, Host, h, Prop} from '@stencil/core';\nimport {IntroductionBgColors, HeadingVarians, HeadingSectionVariants} from '../../utils/utils';\n\n@Component({\n tag: 'hy-introduction',\n styleUrl: 'hy-introduction.scss',\n shadow: false,\n})\nexport class HyIntroduction {\n @Prop() variant: IntroductionBgColors = null;\n @Prop() reversed: boolean = false;\n @Prop() limitContentWidth: boolean = false;\n @Prop() textTitle?: string;\n @Prop() textDescription: string = null;\n @Prop() url?: string;\n @Prop() scLabel?: string;\n @Prop() urlTitle?: string;\n @Prop() imageUrl?: string;\n @Prop() imageAlt: string = '';\n @Prop() isExternal: boolean = false;\n @Prop() headerstyle: string = 'common';\n @Prop() sourceSet: ImageSrcSet[] | string;\n @Element() el: HTMLElement;\n\n componentDidLoad() {\n let hyMainDiv = this.el.closest('.hy-main');\n if (hyMainDiv) {\n if (!hyMainDiv.classList.contains('with-sidebar')) {\n this.headerstyle = 'large';\n }\n }\n }\n\n render() {\n const classAttributes = [\n 'hy-introduction',\n `hy-introduction__${this.headerstyle}`,\n this.headerstyle,\n this.reversed ? 'hy-introduction--reversed' : '',\n this.variant\n ? `hy-introduction--with-bg hy-introduction--with-bg__${this.variant}`\n : 'hy-introduction--without-bg',\n ].join(' ');\n\n const classTitle = ['hy-introduction__title', `hy-introduction__title__${this.headerstyle}`].join(' ');\n const classDescription = ['hy-introduction__description', `hy-introduction__description__${this.headerstyle}`].join(\n ' '\n );\n\n const contentWrapperClasses = [\n 'hy-introduction__content',\n this.reversed ? 'hy-introduction__content--reversed' : '',\n this.imageUrl ? 'hy-introduction__content--with-image' : 'hy-introduction__content--without-image',\n this.limitContentWidth ? 'hy-introduction__content--limit-width' : '',\n ].join(' ');\n\n const target = this.isExternal ? '_blank' : '_self';\n\n return (\n <Host>\n <hy-box pt=\"1.25, 1.25, 1.5, 2.5\" />\n <div class={classAttributes}>\n <hy-main-content-wrapper>\n <div class=\"hy-introduction__outer-content\">\n <div class={contentWrapperClasses}>\n <hy-heading\n class={classTitle}\n heading={HeadingVarians.h2}\n section={HeadingSectionVariants.introduction}\n >\n {this.textTitle}\n </hy-heading>\n <p class={classDescription}>{this.textDescription}</p>\n {this.url && (\n <div class=\"hy-introduction__link__container\">\n <a class=\"hy-introduction__link\" href={this.url} aria-label={this.scLabel} target={target}>\n {this.urlTitle}\n <span class=\"hy-introduction__link__icon\">\n <hy-icon icon={'hy-icon-arrow-right'} size={24} />\n </span>\n </a>\n </div>\n )}\n </div>\n {this.imageUrl &&\n (this.sourceSet ? (\n <div class=\"hy-introduction__image\">\n <hy-image\n source-set={this.sourceSet}\n image-url={this.imageUrl}\n aspectRatioWidth={16}\n aspectRatioHeight={10}\n image-alt={this.imageAlt}\n />\n </div>\n ) : (\n <div class=\"hy-introduction__image\">\n <hy-image\n image-url={this.imageUrl}\n aspectRatioWidth={16}\n aspectRatioHeight={10}\n image-alt={this.imageAlt}\n />\n </div>\n ))}\n </div>\n </hy-main-content-wrapper>\n </div>\n <hy-box mb=\"1.75, 1.75, 2, 2.5\" />\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-key-figure {\n display: block;\n margin-bottom: 32px;\n text-align: center;\n width: 100%;\n\n @include breakpoint($narrow) {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n @include breakpoint($wide) {\n text-align: left;\n }\n\n &__title {\n @include font-size(40px, 60px);\n @include font-weight($bold);\n box-decoration-break: clone;\n color: var(--brand-main-light);\n display: inline;\n font-family: var(--main-font-family);\n letter-spacing: -2px;\n position: relative;\n z-index: 1;\n\n @include breakpoint($narrow) {\n @include font-size(40px, 30px);\n }\n\n @include breakpoint($extrawide) {\n @include font-size(80px, 70px);\n }\n }\n\n &__description {\n color: var(--grayscale-dark);\n font-family: var(--main-font-family);\n @include font-size(14px, 20px);\n letter-spacing: 0;\n line-height: 20px;\n margin-top: 8px;\n\n @include breakpoint($extrawide) {\n @include font-size(20px, 20px);\n }\n }\n}\n","import {Component, ComponentInterface, Prop, h} from '@stencil/core';\nimport {KeyHighlightVariants} from '../../utils/utils';\n\n@Component({\n tag: 'hy-key-figure',\n styleUrl: 'hy-key-figure.scss',\n shadow: true\n})\nexport class HyKeyFigure implements ComponentInterface {\n @Prop() variant: KeyHighlightVariants = KeyHighlightVariants.default;\n @Prop() heading: string;\n @Prop() description: string;\n\n render() {\n const classVariant = [this.variant, 'hy-key-figure'].join(' ');\n\n return (\n <div class={classVariant}>\n <div class=\"hy-key-figure__title\">{this.heading}</div>\n <div class=\"hy-key-figure__description\">{this.description}</div>\n </div>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-key-figure-group-container {\n margin: 20px 0 28px 0;\n\n @include breakpoint($wide) {\n margin: 24px 0 32px 0;\n }\n @include breakpoint($xlarge) {\n margin: 40px 0;\n }\n\n &__large {\n @include breakpoint($extrawide) {\n margin: 40px 0;\n }\n }\n}\n\n.hy-key-figure-group {\n display: block;\n justify-content: center;\n max-width: 30rem;\n margin-right: auto;\n margin-left: auto;\n width: 100%;\n\n @include breakpoint($narrow) {\n display: flex;\n flex-wrap: wrap;\n max-width: 100%;\n }\n\n @include breakpoint($wide) {\n justify-content: left;\n }\n\n &.hy-key-figure-group-centered {\n @include breakpoint($wide) {\n justify-content: center;\n }\n }\n\n .box-2,\n .box-3 {\n @include breakpoint($narrow) {\n flex-grow: 1;\n max-width: 33%;\n width: 33%;\n }\n }\n\n .box-4 {\n @include breakpoint($narrow) {\n flex-grow: 1;\n max-width: 49%;\n width: 49%;\n }\n @include breakpoint($wide) {\n max-width: 25%;\n width: 25%;\n }\n }\n}\n","export interface KeyFigureValue {\n heading: string;\n description: string;\n}\n\nimport {Component, ComponentInterface, Prop, h, Host, Element} from '@stencil/core';\nimport {KeyHighlightVariants} from '../../utils/utils';\nimport {jsonParserWorker} from '../../global/globalScript';\n\n@Component({\n tag: 'hy-key-figure-group',\n styleUrl: 'hy-key-figure-group.scss',\n shadow: false,\n})\nexport class HyKeyFigureGroup implements ComponentInterface {\n @Element() el: HTMLElement;\n private _dataItems: KeyFigureValue[];\n @Prop() dataItems: KeyFigureValue[] | string;\n @Prop() headerstyle: string = 'common';\n\n async componentWillLoad() {\n this._dataItems = await jsonParserWorker(this.dataItems);\n }\n\n componentDidLoad() {\n let hyMainDiv = this.el.closest('.hy-main');\n if (hyMainDiv) {\n if (!hyMainDiv.classList.contains('with-sidebar')) {\n this.headerstyle = 'large';\n }\n }\n }\n\n getBoxClassName(count) {\n let className = 'box';\n\n if (count % 3 == 0) {\n className = 'box-3';\n } else if (count % 4 == 0) {\n className = 'box-4';\n } else if (count % 5 == 0) {\n className = 'box-5';\n }\n\n return className;\n }\n\n render() {\n /*\n - Logic:\n - 3 items: big\n - 4 items: small\n - 5 items: big\n - 6 items: big\n * */\n const keyFiguresVariant = this._dataItems.length == 4 ? KeyHighlightVariants.small : KeyHighlightVariants.default;\n\n const classAttributes = [\n keyFiguresVariant,\n 'hy-key-figure-group-container',\n `hy-key-figure-group-container__${this.headerstyle}`,\n ].join(' ');\n const classRowAttributes = ['hy-key-figure-group'].join(' ');\n const classRowCenteredAttributes = ['hy-key-figure-group', 'hy-key-figure-group-centered'].join(' ');\n\n if (this._dataItems.length % 5 == 0) {\n return (\n <Host>\n <div class={classAttributes}>\n <div class={classRowAttributes}>\n {this._dataItems.map((x, index) => {\n if (index < 3) {\n return (\n <hy-key-figure\n class=\"box-3\"\n variant={keyFiguresVariant}\n heading={x.heading}\n description={x.description}\n />\n );\n }\n })}\n </div>\n <div class={classRowCenteredAttributes}>\n {this._dataItems.map((x, index) => {\n if (index >= 3) {\n return (\n <hy-key-figure\n class=\"box-2\"\n variant={keyFiguresVariant}\n heading={x.heading}\n description={x.description}\n />\n );\n }\n })}\n </div>\n </div>\n <hy-box mb=\"1.75, 1.75, 2, 2.5\" />\n </Host>\n );\n } else {\n return (\n <Host>\n <div class={classAttributes}>\n <div class={classRowAttributes}>\n {this._dataItems.map((x) => {\n return (\n <hy-key-figure\n class={this.getBoxClassName(this._dataItems.length)}\n variant={keyFiguresVariant}\n heading={x.heading}\n description={x.description}\n />\n );\n })}\n </div>\n </div>\n <hy-box mb=\"1.75, 1.75, 2, 2.5\" />\n </Host>\n );\n }\n }\n}\n",":host {\n}\n\n.hy-key-highlight {\n display: block;\n margin-bottom: 20px;\n width: 100%;\n\n @include breakpoint($narrow) {\n width: 100%;\n }\n\n &__title__container {\n display: inline-block;\n position: relative;\n text-align: center;\n margin-bottom: 1rem;\n\n @include breakpoint($narrow) {\n text-align: left;\n }\n }\n &__title__container::after {\n clear: both;\n }\n\n &__title {\n @include font-weight($bold);\n background-color: var(--brand-main-light);\n box-shadow: -5px 0px 0 0px var(--brand-main-light), 5px 0px 0 0px var(--brand-main-light),\n 0 0 0 0px var(--brand-main-light);\n box-decoration-break: clone;\n color: var(--grayscale-white);\n display: inline;\n font-family: var(--main-font-family);\n hyphens: auto;\n letter-spacing: -0.75px;\n padding: 0 5px;\n position: relative;\n text-transform: uppercase;\n word-break: break-word;\n }\n\n &__description {\n color: var(--grayscale-dark);\n font-family: var(--main-font-family);\n letter-spacing: 0;\n margin-top: 8px;\n text-align: center;\n\n @include breakpoint($narrow) {\n text-align: left;\n }\n }\n\n &.small {\n .hy-key-highlight__title__container {\n @include font-size(24px, 29px);\n }\n .hy-key-highlight__description {\n @include font-size(14px, 19px);\n }\n }\n\n &.big {\n .hy-key-highlight__title__container {\n @include font-size(24px, 29px);\n\n @include breakpoint($narrow) {\n @include font-size(40px, 45px);\n }\n }\n\n .hy-key-highlight__description {\n @include font-size(14px, 20px);\n\n @include breakpoint($narrow) {\n @include font-size(20px, 20px);\n }\n }\n }\n}\n","import {Component, ComponentInterface, Prop, h} from '@stencil/core';\nimport {KeyHighlightVariants} from '../../utils/utils';\n\n@Component({\n tag: 'hy-key-highlight',\n styleUrl: 'hy-key-highlight.scss',\n shadow: true,\n})\nexport class HyKeyHighlight implements ComponentInterface {\n @Prop() variant: KeyHighlightVariants = KeyHighlightVariants.default;\n @Prop() heading: string;\n @Prop() description: string;\n\n render() {\n const classVariant = [this.variant, 'hy-key-highlight'].join(' ');\n\n return (\n <div class={classVariant}>\n <div class=\"hy-key-highlight__title__container\">\n <div class=\"hy-key-highlight__title\" innerHTML={this.heading}></div>\n </div>\n <div class=\"hy-key-highlight__description\">{this.description}</div>\n </div>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-key-highlight-group-container {\n overflow: hidden;\n}\n\n.hy-key-highlight-group {\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n\n @include breakpoint($narrow) {\n flex-direction: row;\n margin: 0 calc(-1 * var(--gutter-medium));\n }\n\n @include breakpoint($wide) {\n margin: 0 calc(-1 * var(--gutter-wide));\n }\n\n .box,\n .box-4 {\n padding: 0 50px 0 20px;\n\n @include breakpoint($narrow) {\n padding: 0 var(--gutter-medium);\n }\n @include breakpoint($wide) {\n padding: 0 var(--gutter-wide);\n }\n }\n\n // 3 key highlights in a row\n .box {\n width: 100%;\n @include breakpoint($narrow) {\n width: 33.33%;\n max-width: 33.33%;\n }\n }\n\n // 4 key highlights in a row\n .box-4 {\n width: 100%;\n @include breakpoint($narrow) {\n width: 50%;\n max-width: 50%;\n }\n @include breakpoint($wide) {\n width: 25%;\n }\n }\n}\n","export interface KeyHighlightValue {\n heading: string;\n description: string;\n}\n\nimport {Component, ComponentInterface, Prop, h, Host, Element} from '@stencil/core';\nimport {KeyHighlightVariants} from '../../utils/utils';\nimport {jsonParserWorker} from '../../global/globalScript';\n\n@Component({\n tag: 'hy-key-highlight-group',\n styleUrl: 'hy-key-highlight-group.scss',\n shadow: true,\n})\nexport class HyKeyHighlightGroup implements ComponentInterface {\n @Element() el: HTMLElement;\n @Prop() variant: KeyHighlightVariants = KeyHighlightVariants.default;\n private _dataItems: KeyHighlightValue[];\n @Prop() dataItems: KeyHighlightValue[] | string;\n @Prop() headerstyle: string = 'common';\n\n async componentWillLoad() {\n this._dataItems = await jsonParserWorker(this.dataItems);\n }\n\n componentDidLoad() {\n let hyMainDiv = this.el.closest('.hy-main');\n if (hyMainDiv) {\n if (!hyMainDiv.classList.contains('with-sidebar')) {\n this.headerstyle = 'large';\n }\n }\n }\n\n render() {\n const classAttributes = [\n this.variant,\n 'hy-key-highlight-group',\n `hy-key-highlight-group__${this.headerstyle}`,\n ].join(' ');\n\n const dataItemCount = this._dataItems.length;\n const classItem = dataItemCount % 4 == 0 ? 'box-4' : 'box';\n\n return (\n <Host>\n <div class={classAttributes}>\n {this._dataItems.map((x) => {\n return (\n <hy-key-highlight\n class={classItem}\n variant={this.variant}\n heading={x.heading}\n description={x.description}\n />\n );\n })}\n </div>\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-large-process-flow {\n max-width: 100%;\n padding-top: 8px;\n width: 100%;\n\n @include breakpoint($narrow) {\n max-width: calc(100% / 8 * 7 + var(--gutter-narrow)); // 7 columns out of 8\n padding-top: 0;\n }\n @include breakpoint($wide) {\n max-width: calc(100% / 12 * 8 + var(--gutter-wide)); // 8 columns out of 12\n }\n @include breakpoint($extrawide) {\n max-width: calc(100% / 12 * 8 + var(--gutter-extrawide)); // 8 columns out of 12\n }\n\n h3.hy-heading {\n font-size: 20px;\n @include breakpoint($narrow) {\n font-size: 32px;\n }\n }\n\n &__first-phase {\n h3.hy-heading {\n margin-bottom: 8px;\n padding: 24px 0 !important; //48 32\n\n @include breakpoint($narrow) {\n margin-bottom: 24px;\n margin-top: 16px; //64 48\n }\n }\n }\n\n &__multi-phase-title {\n position: relative;\n\n &:after {\n background-color: var(--grayscale-background-arrow);\n bottom: 0;\n content: ' ';\n display: inline-block;\n height: 100%;\n left: 26.5px;\n position: absolute;\n width: 8px;\n z-index: -1;\n\n @include breakpoint($narrow) {\n left: calc(100% / 8 + var(--gutter-narrow) + 26.5px);\n }\n\n @include breakpoint($wide) {\n left: calc(100% / 12 + var(--gutter-wide) + 26.5px);\n }\n\n @include breakpoint($extrawide) {\n left: calc(100% / 12 + var(--gutter-extrawide) + 26.5px);\n }\n }\n\n h3.hy-heading {\n background-color: var(--grayscale-white);\n margin: 1.5rem 0 1.5rem;\n padding: 8px 0 !important;\n\n @include breakpoint($narrow) {\n margin: 48px 0;\n padding: 16px 0 !important;\n }\n }\n }\n}\n","export interface ProcessFlowValue {\n phaseTitle: string;\n boxes: string;\n}\n\nimport {Component, ComponentInterface, Element, h, Prop} from '@stencil/core';\nimport {HeadingVarians} from '../../utils/utils';\nimport {jsonParserWorker} from '../../global/globalScript';\n\n@Component({\n tag: 'hy-large-process-flow',\n styleUrl: 'hy-large-process-flow.scss',\n shadow: true,\n})\nexport class HyLargeProcessFlow implements ComponentInterface {\n @Element() el: HTMLElement;\n @Prop() headerstyle: string = 'common';\n\n private _dataItems: ProcessFlowValue[];\n @Prop() dataItems: ProcessFlowValue[] | string;\n\n async componentWillLoad() {\n this._dataItems = await jsonParserWorker(this.dataItems);\n }\n\n componentDidLoad() {\n let hyMainDiv = this.el.closest('.hy-main');\n if (hyMainDiv) {\n if (!hyMainDiv.classList.contains('with-sidebar')) {\n this.headerstyle = 'large';\n }\n }\n }\n\n render() {\n const classAttributes = ['hy-large-process-flow', `hy-large-process-flow__${this.headerstyle}`].join(' ');\n\n return [\n <div class={classAttributes}>\n {this._dataItems.map((x, index) => {\n let phases = JSON.stringify(x.boxes);\n const headingClasses =\n index !== 0 ? 'hy-large-process-flow__multi-phase-title' : 'hy-large-process-flow__first-phase';\n\n return [\n <hy-heading class={headingClasses} heading={HeadingVarians.h3}>\n {x.phaseTitle}\n </hy-heading>,\n <hy-large-process-flow-phase data-items={phases} />,\n ];\n })}\n </div>,\n ];\n }\n}\n",":host {\n display: block;\n}\n\n.hy-large-process-flow__phase-container {\n padding-left: 0;\n position: relative;\n max-width: 100%;\n width: 100%;\n\n @include breakpoint($narrow) {\n //tablet\n padding-left: calc(100% / 8 + var(--gutter-narrow)); // 1 column padding\n }\n @include breakpoint($wide) {\n //mid desktop\n padding-left: calc(100% / 12 + var(--gutter-wide)); // 1 column padding\n }\n @include breakpoint($extrawide) {\n //large desktop\n padding-left: calc(100% / 12 + var(--gutter-extrawide)); // 1 column padding\n }\n\n &__phase {\n position: relative;\n\n &:after {\n background-color: var(--grayscale-background-arrow);\n bottom: 0;\n content: ' ';\n display: inline-block;\n height: 24px;\n left: 26.5px;\n position: absolute;\n width: 8px;\n\n @include breakpoint($narrow) {\n display: inline-block;\n height: 100%;\n }\n }\n\n &:last-child:after {\n display: none;\n\n @include breakpoint($narrow) {\n display: inline-block;\n }\n }\n\n &:last-child &__content {\n top: 0;\n margin-top: -24px;\n }\n\n &__number {\n display: grid;\n place-items: center;\n position: relative;\n width: 64px;\n z-index: 2;\n\n &__number {\n background-color: var(--brand-main-light);\n color: var(--grayscale-white);\n display: grid;\n font-family: var(--main-font-family);\n @include font-size(32px, 36px);\n @include font-weight(700);\n height: 48px;\n letter-spacing: 0;\n margin: 0;\n padding: 0;\n place-items: center;\n position: relative;\n width: 48px;\n\n &::after {\n content: '';\n height: 48px;\n left: -6px;\n position: absolute;\n width: 48px;\n }\n\n @include breakpoint($narrow) {\n @include font-size(36px, 40px);\n height: 64px;\n width: 64px;\n\n &::after {\n content: '';\n height: 64px;\n left: -6px;\n position: absolute;\n width: 64px;\n }\n }\n }\n }\n\n &__content {\n background-color: var(--grayscale-background-box);\n margin: 0 -56px;\n padding: 48px 0 24px 0;\n position: relative;\n top: -24px;\n\n @include breakpoint($narrow) {\n //margin-bottom: -8px;\n //margin-left: 32px;\n margin: 0 0 -8px 32px;\n padding: 32px 0;\n top: -32px;\n }\n\n &__heading {\n color: var(--brand-main-nearly-black);\n font-family: var(--main-font-family);\n\n @include font-size(20px, 30px);\n @include font-weight(600);\n letter-spacing: -0.5px;\n margin-bottom: 24px;\n //padding: 0 16px;\n padding: 0 56px;\n\n @include breakpoint($narrow) {\n @include font-size(26px, 30px);\n @include font-weight(700);\n letter-spacing: -0.65px;\n padding: 0 44px;\n }\n }\n\n &__description {\n color: var(--grayscale-dark);\n font-family: var(--main-font-family);\n\n @include font-size(16px, 24px);\n letter-spacing: 0;\n margin-bottom: 24px;\n //padding: 0 16px;\n padding: 0 56px;\n\n @include breakpoint($narrow) {\n padding: 0 44px;\n }\n }\n\n &__links {\n align-items: flex-end;\n display: flex;\n flex-direction: column;\n margin-right: 0;\n padding: 0 56px;\n\n @include breakpoint($narrow) {\n margin-right: -6px;\n padding: 0;\n }\n\n .phase-link {\n margin-bottom: 8px;\n }\n .phase-link.last {\n margin-bottom: 0;\n }\n }\n }\n }\n}\n","export interface PhaseValue {\n heading: string;\n description: string;\n links: ProcessBoxLinkValue[];\n}\n\nexport interface ProcessBoxLinkValue {\n label: string;\n url: string;\n isExternal: boolean;\n ariaLabel: string;\n}\n\nimport {Component, ComponentInterface, h, Prop} from '@stencil/core';\nimport {jsonParserWorker} from '../../global/globalScript';\n\n@Component({\n tag: 'hy-large-process-flow-phase',\n styleUrl: 'hy-large-process-flow-phase.scss',\n shadow: true,\n})\nexport class HyLargeProcessFlowPhase implements ComponentInterface {\n private _dataItems: PhaseValue[];\n @Prop() dataItems: PhaseValue[] | string;\n\n async componentWillLoad() {\n this._dataItems = await jsonParserWorker(this.dataItems);\n }\n\n render() {\n const classAttributes = ['hy-large-process-flow__phase-container'].join(' ');\n\n return (\n <div class={classAttributes}>\n {this._dataItems.map((x, index) => {\n var items;\n if (x.links && x.links.length > 0) {\n let linkItems = x.links;\n let linkItemsCount = x.links.length;\n items = linkItems.map((item, index) => {\n let classLinks = index == linkItemsCount - 1 ? 'phase-link last' : 'phase-link';\n return item ? (\n <hy-cta-link\n class={classLinks}\n link-content={item.label}\n sc-label={item.ariaLabel}\n is-external={item.isExternal}\n url={item.url}\n />\n ) : null;\n });\n }\n\n return [\n <div class=\"hy-large-process-flow__phase-container__phase\">\n <div class=\"hy-large-process-flow__phase-container__phase__number\">\n <h2 class=\"hy-large-process-flow__phase-container__phase__number__number\">\n <div class=\"hy-large-process-flow__phase-container__phase__number__title\">{index + 1}</div>\n </h2>\n </div>\n <div class=\"hy-large-process-flow__phase-container__phase__content\">\n <div class=\"hy-large-process-flow__phase-container__phase__content__heading\">{x.heading}</div>\n <div\n class=\"hy-large-process-flow__phase-container__phase__content__description\"\n innerHTML={x.description}\n ></div>\n <div class=\"hy-large-process-flow__phase-container__phase__content__links\">{items}</div>\n </div>\n </div>,\n ];\n })}\n </div>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-link {\n color: var(--brand-main);\n font-family: var(--main-font-family);\n font-weight: 600;\n font-size: 14px;\n letter-spacing: -0.47px;\n margin: theme('spacing.8');\n line-height: 16px;\n text-decoration: none;\n\n &.within-paragraph {\n color: var(--brand-main);\n font-family: var(--main-font-family);\n font-weight: 400;\n font-size: 14px;\n line-height: 20px;\n text-decoration: underline;\n }\n}\n","import {Component, Host, Prop, h} from '@stencil/core';\nimport {LinkVariants} from '../../utils/utils';\n\n@Component({\n tag: 'hy-link',\n styleUrl: 'link.scss',\n shadow: false,\n})\nexport class Link {\n @Prop() variant: LinkVariants = LinkVariants.default;\n @Prop() linkContent: string = '';\n @Prop() url?: string;\n @Prop() scLabel?: string;\n @Prop() isExternal: boolean = false;\n\n render() {\n const classAttributes = ['hy-link', this.variant];\n const target = this.isExternal ? '_blank' : '_self';\n\n return (\n <Host>\n <a aria-label={this.scLabel} class={classAttributes.join(' ')} href={this.url} target={target}>\n {this.linkContent}\n </a>\n </Host>\n );\n }\n}\n",":host {\n height: 100%;\n}\n\n.hy-link-box-container {\n background: var(--grayscale-background-box);\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n height: 100%;\n position: relative;\n\n &:focus-within {\n outline: auto;\n }\n\n &:hover {\n cursor: pointer;\n\n .hy-link-box__text-container__title {\n color: var(--brand-main);\n text-decoration: underline;\n }\n\n .hy-cta-link {\n text-decoration: underline;\n\n .hy-cta-link__icon {\n background-color: var(--brand-main);\n }\n }\n }\n}\n\n.hy-link-box__image-container {\n margin: 0;\n display: flex;\n justify-content: stretch;\n min-height: 10rem;\n position: relative;\n\n &:before {\n content: '';\n display: block;\n padding-top: calc(10 / 16) * 100%;\n width: 100%;\n }\n\n img {\n bottom: 0;\n height: 100%;\n left: 0;\n object-fit: cover;\n position: absolute;\n right: 0;\n top: 0;\n width: 100%;\n }\n\n &.is-image-missing {\n svg {\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n left: 50%;\n width: 85px;\n height: auto;\n fill: #d2d2d2;\n }\n }\n}\n\n.hy-link-box__text-container {\n padding: 16px;\n}\n\n.hy-link-box__text-container__title {\n @include font-size(21px, 28px);\n @include font-weight($bold);\n color: var(--brand-main-nearly-black);\n font-family: var(--main-font-family);\n letter-spacing: -0.42px;\n hyphens: auto;\n word-break: break-word;\n margin: 0 0 16px;\n\n @media screen and (min-width: 1024px) {\n @include font-size(25px, 32px);\n letter-spacing: -0.5px;\n }\n}\n\n.hy-link-box__text-container__description {\n @include font-size(15px, 22px);\n color: var(--grayscale-black);\n font-family: var(--main-font-family);\n margin: 0;\n\n @media screen and (min-width: 1024px) {\n @include font-size(17px, 26px);\n }\n}\n\n.hy-cta-link {\n @include font-weight($semibold);\n @include font-size(16px, 24px);\n align-items: center;\n color: var(--brand-main);\n display: inline-grid;\n font-family: var(--main-font-family);\n gap: 16px;\n grid-auto-flow: column;\n letter-spacing: -0.5px;\n overflow: hidden;\n text-decoration: none;\n margin: 0 -8px 24px 0;\n align-self: flex-end;\n\n span[aria-hidden='true'] {\n position: absolute;\n inset: 0;\n }\n\n &:focus {\n outline: none;\n }\n}\n\n.hy-cta-link__icon {\n align-items: center;\n background-color: var(--brand-main-light);\n display: inline-flex;\n height: 40px;\n justify-content: center;\n width: 40px;\n\n svg {\n fill: var(--grayscale-white);\n }\n\n &--external {\n svg {\n transform: rotate(-45deg);\n }\n }\n}\n","export interface ImageSrcSet {\n src: any;\n media: string;\n type: string;\n sizes: string | null;\n}\n\nimport {Component, ComponentInterface, Element, Prop, h, Watch} from '@stencil/core';\nimport {LinkBoxVariants} from '../../utils/utils';\n\n@Component({\n tag: 'hy-link-box',\n styleUrl: 'link-box.scss',\n shadow: true,\n})\nexport class LinkBox implements ComponentInterface {\n @Prop() variant: LinkBoxVariants = LinkBoxVariants.default;\n @Prop() imageUrl: string = null;\n @Prop() imageAlt: string = null;\n @Prop() disableLazy: boolean = false;\n @Prop() useSlot: boolean = false;\n @Prop() showLogo: boolean = false;\n @Prop() textTitle?: string;\n @Prop() textDescription: string = null;\n @Prop() url?: string;\n @Prop() isExternal: boolean = false;\n @Prop() scLabel?: string;\n @Prop() readMoreLabel: string;\n @Prop() headerstyle: string = 'common';\n private _sourceSet: ImageSrcSet[];\n @Prop() sourceSet: ImageSrcSet[] | string;\n @Element() el: HTMLElement;\n\n @Watch('sourceSet') srcSetWatcher(data: ImageSrcSet[] | string) {\n this._sourceSet = typeof data === 'string' ? JSON.parse(data) : data;\n }\n\n componentWillLoad() {\n this.srcSetWatcher(this.sourceSet);\n }\n\n componentDidLoad() {\n let hyMainDiv = this.el.closest('.hy-main');\n if (hyMainDiv) {\n if (!hyMainDiv.classList.contains('with-sidebar')) {\n this.headerstyle = 'large';\n }\n }\n }\n\n render() {\n const classContainerAttributes = ['hy-link-box-container'].join(' ');\n const classAttributes = [\n 'hy-link-box',\n this.variant,\n `hy-link-box__${this.variant}`,\n this.headerstyle,\n `hy-link-box__${this.headerstyle}`,\n this.imageUrl ? 'hy-link-box--with-image' : null,\n ].join(' ');\n\n const classTextContainer = ['hy-link-box__text-container', this.imageUrl ? 'hy-link-box--with-image' : null].join(\n ' '\n );\n\n const classTitle = [\n 'hy-link-box__text-container__title',\n `hy-link-box__text-container__title__${this.variant}`,\n `hy-link-box__text-container__title__${this.headerstyle}`,\n this.imageUrl ? 'hy-link-box__text-container__title__image' : '',\n this.imageUrl ? 'image' : '',\n ].join(' ');\n\n const classDescription = [\n 'hy-link-box__text-container__description',\n `hy-link-box__text-container__description__${this.variant}`,\n `hy-link-box__text-container__description__${this.headerstyle}`,\n ].join(' ');\n\n const target = this.isExternal ? '_blank' : '_self';\n\n const aspectRatioWidth = 16;\n const aspectRatioHeight = 10;\n const aspect = (aspectRatioHeight / aspectRatioWidth) * 100;\n const aspectRatio = {\n '--aspectRatio': `${aspect}%` as 'aspectRatio',\n };\n\n return [\n <article class={classContainerAttributes}>\n <div class={classAttributes}>\n {this.imageUrl &&\n (this._sourceSet ? (\n <figure class=\"hy-link-box__image-container\" style={aspectRatio}>\n <picture>\n {this._sourceSet.map((item) => (\n <source\n srcSet={item.src}\n media={item.media}\n type={item.type}\n sizes={item.sizes ? item.sizes : ''}\n />\n ))}\n <img\n loading={this.disableLazy ? 'eager' : 'lazy'}\n aria-hidden=\"true\"\n src={this.imageUrl}\n alt={this.imageAlt}\n />\n </picture>\n </figure>\n ) : (\n <figure class=\"hy-link-box__image-container\" style={aspectRatio}>\n <img\n loading={this.disableLazy ? 'eager' : 'lazy'}\n aria-hidden=\"true\"\n src={this.imageUrl}\n alt={this.imageAlt}\n />\n </figure>\n ))}\n {!this.imageUrl && this.showLogo && (\n <div aria-hidden=\"true\" class=\"hy-link-box__image-container is-image-missing\">\n <hy-icon class={{'hy-site-logo__icon': true}} icon={'hy-icon-hy-logo'} />\n </div>\n )}\n <div class={classTextContainer}>\n <h3 class={classTitle}>{this.textTitle}</h3>\n {this.textDescription && (\n <p class={classDescription}>\n {this.textDescription.length >= 141 ? this.textDescription.slice(0, 140) + '...' : this.textDescription}\n </p>\n )}\n </div>\n </div>\n <a\n aria-label={this.scLabel || `${this.readMoreLabel} - ${this.textTitle}`}\n title={this.scLabel || `${this.readMoreLabel} - ${this.textTitle}`}\n href={this.url}\n target={target}\n class={`hy-cta-link hy-cta-link--default`}\n >\n <span aria-hidden=\"true\"></span>\n <span>{this.readMoreLabel}</span>\n <span class={`hy-cta-link__icon ${this.isExternal ? 'hy-cta-link__icon--external' : ''}`}>\n <hy-icon icon={'hy-icon-arrow-to-right'} size={24} />\n </span>\n </a>\n </article>,\n ];\n }\n}\n",":host {\n display: block;\n}\n\n.hy-link-box-list {\n padding: 0;\n margin: 0;\n list-style: none;\n display: grid;\n gap: 32px 0;\n\n @media screen and (min-width: 768px) {\n grid-template-columns: repeat(2, 1fr);\n gap: 32px 24px;\n }\n\n @media screen and (min-width: 1024px) {\n grid-template-columns: repeat(3, 1fr);\n }\n\n @media screen and (min-width: 1920px) {\n gap: 32px;\n }\n}\n","export interface LinkBox {\n heading: string;\n description: string;\n imageSets: string | null;\n imageUrl: string;\n imageAlt: string;\n boxUrl: string;\n isExternal: boolean;\n showLogo: boolean;\n ariaLabel: string;\n}\n\nimport {Component, ComponentInterface, Prop, h, Host, Element} from '@stencil/core';\nimport {LinkBoxVariants} from '../../utils/utils';\nimport {jsonParserWorker} from '../../global/globalScript';\n\n@Component({\n tag: 'hy-link-box-list',\n styleUrl: 'link-box-list.scss',\n shadow: false,\n})\nexport class LinkBoxList implements ComponentInterface {\n @Element() el: HTMLElement;\n @Prop() headerstyle: string = 'common';\n @Prop() variant: LinkBoxVariants = LinkBoxVariants.default;\n @Prop() readMoreLabel: string;\n\n private _dataItems: LinkBox[];\n @Prop() dataItems: LinkBox[] | string;\n\n async componentWillLoad() {\n this._dataItems = await jsonParserWorker(this.dataItems);\n }\n\n componentDidLoad() {\n let hyMainDiv = this.el.closest('.hy-main');\n if (hyMainDiv) {\n if (!hyMainDiv.classList.contains('with-sidebar')) {\n this.headerstyle = 'large';\n }\n }\n }\n\n render() {\n const classAttributes = [\n 'hy-link-box-list',\n this.variant,\n `hy-link-box-list__${this.variant}`,\n `hy-link-box-list__${this.headerstyle}`,\n ].join(' ');\n\n /*\n - Logic:\n - 3 items: big\n - 4 items: small\n - 5 items: big\n - 6 items: big\n - 7 items: small\n - 8 items: small\n - 9 items: big\n * */\n const classItemAttributes = [this.variant, `hy-link-box__${this.variant}`].join(' ');\n return (\n <Host>\n <ul class={classAttributes}>\n {this._dataItems.map((x) => {\n return (\n <li>\n <hy-link-box\n class={classItemAttributes}\n variant={this.variant}\n source-set={x.imageSets}\n image-url={x.imageUrl}\n image-alt={x.imageAlt}\n text-title={x.heading}\n text-description={x.description}\n show-logo={x.showLogo}\n url={x.boxUrl}\n is-external={x.isExternal}\n sc-label={x.ariaLabel}\n read-more-label={this.readMoreLabel}\n />\n </li>\n );\n })}\n </ul>\n <hy-box mb=\"1.75, 1.75, 2, 2.5\" />\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-link-list {\n margin-bottom: 32px;\n}\n\n.hy-link-list__links {\n display: grid;\n gap: 16px;\n list-style: none;\n margin: 0;\n padding: 0;\n\n &--grid {\n @include breakpoint($narrow) {\n gap: 16px 24px;\n grid-template-columns: repeat(2, 1fr);\n }\n\n .without-sidebar & {\n &.col-3 {\n @include breakpoint($wide) {\n gap: 16px 24px;\n grid-template-columns: repeat(3, 1fr);\n }\n\n @include breakpoint($extrawide) {\n gap: 16px 32px;\n }\n }\n\n &.col-4 {\n @include breakpoint($wide) {\n gap: 16px 24px;\n grid-template-columns: repeat(4, 1fr);\n }\n\n @include breakpoint($extrawide) {\n gap: 16px 32px;\n }\n }\n }\n\n .with-sidebar & {\n &.col-3 {\n @include breakpoint($extrawide) {\n gap: 16px 24px;\n grid-template-columns: repeat(3, 1fr);\n }\n\n @include breakpoint($xlarge) {\n gap: 16px 32px;\n }\n }\n\n &.col-4 {\n @include breakpoint($extrawide) {\n gap: 16px 24px;\n grid-template-columns: repeat(4, 1fr);\n }\n\n @include breakpoint($xlarge) {\n gap: 16px 32px;\n }\n }\n }\n }\n}\n\n.hy-link-list__title {\n font-weight: $bold;\n font-family: var(--main-font-family);\n margin: 0 0 32px;\n color: var(--brand-main-nearly-black);\n}\n\nh2.hy-link-list__title {\n .is-content-page & {\n @include font-size(26px, 32px);\n letter-spacing: -0.82px;\n\n @include breakpoint($narrow) {\n @include font-size(30px, 36px);\n letter-spacing: -0.6px;\n }\n\n .without-sidebar & {\n @include breakpoint($extrawide) {\n @include font-size(34px, 40px);\n letter-spacing: -0.68px;\n }\n }\n\n .with-sidebar & {\n @include breakpoint($xlarge) {\n @include font-size(34px, 40px);\n letter-spacing: -0.68px;\n }\n }\n }\n\n .is-front-page &,\n .is-landing-page & {\n @include font-size(28px, 32px);\n letter-spacing: -0.7px;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n @include font-size(34px, 40px);\n letter-spacing: -0.85px;\n }\n\n .without-sidebar & {\n @include breakpoint($extrawide) {\n @include font-size(42px, 48px);\n letter-spacing: -1.05px;\n }\n }\n\n .with-sidebar & {\n @include breakpoint($xlarge) {\n @include font-size(42px, 48px);\n letter-spacing: -1.05px;\n }\n }\n }\n\n .hy-two-columns & {\n @include font-size(18px, 22px);\n letter-spacing: -0.45px;\n margin-bottom: 16px;\n text-transform: none;\n\n .without-sidebar & {\n @include breakpoint($extrawide) {\n @include font-size(20px, 24px);\n letter-spacing: -0.5px;\n }\n }\n\n .with-sidebar & {\n @include breakpoint($xlarge) {\n @include font-size(20px, 24px);\n letter-spacing: -0.5px;\n }\n }\n }\n}\n\nh3.hy-link-list__title {\n .is-content-page & {\n @include font-size(21px, 28px);\n letter-spacing: -0.42px;\n\n @include breakpoint($narrow) {\n @include font-size(25px, 32px);\n letter-spacing: -0.5px;\n }\n }\n\n .is-front-page &,\n .is-landing-page & {\n @include font-size(26px, 32px);\n letter-spacing: -0.52px;\n\n @include breakpoint($narrow) {\n @include font-size(30px, 36px);\n letter-spacing: -0.6px;\n }\n\n .without-sidebar & {\n @include breakpoint($extrawide) {\n @include font-size(34px, 40px);\n letter-spacing: -0.68px;\n }\n }\n\n .with-sidebar & {\n @include breakpoint($xlarge) {\n @include font-size(34px, 40px);\n letter-spacing: -0.68px;\n }\n }\n }\n\n .hy-two-columns & {\n @include font-size(18px, 22px);\n letter-spacing: -0.45px;\n margin-bottom: 16px;\n text-transform: none;\n\n .without-sidebar & {\n @include breakpoint($extrawide) {\n @include font-size(20px, 24px);\n letter-spacing: -0.5px;\n }\n }\n\n .with-sidebar & {\n @include breakpoint($xlarge) {\n @include font-size(20px, 24px);\n letter-spacing: -0.5px;\n }\n }\n }\n}\n","export interface CtaLinkValue {\n heading: string;\n variation: string;\n ariaLabel: string;\n url: string;\n isExternal: boolean;\n}\n\nimport {Component, ComponentInterface, Element, h, Prop} from '@stencil/core';\nimport {CtaLinkVariants} from '../../utils/utils';\nimport {jsonParserWorker} from '../../global/globalScript';\n\n@Component({\n tag: 'hy-link-list',\n styleUrl: 'hy-link-list.scss',\n shadow: false,\n})\nexport class HyLinkList implements ComponentInterface {\n @Element() el: HTMLElement;\n @Prop() headerstyle: string = 'default';\n private _dataItems: CtaLinkValue[];\n @Prop() dataItems: CtaLinkValue[] | string;\n @Prop() listHeading: string = '';\n @Prop() variation: string;\n @Prop() headingVariant: string = 'h2';\n\n async componentWillLoad() {\n this._dataItems = await jsonParserWorker(this.dataItems);\n }\n\n componentDidLoad() {\n let hyMainDiv = this.el.closest('.hy-main');\n if (hyMainDiv) {\n if (!hyMainDiv.classList.contains('with-sidebar')) {\n this.headerstyle = 'large';\n }\n }\n }\n\n render() {\n const linkVariant = CtaLinkVariants.linkList;\n const HeadingVariant = this.headingVariant.toLowerCase();\n let columnType = 'col-3';\n\n if (this._dataItems.length === 7 || this._dataItems.length % 4 === 0) {\n columnType = 'col-4';\n }\n\n return [\n <section class={`hy-link-list hy-link-list__${this.headerstyle}`}>\n {this.listHeading.length > 0 && (\n <HeadingVariant class={'hy-link-list__title'}>{this.listHeading}</HeadingVariant>\n )}\n <ul\n class={`hy-link-list__links hy-link-list__links--${this.variation} ${\n this.variation === 'grid' ? columnType : ''\n }`}\n >\n {this._dataItems.map(({heading, ariaLabel, url, isExternal}) => (\n <li class=\"hy-link-list__links-item\">\n <hy-cta-link\n variant={linkVariant}\n link-content={heading}\n sc-label={ariaLabel}\n url={url}\n is-external={isExternal}\n />\n </li>\n ))}\n </ul>\n </section>,\n ];\n }\n}\n",":host {\n display: block;\n}\n\n.hy-list-item {\n display: flex;\n font-family: var(--main-font-family);\n text-decoration: none;\n\n &__default {\n margin-bottom: 28px;\n @include breakpoint($wide) {\n margin-bottom: 32px;\n }\n\n &__info-container {\n &__header {\n @include font-size(12px, 14px);\n color: var(--grayscale-dark);\n letter-spacing: 0;\n margin-bottom: 4px;\n\n @include breakpoint($narrow) {\n @include font-size(14px, 18px);\n margin-bottom: 2px;\n }\n }\n\n &__title {\n @include font-size(18px, 22px);\n @include font-weight($bold);\n color: var(--brand-main-light);\n letter-spacing: -0.56px;\n margin-bottom: 6px;\n\n @include breakpoint($narrow) {\n @include font-size(22px, 28px);\n letter-spacing: -0.69px;\n margin-bottom: 10px;\n }\n @include breakpoint($xlarge) {\n @include font-size(26px, 32px);\n letter-spacing: -0.8px;\n margin-bottom: 8px;\n }\n\n &__large {\n // >1200 no sidebar;\n @include breakpoint($extrawide) {\n @include font-size(26px, 32px);\n letter-spacing: -0.8px;\n margin-bottom: 8px;\n }\n }\n }\n\n &__link-container {\n align-items: center;\n display: flex;\n margin-bottom: 6px;\n\n @include breakpoint($narrow) {\n margin-bottom: 8px;\n }\n }\n\n &__link {\n @include font-size(12px, 16px);\n color: var(--grayscale-dark);\n letter-spacing: -0.07px;\n margin-left: 4px;\n\n @include breakpoint($narrow) {\n margin-left: 5px;\n }\n\n &__icon {\n svg {\n fill: var(--grayscale-dark);\n }\n }\n }\n\n &__description {\n @include font-size(14px, 20px);\n color: var(--grayscale-black);\n letter-spacing: 0;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 24px);\n }\n }\n }\n }\n\n // Opem position\n &__position {\n background: radial-gradient(circle, var(--grayscale-light) 0%, var(--grayscale-background-box) 100%);\n flex-direction: column;\n @include breakpoint($narrow) {\n flex-direction: row;\n }\n\n &__info-container {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: space-between;\n margin: 0;\n padding: 12px;\n position: relative;\n\n // 960-1600 with Sidebar;\n @include breakpoint($wide) {\n padding: 12px 16px;\n }\n // >1600 with sidebar same as >1200 without sidebar\n @include breakpoint($xlarge) {\n padding: 20px 24px;\n }\n\n &__header {\n display: flex;\n align-items: center;\n flex-direction: row;\n color: var(--brand-main);\n font-family: var(--main-font-family);\n font-size: 14px;\n font-weight: 600;\n letter-spacing: -0.2px;\n line-height: 14px;\n margin-bottom: 14px;\n\n .icon {\n margin-right: 0.75rem;\n\n svg {\n fill: var(--brand-main);\n }\n }\n }\n\n // >1200 no sidebar;\n &__large {\n @include breakpoint($extrawide) {\n padding: 20px 24px;\n }\n }\n\n &__data {\n display: flex;\n flex-direction: column;\n }\n\n &__title {\n @include font-size(18px, 20px);\n @include font-weight($bold);\n font-family: var(--main-font-family);\n color: var(--grayscale-black);\n margin-bottom: 12px;\n letter-spacing: -0.45px;\n line-height: 22px;\n\n @include breakpoint($narrow) {\n letter-spacing: -0.5px;\n }\n }\n\n &__description {\n @include font-size(14px);\n color: var(--grayscale-dark-text);\n display: none;\n font-family: var(--main-font-family);\n letter-spacing: 0.8px;\n margin-bottom: 14px;\n line-height: 20px;\n\n @include breakpoint($narrow) {\n display: block;\n }\n }\n\n &__outgoing-link {\n align-items: flex-end;\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n position: relative;\n padding: 0 24px 24px 12px;\n\n @include breakpoint($narrow) {\n justify-content: center;\n padding: 0 24px 24px 0;\n }\n\n .label {\n color: var(--link-blue);\n font-family: var(--main-font-family);\n font-size: 16px;\n font-weight: 600;\n letter-spacing: -0.3px;\n line-height: 20px;\n }\n\n .icon {\n margin-right: 4px;\n margin-bottom: 2px;\n\n svg {\n fill: var(--link-blue);\n }\n }\n }\n }\n }\n\n // Degree programmes.\n &__degree {\n background: radial-gradient(circle, var(--grayscale-light) 0%, var(--grayscale-background-box) 100%);\n flex-direction: column;\n @include breakpoint($narrow) {\n flex-direction: row;\n }\n\n &__image-container {\n display: block;\n position: relative;\n flex: 1;\n\n @include breakpoint($narrow) {\n flex: 0 0 24%;\n }\n\n &__image {\n vertical-align: bottom;\n max-width: 100%;\n height: 100%;\n\n img {\n object-fit: cover;\n width: 100%;\n height: 100%;\n }\n }\n\n span {\n @include font-weight($semibold);\n @include font-size(12px, 14px);\n background-color: var(--additional-yellow);\n box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.05);\n color: var(--grayscale-black);\n left: -4px;\n letter-spacing: -0.07px;\n padding: 5px 8px;\n position: absolute;\n top: 16px;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n left: -8px;\n }\n @include breakpoint($wide) {\n top: 22px;\n }\n }\n }\n\n &__info-container {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: space-between;\n margin: 0;\n padding: 12px;\n position: relative;\n\n // 960-1600 with Sidebar;\n @include breakpoint($wide) {\n padding: 12px 16px;\n }\n // >1600 with sidebar same as >1200 without sidebar\n @include breakpoint($xlarge) {\n padding: 20px 24px;\n }\n\n // >1200 no sidebar;\n &__large {\n @include breakpoint($extrawide) {\n padding: 20px 24px;\n }\n }\n\n &__data {\n display: flex;\n flex-direction: column;\n }\n\n &__title {\n @include font-size(18px, 22px);\n @include font-weight($bold);\n color: var(--link-blue);\n letter-spacing: -0.54px;\n margin-bottom: 8px;\n\n // 960-1600 with Sidebar;\n @include breakpoint($wide) {\n @include font-size(18px, 24px);\n letter-spacing: -0.5px;\n }\n\n // >1600 with sidebar same as >1200 without sidebar\n @include breakpoint($xlarge) {\n @include font-size(20px, 26px);\n letter-spacing: -0.6px;\n }\n\n &__large {\n // >1200 no sidebar;\n @include breakpoint($extrawide) {\n @include font-size(20px, 26px);\n letter-spacing: -0.6px;\n }\n }\n }\n\n &__description {\n @include font-size(14px, 18px);\n color: var(--grayscale-dark);\n letter-spacing: 0;\n margin-bottom: 16px;\n\n // 960-1600 with Sidebar;\n @include breakpoint($wide) {\n letter-spacing: -0.2;\n }\n // >1600 with sidebar same as >1200 without sidebar\n @include breakpoint($xlarge) {\n @include font-size(16px, 20px);\n letter-spacing: -0.25px;\n }\n\n &__large {\n // >1200 no sidebar;\n @include breakpoint($extrawide) {\n @include font-size(16px, 20px);\n letter-spacing: -0.25px;\n }\n }\n }\n\n &__metadata-wrapper {\n display: flex;\n flex-direction: column;\n margin-top: 16px;\n width: 100%;\n\n @include breakpoint($narrow) {\n align-items: center;\n flex-direction: row;\n justify-content: space-between;\n }\n\n &.link-only {\n justify-content: flex-end;\n }\n }\n\n &__additional-info {\n width: 100%;\n\n &__item {\n @include font-size(12px, 16px);\n @include font-weight($light);\n align-items: center;\n color: var(--grayscale-black);\n display: flex;\n flex-direction: row;\n letter-spacing: -0.2px;\n\n @include breakpoint($xlarge) {\n @include font-size(14px, 16px);\n }\n // >1200 no sidebar;\n &__large {\n @include breakpoint($extrawide) {\n @include font-size(14px, 16px);\n }\n }\n }\n &__item.active::before {\n content: ' ';\n box-sizing: border-box;\n height: 14px;\n width: 14px;\n border: 3px solid #ffffff;\n border-radius: 50%;\n background-color: #f9a21a;\n left: -7px;\n position: absolute;\n\n @include breakpoint($narrow) {\n border: none;\n height: 8px;\n margin-right: 6px;\n width: 8px;\n left: 0;\n position: relative;\n }\n }\n }\n\n &__outgoing-link {\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n position: relative;\n width: 100%;\n\n a {\n align-items: center;\n bottom: 0;\n top: 0;\n display: flex;\n flex-direction: row;\n position: relative;\n right: -18px;\n text-decoration: none;\n\n @include breakpoint($wide) {\n right: -22px;\n }\n @include breakpoint($xlarge) {\n right: -30px;\n }\n\n .label {\n @include font-size(14px, 16px);\n @include font-weight($bold);\n color: var(--link-blue);\n letter-spacing: -0.5px;\n margin-right: 8px;\n text-align: right;\n }\n\n .icon-wrapper {\n background-color: var(--brand-main-light);\n z-index: 10;\n\n .icon {\n position: relative;\n overflow: hidden;\n\n svg {\n background-color: transparent;\n box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.1);\n fill: var(--grayscale-white);\n padding: 6.4px;\n\n @include breakpoint($xlarge) {\n height: 36px;\n width: 36px;\n padding: 7.2px;\n }\n }\n }\n }\n }\n\n // >1200 no sidebar;\n &__large {\n svg {\n @include breakpoint($extrawide) {\n height: 36px;\n width: 36px;\n padding: 7.2px;\n }\n }\n }\n }\n }\n }\n}\n\n.hy-list-item-wrapper {\n font-family: var(--main-font-family);\n\n &__degree {\n margin-bottom: 16px;\n @include breakpoint($narrow) {\n flex-direction: row;\n margin-bottom: 24px;\n }\n @include breakpoint($wide) {\n margin-bottom: 28px;\n }\n @include breakpoint($xlarge) {\n margin-bottom: 32px;\n }\n // >1200 no sidebar;\n &__large {\n @include breakpoint($extrawide) {\n margin-bottom: 32px;\n }\n }\n\n &__related-info {\n background: radial-gradient(circle, #f8f8f8 0%, #f5f5f5 100%);\n margin-top: 4px;\n padding: 0 12px 0 16px;\n\n @include breakpoint($narrow) {\n padding: 0 24px 0 16px;\n }\n @include breakpoint($wide) {\n margin-top: 6px;\n padding: 0 24px 0 24px;\n }\n @include breakpoint($xlarge) {\n margin-top: 8px;\n }\n // >1200 no sidebar;\n &__large {\n @include breakpoint($extrawide) {\n margin-top: 8px;\n }\n }\n\n &__heading {\n &__link {\n text-decoration: none;\n }\n\n &__button {\n @include font-size(12px, 16px);\n align-items: center;\n background: radial-gradient(circle, #f8f8f8 0%, #f5f5f5 100%);\n border: none;\n color: var(--grayscale-black);\n display: flex;\n flex-direction: row;\n font-family: var(--main-font-family);\n letter-spacing: -0.2px;\n height: 100%;\n padding: 8px 0;\n text-align: left;\n width: 100%;\n\n @include breakpoint($narrow) {\n @include font-size(12px, 20px);\n padding: 14px 0;\n }\n @include breakpoint($wide) {\n @include font-size(14px, 20px);\n letter-spacing: -0.4px;\n padding: 18px 0;\n }\n\n &:hover {\n cursor: pointer;\n }\n\n &__is-open {\n svg {\n transform: rotate(180deg);\n }\n }\n }\n\n &__icon {\n margin-right: 0.5rem;\n z-index: 0;\n\n @include breakpoint($wide) {\n margin-right: 12px;\n }\n\n svg {\n fill: var(--brand-main);\n height: 14px;\n width: 14px;\n\n @include breakpoint($wide) {\n height: 18px;\n width: 18px;\n }\n }\n }\n }\n\n &__content {\n display: none;\n\n &__is-open {\n border-top: 1px solid #d2d2d2;\n display: flex;\n flex-direction: column;\n padding: 20px 8px 5px 8px;\n\n @include breakpoint($wide) {\n padding: 20px 0 14px 0;\n }\n }\n }\n\n &__link {\n @include font-size(14px, 16px);\n @include font-weight($bold);\n color: var(--link-blue);\n letter-spacing: -0.4px;\n margin-bottom: 16px;\n text-decoration: none;\n }\n }\n }\n}\n","export interface RelatedLink {\n label: string;\n url: string;\n isExternal: boolean;\n scLabel: string;\n}\n\nexport interface AdditionalInfo {\n text: string;\n isActive: boolean;\n}\n\nexport interface ImageSrcSet {\n src: any;\n media: string;\n type: string;\n sizes: string | null;\n}\n\nimport {Component, h, Prop, Watch, State, Listen, Element} from '@stencil/core';\nimport {ListItemVariants} from '../../utils/utils';\n\nlet keys = {\n enter: 'Enter',\n space: 'Space',\n};\n\n@Component({\n tag: 'hy-list-item',\n styleUrl: 'hy-list-item.scss',\n shadow: false,\n})\nexport class HyListItem {\n @Element() el: HTMLElement;\n @State() isExpandedRelatedContent: boolean = false;\n @Prop() variant: ListItemVariants = ListItemVariants.default;\n @Prop() itemType?: string;\n @Prop() itemTitle?: string;\n @Prop() itemDescription?: any;\n @Prop() url?: string;\n @Prop() isExternal: boolean = false;\n @Prop() scLabel?: string;\n @Prop() itemImageUrl?: string;\n @Prop() itemImageAlt?: string;\n @Prop() disableLazy: boolean = false;\n @Prop() relatedLinksBlockTitle?: string;\n private _relatedLinks: RelatedLink[];\n @Prop() relatedLinks?: RelatedLink[] | string;\n @Prop() imageLabel?: string;\n @Prop() outGoingUrlLabel?: string = 'Go to programme page';\n private _additionalInfo: AdditionalInfo[];\n @Prop() additionalInfo?: AdditionalInfo[] | string;\n @Prop() headerstyle: string = 'common';\n private _sourceSet: ImageSrcSet[];\n @Prop() sourceSet: ImageSrcSet[] | string;\n @Prop() truncateDescription: boolean = false;\n @Prop() truncateLimit: number = 140;\n\n @State() _imageMinHeight: number = 0;\n @State() _imageMinWidth: number = 0;\n\n @Watch('relatedLinks')\n relatedLinksWatcher(newValue: RelatedLink[] | string) {\n if (typeof newValue === 'string') {\n this._relatedLinks = JSON.parse(newValue);\n } else {\n this._relatedLinks = newValue;\n }\n }\n\n @Watch('additionalInfo')\n additionalInfoWatcher(newValue: AdditionalInfo[] | string) {\n if (typeof newValue === 'string') {\n this._additionalInfo = JSON.parse(newValue);\n } else {\n this._additionalInfo = newValue;\n }\n }\n\n @Watch('sourceSet') srcSetWatcher(data: ImageSrcSet[] | string) {\n this._sourceSet = typeof data === 'string' ? JSON.parse(data) : data;\n }\n\n expandRelatedInfoPanel(target) {\n let contentSelector = `hy-list-item-wrapper__${this.variant}__related-info__content`;\n let targetButtonClass = 'hy-list-item-wrapper__degree__related-info__heading__button';\n let contentSection = document.querySelectorAll(`[aria-labelledBy=\"${target.id}\"]`)[0] as HTMLElement;\n if (contentSection) {\n if (!this.isExpandedRelatedContent) {\n contentSection.classList.add(`${contentSelector}__is-open`);\n target.classList.add(`${targetButtonClass}__is-open`);\n } else {\n contentSection.classList.remove(`${contentSelector}__is-open`);\n target.classList.remove(`${targetButtonClass}__is-open`);\n }\n this.isExpandedRelatedContent = !this.isExpandedRelatedContent;\n }\n }\n\n @Listen('keydown')\n handleKeyDown(event: KeyboardEvent) {\n const key = event.code;\n let target = event.target as HTMLButtonElement;\n\n const targetElement = target.tagName.toLowerCase();\n const possibleTags = [targetElement].some((r) => ['svg', 'path', 'button', 'a'].indexOf(r) >= 0);\n\n if (\n target &&\n possibleTags &&\n !target.classList.contains('hy-list-item-wrapper__degree__related-info__link') &&\n [keys.enter, keys.space].includes(key)\n ) {\n if (targetElement !== 'button') {\n target = target.closest(`.hy-list-item-wrapper__${this.variant}__related-info__heading__button`);\n }\n this.expandRelatedInfoPanel(target);\n event.preventDefault();\n }\n }\n\n @Listen('click')\n handleClick(event) {\n let target = event.target as HTMLElement;\n const targetElement = target.tagName.toLowerCase();\n const possibleTags = [targetElement].some((r) => ['svg', 'path', 'button', 'a'].indexOf(r) >= 0);\n\n if (target && possibleTags && !target.classList.contains('hy-list-item-wrapper__degree__related-info__link')) {\n if (targetElement !== 'button') {\n target = target.closest(`.hy-list-item-wrapper__${this.variant}__related-info__heading__button`);\n }\n this.expandRelatedInfoPanel(target);\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n\n componentWillLoad() {\n this.relatedLinksWatcher(this.relatedLinks);\n this.additionalInfoWatcher(this.additionalInfo);\n this.srcSetWatcher(this.sourceSet);\n }\n\n componentDidLoad() {\n let hyMainDiv = this.el.closest('.hy-main');\n if (hyMainDiv) {\n if (!hyMainDiv.classList.contains('with-sidebar')) {\n this.headerstyle = 'large';\n }\n }\n if (this.variant == ListItemVariants.degreeProgramme) {\n const image = document.querySelector('.hy-list-item__degree__image-container__image img') as any;\n\n if (image) {\n image.addEventListener('load', function () {\n const outputImageAspectRatio = 1;\n const imageHeight = image.naturalHeight;\n const imageWidth = image.naturalWidth;\n const inputImageAspectRatio = imageWidth / imageHeight;\n this._imageMinWidth = imageWidth;\n this._imageMinHeight = imageHeight;\n if (inputImageAspectRatio > outputImageAspectRatio) {\n this._imageMinWidth = imageHeight * outputImageAspectRatio;\n } else if (inputImageAspectRatio < outputImageAspectRatio) {\n this._imageMinHeight = imageWidth / outputImageAspectRatio;\n }\n });\n }\n }\n }\n\n render() {\n const classWrapperAttributes = [\n 'hy-list-item-wrapper',\n `hy-list-item-wrapper__${this.variant}`,\n `hy-list-item-wrapper__${this.variant}__${this.headerstyle}`,\n ].join(' ');\n const classAttributes = ['hy-list-item', `hy-list-item__${this.variant}`].join(' ');\n const classInfoContainerAttributes = [\n `hy-list-item__${this.variant}__info-container`,\n `hy-list-item__${this.variant}__info-container__${this.headerstyle}`,\n ].join(' ');\n /*const classInfoContainerDataAttributes = [\n `hy-list-item__${this.variant}__info-container__data`,\n `hy-list-item__${this.variant}__info-container__data__${this.headerstyle}`,\n ].join(' ');*/\n const classInfoContainerHeader = [\n `hy-list-item__${this.variant}__info-container__header`,\n `hy-list-item__${this.variant}__info-container__header__${this.headerstyle}`,\n ].join(' ');\n const classInfoContainerTitle = [\n `hy-list-item__${this.variant}__info-container__title`,\n `hy-list-item__${this.variant}__info-container__title__${this.headerstyle}`,\n ].join(' ');\n const classInfoContainerDescription = [\n `hy-list-item__${this.variant}__info-container__description`,\n `hy-list-item__${this.variant}__info-container__description__${this.headerstyle}`,\n ].join(' ');\n const classInfoContainerLinkContainer = [`hy-list-item__${this.variant}__info-container__link-container`].join(' ');\n const classInfoContainerLinkIcon = [`hy-list-item__${this.variant}__info-container__link__icon`].join(' ');\n const classInfoContainerLink = [`hy-list-item__${this.variant}__info-container__link`].join(' ');\n\n const target = this.isExternal ? '_blank' : '_self';\n\n function truncate(str, n) {\n return str.length > n ? str.substr(0, n - 1) + '...' : str;\n }\n\n switch (this.variant) {\n case ListItemVariants.position: {\n const classInfoContainerOutgoingLink = [\n `hy-list-item__${this.variant}__info-container__outgoing-link`,\n `hy-list-item__${this.variant}__info-container__outgoing-link__${this.headerstyle}`,\n ].join(' ');\n return (\n <article>\n <a class={classAttributes} href={this.url} target={target} aria-label={this.scLabel}>\n <div class={classInfoContainerAttributes}>\n <div class={classInfoContainerHeader}>\n <div class=\"icon\">\n <hy-icon icon={'hy-icon-units-and-faculties'} size={18} />\n </div>\n {this.itemType}\n </div>\n <div class={classInfoContainerTitle}>{this.itemTitle}</div>\n\n {this.itemDescription && (\n <div\n class={classInfoContainerDescription}\n innerHTML={\n this.truncateDescription\n ? truncate(this.itemDescription, this.truncateLimit)\n : this.itemDescription\n }\n ></div>\n )}\n </div>\n <div class={classInfoContainerOutgoingLink}>\n <span class=\"icon\">\n <hy-icon icon={'hy-icon-done'} size={14}></hy-icon>\n </span>\n <span class=\"label\">{this.outGoingUrlLabel}</span>\n </div>\n </a>\n </article>\n );\n }\n case ListItemVariants.degreeProgramme: {\n const classImageContainerAttributes = [`hy-list-item__${this.variant}__image-container`].join(' ');\n const classImageContainerImage = [`hy-list-item__${this.variant}__image-container__image`].join(' ');\n\n const classInfoContainerAdditionalInfoAttributes = [\n `hy-list-item__${this.variant}__info-container__additional-info`,\n `hy-list-item__${this.variant}__info-container__additional-info__${this.headerstyle}`,\n ].join(' ');\n\n const withAdditionalInfo = this._additionalInfo && this._additionalInfo.length > 0 ? '' : 'link-only';\n const classMetadataWrapper = [\n `hy-list-item__${this.variant}__info-container__metadata-wrapper`,\n withAdditionalInfo,\n ].join(' ');\n const classContentWrapper = [`hy-list-item__${this.variant}__info-container__content-wrapper`].join(' ');\n\n const classInfoContainerOutgoingLink = [\n `hy-list-item__${this.variant}__info-container__outgoing-link`,\n `hy-list-item__${this.variant}__info-container__outgoing-link__${this.headerstyle}`,\n ].join(' ');\n const classInfoContainerOutgoingLinkUrl = [\n `hy-list-item__${this.variant}__info-container__outgoing-link__link`,\n ].join(' ');\n\n const classRelatedInfoContainer = [\n `hy-list-item-wrapper__${this.variant}__related-info`,\n `hy-list-item-wrapper__${this.variant}__related-info__${this.headerstyle}`,\n ].join(' ');\n const classRelatedInfoHeading = [`hy-list-item-wrapper__${this.variant}__related-info__heading`].join(' ');\n const classRelatedInfoHeadingLink = [`hy-list-item-wrapper__${this.variant}__related-info__heading__link`].join(\n ' '\n );\n const classRelatedInfoHeadingButton = [\n `hy-list-item-wrapper__${this.variant}__related-info__heading__button`,\n ].join(' ');\n const classRelatedInfoHeadingIcon = [`hy-list-item-wrapper__${this.variant}__related-info__heading__icon`].join(\n ' '\n );\n const classRelatedInfoContent = [`hy-list-item-wrapper__${this.variant}__related-info__content`].join(' ');\n const classRelatedInfoLink = [`hy-list-item-wrapper__${this.variant}__related-info__link`].join(' ');\n\n const titleAsId =\n this.relatedLinksBlockTitle && this.relatedLinksBlockTitle.length > 0\n ? `${this.itemTitle}-${this.relatedLinksBlockTitle}`.toLowerCase().replace(/\\W/g, '-')\n : '';\n const accordionItemHref = '#' + titleAsId + '--title';\n\n const relatedLinksCount =\n this.relatedLinksBlockTitle && this.relatedLinksBlockTitle.length > 0 ? this._relatedLinks.length : '';\n\n return [\n <article class={classWrapperAttributes}>\n <a class={classAttributes} href={this.url} target={target} aria-label={this.scLabel}>\n <div class={classImageContainerAttributes}>\n <div class={classImageContainerImage}>\n {this._sourceSet ? (\n <picture>\n {this._sourceSet.map((item) => (\n <source\n srcSet={item.src}\n media={item.media}\n type={item.type}\n sizes={item.sizes ? item.sizes : ''}\n />\n ))}\n <img\n loading={this.disableLazy ? 'eager' : 'lazy'}\n aria-hidden=\"true\"\n src={this.itemImageUrl}\n alt={this.itemImageAlt}\n style={{\n '--minheight': `${this._imageMinHeight}px` as 'minHeight',\n '--minwidth': `${this._imageMinWidth}px` as 'minWidth',\n }}\n />\n </picture>\n ) : (\n <img\n loading={this.disableLazy ? 'eager' : 'lazy'}\n aria-hidden=\"true\"\n src={this.itemImageUrl}\n alt={this.itemImageAlt}\n style={{\n '--minheight': `${this._imageMinHeight}px` as 'minHeight',\n '--minwidth': `${this._imageMinWidth}px` as 'minWidth',\n }}\n />\n )}\n </div>\n {this.imageLabel && <span>{this.imageLabel}</span>}\n </div>\n <div class={classInfoContainerAttributes}>\n <div class={classContentWrapper}>\n <div class={classInfoContainerTitle}>{this.itemTitle}</div>\n {this.itemDescription && (\n <div class={classInfoContainerDescription} innerHTML={this.itemDescription}></div>\n )}\n </div>\n <div class={classMetadataWrapper}>\n {this._additionalInfo && (\n <div class={classInfoContainerAdditionalInfoAttributes}>\n {this._additionalInfo.map((x) => {\n let classInfoContainerAdditionalInfoItem = [\n `hy-list-item__${this.variant}__info-container__additional-info__item`,\n `hy-list-item__${this.variant}__info-container__additional-info__item__${this.headerstyle}`,\n `${x.isActive.toString() == 'true' ? 'active' : ''}`,\n ].join(' ');\n return <div class={classInfoContainerAdditionalInfoItem}>{x.text}</div>;\n })}\n </div>\n )}\n <div class={classInfoContainerOutgoingLink}>\n <a\n href={this.url}\n target={target}\n aria-label={this.scLabel}\n class={classInfoContainerOutgoingLinkUrl}\n tabindex=\"-1\"\n >\n <span class=\"label\">{this.outGoingUrlLabel}</span>\n <span class=\"icon-wrapper\">\n <div class=\"icon\">\n <hy-icon icon={'hy-icon-arrow-to-right'} size={32} />\n </div>\n </span>\n </a>\n </div>\n </div>\n </div>\n </a>\n {this.relatedLinksBlockTitle && (\n <div class={classRelatedInfoContainer}>\n <div class={classRelatedInfoHeading}>\n <a href={accordionItemHref} class={classRelatedInfoHeadingLink} tabindex=\"-1\">\n <button\n aria-expanded=\"false\"\n aria-controls={`${titleAsId}--content`}\n class={classRelatedInfoHeadingButton}\n id={`${titleAsId}--title`}\n >\n <span class={classRelatedInfoHeadingIcon}>\n <hy-icon icon={'hy-icon-caret-down'} size={14} />\n </span>\n {this.relatedLinksBlockTitle} ({relatedLinksCount})\n </button>\n </a>\n </div>\n <div\n class={classRelatedInfoContent}\n aria-labelledBy={`${titleAsId}--title`}\n id={`${titleAsId}--content`}\n role=\"region\"\n aria-hidden=\"true\"\n >\n {this._relatedLinks.map((x) => {\n let relatedLinkTarget = x.isExternal ? '_blank' : '_self';\n return (\n <a class={classRelatedInfoLink} href={x.url} target={target} aria-label={relatedLinkTarget}>\n {x.label}\n </a>\n );\n })}\n </div>\n </div>\n )}\n </article>,\n ];\n }\n default: {\n return (\n <article>\n <a class={classAttributes} href={this.url} target={target} aria-label={this.scLabel}>\n <div class={classInfoContainerAttributes}>\n <div class={classInfoContainerHeader}>{this.itemType}</div>\n <div class={classInfoContainerTitle}>{this.itemTitle}</div>\n\n <div class={classInfoContainerLinkContainer}>\n <span class={classInfoContainerLinkIcon}>\n <hy-icon icon={'hy-icon-link'} size={15} />\n </span>\n <div class={classInfoContainerLink}>{this.url}</div>\n </div>\n\n {this.itemDescription && (\n <div class={classInfoContainerDescription} innerHTML={this.itemDescription}></div>\n )}\n </div>\n </a>\n </article>\n );\n }\n }\n }\n}\n",".hy-logo-grid {\n padding: 78px 0 92px;\n}\n\n.hy-logo-grid__title {\n @include font-size(28px, 32px);\n letter-spacing: -0.7px;\n font-family: var(--main-font-family);\n margin: 0 0 24px;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n @include font-size(34px, 40px);\n letter-spacing: -0.85px;\n margin: 0 0 32px;\n }\n\n .without-sidebar & {\n @include breakpoint($xlarge) {\n @include font-size(42px, 48px);\n letter-spacing: -1.05px;\n margin: 0 0 40px;\n }\n }\n\n .with-sidebar & {\n @include breakpoint($extrawide) {\n @include font-size(42px, 48px);\n letter-spacing: -1.05px;\n margin: 0 0 40px;\n }\n }\n}\n\n.hy-logo-grid__images {\n display: grid;\n gap: 24px 36px;\n grid-template-columns: repeat(2, 1fr);\n padding: 0 8px;\n justify-content: space-between;\n\n @include breakpoint($narrow) {\n grid-template-columns: repeat(3, 25%);\n padding: 0;\n gap: 28px 0;\n }\n\n .without-sidebar & {\n @include breakpoint($wide) {\n grid-template-columns: repeat(4, 20%);\n gap: 32px 0;\n }\n\n @include breakpoint($extrawide) {\n gap: 40px 0;\n }\n }\n\n .with-sidebar & {\n @include breakpoint($extrawide) {\n grid-template-columns: repeat(4, 20%);\n gap: 32px 0;\n }\n\n @include breakpoint($xlarge) {\n gap: 40px 0;\n }\n }\n}\n\n.hy-logo-grid__figure {\n margin: 0;\n padding: 0;\n position: relative;\n\n &:after {\n content: '';\n display: block;\n padding-bottom: 100%;\n }\n\n picture {\n position: absolute;\n inset: 0;\n align-items: center;\n justify-content: center;\n display: flex;\n }\n\n img {\n max-width: 100%;\n object-fit: scale-down;\n height: 100%;\n }\n}\n","import {Component, h, Prop} from '@stencil/core';\n\n@Component({\n tag: 'hy-logo-grid',\n styleUrl: 'hy-logo-grid.scss',\n shadow: false,\n})\nexport class HyLogoGrid {\n @Prop() headingVariant?: string;\n @Prop() logoGridTitle?: string;\n\n render() {\n const HeadingVariant = this.headingVariant;\n\n return (\n <div class=\"hy-logo-grid\" role=\"complementary\">\n {this.logoGridTitle && <HeadingVariant class=\"hy-logo-grid__title\">{this.logoGridTitle}</HeadingVariant>}\n <div class=\"hy-logo-grid__images\">\n <slot />\n </div>\n </div>\n );\n }\n}\n",".hy-logo-grid {\n padding: 78px 0 92px;\n}\n\n.hy-logo-grid__title {\n @include font-size(28px, 32px);\n letter-spacing: -0.7px;\n font-family: var(--main-font-family);\n margin: 0 0 24px;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n @include font-size(34px, 40px);\n letter-spacing: -0.85px;\n margin: 0 0 32px;\n }\n\n .without-sidebar & {\n @include breakpoint($xlarge) {\n @include font-size(42px, 48px);\n letter-spacing: -1.05px;\n margin: 0 0 40px;\n }\n }\n\n .with-sidebar & {\n @include breakpoint($extrawide) {\n @include font-size(42px, 48px);\n letter-spacing: -1.05px;\n margin: 0 0 40px;\n }\n }\n}\n\n.hy-logo-grid__images {\n display: grid;\n gap: 24px 36px;\n grid-template-columns: repeat(2, 1fr);\n padding: 0 8px;\n justify-content: space-between;\n\n @include breakpoint($narrow) {\n grid-template-columns: repeat(3, 25%);\n padding: 0;\n gap: 28px 0;\n }\n\n .without-sidebar & {\n @include breakpoint($wide) {\n grid-template-columns: repeat(4, 20%);\n gap: 32px 0;\n }\n\n @include breakpoint($extrawide) {\n gap: 40px 0;\n }\n }\n\n .with-sidebar & {\n @include breakpoint($extrawide) {\n grid-template-columns: repeat(4, 20%);\n gap: 32px 0;\n }\n\n @include breakpoint($xlarge) {\n gap: 40px 0;\n }\n }\n}\n\n.hy-logo-grid__figure {\n margin: 0;\n padding: 0;\n position: relative;\n\n &:after {\n content: '';\n display: block;\n padding-bottom: 100%;\n }\n\n picture {\n position: absolute;\n inset: 0;\n align-items: center;\n justify-content: center;\n display: flex;\n }\n\n img {\n max-width: 100%;\n object-fit: scale-down;\n height: 100%;\n }\n}\n","import {Component, h, Prop} from '@stencil/core';\n\n@Component({\n tag: 'hy-logo-grid-item',\n styleUrl: 'hy-logo-grid.scss',\n shadow: false,\n})\nexport class HyLogoGridItem {\n @Prop() link?: string;\n @Prop() image: string;\n\n render() {\n const parsedImage = JSON.parse(this.image);\n const parsedLink = this.link ? JSON.parse(this.link) : null;\n\n return parsedImage.map(({image_sources: sources, image_url: fallback_url, image_alt: alt}) => {\n const parsedSources = JSON.parse(sources);\n\n const elementContent = (\n <figure class=\"hy-logo-grid__figure\">\n {parsedSources && (\n <picture>\n {parsedSources.map(({src, media, type, sizes}) => (\n <source srcSet={src} media={media} type={type} sizes={sizes ? sizes : ''} />\n ))}\n <img alt={alt} src={fallback_url} />\n </picture>\n )}\n {!parsedSources && <img alt={alt} src={fallback_url} />}\n </figure>\n );\n\n if (parsedLink) {\n const {url, target} = parsedLink;\n const targetValue = target === '_blank' ? target : '_self';\n\n return (\n <a href={url} target={targetValue} class=\"hy-logo-grid__link\">\n {elementContent}\n </a>\n );\n }\n\n return elementContent;\n });\n }\n}\n",".hy-main {\n display: flex;\n margin: 0 auto;\n max-width: $fullhd;\n padding: 0;\n width: 100%;\n\n .layout-content {\n padding: 0;\n width: 100%;\n }\n\n .layout-user-login-page {\n padding: 0 var(--gutter-medium);\n width: 100%;\n\n div[id^='block-breadcrumbs'] {\n display: none;\n }\n }\n\n &__common {\n position: relative;\n .layout-content {\n @include breakpoint($narrow) {\n margin: 0 auto;\n width: 100%;\n }\n @include breakpoint($extrawide) {\n flex-grow: 1;\n order: 2;\n width: 80%;\n }\n @include breakpoint($xlarge) {\n padding: 0 2rem;\n }\n }\n\n .layout-sidebar-first {\n display: none;\n\n @include breakpoint($extrawide) {\n background: var(--grayscale-white);\n border-top: 1px solid var(--grayscale-black);\n border-right: 1px solid var(--grayscale-medium);\n display: block;\n max-width: 320px;\n order: 1;\n padding: var(--gutter-extrawide) 13px;\n width: 20%;\n height: auto;\n\n &.menu-is-open {\n background: var(--grayscale-white);\n min-height: 100vh;\n overflow: auto;\n }\n }\n }\n }\n\n &__large {\n .layout-content {\n padding: 0;\n width: 100%;\n @include breakpoint($extrawide) {\n padding: 0 2rem;\n }\n }\n }\n}\n","import {Component, Prop, h} from '@stencil/core';\n\n@Component({\n tag: 'hy-main',\n styleUrl: 'hy-main.scss',\n shadow: false,\n})\nexport class HyMain {\n @Prop() hasSidebar: boolean = false;\n\n render() {\n const classAttributes = [\n 'hy-main',\n this.hasSidebar ? 'with-sidebar' : 'without-sidebar',\n this.hasSidebar ? 'hy-main__common' : 'hy-main__large',\n ].join(' ');\n\n return (\n <div class={classAttributes}>\n <slot />\n </div>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.with-sidebar {\n .hy-main-content-wrapper {\n // Layout Mobile 320-479px\n margin: 0 auto;\n max-width: 100%;\n padding: 0 1rem;\n position: relative;\n\n // Layout Tablet 480-959px\n // Side navigation disappears to hamburger when width < 1200.\n @include breakpoint($narrow) {\n // the rule is applied to screens >=480px: width 100% - side margins (32px)\n padding: 0 2rem;\n }\n\n // Large desktop Layout >1600px\n @include breakpoint($xlarge) {\n max-width: 1216px;\n padding: 0;\n }\n }\n}\n\n.without-sidebar {\n .hy-main-content-wrapper {\n // Layout Mobile 320-479px\n margin: 0 auto;\n max-width: 100%;\n padding: 0 1rem;\n position: relative;\n\n // Layout Tablet 480-959px\n @include breakpoint($narrow) {\n padding: 0 2rem;\n }\n\n // Large desktop Layout >1200px\n @include breakpoint($extrawide) {\n max-width: 1216px;\n padding: 0;\n }\n }\n}\n","import {Component, h, Host} from '@stencil/core';\n\n@Component({\n tag: 'hy-main-content-wrapper',\n styleUrl: 'hy-main-content-wrapper.scss',\n shadow: false,\n})\nexport class HyMainContentWrapper {\n render() {\n const classAttributes = ['hy-main-content-wrapper'].join(' ');\n\n return (\n <Host>\n <div class={classAttributes}>\n <slot />\n </div>\n </Host>\n );\n }\n}\n",".menu-language {\n position: relative;\n align-items: center;\n display: flex;\n height: 100%;\n}\n\n.menu-language__toggle {\n @include font-size(16px, 16px);\n @include font-weight($bold);\n color: var(--grayscale-black);\n align-items: center;\n background-color: transparent;\n border: 0;\n display: inline-grid;\n font-family: var(--main-font-family);\n gap: 4px;\n grid-template-columns: repeat(2, auto);\n letter-spacing: -0.7px;\n margin: 0;\n padding: 14px 10px;\n text-transform: uppercase;\n height: 100%;\n\n @include breakpoint($extrawide) {\n @include font-size(12px, 24px);\n @include font-weight($regular);\n color: var(--brand-main-nearly-black);\n letter-spacing: -0.5px;\n grid-template-columns: repeat(3, auto);\n padding: 0;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(14px, 24px);\n }\n\n &:hover {\n color: var(--brand-main);\n cursor: pointer;\n\n svg {\n fill: var(--brand-main);\n }\n }\n\n &:focus {\n outline: solid 2px var(--additional-yellow);\n outline-offset: 2px;\n }\n\n hy-icon {\n &:first-of-type {\n display: none !important;\n\n @include breakpoint($extrawide) {\n display: inline-flex !important;\n }\n }\n }\n\n &[aria-expanded='true'] {\n position: relative;\n\n &:after {\n content: '';\n position: absolute;\n height: 4px;\n right: 0;\n bottom: -1px;\n left: 0;\n background-color: var(--grayscale-black);\n }\n\n span + hy-icon {\n transform: rotate(180deg);\n }\n }\n\n .is-group & {\n color: var(--grayscale-white);\n\n &:hover {\n color: var(--grayscale-medium);\n cursor: pointer;\n\n svg {\n fill: var(--grayscale-medium);\n }\n }\n }\n}\n\n.menu-language__dropdown {\n background-color: var(--grayscale-white);\n border-radius: 0 0 5px 5px;\n box-shadow: 0 10px 10px rgba(0, 0, 0, 0.2);\n display: flex;\n flex-flow: column;\n justify-items: center;\n right: -15px;\n margin: 0;\n padding: 8px;\n position: absolute;\n text-transform: uppercase;\n visibility: visible;\n width: max-content;\n z-index: 100;\n min-width: 160px;\n\n &[aria-hidden='true'] {\n display: none;\n }\n\n @include breakpoint($extrawide) {\n left: -15px;\n right: 0;\n }\n}\n\n.menu-language__links {\n margin: 0;\n padding: 0;\n list-style: none;\n display: grid;\n gap: 4px;\n}\n","import {ComponentLabels} from '../../site-header/site-header';\n\nexport interface MenuLanguage {\n langCode: string;\n url: string;\n abbr: string;\n label: string;\n isActive?: boolean;\n isDisabled?: boolean;\n}\n\nimport {Component, h, Prop, Element, Listen, State, Event, EventEmitter} from '@stencil/core';\nimport {jsonParserWorker} from '../../../global/globalScript';\n\n@Component({\n tag: 'hy-menu-language',\n styleUrl: 'menu-language.scss',\n shadow: true,\n})\nexport class MenuLanguage {\n @Element() el: HTMLElement;\n @Prop() dataMenuLanguage: MenuLanguage[] | string;\n @Prop() isGroup: boolean = false;\n @Prop() labels?: ComponentLabels[] | string;\n @State() isMenuOpen: boolean = false;\n\n @Event() menuLanguageToggled: EventEmitter;\n\n private _dataMenuLanguage: MenuLanguage[];\n private _labels: ComponentLabels[];\n\n // Close the language menu if user clicks anywhere outside the Menu language component.\n @Listen('click', {target: 'window'})\n handleOutsideMenuClick(event) {\n this.isMenuOpen = false;\n event.stopPropagation();\n }\n\n // CLose the language menu if user opens the desktop menu panel.\n @Listen('menuDesktopToggled', {target: 'document'})\n desktopMenuToggled() {\n this.isMenuOpen = false;\n }\n\n // CLose the language menu if user opens the search panel\n @Listen('searchPanelToggled', {target: 'document'})\n searchPanelToggled() {\n this.isMenuOpen = false;\n }\n\n // Close the language menu if user opens University main menu\n @Listen('universityMainMenuToggled', {target: 'document'})\n universityMainMenuPanelToggled() {\n this.isMenuOpen = false;\n }\n\n @Listen('focus')\n handleComponentFocus(event) {\n // Close desktop menu panel if it's open.\n this.menuLanguageToggled.emit();\n\n event.stopPropagation();\n }\n\n @Listen('click')\n handleComponentClick(event) {\n this.isMenuOpen = !this.isMenuOpen;\n\n if (this.isMenuOpen) {\n // Close desktop menu panel if it's open.\n this.menuLanguageToggled.emit();\n\n const languageMenuSelector = event.target as HTMLElement;\n this.adjustPosition(languageMenuSelector, this.el);\n }\n\n event.stopPropagation();\n }\n\n adjustPosition(languageMenuSelector, target) {\n const languagePanel = languageMenuSelector.shadowRoot.querySelectorAll(\n `.menu-language__dropdown`\n )[0] as HTMLElement;\n let headerHeight = '0';\n let hyHeader = this.isGroup\n ? (target.closest('.hy-site-header__content-top') as HTMLElement)\n : (target.closest('.hy-site-header') as HTMLElement);\n\n if (hyHeader) {\n let rectHeader = hyHeader.getBoundingClientRect();\n let rectLangMenu = languageMenuSelector.getBoundingClientRect();\n\n headerHeight = `${languageMenuSelector.offsetHeight + rectHeader.bottom + 8 - rectLangMenu.bottom}px`;\n }\n\n languagePanel.style.top = headerHeight;\n }\n\n async componentWillLoad() {\n this._dataMenuLanguage = await jsonParserWorker(this.dataMenuLanguage);\n this._labels = await jsonParserWorker(this.labels);\n }\n\n render() {\n const black = 'var(--brand-main-nearly-black)';\n const white = 'var(--grayscale-white)';\n const svgColor = this.isGroup ? white : black;\n const globeIconSize = this.isGroup ? 16 : 14;\n\n return (\n <div\n class={{\n 'menu-language': true,\n 'is-open': this.isMenuOpen,\n 'is-group': this.isGroup,\n }}\n >\n <button\n class={{\n 'menu-language__toggle': true,\n }}\n aria-label={this.isMenuOpen ? this._labels['close'] : this._labels['open']}\n >\n <hy-icon icon={'hy-icon-globe'} size={globeIconSize} fill={svgColor} />\n <span>\n {this._dataMenuLanguage.map(({isActive, langCode}) => {\n if (isActive) {\n return langCode;\n }\n })}\n </span>\n <hy-icon icon={'hy-icon-caret-down'} size={8} fill={svgColor} />\n </button>\n <div\n class={{\n 'menu-language__dropdown': true,\n }}\n aria-hidden={`${!this.isMenuOpen}`}\n >\n <ul class=\"menu-language__links\">\n {this._dataMenuLanguage.map((item) => {\n return (\n <hy-menu-language-item\n lang-code={item.langCode}\n url={item.url}\n label={item.label}\n abbr={item.abbr}\n is-active={item.isActive}\n is-disabled={item.isDisabled}\n />\n );\n })}\n </ul>\n </div>\n </div>\n );\n }\n}\n",".menu-language__link {\n @include font-size(16px, 24px);\n @include font-weight($semibold);\n color: var(--brand-main-light);\n font-family: var(--main-font-family);\n letter-spacing: -0.5px;\n overflow: hidden;\n text-decoration: none;\n padding: 12px 12px;\n display: block;\n\n &:hover {\n background-color: var(--grayscale-background-box);\n color: var(--brand-main);\n }\n\n &.is-active {\n color: var(--grayscale-black);\n border: 2px solid var(--grayscale-black);\n }\n\n &.is-disabled {\n color: var(--link-disabled);\n\n &:hover {\n background-color: transparent;\n color: var(--link-disabled);\n }\n }\n}\n","import {Component, h, Prop} from '@stencil/core';\n\n@Component({\n tag: 'hy-menu-language-item',\n styleUrl: 'menu-language-item.scss',\n shadow: true,\n})\nexport class SiteLanguage {\n @Prop() abbr: string;\n @Prop() isActive: boolean = false;\n @Prop() isDisabled: boolean = false;\n @Prop() label: string;\n @Prop() langCode: string;\n @Prop() url: string;\n\n render() {\n return (\n <li class={`menu-language__links-item`}>\n <a\n href={this.url}\n lang={this.langCode}\n class={{\n 'is-active': this.isActive,\n 'is-disabled': this.isDisabled,\n 'menu-language__link': true,\n }}\n >\n {this.label}\n </a>\n </li>\n );\n }\n}\n",":host {\n display: block;\n}\n\n:host(.menu--main-group) {\n align-items: center;\n display: flex;\n flex-flow: row;\n margin-left: 28px;\n\n @include breakpoint($extrawide) {\n margin-right: auto;\n }\n}\n\n.menu--main-group__toggle {\n @include font-size(14px, 16px);\n @include font-weight($semibold);\n align-items: center;\n background: var(--grayscale-black);\n border: 0 none;\n color: var(--grayscale-white);\n display: flex;\n flex-flow: row;\n font-family: var(--main-font-family);\n letter-spacing: -0.44px;\n margin: 0 -4px;\n padding: 0;\n position: relative;\n\n &:focus {\n outline: none;\n }\n\n &:hover {\n cursor: pointer;\n\n span {\n color: var(--grayscale-medium);\n }\n\n svg {\n fill: var(--grayscale-medium);\n }\n }\n\n .toggle__caret {\n svg {\n @include breakpoint($wide) {\n height: 15.27px;\n width: 3px;\n }\n @include breakpoint($extrawide) {\n height: 14px;\n width: 3px;\n }\n }\n }\n\n span {\n @include breakpoint($wide) {\n margin-left: 17px;\n }\n }\n\n &.is-open {\n &:after {\n border-bottom: 3px solid white;\n bottom: -10px;\n content: ' ';\n position: absolute;\n width: 100%;\n }\n\n .toggle__close {\n @include breakpoint($wide) {\n height: 15px;\n width: 15px;\n\n svg {\n height: 15px;\n width: 15px;\n }\n }\n }\n\n span {\n @include breakpoint($wide) {\n margin-left: 10px;\n }\n }\n }\n}\n\n.menu--main-group__dropdown {\n display: none;\n visibility: hidden;\n\n &.is-open {\n background-color: var(--grayscale-black);\n border-radius: 0 0 5px 5px;\n box-shadow: 0 10px 10px rgba(0, 0, 0, 0.2);\n color: var(--grayscale-white);\n display: flex;\n font-family: var(--main-font-family);\n left: 0;\n margin: 0;\n padding: 6px 0 20px;\n position: absolute;\n top: 0;\n visibility: visible;\n width: 100%;\n z-index: 511;\n\n .list {\n display: flex;\n flex-flow: column;\n justify-items: center;\n padding-top: 14px;\n position: relative;\n }\n\n .panel-toggle {\n background-color: transparent;\n border: none;\n position: absolute;\n right: 0;\n top: 0;\n\n @include breakpoint($wide) {\n padding: 26px 32px;\n }\n\n &__label {\n @include font-size(16px, 20px);\n @include font-weight($bold);\n color: var(--grayscale-white);\n display: flex;\n font-family: var(--main-font-family);\n letter-spacing: -0.5px;\n text-transform: uppercase;\n\n &__title {\n padding-right: 12px;\n }\n\n &:hover {\n cursor: pointer;\n span {\n color: var(--grayscale-medium);\n }\n svg {\n fill: var(--grayscale-medium);\n }\n }\n }\n }\n\n .menu-main-link {\n @include font-size(16px, 20px);\n align-items: center;\n display: flex;\n font-family: var(--main-font-family);\n flex-direction: row;\n margin-bottom: 20px;\n text-decoration: none;\n\n @include breakpoint($extrawide) {\n @include font-size(14px, 18px);\n }\n\n &:hover {\n span {\n color: var(--grayscale-medium);\n }\n svg {\n fill: var(--grayscale-medium);\n }\n }\n }\n .menu--main-group__label {\n color: var(--grayscale-white);\n margin-left: 12px;\n }\n }\n}\n\n:host(.menu--main-group--mobile) {\n align-items: center;\n display: flex;\n flex-flow: row;\n position: relative;\n}\n\n.menu--main-group__mobile-toggle {\n border: none;\n background: transparent;\n padding: 15px 12px;\n\n &:hover {\n cursor: pointer;\n }\n}\n\n.menu--main-group__dropdown__top {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n margin-bottom: 23px;\n}\n\n.menu--main-group__dropdown__close {\n border: none;\n background-color: transparent;\n padding: 0;\n margin: 0;\n\n &:hover {\n cursor: pointer;\n }\n}\n\n.menu--main-group__logo-container .hy-site-logo__label.group {\n max-width: 250px;\n}\n\n.menu--main-group__dropdown__items {\n display: flex;\n flex-direction: column;\n\n .menu-main-link {\n @include font-size(15px, 20px);\n\n background-color: var(--grayscale-dark-text);\n color: var(--grayscale-white);\n font-family: var(--main-font-family);\n letter-spacing: -0.5px;\n margin-bottom: 8px;\n padding: 14px 20px;\n text-decoration: none;\n width: 100%;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.menu--main-group__dropdown__donate {\n display: flex;\n flex-direction: row;\n justify-content: center;\n background-color: var(--grayscale-dark-text);\n position: fixed;\n bottom: 0;\n margin-left: -20px;\n width: 100%;\n\n .hy-link__donate.group {\n @include font-size(16px, 16px);\n @include font-weight($semibold);\n\n display: flex;\n color: var(--grayscale-white);\n font-family: var(--main-font-family);\n margin: 20px auto 16px auto;\n text-decoration: none;\n\n .hy-link__donate__label {\n margin-left: 6px;\n }\n }\n}\n\n.menu--main-group__dropdown--mobile {\n -webkit-box-direction: normal;\n -webkit-box-orient: vertical;\n background-color: var(--grayscale-black);\n bottom: 0px;\n display: flex;\n flex-direction: column;\n justify-items: space-between;\n max-width: 400px;\n overflow: hidden;\n padding: 0px;\n place-items: stretch;\n position: fixed;\n right: 0px;\n top: 0px;\n transform: translateX(100%);\n transition: all 0.3s ease 0s;\n visibility: hidden;\n width: 0px;\n\n &.is-open {\n padding: 50px 20px 20px;\n transform: translateX(0px);\n transition: transform 0.3s cubic-bezier(0, 0, 0.3, 1);\n visibility: visible;\n width: 90%;\n z-index: 101;\n\n &::after {\n opacity: 1;\n visibility: visible;\n }\n }\n}\n","export interface MainMenu {\n label: string;\n url: string;\n menuLinkId: string;\n}\n\nexport interface DonateLink {\n url: string;\n label: string;\n}\n\nimport {Component, Host, h, Element, Prop, State, Listen, Event, EventEmitter} from '@stencil/core';\nimport {ColorVariant, SiteLogoSize} from '../../../utils/utils';\nimport {jsonParserWorker} from '../../../global/globalScript';\n\nlet keys = {\n enter: 'Enter',\n};\n\n@Component({\n tag: 'hy-menu-main-group',\n styleUrl: 'hy-menu-main-group.scss',\n shadow: true,\n})\nexport class HyMenuMainGroup {\n @Element() el: HTMLElement;\n @Prop() menuLabel: string = 'University main menu';\n @Prop() menuLabelClose: string = 'Close';\n @Prop() dataMainMenu: MainMenu[] | string;\n @Prop() isMobile: boolean = false;\n @Prop() logoUrl?: string;\n @Prop() logoLabel?: string;\n @Prop() siteLabel?: string;\n @Prop() siteUrl?: string;\n @Prop() donate: DonateLink[];\n @State() isMenuOpen: boolean = false;\n\n @Event() universityMainMenuToggled: EventEmitter;\n @Event() mobileMenuTopToggle: EventEmitter;\n\n private _dataMainMenu: MainMenu[];\n\n @Listen('click', {capture: true})\n handleComponentClick(event) {\n event.stopPropagation();\n this.emitEvent();\n\n this.isMenuOpen = !this.isMenuOpen;\n if (this.isMenuOpen) {\n this.adjustMainMenuPosition(event.target);\n }\n }\n\n @Listen('keydown')\n handleComponentKeyDown(event: KeyboardEvent) {\n event.stopPropagation();\n const key = event.code;\n let target = event.target as HTMLButtonElement;\n\n if (key === 'Escape' && this.isMenuOpen) {\n this.isMenuOpen = false;\n this.emitEvent();\n }\n\n if (target && [keys.enter].includes(key)) {\n this.isMenuOpen = !this.isMenuOpen;\n\n if (this.isMenuOpen) {\n this.emitEvent();\n this.adjustMainMenuPosition(target);\n }\n }\n }\n\n emitEvent() {\n // Close other panels if they are open (lang menu, search, main menu, ..).\n this.universityMainMenuToggled.emit();\n this.mobileMenuTopToggle.emit();\n }\n\n adjustMainMenuPosition(target) {\n let hyTopHeader = this.el.closest('.hy-site-header__content-top') as HTMLElement;\n\n if (hyTopHeader && !hyTopHeader.hasAttribute('is-mobile')) {\n let mainMenuToggle = target.shadowRoot.querySelector('.menu--main-group__toggle') as HTMLElement;\n let mainMenuDropdown = target.shadowRoot.querySelector('.menu--main-group__dropdown') as HTMLElement;\n let mainMenuList = target.shadowRoot.querySelector('.list') as HTMLElement;\n if (mainMenuDropdown && mainMenuList && mainMenuToggle) {\n let rectHeader = hyTopHeader.getBoundingClientRect();\n let rectMenuToggle = mainMenuToggle.getBoundingClientRect();\n mainMenuDropdown.style.top = `${rectHeader.height}px`;\n\n mainMenuList.style.left = `${rectMenuToggle.left}px`;\n }\n let headerHeight = hyTopHeader.offsetHeight + 270;\n\n this.showBackdropShadow('open', headerHeight);\n }\n }\n\n showBackdropShadow(state = 'close', top = 0) {\n let hyHeader = this.el.closest('.hy-site-header') as HTMLElement;\n let hyBackdropDiv = hyHeader.children[0] as HTMLElement;\n\n if (hyBackdropDiv) {\n if (state === 'open') {\n let me = window.outerHeight - top;\n hyBackdropDiv.style.height = `${me}px`;\n hyBackdropDiv.style.top = `${top}px`;\n hyBackdropDiv.style.position = 'absolute';\n hyBackdropDiv.classList.add('is-active');\n } else {\n hyBackdropDiv.removeAttribute('style');\n hyBackdropDiv.classList.remove('is-active');\n }\n }\n }\n\n async componentWillLoad() {\n this._dataMainMenu = await jsonParserWorker(this.dataMainMenu);\n }\n\n handleTopMenuClose(event) {\n this.isMenuOpen = false;\n this.mobileMenuTopToggle.emit();\n this.showBackdropShadow();\n event.stopPropagation();\n }\n\n // Close the University main menu if user clicks anywhere outside the component.\n @Listen('click', {target: 'window'})\n @Listen('headerScrollDown', {target: 'window'})\n @Listen('headerScrollUp', {target: 'window'})\n handleOutsideMenuClick(event) {\n if (this.isMenuOpen) {\n this.isMenuOpen = false;\n this.handleTopMenuClose(event);\n }\n event.stopPropagation();\n }\n\n // CLose the University main menu if user opens the desktop menu panel.\n @Listen('menuDesktopToggled', {target: 'document'})\n desktopMenuToggled() {\n this.isMenuOpen = false;\n }\n\n // CLose the University main menu if user opens the search panel\n @Listen('searchPanelToggled', {target: 'document'})\n searchPanelToggled() {\n this.isMenuOpen = false;\n }\n\n // CLose the University main menu if user opens the language menu panel.\n @Listen('menuLanguageToggled', {target: 'document'})\n languageMenuToggled() {\n this.isMenuOpen = false;\n }\n\n render() {\n const white = 'var(--grayscale-white)';\n const logoSizeGroup = this.isMobile ? SiteLogoSize.small : SiteLogoSize.small;\n const logoColorGroup = ColorVariant.white;\n\n return this.isMobile ? (\n <Host\n class={{\n 'menu--main-group--mobile': true,\n 'menu--main-group--mobile__is-open': this.isMenuOpen,\n }}\n >\n <button\n aria-label={this.menuLabel}\n class={{\n 'menu--main-group__mobile-toggle': true,\n 'is-open': this.isMenuOpen,\n }}\n >\n <hy-icon icon={'hy-icon-slim-hamburger-menu'} size={20} fill={white} />\n </button>\n <nav\n role=\"navigation\"\n aria-hidden={this.isMenuOpen ? 'false' : 'true'}\n class={{\n 'menu--main-group__dropdown--mobile': true,\n 'is-open': this.isMenuOpen,\n }}\n >\n <div class=\"menu--main-group__dropdown__top\">\n <div class={'menu--main-group__logo-container'} id={'menu-logo'}>\n <hy-site-logo\n is-group={true}\n size={logoSizeGroup}\n color={logoColorGroup}\n url={this.siteUrl}\n label={this.siteLabel}\n />\n </div>\n <button\n aria-label={`Close ${this.menuLabel}`}\n class=\"menu--main-group__dropdown__close\"\n onClick={(e) => this.handleTopMenuClose(e)}\n >\n <hy-icon icon={'hy-icon-remove'} size={20} fill={white} />\n </button>\n </div>\n <div class=\"menu--main-group__dropdown__items\">\n {this._dataMainMenu.map((item) => {\n return (\n <a href={item.url} class={{'menu-main-link': true}}>\n <span class={'menu--main-group__label'}>{item.label}</span>\n </a>\n );\n })}\n </div>\n <div class=\"menu--main-group__dropdown__donate\">\n {this.donate &&\n this.donate.map((i) => {\n return (\n <a class={'menu--secondary__item hy-link__donate group'} href={i.url}>\n <hy-icon icon={'hy-icon-heart-support'} size={14} fill={logoColorGroup} />\n <span class={'hy-link__donate__label group'}>{i.label}</span>\n </a>\n );\n })}\n </div>\n </nav>\n </Host>\n ) : (\n <Host\n class={{\n 'menu--main-group': true,\n 'menu--main-group__is-open': this.isMenuOpen,\n }}\n >\n <button\n class={{\n 'menu--main-group__toggle': true,\n 'is-open': this.isMenuOpen,\n }}\n aria-expanded={this.isMenuOpen ? 'true' : 'false'}\n aria-haspopup=\"menu\"\n //aria-label={this.isMenuOpen ? this._labels['close'] : this._labels['open']}\n >\n {this.isMenuOpen ? (\n <hy-icon class={'toggle__close'} icon={'hy-icon-remove'} size={8} fill={white} />\n ) : (\n <hy-icon class={'toggle__caret'} icon={'hy-icon-slim-hamburger-menu'} size={8} fill={white} />\n )}\n <span>{this.menuLabel}</span>\n </button>\n <div\n class={{\n 'menu--main-group__dropdown': true,\n 'is-open': this.isMenuOpen,\n }}\n >\n <div class=\"list\">\n {this._dataMainMenu.map((item) => {\n return (\n <a href={item.url} class={{'menu-main-link': true}}>\n <span class=\"heading-icon\">\n <hy-icon icon={'hy-icon-caret-right'} size={10} fill={white} />\n </span>\n <span class={'menu--main-group__label'}>{item.label}</span>\n </a>\n );\n })}\n </div>\n <button\n onClick={(e) => this.handleComponentClick(e)}\n class={{\n 'panel-toggle': true,\n }}\n aria-label=\"Close menu\"\n >\n <span class=\"panel-toggle__label\">\n <span class=\"panel-toggle__label__title\">{this.menuLabelClose}</span>\n <hy-icon icon={'hy-icon-remove'} size={20} fill={ColorVariant.white} />\n </span>\n </button>\n </div>\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-open-hours--container {\n font-family: var(--main-font-family);\n max-width: 50rem;\n overflow: hidden;\n\n &--exceptional {\n max-width: 100%;\n }\n}\n\n.open-hours__title {\n text-transform: uppercase;\n}\n\n.open-hours__date-change {\n align-items: center;\n background-color: var(--grayscale-background-box);\n color: var(--brand-main);\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n\n &--title {\n @include font-size(20px, 24px);\n @include font-weight($bold);\n\n color: var(--grayscale-black);\n font-family: var(--main-font-family);\n letter-spacing: -0.5px;\n text-align: center;\n text-transform: uppercase;\n }\n\n .open-hours__prev-date,\n .open-hours__next-date {\n background: none;\n border: 0;\n color: var(--brand-main);\n display: flex;\n height: 44px;\n outline: 5px solid var(--grayscale-white);\n position: relative;\n width: 44px;\n\n &:hover {\n background-color: var(--hover-gray);\n color: var(--brand-main-active);\n cursor: pointer;\n }\n\n &:focus {\n background-color: var(--hover-gray);\n color: var(--brand-main-active);\n }\n\n &:disabled {\n cursor: none;\n }\n\n hy-icon {\n color: var(--link-blue);\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n }\n\n svg {\n fill: currentColor;\n height: 20px;\n width: 20px;\n }\n }\n .open-hours__prev-date {\n border-right: 1px solid var(--link-blue);\n }\n .open-hours__next-date {\n border-left: 1px solid var(--link-blue);\n }\n}\n\n.open-hours__content__top {\n display: flex;\n flex-direction: row;\n font-size: 0.9rem;\n font-weight: 700;\n justify-content: space-between;\n padding: 0.5rem 0;\n}\n\n.open-hours__content__top-label {\n margin: 0.5rem 0 0.5rem 0;\n text-align: left;\n width: calc(100vw / 3);\n word-break: break-word;\n\n &:first-child() {\n margin-right: 1rem;\n }\n}\n\n.open-hours__content__top-label.luomus {\n width: calc(100vw / 2);\n}\n.open-hours__content__top-label.building.luomus {\n text-align: center;\n}\n\n.open-hours__content {\n position: relative;\n\n &.open-hours__loading {\n &:after {\n animation-duration: 1s;\n font-size: 3.2rem;\n position: absolute;\n left: 45%;\n top: 35%;\n z-index: 2;\n }\n }\n\n $animation-duraction: 0.2s;\n\n &.slide-left {\n -webkit-animation: slide-left $animation-duraction ease-in-out both;\n animation: slide-left $animation-duraction ease-in-out both;\n }\n\n &.slide-left-reverse {\n -webkit-animation: slide-left-reverse $animation-duraction ease-in-out reverse both;\n animation: slide-left-reverse $animation-duraction ease-in-out reverse both;\n }\n\n &.slide-right {\n -webkit-animation: slide-right $animation-duraction ease-in-out both;\n animation: slide-right $animation-duraction ease-in-out both;\n }\n\n &.slide-right-reverse {\n -webkit-animation: slide-right-reverse $animation-duraction ease-in-out reverse both;\n animation: slide-right-reverse $animation-duraction ease-in-out reverse both;\n }\n}\n\n.open-hours__links {\n margin: 1.5rem 0 1rem 0;\n\n .open-hours__link .hy-cta-link {\n width: 100% !important;\n justify-content: flex-start !important;\n\n .text {\n width: 100% !important;\n }\n }\n}\n\n@-webkit-keyframes slide-right {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n 100% {\n -webkit-transform: translateX(200px);\n transform: translateX(200px);\n opacity: 0;\n }\n}\n@keyframes slide-right {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n 100% {\n -webkit-transform: translateX(200px);\n transform: translateX(200px);\n opacity: 0;\n }\n}\n\n@-webkit-keyframes slide-right-reverse {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n 100% {\n -webkit-transform: translateX(200px);\n transform: translateX(200px);\n opacity: 0;\n }\n}\n@keyframes slide-right-reverse {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n 100% {\n -webkit-transform: translateX(200px);\n transform: translateX(200px);\n opacity: 0;\n }\n}\n\n@-webkit-keyframes slide-left {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n 100% {\n -webkit-transform: translateX(-200px);\n transform: translateX(-200px);\n opacity: 0;\n }\n}\n@keyframes slide-left {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n 100% {\n -webkit-transform: translateX(-200px);\n transform: translateX(-200px);\n opacity: 0;\n }\n}\n\n@-webkit-keyframes slide-left-reverse {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n 100% {\n -webkit-transform: translateX(-200px);\n transform: translateX(-200px);\n opacity: 0;\n }\n}\n@keyframes slide-left-reverse {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n opacity: 1;\n }\n 100% {\n -webkit-transform: translateX(-200px);\n transform: translateX(-200px);\n opacity: 0;\n }\n}\n","import {Component, Host, h, Prop} from '@stencil/core';\nimport {CtaLinkVariants} from '../../utils/utils';\n\n@Component({\n tag: 'hy-opening-hours',\n styleUrl: 'hy-opening-hours.scss',\n shadow: false,\n})\nexport class HyOpeningHours {\n @Prop() blockTitle: string = null;\n @Prop() language?: string;\n @Prop() venueType: string = 'libraries';\n @Prop() blockId?: string;\n @Prop() nextLabel?: string;\n @Prop() prevLabel?: string;\n @Prop() listLabel?: string;\n @Prop() buildingLabel?: string;\n @Prop() customerServiceLabel?: string;\n @Prop() date: string = null;\n @Prop() dateTitle: string = null;\n @Prop() dateType: string = 'day';\n @Prop() multiple: boolean = false;\n @Prop() customLinkTitle: string = null;\n @Prop() customLink: string = null;\n @Prop() exceptional: boolean = false;\n\n render() {\n const containerClasses = [\n 'hy-open-hours--container',\n this.exceptional ? 'hy-open-hours--container--exceptional' : '',\n ].join(' ');\n\n const listClasses = ['open-hours__content__top-label', this.venueType].join(' ');\n const buildingClasses = ['open-hours__content__top-label building', this.venueType].join(' ');\n return (\n <Host>\n <div\n class={containerClasses}\n data-lang={this.language}\n data-id={this.blockId}\n data-date={this.date}\n data-type={this.dateType}\n data-multiple={this.multiple}\n >\n {this.blockTitle && <h3 class=\"open-hours__title\">{this.blockTitle}</h3>}\n {!this.exceptional && (\n <div class=\"open-hours__date-change\">\n <button aria-label={this.prevLabel} class=\"icon--arrow-left open-hours__prev-date\">\n <hy-icon icon={'hy-icon-caret-left'} size={18} />\n </button>\n <span class=\"open-hours__date-change--title\">{this.dateTitle}</span>\n <button aria-label={this.nextLabel} class=\"icon--arrow-right open-hours__next-date\">\n <hy-icon icon={'hy-icon-caret-right'} size={18} />\n </button>\n </div>\n )}\n <div class=\"open-hours__content__top\">\n <span class={listClasses}>{this.listLabel}</span>\n <span class={buildingClasses}>{this.buildingLabel}</span>\n {this.customerServiceLabel && <span class={listClasses}>{this.customerServiceLabel}</span>}\n </div>\n <div class=\"open-hours__content\">\n <slot />\n </div>\n {this.customLink && (\n <div class=\"open-hours__links\">\n <hy-cta-link\n full-width\n link-content={this.customLinkTitle}\n sc-label={this.customLinkTitle}\n url={this.customLink}\n variant={CtaLinkVariants.linkList}\n >\n {this.customLinkTitle}\n </hy-cta-link>\n </div>\n )}\n </div>\n <hy-box mb=\"1.75, 1.75, 2, 2.5\" />\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.open-hours__list-item {\n border-top: 1px solid var(--grayscale-medium);\n color: var(--grayscale-dark-text);\n display: flex;\n flex-direction: row;\n font-size: 0.875rem;\n justify-content: space-between;\n padding: 0.5rem 0;\n font-family: var(--main-font-family);\n text-align: start;\n\n &--today {\n background-color: var(--grayscale-light);\n\n span:first-child {\n margin-left: 4px;\n padding-left: 4px;\n margin-right: -8px;\n font-weight: bold;\n border-left: 2px solid var(--grayscale-black);\n }\n }\n\n & > span:not(.luomus) {\n text-align: left;\n width: calc(100vw / 3);\n }\n & > span.luomus {\n width: calc(100vw / 2);\n }\n\n &--date {\n margin-right: 1rem;\n }\n\n &--hours {\n margin-right: 0.2rem;\n }\n\n &--hours.luomus {\n text-align: center;\n }\n}\n","export interface items {\n dateLibrary: string;\n building: string;\n service: string;\n today: string;\n}\n\nimport {Component, Host, h, Prop, Watch} from '@stencil/core';\n\n@Component({\n tag: 'hy-opening-hours-content',\n styleUrl: 'hy-opening-hours-content.scss',\n shadow: false,\n})\nexport class HyOpeningHoursContent {\n @Prop() multiple: boolean = false;\n @Prop() selfServiceLabel: string = null;\n @Prop() venueType: string = 'libraries';\n\n private _dataItems: items[];\n\n @Prop() dataItems: items[] | string;\n\n @Watch('dataItems') dataItemsWatcher(data: items[] | string) {\n this._dataItems = typeof data === 'string' ? JSON.parse(data) : data;\n }\n\n componentWillLoad() {\n this.dataItemsWatcher(this.dataItems);\n }\n\n render() {\n return (\n <Host>\n {this._dataItems.map((item) => {\n if (!item.service) return;\n const itemClasses = ['open-hours__list-item', item.today ? 'open-hours__list-item--today' : ''].join(' ');\n return (\n <div class={itemClasses}>\n <span class=\"open-hours__list-item--office\">{item.today ? item.today : item.dateLibrary}</span>\n <span class=\"open-hours__list-item--hours\">{item.building}</span>\n <span class=\"open-hours__list-item--service\">{item.service}</span>\n </div>\n );\n })}\n {this.selfServiceLabel && (\n <div class=\"open-hours__content__top\">\n <span class=\"open-hours__content__top-label\">{this.selfServiceLabel}</span>\n </div>\n )}\n {this._dataItems.map((item) => {\n if (item.service) return;\n const itemClasses = ['open-hours__list-item', item.today ? 'open-hours__list-item--today' : ''].join(' ');\n\n const hoursClasses = ['open-hours__list-item--hours', this.venueType].join(' ');\n const officeClasses = ['open-hours__list-item--office', this.venueType].join(' ');\n return (\n <div class={itemClasses}>\n <span class={officeClasses}>{item.today ? item.today : item.dateLibrary}</span>\n <span class={hoursClasses}>{item.building}</span>\n {this.venueType !== 'luomus' && <span class=\"open-hours__list-item--service\">-</span>}\n </div>\n );\n })}\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-pager {\n align-items: center;\n display: flex;\n justify-content: center;\n flex-direction: row;\n flex-wrap: wrap;\n font-family: var(--main-font-family);\n list-style: none;\n padding: 0;\n}\n","import {Component, h} from '@stencil/core';\n\n@Component({\n tag: 'hy-pager',\n styleUrl: 'hy-pager.scss',\n shadow: true,\n})\nexport class HyPager {\n render() {\n const classAttributes = ['hy-pager'].join(' ');\n\n return (\n <ul class={classAttributes}>\n <slot></slot>\n </ul>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-pager__item {\n @include font-size(14px, 24px);\n @include font-weight($bold);\n align-items: center;\n background-color: var(--brand-main-light);\n color: var(--grayscale-white);\n display: flex;\n flex-direction: row;\n font-family: var(--main-font-family);\n justify-content: center;\n letter-spacing: -0.4px;\n margin-bottom: 4px;\n margin-right: 4px;\n min-height: 36px;\n min-width: 36px;\n text-align: center;\n\n @include breakpoint($wide) {\n margin-right: 6px;\n min-height: 40px;\n min-width: 40px;\n }\n\n a {\n @include font-size(14px, 24px);\n @include font-weight($bold);\n align-items: center;\n color: var(--grayscale-white);\n display: flex;\n flex-direction: row;\n justify-content: center;\n letter-spacing: -0.4px;\n min-height: 36px;\n min-width: 36px;\n text-decoration: none;\n\n @include breakpoint($wide) {\n @include font-size(16px, 24px);\n letter-spacing: -0.5px;\n min-height: 40px;\n min-width: 40px;\n }\n\n &:not([aria-current='true']):hover {\n background-color: var(--brand-main);\n cursor: pointer;\n }\n }\n\n &__current {\n background-color: var(--grayscale-white);\n box-sizing: border-box;\n border: 2px solid var(--grayscale-black);\n a {\n color: var(--brand-main-nearly-black);\n &:hover {\n background-color: var(--grayscale-white);\n }\n }\n }\n\n &__ellipsis {\n background-color: var(--grayscale-white);\n color: var(--brand-main-nearly-black);\n min-width: auto;\n min-height: auto;\n }\n\n &__next,\n &__previous {\n a {\n padding: 7px 12px 5px 12px;\n\n @include breakpoint($wide) {\n padding: 8px 12px;\n }\n }\n\n .hy-icon-wrapper {\n margin: 0 4px;\n @include breakpoint($wide) {\n margin: 0 6px;\n }\n\n svg {\n fill: var(--grayscale-white);\n }\n }\n }\n}\n","import {Component, h, Prop} from '@stencil/core';\nimport {PaginationItemVariants} from '../../../utils/utils';\n\n@Component({\n tag: 'hy-pager-item',\n styleUrl: 'hy-pager-item.scss',\n shadow: true,\n})\nexport class HyPagerItem {\n @Prop() variant: PaginationItemVariants = PaginationItemVariants.default;\n @Prop() itemLabel?: string;\n @Prop() itemUrl?: string;\n @Prop() scAriaLabel?: string;\n\n render() {\n let classAttributes = ['hy-pager__item'].join(' ');\n switch (this.variant) {\n case PaginationItemVariants.current: {\n classAttributes = ['hy-pager__item', 'hy-pager__item__current'].join(' ');\n return (\n <li class={classAttributes}>\n <a href={this.itemUrl} aria-current=\"true\">\n {this.itemLabel}\n </a>\n </li>\n );\n }\n case PaginationItemVariants.next: {\n classAttributes = ['hy-pager__item', 'hy-pager__item__next'].join(' ');\n const iconClassAttributes = ['link-icon'].join(' ');\n return (\n <li class={classAttributes}>\n <a href={this.itemUrl} aria-label={this.scAriaLabel}>\n {this.itemLabel}\n <span class={'hy-icon-wrapper'}>\n <div class={iconClassAttributes}>\n <hy-icon icon={'hy-icon-arrow-to-right'} size={12} />\n </div>\n </span>\n </a>\n </li>\n );\n }\n case PaginationItemVariants.previous: {\n classAttributes = ['hy-pager__item', 'hy-pager__item__previous'].join(' ');\n const iconClassAttributes = ['link-icon'].join(' ');\n return (\n <li class={classAttributes}>\n <a href={this.itemUrl} aria-label={this.scAriaLabel}>\n <span class={'hy-icon-wrapper'}>\n <div class={iconClassAttributes}>\n <hy-icon icon={'hy-icon-arrow-left'} size={12} />\n </div>\n </span>\n {this.itemLabel}\n </a>\n </li>\n );\n }\n case PaginationItemVariants.ellipsis: {\n classAttributes = ['hy-pager__item', 'hy-pager__item__ellipsis'].join(' ');\n return <li class={classAttributes}>...</li>;\n }\n default: {\n classAttributes = ['hy-pager__item'].join(' ');\n return (\n <li class={classAttributes}>\n <a href={this.itemUrl} aria-label={this.scAriaLabel}>\n {this.itemLabel}\n </a>\n </li>\n );\n }\n }\n }\n}\n","//overrides for Content pages\n\n/*\n* Common styles for text plus mobile & tablet & small desktop\n* in Content Pages and Field of science pages.\n*/\n.hy-paragraph-text.content_page.external,\n.hy-paragraph-text.field_of_science.external {\n margin-top: 24px; //total gap between heading h2 and paragraph content is 48px\n\n @include breakpoint($narrow) {\n margin-top: 16px; //total gap 40px\n }\n @include breakpoint($wide) {\n margin-top: 32px; //total gap 56px\n }\n}\n\n// There is a sidebar on the Content page\n.hy-paragraph-text.content_page.external.default,\n.hy-paragraph-text.field_of_science.external.default {\n @include breakpoint($extrawide) {\n margin-top: 32px; //total gap 56px\n }\n @include breakpoint($xlarge) {\n margin-top: 40px; //total gap 64px\n }\n}\n\n// No sidebar on the Content page\n.hy-paragraph-text.content_page.external.large,\n.hy-paragraph-text.field_of_science.external.large {\n @include breakpoint($extrawide) {\n margin-top: 40px; //total gap 64px\n }\n @include breakpoint($xlarge) {\n margin-top: 40px; //total gap 64px\n }\n}\n\n.hy-paragraph-text.content_page,\n.hy-paragraph-text.field_of_science {\n h3 {\n // text H3 small\n @include font-size(22px, 28px);\n letter-spacing: -0.7px;\n\n padding-bottom: 12px;\n padding-top: 24px;\n\n @include breakpoint($narrow) {\n // text H3 Medium size\n @include font-size(26px, 32px);\n letter-spacing: -0.8px;\n\n padding-bottom: 12px;\n padding-top: 28px;\n }\n\n @include breakpoint($wide) {\n padding-bottom: 16px;\n padding-top: 32px;\n }\n }\n\n h4 {\n // text H4 small\n @include font-size(18px, 24px);\n letter-spacing: -0.56px;\n\n padding-bottom: 12px;\n padding-top: 24px;\n\n @include breakpoint($narrow) {\n // text H4 Medium size\n @include font-size(22px, 28px);\n letter-spacing: -0.69px;\n\n padding-bottom: 12px;\n padding-top: 28px;\n }\n\n @include breakpoint($wide) {\n padding-bottom: 16px;\n padding-top: 32px;\n }\n }\n\n h5 {\n // text H5 small\n @include font-size(16px, 20px);\n letter-spacing: -0.5px;\n\n padding-bottom: 12px;\n padding-top: 24px;\n\n @include breakpoint($narrow) {\n // text H5 Medium size\n @include font-size(18px, 24px);\n letter-spacing: -0.56px;\n\n padding-bottom: 12px;\n padding-top: 28px;\n }\n\n @include breakpoint($wide) {\n padding-bottom: 16px;\n padding-top: 32px;\n }\n }\n\n h6 {\n // text H6 small\n @include font-size(14px, 16px);\n letter-spacing: -0.44px;\n\n padding-bottom: 12px;\n padding-top: 24px;\n\n @include breakpoint($narrow) {\n // text H6 Medium size\n @include font-size(16px, 20px);\n letter-spacing: -0.5px;\n\n padding-bottom: 12px;\n padding-top: 28px;\n }\n\n @include breakpoint($wide) {\n padding-bottom: 16px;\n padding-top: 32px;\n }\n }\n}\n","@import './paragraph-text-content.scss';\n@import './paragraph-text-landing.scss';\n\n:host {\n display: block;\n}\n\n// General styles for text paragraph\n.hy-paragraph-text {\n @include font-size(15px, 22px); // Paragraph Small size\n color: var(--grayscale-dark-text);\n font-family: var(--main-font-family);\n letter-spacing: 0;\n width: 100%;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 24px); // Paragraph Medium size\n }\n @include breakpoint($wide) {\n width: 91.46%; // 11 col\n }\n @include breakpoint($xlarge) {\n @include font-size(17px, 26px); // Paragraph Large size\n width: 82.89%; // 10 col\n }\n\n &__large {\n @include breakpoint($extrawide) {\n @include font-size(17px, 26px); // Paragraph Large size\n width: 82.89%; // 10 col\n }\n @include breakpoint($xlarge) {\n width: 74.17%; // 9 col\n }\n }\n\n &.degree_programme_group {\n @include breakpoint($wide) {\n width: 91.46%; // 11 col\n }\n }\n\n &.main_front_page,\n &.landing_page,\n &.faculty,\n &.generic_site_group,\n &.degree_programme_group,\n &.research_group {\n @include breakpoint($wide) {\n width: 100%;\n }\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n color: var(--grayscale-black);\n font-family: var(--main-font-family);\n font-weight: 700;\n margin: 0;\n width: 100%;\n\n &.negative {\n color: var(--grayscale-white);\n }\n }\n\n // link within paragraph (Open sans semibold)\n a {\n @include font-size(14px, 20px); // Paragraph Small size\n color: var(--link-blue);\n font-family: var(--main-font-family);\n font-weight: 600;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 24px);\n letter-spacing: -0.1px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(17px, 26px); // Paragraph Large size\n }\n\n &:hover {\n color: var(--brand-main);\n }\n }\n\n a[target='_blank']:after {\n display: inline-block;\n vertical-align: middle;\n width: 12px;\n height: 12px;\n margin-left: 3px;\n background-size: contain;\n content: '';\n background-image: url(\"data:image/svg+xml;utf8, <svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 30 29' fill='rgb(4,121,165)'> <polygon points='29.207 13.783 14.756 .717 14.055 0 11.402 3.118 10.732 3.835 19.665 11.974 0 11.974 0 17.026 19.756 17.026 11.494 24.447 10.823 25.071 11.402 25.882 13.476 28.189 14.055 29 30 14.594' /> </svg>\");\n transform: rotate(315deg);\n\n &:hover {\n background-image: url(\"data:image/svg+xml;utf8, <svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 30 29' fill='pink'> <polygon points='29.207 13.783 14.756 .717 14.055 0 11.402 3.118 10.732 3.835 19.665 11.974 0 11.974 0 17.026 19.756 17.026 11.494 24.447 10.823 25.071 11.402 25.882 13.476 28.189 14.055 29 30 14.594' /> </svg>\");\n }\n }\n\n a[target='_blank']:hover {\n &:after {\n background-image: url(\"data:image/svg+xml;utf8, <svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 30 29' fill='rgb(14,104,139)'> <polygon points='29.207 13.783 14.756 .717 14.055 0 11.402 3.118 10.732 3.835 19.665 11.974 0 11.974 0 17.026 19.756 17.026 11.494 24.447 10.823 25.071 11.402 25.882 13.476 28.189 14.055 29 30 14.594' /> </svg>\");\n }\n }\n\n p {\n margin-top: 0;\n padding-top: 0;\n\n &:last-of-type {\n margin-bottom: 0;\n }\n }\n\n // When hy-paragraph-text is the first child it will not add spacing to top. Will fix heading + text spacing issue.\n &:first-child {\n margin-top: 0 !important;\n }\n}\n\nhy-paragraph-text + hy-link-list {\n display: block;\n margin-top: 32px;\n}\n","//overrides for Landing pages and Front page\n\n// Common styles for text plus mobile & tablet & small desktop in Landing Pages\n.hy-paragraph-text.landing_page,\n.hy-paragraph-text.main_front_page {\n h3 {\n // text H3 small\n @include font-size(22px, 28px);\n letter-spacing: -0.7px;\n\n padding-bottom: 12px;\n padding-top: 32px;\n\n @include breakpoint($narrow) {\n // text H3 Medium size\n @include font-size(26px, 32px);\n letter-spacing: -0.8px;\n\n padding-bottom: 16px;\n padding-top: 40px;\n }\n\n @include breakpoint($wide) {\n padding-bottom: 16px;\n padding-top: 48px;\n }\n }\n\n h4 {\n // text H4 small\n @include font-size(18px, 24px);\n letter-spacing: -0.56px;\n\n padding-bottom: 12px;\n padding-top: 24px;\n\n @include breakpoint($narrow) {\n // text H4 Medium size\n @include font-size(22px, 28px);\n letter-spacing: -0.69px;\n\n padding-bottom: 16px;\n padding-top: 32px;\n }\n\n @include breakpoint($wide) {\n padding-bottom: 16px;\n padding-top: 40px;\n }\n }\n\n h5 {\n // text H5 small\n @include font-size(16px, 20px);\n letter-spacing: -0.5px;\n\n padding-bottom: 12px;\n padding-top: 24px;\n\n @include breakpoint($narrow) {\n // text H5 Medium size\n @include font-size(18px, 24px);\n letter-spacing: -0.56px;\n\n padding-bottom: 16px;\n padding-top: 32px;\n }\n\n @include breakpoint($wide) {\n padding-bottom: 16px;\n padding-top: 40px;\n }\n }\n\n h6 {\n // text H6 small\n @include font-size(14px, 16px);\n letter-spacing: -0.44px;\n\n padding-bottom: 12px;\n padding-top: 24px;\n\n @include breakpoint($narrow) {\n // text H6 Medium size\n @include font-size(16px, 20px);\n letter-spacing: -0.5px;\n\n padding-bottom: 16px;\n padding-top: 32px;\n }\n\n @include breakpoint($wide) {\n padding-bottom: 16px;\n padding-top: 40px;\n }\n }\n}\n","import {Component, Element, h, Host, Prop} from '@stencil/core';\n\n@Component({\n tag: 'hy-paragraph-text',\n styleUrls: {\n default: 'paragraph-text.scss',\n content: 'paragraph-text-content.scss',\n landing: 'paragraph-text-landing.scss',\n },\n shadow: false,\n})\nexport class ParagraphText {\n @Prop() variant: string;\n @Prop() placement: string = 'internal';\n @Prop() headerstyle: string = 'default';\n @Element() el: HTMLElement;\n\n componentDidLoad() {\n let hyMainDiv = this.el.closest('.hy-main');\n if (hyMainDiv) {\n if (!hyMainDiv.classList.contains('with-sidebar')) {\n this.headerstyle = 'large';\n }\n }\n }\n\n render() {\n const classAttributes = [\n 'hy-paragraph-text',\n `hy-paragraph-text__${this.headerstyle}`,\n `${this.variant}`,\n `${this.placement}`,\n `${this.headerstyle}`,\n ].join(' ');\n\n return (\n <Host>\n <div class={classAttributes}>\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-person-card-container {\n font-family: var(--main-font-family);\n margin-bottom: 28px;\n\n @include breakpoint($wide) {\n margin-bottom: 32px;\n }\n\n &__category-title {\n @include font-size(12px, 14px);\n color: var(--grayscale-dark);\n letter-spacing: 0;\n margin-bottom: 8px;\n\n @include breakpoint($narrow) {\n @include font-size(14px, 18px);\n }\n\n @include breakpoint($fullhd) {\n @include font-size(14px, 18px); //>1920 desktop\n }\n }\n\n &__link {\n text-decoration: none;\n\n &.inactive {\n cursor: default;\n pointer-events: none;\n }\n }\n}\n\n.hy-person-card {\n display: flex;\n flex-direction: row;\n font-family: var(--main-font-family);\n\n &__image-container {\n margin-right: 12px;\n max-width: 70px;\n\n @include breakpoint($narrow) {\n margin-right: 16px;\n max-width: 112px;\n }\n\n @include breakpoint($fullhd) {\n max-width: 140px;\n }\n\n &__image {\n height: 70px;\n width: 70px;\n\n @include breakpoint($narrow) {\n height: 112px;\n width: 112px;\n }\n\n @include breakpoint($fullhd) {\n //1920\n height: 140px;\n width: 140px;\n }\n img {\n height: 70px;\n width: 70px;\n object-fit: cover;\n\n @include breakpoint($narrow) {\n height: 112px;\n width: 112px;\n }\n\n @include breakpoint($fullhd) {\n height: 140px;\n width: 140px;\n }\n }\n }\n &__no-image {\n height: 70px;\n width: 70px;\n\n align-items: center;\n background-color: var(--brand-main-light);\n display: flex;\n justify-content: center;\n\n @include breakpoint($narrow) {\n height: 112px;\n width: 112px;\n }\n\n @include breakpoint($fullhd) {\n height: 140px;\n width: 140px;\n }\n\n &__initials {\n @include font-size(18px, 24px);\n @include font-weight($bold);\n color: var(--grayscale-white);\n letter-spacing: -0.56px;\n\n @include breakpoint($narrow) {\n @include font-size(32px, 32px);\n letter-spacing: 0.96px;\n }\n }\n }\n }\n\n &__info-container {\n &__full-name {\n @include font-size(18px, 24px);\n @include font-weight($bold);\n\n color: var(--brand-main-light);\n letter-spacing: -0.56px;\n margin-bottom: 4px;\n text-decoration: none;\n\n @include breakpoint($narrow) {\n @include font-size(22px, 28px);\n letter-spacing: -0.69px;\n margin-bottom: 3px;\n }\n\n @include breakpoint($fullhd) {\n @include font-size(26px, 28px);\n letter-spacing: -0.81px;\n margin-bottom: 5px;\n }\n\n &:hover,\n &:focus {\n color: var(--brand-main);\n }\n }\n\n &__position-title {\n @include font-size(14px, 19px);\n @include font-weight($bold);\n color: var(--brand-main-nearly-black);\n letter-spacing: 0;\n margin-bottom: 3px;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 20px);\n letter-spacing: -0.5px;\n margin-bottom: 4px;\n }\n\n @include breakpoint($fullhd) {\n @include font-size(18px, 24px);\n letter-spacing: -0.56px;\n margin-bottom: 8px;\n }\n\n &__search-panel {\n @include font-weight($regular);\n }\n }\n\n &__department {\n @include font-size(12px, 17px);\n color: var(--brand-main-nearly-black);\n letter-spacing: 0;\n margin-bottom: 3px;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n @include font-size(14px, 19px);\n margin-bottom: 6px;\n }\n\n @include breakpoint($fullhd) {\n @include font-size(14px, 16px);\n margin-bottom: 9px;\n }\n }\n\n &__field {\n @include font-size(12px, 17px);\n color: var(--brand-main-nearly-black);\n letter-spacing: 0;\n margin-bottom: 4px;\n\n @include breakpoint($narrow) {\n @include font-size(14px, 19px);\n margin-bottom: 6px;\n }\n\n @include breakpoint($fullhd) {\n @include font-size(14px, 16px);\n margin-bottom: 9px;\n }\n }\n\n &__email-container {\n align-items: center;\n display: flex;\n margin-bottom: 4px;\n }\n &__email {\n @include font-size(12px, 17px);\n color: var(--brand-main-nearly-black);\n letter-spacing: 0;\n margin-left: 11px;\n\n @include breakpoint($narrow) {\n @include font-size(14px, 19px);\n margin-left: 8px;\n }\n\n &__icon {\n svg {\n height: 15px;\n width: 16px;\n\n @include breakpoint($narrow) {\n height: 12px;\n width: 16px;\n }\n }\n }\n }\n\n &__phone-container {\n align-items: center;\n display: flex;\n }\n &__phone {\n @include font-size(12px, 17px);\n color: var(--brand-main-nearly-black);\n letter-spacing: 0;\n margin-left: 11px;\n\n @include breakpoint($narrow) {\n @include font-size(14px, 19px);\n margin-left: 8px;\n }\n\n &__icon {\n svg {\n height: 13px;\n width: 13px;\n\n @include breakpoint($narrow) {\n height: 14px;\n width: 14px;\n }\n }\n }\n }\n }\n\n &.search-panel {\n margin-bottom: 12px;\n\n @include breakpoint($narrow) {\n margin-bottom: 14px;\n }\n\n .hy-person-card__info-container__full-name {\n @include font-size(14px, 20px);\n @include font-weight($semibold);\n color: var(--grayscale-dark);\n letter-spacing: 0;\n margin-bottom: 0;\n\n @include breakpoint($narrow) {\n letter-spacing: -0.3px;\n }\n\n @include breakpoint($fullhd) {\n @include font-size(16px, 24px);\n letter-spacing: 0;\n }\n }\n\n .hy-person-card__info-container__position-title {\n @include font-size(12px, 16px);\n color: var(--grayscale-dark);\n letter-spacing: -0.07px;\n margin-bottom: 0;\n }\n\n .hy-person-card__image-container {\n margin-right: 12px;\n\n &__image {\n height: 60px;\n width: 60px;\n img {\n height: 60px;\n width: 60px;\n }\n }\n &__no-image {\n height: 60px;\n width: 60px;\n\n &__initials {\n color: var(--grayscale-white);\n @include font-size(16px, 32px);\n @include font-weight($bold);\n letter-spacing: 0.48px;\n }\n }\n }\n }\n}\n\n.hy-person-card__extended-info-container {\n display: block;\n padding-top: 8px;\n\n @include breakpoint($narrow) {\n padding-top: 12px;\n }\n\n &__about {\n @include font-size(12px, 17px);\n color: var(--grayscale-dark-text);\n font-family: var(--main-font-family);\n font-style: italic;\n letter-spacing: 0;\n\n @include breakpoint($narrow) {\n @include font-size(12px, 16px);\n }\n @include breakpoint($xlarge) {\n @include font-size(14px, 16px);\n }\n\n .label {\n @include font-weight($bold);\n padding-right: 3px;\n }\n }\n}\n","import {Component, h, Prop, State} from '@stencil/core';\nimport {PersonCardVariants} from '../../utils/utils';\nimport ResizeObserver from 'resize-observer-polyfill';\n\n@Component({\n tag: 'hy-person-card',\n styleUrl: 'hy-person-card.scss',\n shadow: false,\n})\nexport class HyPersonCard {\n @Prop() variant: PersonCardVariants = PersonCardVariants.default;\n @Prop() categoryTitle?: string;\n @Prop() imageUrl: string = null;\n @Prop() imageAlt: string = null;\n @Prop() disableLazy: boolean = false;\n @Prop() firstName?: string;\n @Prop() lastName?: string;\n @Prop() url: string = null;\n @Prop() isExternal: boolean = false;\n @Prop() scLabel?: string;\n @Prop() positionTitle?: string;\n @Prop() department: string = null;\n @Prop() field: string = null;\n @Prop() email: string = null;\n @Prop() phone: string = null;\n @Prop() aboutInfo: string = null;\n @Prop() researchNetworks?: string;\n @Prop() studyProgramme?: string;\n @Prop() aboutInfoLabel?: string;\n @Prop() researchNetworksLabel?: string;\n @Prop() studyProgrammeLabel?: string;\n\n private _fullName: string;\n private _initials: string;\n\n @State() isMobile: boolean;\n\n private ro: ResizeObserver;\n componentDidLoad() {\n this.ro = new ResizeObserver((entries) => {\n for (const entry of entries) {\n this.checkForMobile(entry.contentRect.width);\n }\n });\n this.ro.observe(document.body);\n }\n\n disconnectedCallback() {\n this.ro.disconnect();\n }\n\n checkForMobile(size: number) {\n this.isMobile = size <= 479 ? true : false;\n }\n\n componentWillRender() {\n this._fullName = this.firstName && this.lastName ? `${this.firstName} ${this.lastName}` : '';\n this._initials =\n this.imageUrl && this.firstName && this.lastName ? '' : `${this.firstName.charAt(0)}${this.lastName.charAt(0)}`;\n if (!this.imageAlt) {\n this.imageAlt = this._fullName;\n }\n if (!this.scLabel) {\n this.scLabel = 'Link to the person profile';\n }\n }\n\n render() {\n let classLinkAttributes = ['hy-person-card-container__link', this.variant].join(' ');\n let classIsActive = this.url && this.url.length > 0 ? '' : ' inactive';\n classLinkAttributes = classLinkAttributes.concat(classIsActive);\n\n const classAttributes = ['hy-person-card', this.variant].join(' ');\n const classPositionTitle = [\n 'hy-person-card__info-container__position-title',\n `hy-person-card__info-container__position-title__${this.variant}`,\n ].join(' ');\n const target = this.isExternal ? '_blank' : '_self';\n\n return (\n <article class=\"hy-person-card-container\">\n <div class={classLinkAttributes}>\n {this.categoryTitle && this.variant == PersonCardVariants.default && (\n <div class=\"hy-person-card-container__category-title\">{this.categoryTitle}</div>\n )}\n <div class={classAttributes}>\n <div class=\"hy-person-card__image-container\">\n {this.imageUrl ? (\n <a class=\"hy-person-card__image-container__image\" href={this.url} target={target}>\n <img\n loading={this.disableLazy ? 'eager' : 'lazy'}\n aria-hidden=\"true\"\n src={this.imageUrl}\n alt={this.imageAlt}\n />\n </a>\n ) : (\n <div class=\"hy-person-card__image-container__no-image\">\n <div class=\"hy-person-card__image-container__no-image__initials\" aria-hidden=\"true\">\n {this._initials}\n </div>\n </div>\n )}\n </div>\n <div class=\"hy-person-card__info-container\">\n <a class=\"hy-person-card__info-container__full-name\" href={this.url} target={target}>\n {this._fullName}\n </a>\n {this.positionTitle && <div class={classPositionTitle}>{this.positionTitle}</div>}\n {this.department &&\n (this.variant == PersonCardVariants.default ||\n (this.variant == PersonCardVariants.extended && !this.isMobile)) && (\n <div class=\"hy-person-card__info-container__department\">{this.department}</div>\n )}\n {this.field &&\n (this.variant == PersonCardVariants.default ||\n (this.variant == PersonCardVariants.extended && !this.isMobile)) && (\n <div class=\"hy-person-card__info-container__field\">{this.field}</div>\n )}\n {this.email &&\n (this.variant == PersonCardVariants.default ||\n (this.variant == PersonCardVariants.extended && !this.isMobile)) && [\n <div class=\"hy-person-card__info-container__email-container\">\n <span class=\"hy-person-card__info-container__email__icon\">\n <hy-icon icon={'hy-icon-email'} size={16} />\n </span>\n <span class=\"hy-person-card__info-container__email\">{this.email}</span>\n </div>,\n ]}\n {this.phone &&\n (this.variant == PersonCardVariants.default ||\n (this.variant == PersonCardVariants.extended && !this.isMobile)) && [\n <div class=\"hy-person-card__info-container__phone-container\">\n <span class=\"hy-person-card__info-container__phone__icon\">\n <hy-icon icon={'hy-icon-phone'} size={14} />\n </span>\n <span class=\"hy-person-card__info-container__phone\">{this.phone}</span>\n </div>,\n ]}\n </div>\n </div>\n {this.variant == PersonCardVariants.extended && (\n <div class=\"hy-person-card hy-person-card__extended-info-container\">\n {this.department && this.isMobile && (\n <div class=\"hy-person-card__info-container__department\">{this.department}</div>\n )}\n {this.field && this.isMobile && <div class=\"hy-person-card__info-container__field\">{this.field}</div>}\n {this.email &&\n this.isMobile && [\n <div class=\"hy-person-card__info-container__email-container\">\n <span class=\"hy-person-card__info-container__email__icon\">\n <hy-icon icon={'hy-icon-email'} size={16} />\n </span>\n <span class=\"hy-person-card__info-container__email\">{this.email}</span>\n </div>,\n ]}\n {this.phone &&\n this.isMobile && [\n <div class=\"hy-person-card__info-container__phone-container\">\n <span class=\"hy-person-card__info-container__phone__icon\">\n <hy-icon icon={'hy-icon-phone'} size={14} />\n </span>\n <span class=\"hy-person-card__info-container__phone\">{this.phone}</span>\n </div>,\n ]}\n {this.aboutInfo && (\n <div class=\"hy-person-card__extended-info-container__about\">\n <span class=\"label\">{this.aboutInfoLabel}:</span>\n <span>{this.aboutInfo}</span>\n </div>\n )}\n </div>\n )}\n </div>\n </article>\n );\n }\n}\n",".hy-profile-page__back-button {\n @include font-size(16px, 20px);\n @include font-weight($semibold);\n font-family: var(--main-font-family);\n letter-spacing: -0.5px;\n color: var(--brand-main-light);\n padding: 12px 10px;\n display: inline-flex;\n text-decoration: none;\n margin-left: -10px;\n align-items: center;\n margin-bottom: 16px;\n\n @include breakpoint($medium) {\n margin-bottom: 24px;\n }\n\n hy-icon {\n margin-right: 16px;\n\n svg {\n fill: var(--brand-main-light);\n }\n }\n}\n\n.hy-profile-page__section {\n padding: 32px 0;\n\n &:first-of-type {\n padding: 0 0 32px;\n }\n\n &:not(:first-of-type) {\n border-top: 1px solid var(--grayscale-medium);\n }\n\n &__research_title > h2,\n > h2 {\n @include font-size(26px, 32px);\n @include font-weight($bold);\n font-family: var(--main-font-family);\n letter-spacing: -0.52px;\n color: var(--grayscale-black);\n margin: 0 0 32px;\n\n @include breakpoint($medium) {\n @include font-size(34px, 40px);\n letter-spacing: -0.68px;\n }\n }\n\n &__research_title {\n display: block;\n align-items: center;\n @include breakpoint($medium) {\n display: flex;\n }\n\n > hy-cta-button {\n margin: 0 0 32px 0;\n @include breakpoint($medium) {\n margin: 0 0 32px auto;\n }\n }\n }\n}\n\n.hy-profile-page__organization-units-section {\n font-family: var(--main-font-family);\n padding: 0;\n margin: 0;\n list-style: none;\n\n h3 {\n @include font-size(15px, 18px);\n @include font-weight($bold);\n letter-spacing: -0.28px;\n color: var(--grayscale-black);\n margin: 0 0 8px;\n\n @include breakpoint($medium) {\n @include font-size(17px, 20px);\n letter-spacing: -0.32px;\n }\n }\n}\n\n.hy-profile-page__organization-units-section {\n margin-top: 24px;\n\n @include breakpoint($medium) {\n margin-top: 32px;\n }\n\n a {\n text-decoration: none;\n color: var(--link-blue);\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.hy-profile-page__organizations,\n.hy-profile-page__research-organizations {\n &,\n ul {\n list-style: none;\n margin: 0;\n padding: 0;\n display: grid;\n gap: 8px;\n }\n\n li {\n display: inline-flex;\n flex-wrap: wrap;\n\n span {\n @include font-size(15px, 22px);\n @include font-weight($regular);\n color: var(--grayscale-black);\n\n @include breakpoint($medium) {\n @include font-size(17px, 26px);\n }\n }\n\n > span {\n display: inline-flex;\n }\n\n hy-icon {\n justify-content: center;\n align-items: center;\n height: 22px;\n width: 28px;\n\n @include breakpoint($medium) {\n height: 26px;\n }\n }\n }\n}\n\n.hy-profile-page__person-about-text {\n @include font-size(15px, 22px);\n @include font-weight($regular);\n font-family: var(--main-font-family);\n color: var(--grayscale-black);\n\n @include breakpoint($medium) {\n @include font-size(17px, 26px);\n }\n}\n\n.hy-profile-page__person-about-text-toggle {\n @include font-size(15px, 22px);\n @include font-weight($regular);\n font-family: var(--main-font-family);\n color: var(--link-blue);\n background-color: transparent;\n border: 0;\n padding: 0;\n margin: 0;\n\n @include breakpoint($medium) {\n @include font-size(17px, 26px);\n }\n\n &:hover {\n cursor: pointer;\n }\n}\n\n.hy-profile-page__person-information {\n display: flex;\n flex-direction: column;\n gap: 16px;\n margin-bottom: 24px;\n\n @include breakpoint($medium) {\n flex-direction: row-reverse;\n align-items: center;\n margin-bottom: 40px;\n justify-content: flex-end;\n }\n}\n\n.hy-profile-page__image {\n aspect-ratio: 328 / 425;\n width: 100%;\n max-width: 328px;\n object-fit: cover;\n background-color: var(--grayscale-background-box);\n\n @include breakpoint($medium) {\n max-width: 194px;\n }\n}\n\n.hy-profile-page__contact-information {\n > h2 {\n @include font-size(26px, 32px);\n @include font-weight($bold);\n font-family: var(--main-font-family);\n letter-spacing: -0.52px;\n color: var(--grayscale-black);\n margin: 0 0 32px;\n\n @include breakpoint($medium) {\n @include font-size(34px, 40px);\n letter-spacing: -0.68px;\n }\n }\n}\n\n.hy-profile-page__name {\n @include font-size(32px, 38px);\n @include font-weight($bold);\n font-family: var(--main-font-family);\n letter-spacing: -0.8px;\n color: var(--grayscale-black);\n margin: 0 0 4px;\n text-transform: uppercase;\n\n @include breakpoint($wide) {\n @include font-size(46px, 54px);\n letter-spacing: -1.15px;\n margin: 0 0 8px;\n }\n\n @include breakpoint($fullhd) {\n @include font-size(52px, 60px);\n letter-spacing: -1.3px;\n }\n}\n\n.hy-profile-page__job-title {\n @include font-size(16px, 20px);\n @include font-weight($bold);\n font-family: var(--main-font-family);\n letter-spacing: -0.32px;\n color: var(--grayscale-black);\n margin: 0 0 4px;\n text-transform: capitalize;\n\n @include breakpoint($wide) {\n @include font-size(18px, 24px);\n letter-spacing: -0.36px;\n }\n}\n\n.hy-profile-page__additional-information {\n @include font-size(15px, 22px);\n @include font-weight($regular);\n font-family: var(--main-font-family);\n color: var(--grayscale-dark-text);\n margin: 0;\n\n @include breakpoint($wide) {\n @include font-size(17px, 26px);\n }\n}\n\n.hy-profile-page__person-content-container {\n display: none;\n margin-top: 32px;\n\n @include breakpoint($medium) {\n margin-top: 44px;\n }\n}\n\n.hy-profile-page__person-content-listing {\n display: grid;\n gap: 32px;\n list-style: none;\n padding: 0;\n margin: 0;\n}\n\n.hy-profile-page__person-content {\n > h2 {\n margin: 0 0 8px;\n\n a {\n @include font-size(18px, 24px);\n @include font-weight($bold);\n font-family: var(--main-font-family);\n letter-spacing: -0.36px;\n color: var(--link-blue);\n text-decoration: none;\n\n @include breakpoint($medium) {\n @include font-size(22px, 28px);\n letter-spacing: -0.44px;\n }\n }\n }\n\n > span,\n > p {\n @include font-size(15px, 22px);\n @include font-weight($regular);\n font-family: var(--main-font-family);\n color: var(--grayscale-dark-text);\n\n @include breakpoint($medium) {\n @include font-size(17px, 26px);\n letter-spacing: -0.44px;\n }\n }\n\n > p {\n margin: 8px 0 0;\n }\n}\n\n.hy-profile-page__loader {\n display: inline-block;\n position: relative;\n width: 80px;\n height: 80px;\n margin-top: 32px;\n\n &.visible {\n display: block;\n }\n\n &.hidden {\n display: none;\n }\n\n @include breakpoint($medium) {\n margin-top: 44px;\n }\n\n div {\n box-sizing: border-box;\n display: block;\n position: absolute;\n width: 64px;\n height: 64px;\n margin: 8px;\n border: 6px solid #fff;\n border-radius: 50%;\n animation: loader-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n border-color: var(--brand-main-light) transparent transparent transparent;\n\n &:nth-child(1) {\n animation-delay: -0.45s;\n }\n\n &:nth-child(2) {\n animation-delay: -0.3s;\n }\n\n &:nth-child(3) {\n animation-delay: -0.15s;\n }\n }\n}\n\n@keyframes loader-ring {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.hidden {\n display: none;\n visibility: hidden;\n}\n","import {Component, Host, h, Prop, State, Fragment} from '@stencil/core';\nimport {CtaLinkButtonVariants} from '../../utils/utils';\n\nlet timer;\n@Component({\n tag: 'hy-person-profile',\n shadow: false,\n styleUrl: 'person-profile.scss',\n})\nexport class PersonProfile {\n @Prop() personDataJson: string;\n @Prop() showFullAboutText: string;\n @Prop() hideFullAboutText: string;\n @Prop() organizationItemsLabelText: string;\n @Prop() peopleFinderReturnLink: string;\n @Prop() peopleFinderReturnLabel: string;\n\n @State() isFullAboutTextHidden: boolean = false;\n @State() viewportSize: number;\n\n componentWillLoad() {\n this.viewportSize = window.innerWidth;\n }\n\n toggleShowFullAboutText() {\n this.isFullAboutTextHidden = !this.isFullAboutTextHidden;\n }\n\n disconnectedCallback() {\n clearTimeout(timer);\n }\n\n render() {\n const {\n name,\n job_title,\n additional_information,\n image_url,\n contact_information,\n organization_units,\n about,\n research,\n person_content,\n } = JSON.parse(this.personDataJson);\n\n const {organizations, research_organizations} = organization_units.items;\n\n const aboutDescriptionTextDestructured = about.description;\n\n const aboutDescriptionLength = aboutDescriptionTextDestructured.length;\n\n let trimmedAboutDescription = '';\n\n if (aboutDescriptionLength > 650) {\n if (this.isFullAboutTextHidden) {\n const ellipsisTextArray = aboutDescriptionTextDestructured + '...';\n\n trimmedAboutDescription = ellipsisTextArray;\n } else {\n const ellipsisTextArray = aboutDescriptionTextDestructured.substring(0, 650) + '...';\n\n trimmedAboutDescription = ellipsisTextArray;\n }\n }\n\n window.addEventListener('resize', () => {\n clearTimeout(timer);\n timer = setTimeout(() => {\n this.viewportSize = window.innerWidth;\n }, 250);\n });\n\n const research_portal_title = `${research.research_portal_label}: ${name}`;\n return (\n <Host>\n <section class=\"hy-profile-page\">\n <a href={this.peopleFinderReturnLink} class=\"hy-profile-page__back-button\">\n <hy-icon icon={'hy-icon-arrow-left'} size={24} />\n <span>{this.peopleFinderReturnLabel}</span>\n </a>\n <section class=\"hy-profile-page__section\">\n <div class=\"hy-profile-page__person-information\">\n <div>\n <h1 class=\"hy-profile-page__name\">{name}</h1>\n {job_title && <p class=\"hy-profile-page__job-title\">{job_title}</p>}\n {additional_information && (\n <p class=\"hy-profile-page__additional-information\">{additional_information}</p>\n )}\n </div>\n {image_url ? (\n <img src={image_url} alt=\"\" class=\"hy-profile-page__image\" />\n ) : (\n <div class=\"hy-profile-page__image\" aria-hidden=\"true\" />\n )}\n </div>\n {contact_information && (\n <div class=\"hy-profile-page__contact-information\">\n {contact_information.label && <h2>{contact_information.label}</h2>}\n {contact_information.items && (\n <hy-person-profile-listing\n items={contact_information.items}\n col=\"col-4\"\n withoutIcons\n textSpacingTight\n ></hy-person-profile-listing>\n )}\n </div>\n )}\n </section>\n {(organizations.items.length > 0 || Object.keys(research_organizations.items).length > 0) && (\n <section class=\"hy-profile-page__section\">\n {organization_units.label && <h2>{organization_units.label}</h2>}\n {organizations.items.length > 0 && (\n <section class=\"hy-profile-page__organization-units-section\">\n <h3>{organizations.label}</h3>\n <ul class=\"hy-profile-page__organizations\">\n <li>\n {organizations.items.map((item, index) => {\n return (\n <span>\n {index > 1 && <hy-icon icon={'hy-icon-caret-right'} size={10} />}\n {index !== 0 && (\n <span>\n <a\n href={\n organization_units.people_finder_path[organization_units.lang] +\n '?researchOrganizations.id[]=' +\n item.id\n }\n target={'_blank'}\n >\n {item.name[organization_units.lang]}\n </a>\n </span>\n )}\n </span>\n );\n })}\n </li>\n </ul>\n </section>\n )}\n {Object.keys(research_organizations.items).length > 0 && (\n <section class=\"hy-profile-page__organization-units-section\">\n <h3>{research_organizations.label}</h3>\n <ul class=\"hy-profile-page__research-organizations\">\n {Object.values(research_organizations.items).map(([...item]) => (\n <li>\n {item.map((item, index) => {\n return (\n <Fragment>\n {index > 1 && (\n <ul>\n <li>\n <span>\n <hy-icon icon={'hy-icon-caret-right'} size={10} />\n <span>\n <a\n href={\n organization_units.people_finder_path[organization_units.lang] +\n '?researchOrganizations.id[]=' +\n item.id\n }\n target={'_blank'}\n >\n {item.name[organization_units.lang]}\n </a>\n </span>\n </span>\n </li>\n </ul>\n )}\n {index == 1 && (\n <span>\n <a\n href={\n organization_units.people_finder_path[organization_units.lang] +\n '?researchOrganizations.id[]=' +\n item.id\n }\n target={'_blank'}\n >\n {item.name[organization_units.lang]}\n </a>\n </span>\n )}\n </Fragment>\n );\n })}\n </li>\n ))}\n </ul>\n </section>\n )}\n </section>\n )}\n {about && aboutDescriptionLength !== 0 && (\n <section class=\"hy-profile-page__section\">\n {about.description && (\n <Fragment>\n <h2>{about.label}</h2>\n <div\n class=\"hy-profile-page__person-about-text\"\n innerHTML={\n !this.isFullAboutTextHidden && aboutDescriptionLength > 650\n ? trimmedAboutDescription\n : about.description\n }\n ></div>\n </Fragment>\n )}\n {aboutDescriptionLength > 650 && (\n <button\n class=\"hy-profile-page__person-about-text-toggle\"\n onClick={() => this.toggleShowFullAboutText()}\n aria-expanded={`${this.isFullAboutTextHidden ? 'true' : 'false'}`}\n >\n {this.isFullAboutTextHidden ? this.hideFullAboutText : this.showFullAboutText}\n </button>\n )}\n </section>\n )}\n {((research && research.items.length > 0) || (person_content && person_content.research_url.length > 0)) && (\n <section class=\"hy-profile-page__section\">\n <div class=\"hy-profile-page__section__research_title\">\n {research.label && <h2>{research.label}</h2>}\n {research.label && person_content.research_url.length > 0 && (\n <hy-cta-button\n link-content={research_portal_title}\n sc-label={research_portal_title}\n url={person_content.research_url}\n is-external=\"true\"\n variant={CtaLinkButtonVariants.onWhiteBkgd}\n ></hy-cta-button>\n )}\n </div>\n\n {research.items && (\n <hy-person-profile-listing\n items={research.items}\n col=\"col-1\"\n textSpacingTight\n is-research\n inline\n ></hy-person-profile-listing>\n )}\n\n {person_content.research_url.length > 0 && (\n <div class=\"hy-profile-page__loader\" role=\"presentation\">\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n </div>\n )}\n\n {person_content.research_url.length > 0 && this.viewportSize < 768 && (\n <div class=\"hy-profile-page__person-content-container\">\n <hy-accordion-container accordionid=\"accordion-container-person-content\">\n {person_content.publications && (\n <hy-accordion-item\n data-accordion-id={'publications'}\n accordiontitle={person_content.publications.label}\n ></hy-accordion-item>\n )}\n {person_content.projects && (\n <hy-accordion-item\n data-accordion-id={'projects'}\n accordiontitle={person_content.projects.label}\n ></hy-accordion-item>\n )}\n {person_content.activities && (\n <hy-accordion-item\n data-accordion-id={'activities'}\n accordiontitle={person_content.activities.label}\n ></hy-accordion-item>\n )}\n </hy-accordion-container>\n </div>\n )}\n {person_content.research_url.length > 0 && this.viewportSize >= 768 && (\n <div class=\"hy-profile-page__person-content-container\">\n <hy-tabs tab-id=\"tabs-container-person-content\">\n {person_content.publications && (\n <hy-tabs-item\n data-tab-id={'publications'}\n tab-title={person_content.publications.label}\n ></hy-tabs-item>\n )}\n {person_content.projects && (\n <hy-tabs-item data-tab-id={'projects'} tab-title={person_content.projects.label}></hy-tabs-item>\n )}\n {person_content.activities && (\n <hy-tabs-item\n data-tab-id={'activities'}\n tab-title={person_content.activities.label}\n ></hy-tabs-item>\n )}\n </hy-tabs>\n </div>\n )}\n </section>\n )}\n </section>\n </Host>\n );\n }\n}\n",".hy-person-profile-listing {\n font-family: var(--main-font-family);\n padding: 0;\n margin: 0;\n list-style: none;\n display: grid;\n gap: 24px;\n\n @include breakpoint($medium) {\n gap: 2px 24px;\n }\n\n &.col-2 {\n @include breakpoint($fullhd) {\n grid-template-columns: repeat(2, 50%);\n }\n }\n\n &.col-4 {\n gap: 32px 24px;\n\n @include breakpoint($medium) {\n grid-template-columns: repeat(2, 50%);\n }\n\n @include breakpoint($wide) {\n grid-template-columns: repeat(3, calc(100% / 3));\n }\n\n @include breakpoint($fullhd) {\n grid-template-columns: repeat(4, 25%);\n }\n }\n}\n\n.hy-person-profile-listing__label {\n @include font-size(15px, 18px);\n @include font-weight($bold);\n letter-spacing: -0.28px;\n color: var(--grayscale-black);\n margin: 0 0 8px;\n\n @include breakpoint($medium) {\n @include font-size(17px, 20px);\n letter-spacing: -0.32px;\n }\n}\n\n.hy-person-profile-listing__items {\n margin: 0;\n padding: 0;\n list-style: none;\n display: grid;\n gap: 8px;\n\n .is-inline & {\n display: inline-flex;\n flex-wrap: wrap;\n gap: 0;\n }\n\n .text-tight & {\n gap: 0;\n }\n}\n\n.hy-person-profile-listing__item {\n @include font-size(15px, 22px);\n @include font-weight($regular);\n color: var(--grayscale-black);\n display: inline-flex;\n\n @include breakpoint($medium) {\n @include font-size(17px, 26px);\n }\n\n a {\n text-decoration: none;\n color: var(--link-blue);\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n hy-icon {\n display: none !important;\n justify-content: center;\n align-items: center;\n height: 28px;\n width: 28px;\n\n @include breakpoint($medium) {\n display: inline-flex !important;\n }\n\n .without-icons & {\n display: none !important;\n }\n }\n}\n","import {Component, Host, h, Prop} from '@stencil/core';\n\nexport type personProfileListingItems = [\n {\n label: string;\n items: string[];\n }\n];\n\n@Component({\n tag: 'hy-person-profile-listing',\n shadow: false,\n styleUrl: 'person-profile-listing.scss',\n})\nexport class PersonProfile {\n @Prop() items: personProfileListingItems;\n @Prop() col?: 'col-1' | 'col-2' | 'col-4' = 'col-2';\n @Prop() inline?: boolean;\n @Prop() withoutIcons?: boolean;\n @Prop() textSpacingTight?: boolean;\n @Prop() isResearch: boolean = false;\n\n render() {\n return (\n <Host>\n <ul\n class={`hy-person-profile-listing ${this.col} ${this.inline ? 'is-inline' : ''} ${\n this.withoutIcons ? 'without-icons' : ''\n } ${this.textSpacingTight ? 'text-tight' : ''}`}\n >\n {this.isResearch && <h3 class=\"hy-person-profile-listing__label\">{this.items[0].label}</h3>}\n {this.items.map(({label, items}) => {\n if ((items as any).filter(({label}) => label !== '').length > 0) {\n return (\n <li>\n {!this.isResearch && <h3 class=\"hy-person-profile-listing__label\">{label}</h3>}\n\n <ul class=\"hy-person-profile-listing__items\">\n {(items as any).map(({label, url}, index) => {\n if (url) {\n return (\n <li class=\"hy-person-profile-listing__item\">\n <a href={url}>\n {index !== 0 && <hy-icon icon={'hy-icon-caret-right'} size={10} />}\n <span>{label}</span>\n </a>\n </li>\n );\n }\n\n return (\n <li class=\"hy-person-profile-listing__item\">\n {index !== 0 && <hy-icon icon={'hy-icon-caret-right'} size={10} />}\n <span>{label}</span>\n </li>\n );\n })}\n </ul>\n </li>\n );\n }\n })}\n </ul>\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-process {\n display: block;\n justify-content: center;\n max-width: 30rem;\n margin-right: auto;\n margin-left: auto;\n width: 100%;\n\n @include breakpoint($narrow) {\n display: flex;\n flex-wrap: wrap;\n justify-content: left;\n max-width: 60rem;\n width: 100%;\n }\n @include breakpoint($wide) {\n max-width: 75rem;\n }\n}\n\n.hy-process.small {\n .box {\n display: block;\n margin: 1%;\n @include breakpoint($narrow) {\n flex-grow: 1;\n max-width: 48%;\n padding-bottom: 10px;\n width: 48%;\n }\n @include breakpoint($wide) {\n flex-grow: 1;\n max-width: 23%;\n width: 23%;\n }\n }\n}\n\n.hy-process.big {\n .box {\n display: block;\n margin: 1%;\n @include breakpoint($narrow) {\n flex-grow: 1;\n max-width: 48%;\n padding-bottom: 10px;\n width: 48%;\n }\n @include breakpoint($wide) {\n flex-grow: 1;\n max-width: 31%;\n width: 31%;\n }\n }\n}\n\n.hy-process::after {\n clear: both;\n}\n","export interface ProcessFlowBoxValue {\n heading: string;\n description: string;\n step: string;\n}\n\nimport {Component, ComponentInterface, Prop, h, Element} from '@stencil/core';\nimport {ProcessFlowBoxVariants} from '../../utils/utils';\nimport {jsonParserWorker} from '../../global/globalScript';\n\n@Component({\n tag: 'hy-process',\n styleUrl: 'process.scss',\n shadow: true,\n})\nexport class Process implements ComponentInterface {\n @Element() el: HTMLElement;\n @Prop() headerstyle: string = 'common';\n @Prop() numberTerm: string;\n private _dataItems: ProcessFlowBoxValue[];\n @Prop() dataItems: ProcessFlowBoxValue[] | string;\n\n async componentWillLoad() {\n this._dataItems = await jsonParserWorker(this.dataItems);\n }\n\n componentDidLoad() {\n let hyMainDiv = this.el.closest('.hy-main');\n if (hyMainDiv) {\n if (!hyMainDiv.classList.contains('with-sidebar')) {\n this.headerstyle = 'large';\n }\n }\n }\n\n render() {\n /*\n - Logic:\n - 3 items: big\n - 4 items: small\n - 5 items: big\n - 6 items: big\n - 7 items: small\n - 8 items: small\n - 9 items: big\n * */\n const bigVariants = [3, 5, 6, 9];\n const processVariant = bigVariants.includes(this._dataItems.length)\n ? ProcessFlowBoxVariants.default\n : ProcessFlowBoxVariants.small;\n\n const itemsPerRow = processVariant == ProcessFlowBoxVariants.small ? 4 : 3;\n const classAttributes = [processVariant, 'hy-process', `hy-process__${this.headerstyle}`].join(' ');\n const classItem = 'box';\n var stepState;\n\n return [\n <div class={classAttributes}>\n {this._dataItems.map((x, index) => {\n index % itemsPerRow == 0 ? (stepState = 'first') : (stepState = 'default');\n return (\n <hy-process-flow-box\n class={classItem}\n variant={processVariant}\n box-number={index + 1}\n box-title={x.heading}\n box-description={x.description}\n intermediate-step-title={x.step}\n step-state={stepState}\n number-term={this.numberTerm}\n />\n );\n })}\n </div>,\n ];\n }\n}\n",":host {\n display: block;\n}\n\n.hy-process-flow-box {\n height: calc(100% - 32px);\n position: relative;\n\n &__step__container {\n bottom: unset;\n display: grid;\n height: 82px;\n place-items: center;\n position: absolute;\n top: -35px;\n width: 138px;\n z-index: 1;\n\n @include breakpoint($narrow) {\n bottom: -62px;\n display: grid;\n height: 60px;\n top: unset;\n width: 210px;\n }\n\n svg polygon {\n fill: var(--grayscale-background-arrow);\n }\n\n svg.mobile {\n display: block;\n\n @include breakpoint($narrow) {\n display: none;\n }\n }\n\n svg.desktop {\n display: none;\n\n @include breakpoint($narrow) {\n display: block;\n }\n }\n }\n\n .first.even.hy-process-flow-box__step__container {\n left: calc(50% - 69px + 16px);\n\n @include breakpoint($narrow) {\n left: -90px;\n }\n\n @include breakpoint($wide) {\n left: 0;\n }\n }\n\n .first.odd.hy-process-flow-box__step__container {\n left: calc(50% - 69px + 16px);\n\n @include breakpoint($narrow) {\n left: 0;\n }\n }\n\n :not(.first).even.hy-process-flow-box__step__container {\n left: calc(50% - 69px + 16px);\n\n @include breakpoint($narrow) {\n left: -90px;\n }\n }\n\n :not(.first).odd.hy-process-flow-box__step__container {\n left: calc(50% - 69px + 16px);\n\n @include breakpoint($narrow) {\n left: 0;\n }\n\n @include breakpoint($wide) {\n left: -90px;\n }\n }\n\n &__step {\n background-color: transparent;\n color: var(--grayscale-black);\n font-family: var(--main-font-family);\n font-size: 16px;\n font-weight: 600;\n hyphens: auto;\n letter-spacing: 0;\n line-height: 22px;\n padding: 19px 17px;\n position: absolute;\n text-align: center;\n word-break: break-word;\n z-index: 11;\n\n @include breakpoint($narrow) {\n left: 0;\n max-width: 175px;\n padding: 8px 23px 8px 14px;\n }\n }\n\n &__number__container {\n display: grid;\n height: 64px;\n place-items: center;\n position: relative;\n width: 64px;\n z-index: 2;\n }\n\n &__number {\n background-color: var(--brand-main-light);\n color: var(--grayscale-white);\n display: grid;\n font-family: var(--main-font-family);\n font-size: 36px;\n font-weight: 600;\n height: 48px;\n letter-spacing: 0;\n line-height: 49px;\n margin: 0;\n padding: 0;\n place-items: center;\n position: relative;\n width: 48px;\n\n &::after {\n content: '';\n height: 48px;\n left: -6px;\n position: absolute;\n width: 48px;\n }\n }\n\n &__content.small {\n padding: 16px 32px;\n padding-bottom: 64px;\n\n @include breakpoint($wide) {\n padding: 20px;\n padding-bottom: 64px;\n }\n }\n\n &__content.big {\n padding: 24px 32px;\n padding-bottom: 64px;\n }\n\n &__content {\n background-color: var(--grayscale-background-box);\n height: 100%;\n margin-left: 32px;\n margin-top: -32px;\n position: relative;\n }\n\n &__title {\n color: var(--brand-main-nearly-black);\n font-family: var(--main-font-family);\n font-size: 26px;\n font-weight: 600;\n letter-spacing: -0.82px;\n line-height: 32px;\n hyphens: auto;\n margin-bottom: 16px;\n margin-top: 0;\n word-break: break-word;\n }\n\n &__description {\n color: var(--grayscale-dark);\n font-family: var(--main-font-family);\n font-size: 16px;\n letter-spacing: 0;\n line-height: 24px;\n }\n}\n\n.small.hy-process-flow-box {\n .small.hy-process-flow-box__number__container {\n height: 56px;\n width: 56px;\n\n .hy-process-flow-box__number {\n font-size: 28px;\n height: 40px;\n line-height: 40px;\n width: 40px;\n }\n }\n}\n","import {Component, ComponentInterface, Prop, h, Host} from '@stencil/core';\nimport {ProcessFlowBoxVariants} from '../../utils/utils';\nimport {ProcessFlowBoxStepStates} from '../../utils/utils';\n\n@Component({\n tag: 'hy-process-flow-box',\n styleUrl: 'process-flow-box.scss',\n shadow: true,\n})\nexport class ProcessFlowBox implements ComponentInterface {\n @Prop() variant: ProcessFlowBoxVariants = ProcessFlowBoxVariants.default;\n @Prop() boxNumber: string;\n @Prop() boxTitle: string;\n @Prop() boxDescription: string;\n @Prop() intermediateStepTitle: string = '';\n @Prop() stepState: ProcessFlowBoxStepStates = 'default';\n @Prop() numberTerm: string;\n render() {\n const classVariant = [this.variant, 'hy-process-flow-box'].join(' ');\n const classContentVariant = [this.variant, 'hy-process-flow-box__content'].join(' ');\n\n const classIsEven = parseInt(this.boxNumber) % 2 == 0 ? 'even' : 'odd';\n\n const classNumberVariant = [this.variant, 'hy-process-flow-box__number__container'].join(' ');\n const classStepVariant = [this.variant, this.stepState, classIsEven, 'hy-process-flow-box__step__container'].join(\n ' '\n );\n\n return (\n <Host>\n <div class={classVariant}>\n {this.intermediateStepTitle && (\n <div class={classStepVariant}>\n <svg class=\"desktop\" width=\"210\" height=\"60\">\n <polygon points=\"0 0, 0 60, 190 60, 210 30, 190 0, 0 0\" />\n </svg>\n <svg class=\"mobile\" width=\"138\" height=\"82\">\n <polygon points=\"0 0, 69 15, 138 0, 138 50, 69 82, 0 50\" />\n </svg>\n <h2 class=\"hy-process-flow-box__step\">{this.intermediateStepTitle}</h2>\n </div>\n )}\n <div class={classNumberVariant}>\n <h2\n class=\"hy-process-flow-box__number\"\n aria-label={`${this.numberTerm && this.numberTerm} ${this.boxNumber}`}\n >\n <div class=\"hy-process-flow-box__number-title\">{this.boxNumber}</div>\n </h2>\n </div>\n <div class={classContentVariant}>\n <h3 class=\"hy-process-flow-box__title\" innerHTML={this.boxTitle}></h3>\n <div class=\"hy-process-flow-box__description\" innerHTML={this.boxDescription}></div>\n </div>\n </div>\n <hy-box mb=\"1.75, 1.75, 2, 2.5\" />\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-prominent-image {\n position: relative;\n\n &__text {\n // font: h5 small size\n @include font-size(16px, 20px);\n background-color: var(--grayscale-black);\n bottom: 12px;\n color: var(--grayscale-white);\n font-family: var(--main-font-family);\n font-weight: bold;\n left: -8px;\n letter-spacing: -0.5px;\n max-width: 46%; // 5.5 columns\n padding: 6px 12px;\n position: absolute;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n // font: h4 small size\n @include font-size(18px, 24px);\n bottom: 20px;\n left: -16px;\n letter-spacing: -0.56px;\n max-width: 58%; // 7 columns\n padding: 12px 24px;\n position: absolute;\n }\n\n @include breakpoint($wide) {\n // font: h4 medium size\n @include font-size(22px, 28px);\n bottom: 24px;\n left: -16px;\n letter-spacing: -0.69px;\n padding: 16px 24px;\n position: absolute;\n }\n @include breakpoint($xlarge) {\n // font: h3 medium size\n @include font-size(26px, 32px);\n bottom: 28px;\n left: -16px;\n letter-spacing: -0.8px;\n padding: 20px 24px;\n position: absolute;\n }\n\n &__large {\n @include breakpoint($extrawide) {\n // font: h3 medium size\n @include font-size(26px, 32px);\n bottom: 28px;\n left: -16px;\n letter-spacing: -0.8px;\n padding: 20px 24px;\n position: absolute;\n }\n }\n }\n}\n","export interface ImageSrcSet {\n src: any;\n media: string;\n type: string;\n sizes: string | null;\n}\n\nimport {Component, Element, Host, h, Prop} from '@stencil/core';\n\n@Component({\n tag: 'hy-prominent-image',\n styleUrl: 'hy-prominent-image.scss',\n shadow: true,\n})\nexport class HyProminentImage {\n @Prop() textTitle?: string;\n @Prop() imageUrl?: string;\n @Prop() imageAlt: string = '';\n @Prop() headerstyle: string = 'common';\n @Prop() sourceSet: ImageSrcSet[] | string;\n @Element() el: HTMLElement;\n\n componentDidLoad() {\n let hyMainDiv = this.el.closest('.hy-main');\n if (hyMainDiv) {\n if (!hyMainDiv.classList.contains('with-sidebar')) {\n this.headerstyle = 'large';\n }\n }\n }\n\n render() {\n const prominentImageClass = [\n 'hy-prominent-image',\n this.headerstyle,\n `hy-prominent-image__${this.headerstyle}`,\n ].join(' ');\n\n const prominentImageText = ['hy-prominent-image__text', `hy-prominent-image__text__${this.headerstyle}`].join(' ');\n\n return (\n <Host>\n <div class={prominentImageClass}>\n <div class=\"hy-prominent-image__image\">\n <hy-image\n source-set={this.sourceSet}\n image-url={this.imageUrl}\n image-alt={this.imageAlt}\n aspectRatioWidth={2}\n aspectRatioHeight={1}\n />\n </div>\n {this.textTitle && <div class={prominentImageText}>{this.textTitle}</div>}\n </div>\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-quote {\n display: flex;\n flex-direction: row;\n padding: 0 8px;\n\n @include breakpoint($narrow) {\n flex-direction: column;\n padding: 0;\n }\n\n @include breakpoint($wide) {\n flex-direction: row;\n }\n\n &__icon-wrapper {\n margin-right: 20px;\n\n @include breakpoint($narrow) {\n margin-right: 0;\n }\n\n @include breakpoint($wide) {\n margin-right: 24px;\n }\n\n @include breakpoint($xlarge) {\n margin-right: 32px;\n }\n }\n\n &__icon {\n svg {\n fill: var(--brand-main-light);\n height: 32px;\n width: 32px;\n\n @include breakpoint($wide) {\n height: 40px;\n width: 40px;\n }\n @include breakpoint($xlarge) {\n height: 48px;\n width: 48px;\n }\n }\n }\n\n &__text {\n @include font-size(16px, 24px);\n\n color: var(--grayscale-black);\n font-family: var(--main-font-family);\n font-weight: 600;\n letter-spacing: -0.1px;\n padding-bottom: 16px;\n padding-top: 0;\n\n @include breakpoint($narrow) {\n @include font-size(18px, 28px);\n padding-top: 16px;\n }\n\n @include breakpoint($extrawide) {\n @include font-size(20px, 32px);\n padding-top: 0;\n }\n }\n\n &__signature:before {\n @include font-size(14px, 20px);\n display: inline-block;\n color: var(--grayscale-dark);\n content: '-';\n font-family: var(--main-font-family);\n letter-spacing: 0;\n padding-right: 3px;\n }\n\n &__signature {\n @include font-size(14px, 20px);\n color: var(--grayscale-dark);\n font-family: var(--main-font-family);\n letter-spacing: 0;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 24px);\n }\n }\n}\n","import {Component, Element, h, Prop} from '@stencil/core';\n\n@Component({\n tag: 'hy-quote',\n styleUrl: 'hy-quote.scss',\n shadow: true,\n})\nexport class HyQuote {\n @Prop() quoteSignature?: string;\n @Prop() headerstyle: string = 'common';\n @Element() el: HTMLElement;\n\n componentDidLoad() {\n let hyMainDiv = this.el.closest('.hy-main');\n if (hyMainDiv) {\n if (!hyMainDiv.classList.contains('with-sidebar')) {\n this.headerstyle = 'large';\n }\n }\n }\n\n render() {\n const quoteClass = ['hy-quote', this.headerstyle, `hy-quote__${this.headerstyle}`].join(' ');\n return (\n <div class={quoteClass}>\n <span class=\"hy-quote__icon-wrapper\">\n <div class=\"hy-quote__icon\">\n <hy-icon icon={'hy-icon-quote'} size={48} />\n </div>\n </span>\n <div class=\"hy-quote-text-wrapper\">\n <div class=\"hy-quote__text\">\n <slot></slot>\n </div>\n {this.quoteSignature && <div class=\"hy-quote__signature\">{this.quoteSignature}</div>}\n </div>\n </div>\n );\n }\n}\n","div.hy-row {\n display: block;\n}\n","import {Component, h, Prop} from '@stencil/core';\nimport {css} from 'emotion';\n\nconst createCss = (justify: string, align: string, margin: number) => {\n return css`\n display: flex;\n justify-content: ${justify};\n align-items: ${align};\n > * + * {\n margin-left: ${margin}rem;\n }\n `;\n};\n\n@Component({\n tag: 'hy-row',\n styleUrl: 'row.css',\n shadow: false\n})\nexport class Row {\n /**\n * justify-content property.\n */\n @Prop() justify: string = 'stretch';\n /**\n * justify-content property.\n */\n @Prop() align: string = 'center';\n /**\n * Left margin to be added to adjacent items.\n */\n @Prop() margin: number = 1;\n render() {\n return (\n <div class={createCss(this.justify, this.align, this.margin)}>\n <slot></slot>\n </div>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.search-field {\n display: inline-block;\n width: 100%;\n\n @include breakpoint($narrow) {\n min-width: 48.3%;\n }\n\n @include breakpoint($extrawide) {\n min-width: 23.03%;\n }\n}\n\n.search-field__label {\n @include font-size(14px, 20px);\n display: block;\n font-family: var(--main-font-family);\n letter-spacing: -0.44px;\n margin-bottom: 8px;\n position: relative;\n text-decoration: none;\n width: 100%;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 20px);\n }\n\n &.label-large {\n @include font-size(22px, 28px);\n letter-spacing: -0.7px;\n margin-bottom: 0.75rem;\n\n @include breakpoint($narrow) {\n @include font-size(26px, 32px);\n letter-spacing: -0.8px;\n margin-bottom: 1.25rem;\n }\n }\n\n &.bold {\n @include font-weight($bold);\n }\n}\n\n.search-field__actions {\n align-items: stretch;\n display: flex;\n}\n\n.search-field__wrapper {\n flex-grow: 1;\n position: relative;\n}\n\n.search-field__input {\n @include font-size(16px, 24px);\n border-radius: 0;\n border: 1px solid var(--grayscale-medium-dark);\n caret-color: var(--brand-main-light);\n font-weight: bold;\n height: 40px;\n letter-spacing: normal;\n padding: 8px 12px;\n width: 100%;\n zoom: 0;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 24px);\n height: 44px;\n }\n\n @include breakpoint($extrawide) {\n height: 48px;\n }\n\n &::placeholder {\n @include font-size(16px, 24px);\n color: var(--grayscale-dark);\n font-weight: normal;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 24px);\n }\n }\n\n &:hover {\n border-color: var(--brand-main-light);\n }\n\n &:focus {\n border-color: var(--brand-main-light);\n border-style: solid inset solid solid;\n border-width: 2px;\n outline: 0;\n }\n}\n\n.search-field__reset {\n align-items: center;\n background-color: transparent;\n border: 0;\n display: inline-flex;\n height: 40px;\n justify-content: center;\n position: absolute;\n right: 0;\n top: 50%;\n transform: translateY(-50%);\n width: 40px;\n\n @include breakpoint($narrow) {\n height: 44px;\n width: 44px;\n }\n\n @include breakpoint($extrawide) {\n height: 48px;\n width: 48px;\n }\n\n svg {\n fill: var(--grayscale-dark);\n\n @include breakpoint($extrawide) {\n height: 16px;\n width: 16px;\n }\n }\n\n &:hover {\n cursor: pointer;\n }\n\n &:focus {\n outline-color: var(--brand-main-light);\n }\n}\n\n.search-field__submit {\n align-items: center;\n background-color: var(--brand-main-light);\n border: 0;\n display: inline-flex;\n flex-shrink: 0;\n height: 40px;\n justify-content: center;\n width: 40px;\n\n @include breakpoint($narrow) {\n height: 44px;\n width: 44px;\n }\n\n @include breakpoint($extrawide) {\n height: 48px;\n width: 48px;\n }\n\n svg {\n @include breakpoint($narrow) {\n height: 20px;\n width: 20px;\n }\n\n @include breakpoint($extrawide) {\n height: 22px;\n width: 22px;\n }\n }\n\n &:hover {\n cursor: pointer;\n }\n s &:focus {\n outline-color: var(--brand-main-light);\n }\n}\n","import {Component, Prop, h, State, Element, Host} from '@stencil/core';\nimport {ColorVariant} from '../../utils/utils';\n\n@Component({\n tag: 'hy-search-field',\n styleUrl: 'hy-search-field.scss',\n shadow: false,\n})\nexport class HySearchField {\n @Element() el: HTMLElement;\n @Prop() label: string;\n @Prop() isLabelBold: boolean = false;\n @Prop() labelLarge: boolean = false;\n @Prop() isLuomusSearch: boolean = false;\n @Prop() placeholder: string = 'Type here...';\n @Prop() isLabelHidden?: boolean = false;\n @Prop() inputId: string;\n @Prop() prefillParameter: string = '';\n @State() isInputValueEmpty: boolean = true;\n\n componentDidLoad() {\n const searchInput = this.el.querySelector('.search-field__input');\n\n searchInput.addEventListener('keyup', (event) => {\n const {value} = event.target as HTMLInputElement;\n\n this.isInputValueEmpty = value.length > 0 ? false : true;\n });\n\n if (this.prefillParameter.length > 0) {\n if (window.location === undefined) return;\n\n const urlParams = new URLSearchParams(window.location.search);\n const searchValue = urlParams.get(`${this.prefillParameter}`);\n const searchInput = this.el.querySelector('.search-field__input') as HTMLInputElement;\n searchInput.value = searchValue && searchValue.length > 0 ? searchValue : '';\n this.isInputValueEmpty = false;\n }\n }\n\n handleInputReset() {\n this.isInputValueEmpty = true;\n const searchInput = this.el.querySelector('.search-field__input') as HTMLInputElement;\n searchInput.value = '';\n searchInput.focus();\n }\n\n render() {\n return (\n <Host class=\"search-field\">\n {!this.isLuomusSearch && (\n <label\n htmlFor={this.inputId}\n class={`search-field__label \n ${this.isLabelHidden ? 'visually-hidden' : ''} \n ${this.labelLarge ? 'label-large' : ''} \n ${this.isLabelBold ? 'bold' : ''}`}\n >\n {this.label}\n </label>\n )}\n <div class=\"search-field__actions\">\n <div class=\"search-field__wrapper\">\n {this.isLuomusSearch && (\n <input\n id={this.inputId}\n name=\"search\"\n data-drupal-selector=\"edit-search\"\n value=\"\"\n type=\"text\"\n placeholder={this.placeholder}\n class=\"search-field__input\"\n />\n )}\n {!this.isLuomusSearch && (\n <input id={this.inputId} type=\"text\" placeholder={this.placeholder} class=\"search-field__input\" />\n )}\n {!this.isInputValueEmpty && (\n <button\n type=\"button\"\n class=\"search-field__reset\"\n aria-label=\"Reset\"\n onClick={() => this.handleInputReset()}\n >\n <hy-icon icon={'hy-icon-remove'} size={14} aria-hidden=\"true\" />\n </button>\n )}\n </div>\n {this.isLuomusSearch && (\n <button\n type=\"submit\"\n class=\"search-field__submit\"\n aria-label=\"Search\"\n data-drupal-selector=\"edit-submit-luomus-search\"\n id=\"edit-submit-luomus-search\"\n value=\"Apply\"\n >\n <hy-icon icon={'hy-icon-search'} size={18} fill={ColorVariant.white} aria-hidden=\"true\" />\n </button>\n )}\n {!this.isLuomusSearch && (\n <button type=\"submit\" class=\"search-field__submit\" aria-label=\"Search\">\n <hy-icon icon={'hy-icon-search'} size={18} fill={ColorVariant.white} aria-hidden=\"true\" />\n </button>\n )}\n </div>\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-shortcuts {\n overflow: hidden;\n\n .shortcut-link-container {\n display: flex;\n flex-wrap: wrap;\n margin: 0 calc(#{var(--gutter-mobile)}* -1);\n\n @include breakpoint($narrow) {\n margin: 0 calc(#{var(--gutter-narrow)}* -1);\n }\n @include breakpoint($wide) {\n margin: 0 calc(#{var(--gutter-wide)}* -1);\n }\n\n .shortcut-link-wrapper {\n min-height: 62px;\n padding: 0 var(--gutter-mobile);\n\n @include breakpoint($narrow) {\n min-height: 70px;\n padding: 0 var(--gutter-narrow);\n }\n @include breakpoint($wide) {\n min-height: 82px;\n padding: 0 var(--gutter-wide);\n }\n }\n\n .shortcut-link-wrapper.box-3 {\n width: 100%;\n\n @include breakpoint($narrow) {\n width: 33.33%;\n }\n }\n\n .shortcut-link-wrapper.box-4 {\n width: 50%;\n\n @include breakpoint($narrow) {\n width: 25%;\n }\n }\n\n .shortcut-link-wrapper.box-3.first a.shortcut-link,\n .shortcut-link-wrapper.box-4.first a.shortcut-link {\n // mobile\n border-top: 2.5px solid var(--brand-main-nearly-black);\n\n @include breakpoint($narrow) {\n // tablet\n border-top: 3px solid var(--brand-main-nearly-black);\n }\n }\n\n a.shortcut-link {\n align-items: center;\n background-color: transparent;\n // mobile\n border-bottom: 2.5px solid var(--brand-main-nearly-black);\n color: var(--brand-main-nearly-black);\n cursor: pointer;\n display: flex;\n font-family: var(--main-font-family);\n font-size: 14px;\n font-weight: 600;\n hyphens: auto;\n justify-content: space-between;\n height: 100%;\n letter-spacing: -0.44px;\n line-height: 18px;\n min-height: 70px;\n position: relative;\n text-decoration: none;\n word-break: break-word;\n\n @include breakpoint($narrow) {\n // tablet\n border-bottom: 3px solid var(--brand-main-nearly-black);\n border-top: 3px solid var(--brand-main-nearly-black);\n font-size: 16px;\n letter-spacing: -0.5px;\n line-height: 18px;\n min-height: 70px;\n }\n @include breakpoint($wide) {\n font-size: 16px;\n letter-spacing: -0.5px;\n line-height: 22px;\n min-height: 82px;\n }\n\n .link-icon {\n padding: 0 0 0 8px;\n @include breakpoint($narrow) {\n padding: 0 0 0 12px;\n }\n @include breakpoint($wide) {\n padding: 0 4px 0 22px;\n }\n\n svg {\n height: 20px;\n fill: var(--brand-main-light);\n width: 20px;\n @include breakpoint($narrow) {\n height: 24px;\n width: 24px;\n }\n @include breakpoint($wide) {\n height: 28px;\n width: 28px;\n }\n }\n }\n\n &:hover {\n color: var(--brand-main);\n svg {\n fill: var(--brand-main);\n }\n }\n }\n }\n}\n","export interface ShortcutLinkValue {\n heading: string;\n url: string;\n isExternal: boolean;\n ariaLabel: string;\n}\n\nimport {Component, ComponentInterface, Element, h, Host, Prop, Watch} from '@stencil/core';\nimport {HeadingVarians} from '../../utils/utils';\n\n@Component({\n tag: 'hy-shortcuts',\n styleUrl: 'hy-shortcuts.scss',\n shadow: false,\n})\nexport class HyShortcuts implements ComponentInterface {\n @Element() el: HTMLElement;\n private _dataItems: ShortcutLinkValue[];\n @Prop() dataItems: ShortcutLinkValue[] | string;\n @Prop() listHeading: string = '';\n @Prop() headerstyle: string = 'default';\n\n @Watch('dataItems')\n arrayDataWatcher(newValue: ShortcutLinkValue[] | string) {\n if (typeof newValue === 'string') {\n this._dataItems = JSON.parse(newValue);\n } else {\n this._dataItems = newValue;\n }\n }\n componentWillLoad() {\n this.arrayDataWatcher(this.dataItems);\n }\n\n componentDidLoad() {\n let hyMainDiv = this.el.closest('.hy-main');\n if (hyMainDiv) {\n if (!hyMainDiv.classList.contains('with-sidebar')) {\n this.headerstyle = 'large';\n }\n }\n }\n\n render() {\n const classAttributes = ['hy-shortcuts', `hy-shortcuts__${this.headerstyle}`].join(' ');\n const textClassAttributes = ['text'].join(' ');\n const iconClassAttributes = ['link-icon'].join(' ');\n\n let classItem = ['shortcut-link-wrapper', this._dataItems.length % 4 == 0 ? 'box-4' : 'box-3'].join(' ');\n\n return (\n <Host>\n <div class={classAttributes}>\n {this.listHeading.length > 0 && (\n <hy-heading class=\"list-title\" heading={HeadingVarians.h2}>\n {this.listHeading}\n </hy-heading>\n )}\n <div class=\"shortcut-link-container\">\n {this._dataItems.map((x, index) => {\n let isFirstLine = '';\n if (this._dataItems.length % 4 == 0) {\n isFirstLine = index == 0 || index == 1 ? 'first' : '';\n } else {\n isFirstLine = index == 0 ? 'first' : '';\n }\n let classLinkWrapper = classItem.concat(' ', isFirstLine);\n let target = x.isExternal ? '_blank' : '_self';\n\n return (\n <div class={classLinkWrapper}>\n <a aria-label={x.ariaLabel} class=\"shortcut-link\" href={x.url} target={target}>\n <span class={textClassAttributes}>{x.heading}</span>\n <span class={iconClassAttributes}>\n <hy-icon icon={'hy-icon-arrow-right'} size={28} />\n </span>\n </a>\n </div>\n );\n })}\n </div>\n </div>\n <hy-box mb=\"1.75, 1.75, 2, 2.5\" />\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-site-header {\n background-color: var(--grayscale-white);\n z-index: 100;\n border-bottom: 2px solid var(--grayscale-dark);\n transform: none;\n\n &:not(.is-at-top) {\n top: 0;\n transform: translateY(-100%);\n transition: all 0.2s ease-in-out;\n }\n\n @include breakpoint($extrawide) {\n border-bottom: 1px solid var(--grayscale-black);\n margin: 0 auto;\n max-width: $fullhd;\n }\n\n &.hy-site-header--sticky-active {\n transition: all 0.2s ease-in-out;\n box-shadow: rgba(14, 104, 139, 0.2) 0 20px 20px -20px;\n }\n\n &.hy-site-header--sticky-visible {\n left: 0;\n position: fixed;\n right: 0;\n top: 0;\n transform: translateY(0);\n transition: all 0.2s ease-in-out;\n transition-delay: 0.2s;\n\n &.hy-site-header--mobile {\n transform: none;\n }\n\n &.has-toolbar {\n top: 39px;\n\n &--large {\n top: 79px;\n }\n }\n }\n\n &.hy-site-header--sticky-hidden {\n top: 0;\n }\n\n &.is-group {\n hy-desktop-menu-links,\n .hy-site-header__menu-desktop {\n @include breakpoint($extrawide) {\n margin-left: -10px;\n }\n }\n }\n}\n\n.hy-site-header__container {\n padding: 0 8px;\n display: flex;\n justify-content: space-between;\n\n @include breakpoint($extrawide) {\n padding: 0 32px;\n }\n\n &.is-group {\n flex-wrap: wrap;\n justify-content: flex-start;\n\n @include breakpoint($extrawide) {\n min-height: 82px;\n }\n }\n}\n\n.hy-site-header__branding {\n padding: 12px 0;\n\n @include breakpoint($extrawide) {\n padding: 26px 0;\n }\n\n .hy-site-header__content-top & {\n padding: 8px 0;\n\n @include breakpoint($extrawide) {\n padding: 8px 0;\n }\n }\n\n // Research group label\n > p {\n @include font-size(12px, 14px);\n @include font-weight($regular);\n font-family: var(--main-font-family);\n color: var(--grayscale-dark-text);\n letter-spacing: -0.1px;\n margin-bottom: 4px;\n text-transform: uppercase;\n\n + a {\n min-height: auto;\n }\n\n @include breakpoint($extrawide) {\n margin-bottom: 8px;\n }\n }\n\n // Group name link\n > a {\n @include font-size(16px, 16px);\n @include font-weight($bold);\n font-family: var(--main-font-family);\n color: var(--brand-main-nearly-black);\n letter-spacing: -0.6px;\n text-transform: uppercase;\n text-decoration: none;\n min-height: 48px;\n display: inline-flex;\n align-items: center;\n\n @include breakpoint($extrawide) {\n @include font-size(26px, 30px);\n letter-spacing: -0.8px;\n min-height: auto;\n }\n\n img {\n height: 100%;\n max-height: 48px;\n\n @include breakpoint($extrawide) {\n transform: translateY(-10px);\n }\n }\n }\n\n // Main container\n .is-group:not(.is-research-group) > & {\n @include breakpoint($extrawide) {\n margin-right: 32px + 10px;\n padding-bottom: 0;\n margin-bottom: -10px;\n }\n }\n}\n\n.hy-site-header__actions {\n display: inline-grid;\n gap: 4px;\n grid-template-columns: repeat(3, auto);\n justify-content: flex-end;\n\n @include breakpoint($xlarge) {\n gap: 16px;\n }\n}\n\n.hy-site-header__menu-open-button {\n align-items: center;\n display: inline-flex;\n height: 100%;\n justify-content: center;\n width: 44px;\n background-color: transparent;\n border: 0;\n padding: 0;\n margin: 0;\n\n &[aria-expanded='true'] {\n @include font-size(16px, 18px);\n @include font-weight($bold);\n align-items: center;\n background-color: transparent;\n border: none;\n color: var(--brand-main);\n display: inline-flex;\n font-family: var(--main-font-family);\n height: auto;\n letter-spacing: -0.3px;\n margin-left: auto;\n margin-right: -16px;\n padding: 16px;\n position: fixed;\n right: 16px;\n top: 12px;\n z-index: 101;\n width: auto;\n\n &:hover {\n cursor: pointer;\n }\n\n hy-icon {\n margin-left: 8px;\n\n svg {\n fill: var(--brand-main);\n }\n }\n }\n}\n\n.hy-site-header__donate-link {\n @include font-size(12px, 24px);\n @include font-weight($regular);\n display: inline-grid;\n font-family: var(--main-font-family);\n align-items: center;\n gap: 4px;\n grid-template-columns: repeat(2, auto);\n color: var(--brand-main-nearly-black);\n letter-spacing: -0.5px;\n padding: 0;\n text-decoration: none;\n\n @include breakpoint($xlarge) {\n @include font-size(14px, 24px);\n }\n\n &:hover {\n color: var(--brand-main);\n cursor: pointer;\n\n svg {\n fill: var(--brand-main);\n }\n }\n\n &:focus {\n outline: solid 2px var(--additional-yellow);\n outline-offset: 2px;\n }\n\n .hy-site-header__content-top & {\n color: var(--grayscale-white);\n\n svg {\n fill: var(--grayscale-white);\n }\n\n &:hover {\n color: var(--grayscale-medium);\n cursor: pointer;\n\n svg {\n fill: var(--grayscale-medium);\n }\n }\n }\n}\n\n.hy-site-header__content-top {\n background-color: var(--grayscale-black);\n border-bottom: 2px solid rgb(000, 000, 000, 0.7);\n position: relative;\n}\n\n.hy-backdrop {\n bottom: 0;\n left: 0;\n position: fixed;\n right: 0;\n top: 0;\n visibility: hidden;\n\n &.is-active {\n background-color: rgba(0, 0, 0, 0.4);\n transition: background-color 300ms;\n visibility: visible;\n z-index: 99;\n }\n\n &.is-active-top {\n background-color: rgba(0, 0, 0, 0.4);\n transition: background-color 300ms;\n visibility: visible;\n z-index: 98;\n }\n}\n\n.hy-site-header__panel {\n background: var(--grayscale-white);\n bottom: 0;\n overflow: hidden;\n position: fixed;\n right: 0;\n top: 0;\n visibility: visible;\n width: 90%;\n z-index: 100;\n\n @include breakpoint($narrow) {\n width: 400px;\n }\n\n &[aria-hidden='true'] {\n visibility: hidden;\n padding: 0;\n width: 0;\n }\n}\n","export interface DesktopLinks {\n label: string;\n url: string;\n menuLinkId: string;\n}\nexport interface DonateLink {\n url: string;\n label: string;\n}\nexport interface ComponentLabels {\n open: string;\n close: string;\n expand?: string;\n label?: string;\n}\n\nlet clickTimer = null;\n\nimport {Component, Element, Event, EventEmitter, Fragment, h, Listen, Prop, State} from '@stencil/core';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport {MenuType, ColorVariant, SiteLogoSize} from '../../utils/utils';\nimport {jsonParserWorker} from '../../global/globalScript';\n\nlet clickTimeout = null;\n\n@Component({\n tag: 'hy-site-header',\n styleUrl: 'site-header.scss',\n shadow: false,\n})\nexport class SiteHeader {\n @Element() el: HTMLElement;\n @Prop() isGroup: boolean = false;\n @Prop() isLuomusGroup: boolean = false;\n @Prop() isBetaGroup: boolean = false;\n @Prop() researchGroupLabel: string = '';\n @Prop() groupType: string = '';\n @Prop() groupLogoUrl: string = '';\n @Prop() dataMenuLanguage: string;\n @Prop() dataMenuDonate: string;\n @Prop() dataSiteHeaderLabels: string;\n @Prop() dataSiteSearchLabels: string;\n @Prop() logoUrl?: string;\n @Prop() logoLabel?: string;\n @Prop() siteLabel?: string;\n @Prop() siteUrl?: string;\n @Prop() showSearchLabel: boolean = true;\n @Prop() noSearch: boolean = false;\n @Prop() menuLabel: string = 'Menu';\n @Prop() menuLabelOpen?: string;\n @Prop() menuLabelClose?: string;\n @Prop({reflect: true}) menuType: MenuType = null;\n\n @Prop() dataMainMenuLinks: DesktopLinks[] | string;\n @Prop() dataSearchTools: DesktopLinks[] | string;\n\n @State() isMobile: boolean;\n @State() isMenuOpen: boolean = false;\n @State() isDesktopMenuOpen: boolean = false;\n @State() isDesktopMenuDropdown: boolean = false;\n @State() isTopMenuOpen: boolean = false;\n @State() isBottomVisible: boolean = false;\n @State() isTopVisible: boolean = false;\n\n @Event() headerScrollUp: EventEmitter;\n @Event() headerScrollDown: EventEmitter;\n @Event() menuMobileToggled: EventEmitter;\n @Event() menuMobileTopToggled: EventEmitter;\n\n private ro: ResizeObserver;\n private bottomObserver: IntersectionObserver;\n private topObserver: IntersectionObserver;\n private donateLink: DonateLink[];\n private menuLabels: ComponentLabels[];\n private searchLabels: ComponentLabels[];\n private groupPages: ComponentLabels[];\n private languageLabels: ComponentLabels[];\n\n @State() lastScrollTop = 0;\n @State() delta = 50;\n @State() navbarHeight = 0;\n\n // Listener for toggling mobile menu panel on or off.\n @Listen('mobileMenuToggle') mobileMenuToggle() {\n this.isMenuOpen = !this.isMenuOpen;\n this.menuMobileToggled.emit();\n let bodyElement = document.getElementsByTagName('body')[0] as HTMLElement;\n\n if (this.isMenuOpen) {\n bodyElement.style.overflow = 'hidden';\n } else {\n bodyElement.style.overflow = 'initial';\n }\n }\n\n // Listener for toggling mobile menu top panel on or off.\n @Listen('mobileMenuTopToggle') mobileMenuTopToggle() {\n this.isTopMenuOpen = !this.isTopMenuOpen;\n this.menuMobileTopToggled.emit();\n }\n\n @Listen('menuToggled', {target: 'window'}) mainMenuToggled() {\n this.isDesktopMenuOpen = !this.isDesktopMenuOpen;\n }\n\n @Listen('scroll', {target: 'window'})\n handleScroll() {\n this.headerScrollHandler();\n }\n\n headerScrollHandler() {\n let topOffset = window.pageYOffset;\n if (Math.abs(this.lastScrollTop - topOffset) <= this.delta) {\n return;\n }\n\n if (topOffset > this.lastScrollTop && !this.isTopVisible) {\n this.toggleStickyness(false);\n this.headerScrollDown.emit();\n }\n // Scrolling up\n if (topOffset < this.lastScrollTop && !this.isTopVisible) {\n this.toggleStickyness();\n this.headerScrollUp.emit();\n }\n // At the top of the page\n if (this.isTopVisible) {\n this.toggleStickyness(false);\n }\n\n this.lastScrollTop = topOffset;\n }\n\n toggleStickyness(toggleOn = true) {\n const bodyElementClasses = document.querySelector('body').classList;\n let hySiteHeader = this.el.querySelector('.hy-site-header') as HTMLElement;\n if (!hySiteHeader) return;\n\n this.isTopVisible ? hySiteHeader.classList.add('is-at-top') : hySiteHeader.classList.remove('is-at-top');\n\n if (toggleOn) {\n hySiteHeader.classList.add('hy-site-header--sticky-active', 'hy-site-header--sticky-visible');\n hySiteHeader.classList.remove('hy-site-header--sticky-hidden');\n\n !this.isBottomVisible && !this.isTopVisible && bodyElementClasses.add('sticky-active');\n\n if (bodyElementClasses.contains('toolbar-horizontal')) {\n hySiteHeader.classList.add('has-toolbar');\n\n if (bodyElementClasses.contains('toolbar-tray-open')) {\n hySiteHeader.classList.add('has-toolbar--large');\n }\n }\n }\n\n if (!toggleOn) {\n hySiteHeader.classList.remove(\n 'hy-site-header--sticky-active',\n 'hy-site-header--sticky-visible',\n 'hy-site-header--sticky-hidden',\n 'has-toolbar',\n 'has-toolbar--large'\n );\n bodyElementClasses.remove('sticky-active');\n }\n }\n\n componentDidLoad() {\n // Set the browser resize observer to gather information about browser width.\n this.ro = new ResizeObserver((entries) => {\n for (const entry of entries) {\n this.applySizeClasses(entry.contentRect.width);\n }\n });\n this.ro.observe(document.body);\n\n const topOptions = {\n root: null,\n rootMargin: '250px',\n threshold: [0.0, 1.0],\n };\n\n this.topObserver = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.target.nodeName === 'HEADER') {\n this.isTopVisible = entry.isIntersecting;\n }\n });\n }, topOptions);\n\n const header = document.querySelector('header');\n if (header) {\n this.topObserver.observe(header);\n }\n\n const bottomOptions = {\n root: null,\n rootMargin: '0px',\n threshold: [0.0, 1.0],\n };\n\n this.bottomObserver = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.target.nodeName === 'HEADER') {\n this.isTopVisible = entry.isIntersecting;\n }\n });\n }, bottomOptions);\n\n const footer = document.querySelector('hy-footer');\n if (footer) {\n this.bottomObserver.observe(footer);\n }\n\n // Pass the dataMenuLanguage prop to menu component.\n this.el.children[0].setAttribute('data-menu-language', this.dataMenuLanguage);\n this.navbarHeight = 120;\n const body = document.querySelector('body');\n body.style.setProperty('--nav-height', `${this.navbarHeight * 2}px`);\n }\n\n async componentWillLoad() {\n // Check for site header labels and set them to variables accordingly.\n if (this.dataSiteHeaderLabels) {\n const labels = await jsonParserWorker(this.dataSiteHeaderLabels);\n this.menuLabels = labels.menu_labels;\n this.languageLabels = labels.language_labels;\n this.searchLabels = labels.search_labels;\n this.groupPages = labels.group_pages;\n\n this.el.children[0].setAttribute('menu-button-breadcrumb-logourl', this.logoUrl);\n }\n\n // Check for the donation link information and set it to variables accordingly.\n // Also pass the donation link data to menu-component.\n if (this.dataMenuDonate) {\n this.donateLink = await jsonParserWorker(this.dataMenuDonate);\n this.el.children[0].setAttribute('data-menu-donate', this.dataMenuDonate);\n }\n // Pass the necessary information to menu component. These props will be\n // used in mobile menu.\n this.el.children[0].setAttribute('open', this.isMenuOpen.toString());\n this.el.children[0].setAttribute('logo-label', this.logoLabel);\n this.el.children[0].setAttribute('logo-url', this.logoUrl);\n this.el.children[0].setAttribute('site-label', this.siteLabel);\n this.el.children[0].setAttribute('site-url', this.siteUrl);\n this.el.children[0].setAttribute('menu-button-breadcrumb-logourl', this.logoUrl);\n this.el.children[0].setAttribute('menu-language-label-open', this.languageLabels['open']);\n this.el.children[0].setAttribute('menu-language-label-close', this.languageLabels['close']);\n this.el.children[0].setAttribute('label-front-page', this.menuLabels['front_page']);\n\n if (this.groupType !== '') {\n this.isDesktopMenuDropdown = true;\n }\n }\n\n disconnectedCallback() {\n clearTimeout(clickTimer);\n this.ro.disconnect();\n this.topObserver.disconnect();\n this.bottomObserver.disconnect();\n clearTimeout(clickTimeout);\n }\n\n applySizeClasses(size: number) {\n // Set the menu-type based on the width of the browser.\n size <= 1200 ? (this.menuType = MenuType.mobile) : (this.menuType = MenuType.desktop);\n\n // Pass the menu type to menu component.\n this.isMobile = this.menuType === (MenuType.mobile || MenuType.tablet);\n const menuAttribute = this.menuType;\n this.el.children[0].setAttribute('menu-type', menuAttribute);\n }\n\n render() {\n if (this.menuType === null) return;\n\n const logoSize = this.isMobile ? SiteLogoSize.small : SiteLogoSize.big;\n const logoSizeGroup = this.isMobile ? SiteLogoSize.small : SiteLogoSize.small;\n const logoColor = ColorVariant.black;\n const logoColorGroup = ColorVariant.white;\n\n let classAttributes = [\n 'hy-site-header',\n `hy-site-header--${this.menuType}`,\n this.isGroup ? 'is-group' : '',\n 'is-at-top',\n ];\n\n const toggleMenuMobileAndRemoveListener = () => {\n window.removeEventListener('click', handleClickOutside);\n this.mobileMenuToggle();\n };\n\n const handleClickOutside = (event: MouseEvent) => {\n const [targetElement] = event.composedPath() as HTMLElement[];\n if (targetElement.classList.contains('hy-backdrop')) {\n toggleMenuMobileAndRemoveListener();\n }\n };\n\n if (this.isMenuOpen) {\n window.addEventListener('click', () => {\n clearTimeout(clickTimeout);\n clickTimeout = setTimeout(() => {\n handleClickOutside;\n }, 250);\n });\n }\n\n let activeLang = 'en';\n let dataMenuLanguageArray = JSON.parse(this.dataMenuLanguage);\n dataMenuLanguageArray.forEach((lang) => {\n if (lang.isActive) {\n activeLang = lang.langCode;\n }\n });\n\n switch (this.menuType) {\n case MenuType.desktop:\n // Larger than 1200px screens\n return [\n <header class={`${classAttributes.join(' ')}`}>\n <div\n class={{\n 'hy-backdrop': true,\n 'is-active':\n (this.isMenuOpen && !this.isDesktopMenuDropdown) ||\n (this.isTopMenuOpen && !this.isDesktopMenuDropdown),\n }}\n />\n {this.isGroup && (\n <section class={`hy-site-header__content-top ${this.isTopMenuOpen ? 'is-open' : ''}`}>\n <div class=\"hy-site-header__container\">\n <div class=\"hy-site-header__branding\">\n <hy-site-logo\n is-group={true}\n is-luomus-group={this.isLuomusGroup}\n size={logoSizeGroup}\n color={logoColorGroup}\n url={this.siteUrl}\n label={this.siteLabel}\n />\n </div>\n {this.dataMainMenuLinks.length > 2 && (\n <hy-menu-main-group\n tabindex=\"0\"\n is-mobile={false}\n menu-label={this.groupPages['university_main_menu'] ?? null}\n data-main-menu={this.dataMainMenuLinks}\n menu-label-close={this.menuLabelClose}\n />\n )}\n <div class=\"hy-site-header__actions\">\n <hy-menu-language data-menu-language={this.dataMenuLanguage} labels={this.languageLabels} isGroup />\n {!this.noSearch && (\n <hy-site-search\n class={'menu--secondary__item group'}\n size={18}\n color={logoColorGroup}\n is-group={true}\n is-luomus-group={this.isLuomusGroup}\n is-beta-group={this.isBetaGroup}\n search-language={activeLang}\n show-label={this.showSearchLabel}\n labels={this.searchLabels}\n search-labels={this.dataSiteSearchLabels}\n search-tools={this.dataSearchTools}\n />\n )}\n {this.donateLink.map(({label, url}) => {\n return (\n <a class={'hy-site-header__donate-link'} href={url}>\n <hy-icon icon={'hy-icon-heart-support'} size={14} fill={ColorVariant.black} />\n <span>{label}</span>\n </a>\n );\n })}\n </div>\n </div>\n </section>\n )}\n <section\n class={`hy-site-header__container ${this.isGroup ? 'is-group' : ''} ${\n this.groupType === 'research_group_menu' ? 'is-research-group' : ''\n }`}\n >\n <div class={'hy-site-header__branding'}>\n {this.isGroup && this.groupType == 'research_group_menu' && <p>{this.researchGroupLabel}</p>}\n {this.isGroup ? (\n <a href={this.logoUrl}>\n {this.groupType == 'generic_site_group_menu' && this.groupLogoUrl ? (\n <img src={this.groupLogoUrl} alt={`${this.logoLabel} logo`} />\n ) : (\n this.logoLabel\n )}\n </a>\n ) : (\n <hy-site-logo size={logoSize} color={logoColor} url={this.logoUrl} label={this.logoLabel} />\n )}\n </div>\n {this.groupType != 'research_group_menu' && <slot name=\"menu\"></slot>}\n {!this.isGroup && (\n <div class=\"hy-site-header__actions\">\n <hy-menu-language data-menu-language={this.dataMenuLanguage} labels={this.languageLabels} />\n {!this.noSearch && (\n <hy-site-search\n size={14}\n is-luomus-group={this.isLuomusGroup}\n is-beta-group={this.isBetaGroup}\n search-language={activeLang}\n color={ColorVariant.black}\n show-label={this.showSearchLabel}\n labels={this.searchLabels}\n search-labels={this.dataSiteSearchLabels}\n search-tools={this.dataSearchTools}\n />\n )}\n {this.donateLink.map(({label, url}) => {\n return (\n <a class={'hy-site-header__donate-link'} href={url}>\n <hy-icon icon={'hy-icon-heart-support'} size={14} fill={ColorVariant.black} />\n <span>{label}</span>\n </a>\n );\n })}\n </div>\n )}\n </section>\n </header>,\n ];\n\n case MenuType.mobile:\n // Smaller than 960px screens\n return (\n <header class={classAttributes.join(' ')} data-menu-active={this.isMenuOpen}>\n <div class={{'hy-backdrop': true, 'is-active': this.isMenuOpen}} />\n <div class={{'hy-backdrop': true, 'is-active-top': this.isTopMenuOpen}} />\n {this.isGroup && (\n <section class={`hy-site-header__content-top ${this.isTopMenuOpen ? 'is-open' : ''}`}>\n <div class=\"hy-site-header__container\">\n <div class=\"hy-site-header__branding\">\n <hy-site-logo\n is-group={true}\n is-luomus-group={this.isLuomusGroup}\n size={logoSizeGroup}\n color={logoColorGroup}\n url={this.siteUrl}\n label={this.siteLabel}\n />\n </div>\n <div class=\"hy-site-header__actions\">\n <hy-menu-language data-menu-language={this.dataMenuLanguage} labels={this.languageLabels} isGroup />\n {!this.noSearch && (\n <hy-site-search\n class={'menu--secondary__item group'}\n size={18}\n color={logoColorGroup}\n is-group={true}\n is-luomus-group={this.isLuomusGroup}\n is-beta-group={this.isBetaGroup}\n search-language={activeLang}\n show-label={this.showSearchLabel}\n labels={this.searchLabels}\n search-labels={this.dataSiteSearchLabels}\n search-tools={this.dataSearchTools}\n />\n )}\n {this.dataMainMenuLinks.length > 2 && (\n <hy-menu-main-group\n site-label={this.siteLabel}\n site-url={this.siteUrl}\n logo-label={this.logoLabel}\n logo-url={this.logoUrl}\n is-mobile={true}\n donate={this.donateLink}\n data-main-menu={this.dataMainMenuLinks}\n />\n )}\n </div>\n </div>\n </section>\n )}\n <section class=\"hy-site-header__container\">\n <div class={'hy-site-header__branding'}>\n {this.groupType == 'research_group_menu' && <p>{this.researchGroupLabel}</p>}\n {this.isGroup ? (\n <a href={this.logoUrl}>\n {this.groupType == 'generic_site_group_menu' && this.groupLogoUrl ? (\n <img src={this.groupLogoUrl} alt={`${this.logoLabel} logo`} />\n ) : (\n this.logoLabel\n )}\n </a>\n ) : (\n <hy-site-logo size={logoSize} color={logoColor} url={this.logoUrl} label={this.logoLabel} />\n )}\n </div>\n <div class=\"hy-site-header__actions\">\n {!this.isGroup && (\n <hy-menu-language data-menu-language={this.dataMenuLanguage} labels={this.languageLabels} />\n )}\n {!this.isGroup && !this.noSearch && (\n <hy-site-search\n size={24}\n color={ColorVariant.black}\n is-luomus-group={this.isLuomusGroup}\n is-beta-group={this.isBetaGroup}\n search-language={activeLang}\n show-label={this.showSearchLabel}\n labels={this.searchLabels}\n search-labels={this.dataSiteSearchLabels}\n search-tools={this.dataSearchTools}\n />\n )}\n <button\n onClick={() => toggleMenuMobileAndRemoveListener()}\n class={`hy-site-header__menu-open-button`}\n aria-label={this.isMenuOpen ? this.menuLabels['close'] : this.menuLabels['open']}\n aria-expanded={`${this.isMenuOpen}`}\n >\n {!this.isMenuOpen && <hy-icon icon={'hy-icon-hamburger'} size={24} fill={ColorVariant.black} />}\n {this.isMenuOpen && (\n <Fragment>\n <span>{this.menuLabelClose}</span>\n <hy-icon icon={'hy-icon-remove'} size={16} />\n </Fragment>\n )}\n </button>\n </div>\n <div\n class={{\n 'is-open': this.isMenuOpen,\n 'hy-site-header__panel': true,\n }}\n aria-hidden={`${!this.isMenuOpen}`}\n >\n <slot name={'menu_mobile'} />\n </div>\n </section>\n </header>\n );\n }\n }\n}\n",":host {\n --site-logo-color: var(--brand-main-nearly-black);\n}\n\n:host(.hy-site-logo--mobile) {\n --site-logo-color: var(--brand-main-nearly-black);\n}\n\n.hy-site-logo {\n a,\n div.luomus-group {\n align-items: center;\n display: flex;\n text-decoration: none;\n\n &:focus {\n outline: solid 2px var(--additional-yellow);\n outline-offset: 2px;\n }\n }\n\n &__label {\n @include font-size(14px, 14px);\n @include font-weight($bold);\n color: var(--site-logo-color);\n font-family: var(--main-font-family);\n letter-spacing: -0.7px;\n margin-left: 8px;\n max-width: 90px;\n text-transform: uppercase;\n\n .hy-site-header__branding & {\n @include breakpoint($narrow) {\n min-width: min-content;\n max-width: max-content;\n white-space: nowrap;\n }\n\n @include breakpoint($extrawide) {\n min-width: min-content;\n max-width: 90px;\n white-space: initial;\n }\n\n @include breakpoint($xlarge) {\n min-width: min-content;\n max-width: max-content;\n white-space: nowrap;\n }\n }\n\n @include breakpoint($narrow) {\n @include font-size(15px, 16px);\n letter-spacing: -0.75px;\n margin-left: 6px;\n }\n\n @include breakpoint($extrawide) {\n @include font-size(14px, 14px);\n letter-spacing: -0.6px;\n margin-left: 4px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(16px, 16px);\n letter-spacing: -0.7px;\n margin-left: 4px;\n }\n\n &.group {\n @include font-size(12px, 14px);\n color: var(--grayscale-white);\n letter-spacing: -0.6px;\n margin-left: 3px;\n\n @include breakpoint($wide) {\n @include font-size(14px, 14px);\n letter-spacing: -0.7px;\n }\n\n @include breakpoint($xlarge) {\n margin-left: 8px;\n }\n }\n }\n\n &__icon {\n &.group {\n svg {\n height: 32px !important;\n width: 33.41px;\n }\n }\n\n &:not(.group) svg {\n height: 32px;\n width: 33.41px;\n\n @include breakpoint($narrow) {\n height: 48px;\n width: 51px;\n }\n\n @include breakpoint($xlarge) {\n height: 60px;\n width: 64px;\n }\n }\n }\n\n &__header {\n //&:hover {\n &__page {\n &:hover {\n color: var(--brand-main);\n\n a,\n span {\n color: var(--brand-main) !important;\n }\n\n svg {\n fill: var(--brand-main);\n }\n }\n }\n &__group:not(.luomus) {\n &:hover {\n color: var(--grayscale-medium);\n\n a,\n span {\n color: var(--grayscale-medium) !important;\n }\n\n svg {\n fill: var(--grayscale-medium);\n }\n }\n }\n }\n\n &__footer {\n &:hover {\n span {\n color: var(--grayscale-medium) !important;\n }\n svg {\n fill: var(--grayscale-medium) !important;\n }\n }\n }\n}\n\n.hy-site-header__logo-container {\n a.group {\n @include font-size(14px, 16px);\n @include font-weight($bold);\n\n color: var(--grayscale-black);\n font-family: var(--main-font-family);\n letter-spacing: -0.5px;\n text-decoration: none;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n @include font-size(24px, 28px);\n letter-spacing: -0.8px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(26px, 30px);\n }\n }\n}\n","import {Component, h, Host, Prop} from '@stencil/core';\nimport {ColorVariant, FooterVariant, SiteLogoSize} from '../../../utils/utils';\n\n@Component({\n tag: 'hy-site-logo',\n styleUrl: 'site-logo.scss',\n shadow: false,\n})\nexport class SiteLogo {\n @Prop() type: FooterVariant = FooterVariant.header;\n @Prop() color: ColorVariant = ColorVariant.black;\n @Prop() isGroup: boolean = false;\n @Prop() isLuomusGroup: boolean = false;\n @Prop() label?: string;\n @Prop() size: SiteLogoSize = SiteLogoSize.big;\n @Prop() url?: string;\n\n render() {\n const isGroupClass = this.isGroup ? 'group' : 'page';\n // const isLuomusGroupClass = this.isLuomusGroup ? 'luomus' : 'regular';\n const classAttributes = [\n 'hy-site-logo',\n `hy-site-logo__${this.type}__${isGroupClass}`,\n `hy-site-logo__${this.type}`,\n 'luomus',\n ].join(' ');\n\n return this.url ? (\n <Host class={classAttributes}>\n {!this.isLuomusGroup && (\n <a href={this.url}>\n <hy-icon\n class={{'hy-site-logo__icon': true, group: this.isGroup}}\n icon={'hy-icon-hy-logo'}\n size={this.size}\n fill={this.color}\n />\n <span class={{'hy-site-logo__label': true, group: this.isGroup}} style={{color: this.color}}>\n {this.label}\n </span>\n </a>\n )}\n {this.isLuomusGroup && (\n <div class=\"luomus-group\">\n <hy-icon\n class={{'hy-site-logo__icon': true, group: this.isGroup}}\n icon={'hy-icon-hy-logo'}\n size={this.size}\n fill={this.color}\n />\n <span class={{'hy-site-logo__label': true, group: this.isGroup}} style={{color: this.color}}>\n {this.label}\n </span>\n </div>\n )}\n </Host>\n ) : this.label ? (\n <Host class={classAttributes}>\n <hy-icon\n class={{'hy-site-logo__icon': true, group: this.isGroup}}\n icon={'hy-icon-hy-logo'}\n size={this.size}\n fill={this.color}\n />\n <span class={{'hy-site-logo__label': true, group: this.isGroup}} style={{color: this.color}}>\n {this.label}\n </span>\n </Host>\n ) : (\n ''\n );\n }\n}\n",".button--search {\n @include font-size(12px, 24px);\n @include font-weight($regular);\n align-items: center;\n background: transparent;\n border: 0 none;\n color: var(--brand-main-nearly-black);\n display: inline-flex;\n flex-direction: row;\n font-family: var(--main-font-family);\n height: 100%;\n justify-content: center;\n letter-spacing: -0.5px;\n width: 44px;\n\n @include breakpoint($extrawide) {\n display: inline-grid;\n grid-template-columns: repeat(2, auto);\n gap: 4px;\n width: auto;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(14px, 24px);\n }\n\n &:hover:not([disabled]) {\n color: var(--brand-main);\n cursor: pointer;\n\n svg {\n fill: var(--brand-main);\n }\n }\n\n &:focus:not([disabled]) {\n outline: solid 2px var(--additional-yellow);\n outline-offset: 2px;\n }\n\n &.is-active,\n &[aria-expanded='true'] {\n position: relative;\n\n &:after {\n content: '';\n position: absolute;\n height: 4px;\n right: 0;\n bottom: -1px;\n left: 0;\n background-color: var(--grayscale-black);\n }\n }\n\n .is-group & {\n color: var(--grayscale-white);\n\n &:hover:not([disabled]) {\n color: var(--grayscale-medium);\n cursor: pointer;\n\n svg {\n fill: var(--grayscale-medium);\n }\n }\n }\n\n &.is-open--menu {\n position: absolute;\n right: 50px;\n top: 15px;\n z-index: 101;\n }\n}\n\n.button--search__label {\n display: none;\n visibility: hidden;\n\n @include breakpoint($extrawide) {\n display: block;\n visibility: visible;\n order: 2;\n }\n}\n\n.site-search {\n height: 100%;\n\n &__panel {\n display: none;\n &__is-open {\n background-color: #f8f8f8;\n border: 1px solid rgba(0, 0, 0, 0.1);\n display: flex;\n flex-direction: column;\n font-family: var(--main-font-family);\n left: 0;\n position: absolute;\n width: 100%;\n z-index: 520;\n }\n\n &__title {\n &__group {\n align-items: baseline;\n display: flex;\n flex-direction: column;\n\n @include breakpoint($wide) {\n align-items: baseline;\n flex-direction: row;\n justify-content: flex-start;\n }\n }\n\n .panel-title {\n @include font-size(32px, 32px);\n @include font-weight($bold);\n color: var(--grayscale-black);\n letter-spacing: -1px;\n margin-bottom: 12px;\n margin-top: 20px;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n @include font-size(46px, 48px);\n letter-spacing: -1.5px;\n margin-top: 24px;\n }\n @include breakpoint($xlarge) {\n @include font-size(52px, 54px);\n letter-spacing: -1.6px;\n }\n }\n .description {\n @include font-size(12px, 16px);\n color: var(--grayscale-black);\n letter-spacing: -0.2px;\n margin-bottom: 16px;\n padding: 0;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 22px);\n letter-spacing: -0.1px;\n margin-bottom: 18px;\n }\n @include breakpoint($wide) {\n @include font-size(18px, 24px);\n letter-spacing: -0.1px;\n padding-left: 8px;\n }\n @include breakpoint($xlarge) {\n @include font-size(20px, 28px);\n letter-spacing: -0.2px;\n padding-left: 12px;\n }\n }\n }\n\n &__wrapper {\n margin: 0 auto;\n max-width: 100%;\n padding: 0 1rem 2rem;\n width: 100%;\n\n @include breakpoint($narrow) {\n max-width: 1216px;\n padding: 0 0 2rem;\n }\n @include breakpoint($xlarge) {\n padding: 0 0 4rem;\n }\n }\n\n &__panel-toggle {\n background-color: transparent;\n border: none;\n position: absolute;\n right: 1rem;\n top: 25px;\n\n @include breakpoint($narrow) {\n right: 2rem;\n top: 36px;\n }\n @include breakpoint($xlarge) {\n top: 45px;\n }\n\n &__label {\n @include font-size(14px, 22px);\n @include font-weight($bold);\n align-items: center;\n color: var(--grayscale-black);\n display: flex;\n letter-spacing: -0.44px;\n text-transform: uppercase;\n\n &__title {\n padding-right: 8px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(18px, 22px);\n letter-spacing: -0.56px;\n }\n }\n\n &:focus:not([disabled]),\n &:hover:not([disabled]) {\n cursor: pointer;\n span {\n color: var(--brand-main);\n }\n svg {\n fill: var(--brand-main);\n }\n }\n }\n\n &__tools {\n .title {\n @include font-size(16px, 20px);\n @include font-weight($bold);\n color: var(--brand-main-nearly-black);\n letter-spacing: -0.5px;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n @include font-size(18px, 24px);\n letter-spacing: -0.56px;\n margin: 32px 0 16px;\n }\n }\n\n .list {\n a.search-special-tool {\n align-items: center;\n background-color: var(--grayscale-white);\n display: flex;\n margin-bottom: 8px;\n text-decoration: none;\n\n .label {\n @include font-size(14px, 16px);\n @include font-weight($bold);\n color: var(--brand-main-nearly-black);\n letter-spacing: -0.44px;\n padding-left: 8px;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 20px);\n letter-spacing: -0.5px;\n padding-left: 12px;\n }\n }\n .description {\n display: none;\n @include breakpoint($wide) {\n @include font-size(14px, 18px);\n color: var(--grayscale-dark);\n display: flex;\n letter-spacing: -0.2px;\n padding-left: 12px;\n }\n @include breakpoint($xlarge) {\n @include font-size(16px, 24px);\n color: var(--grayscale-dark);\n display: flex;\n letter-spacing: 0;\n padding-left: 12px;\n }\n }\n\n hy-icon {\n height: 40px;\n width: 40px;\n\n svg {\n background-color: var(--brand-main-light);\n fill: var(--grayscale-white);\n height: 40px;\n padding: 8px;\n width: 40px;\n }\n }\n }\n }\n }\n }\n}\n","export interface SearchTools {\n label: string;\n url: string;\n description: string;\n menuLinkId: string;\n isExternal: string;\n}\n\nexport interface SearchLabels {\n label?: string;\n}\n\ndeclare global {\n interface Window {\n CludoSayt: any;\n }\n}\n\nimport {Component, Prop, h, State, Listen, Event, EventEmitter, Element} from '@stencil/core';\nimport {ComponentLabels} from '../site-header';\nimport {ColorVariant} from '../../../utils/utils';\nimport {jsonParserWorker} from '../../../global/globalScript';\n\n@Component({\n tag: 'hy-site-search',\n styleUrl: 'site-search.scss',\n shadow: true,\n})\nexport class SiteSearch {\n @Element() el: HTMLElement;\n\n @Prop() color: ColorVariant = ColorVariant.black;\n @Prop() isAlternative: boolean = false;\n @Prop() isGroup: boolean = false;\n @Prop() isLuomusGroup: boolean = false;\n @Prop() isBetaGroup: boolean = false;\n @Prop() searchLanguage: string;\n @Prop() labels?: ComponentLabels[] | string;\n @Prop() searchLabels: string;\n @Prop() searchTools: string;\n private _searchTools: SearchTools[];\n\n @Prop() showLabel: boolean = false;\n @Prop() size: number;\n @Prop() dataSearchSpecialTools: string;\n\n private _searchLabels: SearchLabels[];\n private searchTitleLabel: string;\n private searchCloseLabel: string;\n private searchToolsLabel: string;\n private searchDescriptionLabel: string;\n\n @State() isSearchPanelOpen: boolean = false;\n @Event() searchPanelToggled: EventEmitter;\n\n private _labels: ComponentLabels[];\n\n async componentWillLoad() {\n this._labels = await jsonParserWorker(this.labels);\n // Special search tools.\n if (this.searchTools) {\n this._searchTools = await jsonParserWorker(this.searchTools);\n }\n\n if (this.searchLabels) {\n this._searchLabels = await jsonParserWorker(this.searchLabels);\n\n this.searchTitleLabel = this._searchLabels['search_label'];\n this.searchCloseLabel = this._searchLabels['search_close_label'];\n this.searchToolsLabel = this._searchLabels['search_tools_label'];\n this.searchDescriptionLabel = this._searchLabels['search_description'];\n }\n }\n\n // CLose the search panel if user opens the desktop menu panel.\n @Listen('menuDesktopToggled', {target: 'document'})\n desktopMenuToggled() {\n this.closeSearchPanel();\n }\n\n // CLose the search panel if user opens the mobile menu panel.\n @Listen('menuMobileToggled', {target: 'document'})\n mobileMenuToggled() {\n this.closeSearchPanel();\n }\n\n // CLose the search panel if user opens the language menu.\n @Listen('menuLanguageToggled', {target: 'document'})\n menuLanguageToggled() {\n this.closeSearchPanel();\n }\n\n // Close the search panel if user opens University main menu\n @Listen('universityMainMenuToggled', {target: 'document'})\n universityMainMenuPanelToggled() {\n this.closeSearchPanel();\n }\n\n @Listen('click', {target: 'window'})\n handleWindowClick(event) {\n // Check if event is being fired during pressing a key (event.detail==0 in this case)\n if (event.detail == 0) return;\n\n if (this.isSearchPanelOpen) {\n const path = event.path || (event.composedPath && event.composedPath());\n\n if ((path[0] as HTMLElement).classList.contains('hy-backdrop')) {\n this.closeSearchPanel();\n event.stopPropagation();\n }\n }\n }\n\n // Close the search panel on Scroll down.\n // @Listen('headerScrollDown', {target: 'document'})\n // headerScrollDown() {\n // this.closeSearchPanel();\n // }\n\n closeSearchPanel() {\n this.isSearchPanelOpen = false;\n\n let cludoSayt = document.querySelectorAll('stencil-cludo-sayt')[0] as HTMLElement;\n if (cludoSayt) {\n let CludoSayt = window.CludoSayt;\n if (typeof CludoSayt !== 'undefined') {\n CludoSayt.hide();\n }\n }\n\n this.showBackdropShadow();\n }\n\n handleSearchPanelToggle(event) {\n if (this.isLuomusGroup) {\n let beta = this.isBetaGroup ? '/beta' : '';\n let luomus_search_url = '/' + this.searchLanguage + beta + '/luomus/search-results';\n if (this.searchLanguage == 'fi') {\n luomus_search_url = '/' + this.searchLanguage + beta + '/luomus/hakutulokset';\n } else if (this.searchLanguage == 'sv') {\n luomus_search_url = '/' + this.searchLanguage + beta + '/luomus/sokresultat';\n } else if (this.searchLanguage == 'ru') {\n luomus_search_url = '/' + this.searchLanguage + beta + '/luomus/rezultaty-poiska';\n }\n location.href = luomus_search_url;\n } else {\n this.isSearchPanelOpen = !this.isSearchPanelOpen;\n\n if (this.isSearchPanelOpen) {\n // Close desktop menu panel and lang menu panel if they are open.\n this.searchPanelToggled.emit();\n\n this.adjustPosition(this.el);\n\n // Remove hidden class from cludo suggestions\n let cludoSayt = document.querySelectorAll('stencil-cludo-sayt')[0] as HTMLElement;\n\n if (cludoSayt) {\n const cludoSearchContentFormElement = this.el.shadowRoot.querySelector(\n '#cludo-search-content-form'\n ) as HTMLElement;\n cludoSayt.classList.remove('hidden');\n cludoSearchContentFormElement.append(cludoSayt);\n (cludoSayt.shadowRoot.querySelector('#cludo-reli-flexi-wrapper') as HTMLElement).style.position = 'relative';\n (cludoSayt.shadowRoot.querySelector('#cludo-reli-flexi') as HTMLElement).style.position = 'relative';\n (cludoSayt.shadowRoot.querySelector('#cludo-reli-flexi') as HTMLElement).style.maxWidth = 'none';\n }\n\n // Without setTimeout it will not focus the input because it hasn't rendered yet.\n setTimeout(() => {\n const searchInput = this.el.shadowRoot.querySelector('input#search') as HTMLElement;\n searchInput.focus();\n });\n } else {\n this.closeSearchPanel();\n }\n }\n\n event.stopPropagation();\n }\n\n adjustPosition(target) {\n let headerHeight = '0';\n let shadowTop = 0;\n const searchPanel = target.shadowRoot.querySelectorAll(`.site-search__panel`)[0] as HTMLElement;\n let initialDisplayStyle = searchPanel.style.display;\n\n if (this.isGroup) {\n let hyHeader = target.closest('.hy-site-header__content-top') as HTMLElement;\n if (hyHeader) {\n let headerHeightValue = hyHeader.offsetHeight;\n headerHeight = `${headerHeightValue}px`;\n let headerTop = hyHeader.offsetTop;\n\n // Add shadow backdrop\n searchPanel.style.display = 'flex';\n shadowTop = headerHeightValue + headerTop + searchPanel.offsetHeight;\n }\n } else {\n let hyHeader = target.closest('.hy-site-header') as HTMLElement;\n if (hyHeader) {\n let headerHeightValue = hyHeader.classList.contains('hy-site-header--sticky-active')\n ? hyHeader.offsetHeight\n : hyHeader.offsetTop + hyHeader.offsetHeight;\n\n headerHeight = `${headerHeightValue}px`;\n\n // Add shadow backdrop\n searchPanel.style.display = 'flex';\n let searchPanelHeight = searchPanel.offsetHeight;\n\n shadowTop = searchPanelHeight + headerHeightValue;\n }\n }\n\n searchPanel.style.display = initialDisplayStyle;\n searchPanel.style.top = headerHeight;\n\n this.showBackdropShadow('open', shadowTop);\n }\n\n showBackdropShadow(state = 'close', top = 0) {\n let hyHeader = this.el.closest('.hy-site-header') as HTMLElement;\n let hyBackdropDiv = hyHeader.children[0] as HTMLElement;\n\n if (hyBackdropDiv) {\n if (state === 'open') {\n let me = window.outerHeight - top;\n hyBackdropDiv.style.height = `${me}px`;\n hyBackdropDiv.style.top = `${top}px`;\n hyBackdropDiv.style.position = 'absolute';\n hyBackdropDiv.classList.add('is-active');\n } else {\n hyBackdropDiv.removeAttribute('style');\n hyBackdropDiv.classList.remove('is-active');\n }\n }\n }\n\n render() {\n const currentPageUrlPathName = window.location.pathname;\n const searchPagePathNames = ['/fi/haku', '/en/search', '/sv/sök'];\n\n return (\n <div\n class={{\n 'site-search': true,\n 'site-search__is-open': this.isSearchPanelOpen,\n 'is-group': this.isGroup,\n }}\n >\n <button\n aria-label={this.showLabel ? this._labels['open'] : ''}\n aria-expanded={`${this.isSearchPanelOpen}`}\n class={{\n 'button--search': true,\n 'is-open--menu': this.isAlternative,\n 'is-open': this.isSearchPanelOpen,\n 'is-active': searchPagePathNames.some((item) => item === currentPageUrlPathName),\n }}\n onClick={(e) => this.handleSearchPanelToggle(e)}\n disabled={searchPagePathNames.some((item) => item === currentPageUrlPathName) ? true : false}\n >\n {this.showLabel ? (\n <span class={{'button--search__label': true, 'button--search__label__group': this.isGroup}}>\n {this._labels['label']}\n </span>\n ) : (\n ''\n )}\n <hy-icon icon={'hy-icon-search'} size={this.size} fill={this.color} />\n </button>\n {!this.isLuomusGroup && (\n <div\n class={{\n 'site-search__panel': true,\n 'site-search__panel__is-open': this.isSearchPanelOpen,\n }}\n aria-hidden={`${!this.isSearchPanelOpen}`}\n >\n <div class=\"site-search__panel__wrapper\">\n <div class=\"site-search__panel__title\">\n <div class=\"site-search__panel__title__group\">\n <span class=\"panel-title\">{this.searchTitleLabel}</span>\n <div class=\"description\">{this.searchDescriptionLabel}</div>\n </div>\n </div>\n <div id=\"cludo-search-results\" class=\"container_12\">\n <div class=\"search-banner\"></div>\n <div class=\"search-filters search-filters-mobile\"></div>\n\n <div class=\"col-md-12\">\n <div style={{margin: '20px 0 32px'}} id=\"cludo-search-content-form\">\n <hy-search-field input-id=\"search\" label=\"\"></hy-search-field>\n </div>\n </div>\n\n <div class=\"col-md-3\">\n <div class=\"search-filters\" aria-controls=\"search-results\"></div>\n </div>\n <div class=\"col-md-9\">\n <div class=\"search-results-container\">\n <hy-paragraph-text>\n <div class=\"search-result-count\"></div>\n </hy-paragraph-text>\n <div class=\"search-did-you-mean\" role=\"Complementary\"></div>\n <div class=\"search-results\" role=\"region\" id=\"search-results\" aria-live=\"polite\"></div>\n </div>\n </div>\n </div>\n\n {this._searchTools && this._searchTools.length > 0 && (\n <div class=\"site-search__panel__tools\">\n <div class=\"title\">{this.searchToolsLabel}</div>\n <div class=\"list\">\n {this._searchTools.map((i) => {\n let searchToolTarget = i.isExternal ? '_blank' : '_self';\n return (\n <a class=\"search-special-tool\" href={i.url} target={searchToolTarget}>\n <hy-icon icon={'hy-icon-arrow-to-right'} size={14} fill={ColorVariant.black} />\n <span class=\"label\">{i.label}</span>\n <span class=\"description\">{i.description}</span>\n </a>\n );\n })}\n </div>\n </div>\n )}\n <button\n onClick={() => this.closeSearchPanel()}\n class={{\n 'site-search__panel__panel-toggle': true,\n }}\n aria-label={this.searchCloseLabel}\n aria-expanded={`${this.isSearchPanelOpen}`}\n >\n <span class=\"site-search__panel__panel-toggle__label\">\n <span class=\"site-search__panel__panel-toggle__label__title\" tabindex=\"0\">\n {this.searchCloseLabel}\n </span>\n <hy-icon icon={'hy-icon-remove'} size={16} fill={ColorVariant.black} />\n </span>\n </button>\n </div>\n </div>\n )}\n </div>\n );\n }\n}\n",".hy-table-container {\n @include font-size(14px, 18px);\n display: block;\n position: relative;\n overflow: scroll;\n white-space: nowrap;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 20px);\n }\n\n table {\n border-collapse: collapse;\n border: 1px solid var(--grayscale-dark);\n text-indent: initial;\n width: 100%;\n }\n\n thead {\n border-bottom: 1px solid var(--grayscale-dark);\n border-left: 1px solid var(--grayscale-dark);\n border-right: 1px solid var(--grayscale-dark);\n\n th {\n @include font-size(14px, 20px);\n border-left: 1px solid black;\n background-color: var(--grayscale-light);\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 20px);\n }\n }\n }\n\n td,\n th {\n border: 1px solid var(--grayscale-dark);\n background-clip: padding-box;\n color: var(--grayscale-dark);\n font-family: var(--main-font-family);\n letter-spacing: -0.5px;\n padding: 0.7em 0.9em;\n text-align: left;\n vertical-align: top;\n word-wrap: break-word;\n\n a {\n text-decoration: none;\n\n &:hover {\n cursor: pointer;\n text-decoration: underline;\n }\n }\n\n p {\n font-size: inherit;\n }\n\n &:first-child {\n @include font-weight($bold);\n border-collapse: separate;\n border-right: none;\n //border-left: none;\n left: 0;\n max-width: 180px;\n min-width: 180px;\n position: sticky;\n white-space: normal;\n width: 180px;\n z-index: 2;\n\n @include breakpoint($wide) {\n border-right: 1px solid var(--grayscale-dark);\n }\n\n &::after {\n content: '';\n display: block;\n position: absolute;\n right: -10px;\n bottom: 0;\n width: 10px;\n top: 0;\n height: 100%;\n background: linear-gradient(90deg, rgba(000, 000, 000, 0.2) 0%, rgba(0, 0, 0, 0) 100%);\n\n @include breakpoint($wide) {\n display: none;\n }\n }\n\n &::before {\n border-left: 1px solid black;\n content: '';\n display: block;\n position: absolute;\n left: -1px;\n bottom: 0;\n width: 1px;\n top: 0;\n height: 100%;\n\n @include breakpoint($wide) {\n display: none;\n }\n }\n\n @include breakpoint($narrow) {\n max-width: 220px;\n min-width: 220px;\n width: 220px;\n }\n\n @include breakpoint($medium) {\n max-width: 300px;\n min-width: 300px;\n width: 300px;\n }\n\n @include breakpoint($wide) {\n max-width: 40%;\n min-width: 40%;\n width: 40%;\n }\n\n &:only-child {\n border: 1px solid var(--grayscale-dark);\n &::after,\n &::before {\n display: none;\n }\n }\n }\n }\n\n td {\n background-color: var(--grayscale-white);\n word-wrap: break-word;\n white-space: normal;\n }\n\n caption {\n margin-bottom: 1rem;\n }\n}\n","import {Component, Host, h} from '@stencil/core';\n\n@Component({\n tag: 'hy-table-container',\n styleUrl: 'hy-table-container.scss',\n shadow: false,\n})\nexport class HyTableContainer {\n render() {\n const classAttributes = ['hy-table-container'].join(' ');\n\n return (\n <Host class={classAttributes}>\n <slot></slot>\n <hy-box mb=\"1.75, 1.75, 2, 2.5\" />\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-tabs__container {\n .hy-tablist-container {\n border-bottom: 1px solid var(--grayscale-tabs-border);\n position: relative;\n }\n\n .hy-tab-scroll {\n background-color: rgba(255, 255, 255, 0.8);\n border: 0;\n height: 100%;\n margin: 0;\n padding: 0;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n z-index: 4;\n\n &.is-hidden {\n display: none;\n visibility: hidden;\n }\n\n &.is-disabled {\n background-color: var(--grayscale-medium);\n\n &:hover {\n cursor: none;\n }\n }\n\n &:focus,\n &:hover {\n outline: none;\n cursor: pointer;\n }\n\n span {\n align-items: center;\n background-color: var(--grayscale-black);\n border-radius: 100%;\n display: inline-flex;\n height: 32px;\n justify-content: center;\n width: 32px;\n\n svg {\n fill: var(--grayscale-white);\n height: 16px;\n width: 16px;\n }\n }\n\n &__left {\n left: 0;\n padding-right: 8px;\n\n svg {\n transform: translateX(-1px);\n }\n }\n\n &__right {\n padding-left: 8px;\n right: 0;\n\n svg {\n transform: translateX(1px);\n }\n }\n }\n\n [role='tablist'] {\n display: flex;\n flex-direction: row;\n margin: 0 0 -0.1em;\n overflow: scroll;\n position: relative;\n scrollbar-width: none;\n white-space: nowrap;\n\n &::-webkit-scrollbar {\n display: none;\n }\n }\n\n [role='tablist'] a {\n display: flex;\n max-width: 47.56%;\n text-decoration: none;\n flex-shrink: 0;\n\n &:not(:first-of-type) {\n margin-left: 6px;\n }\n\n @include breakpoint($narrow) {\n max-width: 35.37%;\n }\n\n @include breakpoint($wide) {\n max-width: 23.13%;\n }\n\n @include breakpoint($extrawide) {\n max-width: 23.03%;\n }\n }\n\n [role='tab'] {\n align-items: stretch;\n background-color: transparent;\n border: 0;\n display: flex;\n flex-direction: row;\n justify-content: center;\n margin-bottom: 6px;\n padding: 0;\n\n > span {\n @include font-size(14px, 14px);\n @include font-weight($bold);\n align-items: center;\n background-color: var(--grayscale-background-box);\n border: 0;\n color: var(--link-blue);\n display: flex;\n font-family: var(--main-font-family);\n hyphens: auto;\n letter-spacing: -0.5px;\n padding: 8px 8px 7px;\n pointer-events: none;\n position: relative;\n text-align: left;\n white-space: normal;\n word-break: break-word;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 18px);\n padding: 16px 12px 10px;\n }\n\n @include breakpoint($extrawide) {\n @include font-size(18px, 20px);\n letter-spacing: -0.6px;\n padding: 16px 16px 14px;\n }\n\n @supports (overflow-wrap: anywhere) {\n overflow-wrap: anywhere;\n }\n\n overflow-wrap: break-word;\n\n @supports (overflow-wrap: anywhere) {\n overflow-wrap: anywhere;\n }\n\n overflow-wrap: break-word;\n }\n }\n\n // No sidebar\n [role='tab'].large {\n @include breakpoint($extrawide) {\n margin: 0 12px 0 0;\n }\n }\n\n [role='tab'][aria-selected='true'] {\n border-bottom-width: 0;\n border: 1px solid var(--grayscale-dark);\n margin-bottom: 0;\n z-index: 3;\n\n > span {\n background-color: var(--grayscale-white);\n color: var(--grayscale-black);\n padding-bottom: 13px;\n\n @include breakpoint($narrow) {\n padding-bottom: 16px;\n }\n\n @include breakpoint($extrawide) {\n padding-bottom: 20px;\n }\n\n &:before {\n background-color: var(--grayscale-white);\n bottom: 0;\n content: '';\n height: 4px;\n left: 0;\n position: absolute;\n right: 0;\n transform: translateY(50%);\n }\n\n &:after {\n background-color: var(--grayscale-black);\n bottom: 0;\n content: '';\n height: 4px;\n left: 8px;\n position: absolute;\n right: 8px;\n }\n }\n }\n\n [role='tab']:hover {\n border-radius: 0;\n color: inherit;\n cursor: pointer;\n text-decoration: none;\n\n span {\n background-color: var(--hover-gray);\n color: var(--brand-main-active);\n }\n }\n\n [role='tabpanel'] {\n border: 1px solid var(--grayscale-dark);\n padding: 28px 12px;\n position: relative;\n z-index: 2;\n\n @include breakpoint($narrow) {\n padding: 38px 15px;\n }\n\n @include breakpoint($wide) {\n padding: 40px 20px;\n }\n }\n\n [role='tabpanel']:focus {\n outline: 1px solid var(--brand-main-active);\n }\n}\n","import {Component, ComponentInterface, h, Prop, State, Listen, Element} from '@stencil/core';\n// For easy reference\nlet keys = {\n end: 35,\n home: 36,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n delete: 46,\n};\n\n// Add or substract depending on key pressed\nlet direction = {\n 37: -1,\n 38: -1,\n 39: 1,\n 40: 1,\n};\nlet checkTimeout;\nlet focusTimeout;\nlet scrollTimeout;\n\n@Component({\n tag: 'hy-tabs',\n styleUrl: 'hy-tabs.scss',\n shadow: false,\n})\nexport class HyTabs implements ComponentInterface {\n @Prop() tabId?: string;\n @Prop() tabListLabel: string = '';\n @State() focusTimeoutCleared: boolean = true;\n @State() tabButtonTitles: object[];\n @State() tabPanelsState: NodeListOf<Element>[];\n @State() tabButtons: NodeListOf<Element>[];\n @State() tabList: NodeListOf<Element>[];\n @Element() el: HTMLElement;\n @Prop() headerstyle: string = 'common';\n\n componentWillLoad() {\n const tabItems = this.el.querySelectorAll('hy-tabs-item');\n if (tabItems) {\n this.tabButtonTitles = Array.from(tabItems).map((panel) => {\n return {\n title: panel.getAttribute('tab-title'),\n id: panel.getAttribute('tab-title').toLowerCase().replace(/\\W/g, '-'),\n };\n });\n }\n }\n\n componentDidLoad() {\n let hyMainDiv = this.el.closest('.hy-main');\n if (hyMainDiv) {\n if (!hyMainDiv.classList.contains('with-sidebar')) {\n this.headerstyle = 'large';\n }\n }\n\n const tabContainer = this.el.querySelector('.hy-tabs__container') as any;\n\n if (tabContainer) {\n this.generateArrays(tabContainer);\n\n const leftButton = this.el.querySelectorAll('.hy-tab-scroll__left')[0];\n const rightButton = this.el.querySelectorAll('.hy-tab-scroll__right')[0];\n const tabList = this.tabList as any;\n\n this.checkScrollHidden(tabList, leftButton, rightButton);\n\n tabList.addEventListener(\n 'scroll',\n () => {\n scrollTimeout = setTimeout(() => {\n window.clearTimeout(scrollTimeout);\n this.checkScrollHidden(tabList, leftButton, rightButton);\n }, 250);\n },\n false\n );\n\n if (tabList.offSetWidth <= document.body.scrollWidth) {\n leftButton.classList.add('is-hidden');\n rightButton.classList.add('is-hidden');\n }\n\n const oneTabWidth = 250;\n rightButton.addEventListener('click', (e) => {\n e.preventDefault();\n rightButton.classList.add('is-disabled');\n tabList.scrollBy({\n top: 0,\n left: +oneTabWidth,\n behavior: 'smooth',\n });\n checkTimeout = window.setTimeout(() => {\n window.clearTimeout(checkTimeout);\n this.checkScrollHidden(tabList, leftButton, rightButton);\n rightButton.classList.remove('is-disabled');\n }, 250);\n });\n\n leftButton.addEventListener('click', (e) => {\n e.preventDefault();\n leftButton.classList.add('is-disabled');\n tabList.scrollBy({\n top: 0,\n left: -oneTabWidth,\n behavior: 'smooth',\n });\n checkTimeout = window.setTimeout(() => {\n window.clearTimeout(checkTimeout);\n this.checkScrollHidden(tabList, leftButton, rightButton);\n leftButton.classList.remove('is-disabled');\n }, 250);\n });\n }\n }\n\n generateArrays(tc) {\n this.tabList = tc.querySelectorAll('[role=\"tablist\"]')[0] as any;\n this.tabButtons = tc.querySelectorAll('[role=\"tab\"]') as any;\n this.tabPanelsState = [tc.querySelectorAll('[role=\"tabpanel\"]')] as any;\n\n if (this.tabButtons.length > 0) {\n this.addListeners(this.tabButtons, 1);\n this.activateTab(this.tabButtons[0], true);\n }\n }\n\n addListeners(tabs, index) {\n if (tabs.length > 1) {\n for (let i = 0; i < tabs.length; ++i) {\n tabs[index].addEventListener('click', this.clickEventListener);\n tabs[index].addEventListener('keydown', this.keydownEventListener);\n //tabs[index].addEventListener('keyup', this.keyupEventListener);\n tabs[index].index = index;\n }\n }\n }\n\n checkScrollHidden(tablist, leftButton, rightButton) {\n if (tablist.scrollLeft === 0) {\n leftButton.classList.add('is-hidden');\n } else {\n leftButton.classList.remove('is-hidden');\n }\n if (tablist.scrollLeft + tablist.clientWidth >= tablist.scrollWidth - 1) {\n rightButton.classList.add('is-hidden');\n } else {\n rightButton.classList.remove('is-hidden');\n }\n }\n\n // When a tab is clicked, activateTab is fired to activate it\n @Listen('click')\n clickEventListener(event) {\n if (event) {\n const target = event.target;\n const tabs = this.tabButtonTitles;\n if (tabs) {\n tabs.forEach((tab) => {\n const id = Object.values(tab)[1];\n if (id === target.id) {\n this.activateTab(target, true);\n }\n });\n event.stopPropagation();\n event.stopImmediatePropagation();\n }\n }\n }\n\n @Listen('keydown')\n keydownEventListener(event) {\n const key = event.keyCode;\n const tabs = this.tabButtonTitles as any;\n switch (key) {\n case keys.end:\n event.preventDefault();\n // Activate last tab\n this.activateTab(tabs[tabs.length - 1], true);\n break;\n case keys.home:\n event.preventDefault();\n // Activate first tab\n this.activateTab(tabs[0], true);\n break;\n\n // Up and down are in keydown\n // because we need to prevent page scroll >:)\n case keys.up:\n case keys.down:\n if (this.focusTimeoutCleared) {\n this.determineOrientation(event);\n }\n break;\n }\n }\n\n @Listen('keydown')\n keyupEventListener(event) {\n const key = event.keyCode;\n\n switch (key) {\n case keys.left:\n case keys.right:\n if (event.target.role === 'tab') {\n event.preventDefault();\n if (this.focusTimeoutCleared) {\n this.determineOrientation(event);\n }\n }\n break;\n }\n event.stopPropagation();\n event.stopImmediatePropagation();\n }\n\n determineOrientation(event) {\n const leftButton = this.el.querySelectorAll('.hy-tab-scroll__left')[0];\n const rightButton = this.el.querySelectorAll('.hy-tab-scroll__right')[0];\n const tabList = this.tabList as any;\n\n this.checkScrollHidden(tabList, leftButton, rightButton);\n const key = event.keyCode;\n const vertical = tabList.getAttribute('aria-orientation') == 'vertical';\n let proceed = false;\n if (vertical) {\n if (key === keys.up || key === keys.down) {\n event.preventDefault();\n proceed = true;\n }\n } else {\n if (key === keys.left || key === keys.right) {\n proceed = true;\n }\n }\n\n if (proceed) {\n this.switchTabOnArrowPress(event);\n }\n }\n\n switchTabOnArrowPress(event) {\n const pressed = event.keyCode;\n\n if (direction[pressed]) {\n const target = event.target;\n const tabs = this.tabButtons as any;\n\n for (let i = 0; i < tabs.length; i++) {\n if (tabs[i].id === target.id) {\n if (i > 0) {\n if (direction[pressed] === -1) {\n tabs[i - 1].focus();\n this.focusEventHandler(tabs[i - 1]);\n break;\n }\n }\n if (i < tabs.length - 1) {\n if (direction[pressed] === 1) {\n tabs[i + 1].focus();\n this.focusEventHandler(tabs[i + 1]);\n break;\n }\n }\n }\n }\n }\n }\n\n // Activates any given tab panel\n activateTab(tab, setFocus) {\n setFocus = setFocus || true;\n // Deactivate all other tabs\n this.deactivateTabs(this.tabButtons);\n // Remove tabindex attribute\n tab.removeAttribute('tabindex');\n tab.setAttribute('aria-selected', 'true');\n const controls = tab.getAttribute('aria-controls');\n this.el.querySelector(`#${controls}`).removeAttribute('hidden');\n if (setFocus) {\n tab.focus();\n }\n }\n\n // Deactivate all tabs and tab panels\n deactivateTabs(tabs) {\n for (let t = 0; t < tabs.length; t++) {\n tabs[t].setAttribute('tabindex', '-1');\n tabs[t].setAttribute('aria-selected', 'false');\n tabs[t].removeEventListener('focus', this.focusEventHandler);\n }\n const panels = this.tabPanelsState[0];\n for (let p = 0; p < panels.length; p++) {\n panels[p].setAttribute('hidden', 'hidden');\n }\n }\n\n @Listen('focus')\n focusEventHandler(tab) {\n const target = tab;\n this.focusTimeoutCleared = false;\n focusTimeout = window.setTimeout(() => {\n window.clearTimeout(focusTimeout);\n this.focusTimeoutCleared = true;\n const focused = document.activeElement;\n if (target === focused) {\n this.activateTab(target, false);\n }\n }, 250);\n }\n\n render() {\n const classComponentAttributes = ['hy-tabs__container', `hy-tabs__container__${this.headerstyle}`].join(' ');\n const id = this.tabId.toLowerCase().replace(/\\W/g, '-');\n\n if (window.location.hash) {\n const tabHash = window.location.hash.substring(1);\n const isUrlHashed = this.tabButtonTitles.some((tab) => tab['id'] === tabHash);\n\n if (isUrlHashed) {\n const hashElement = document.getElementById(tabHash);\n\n if (hashElement) {\n this.activateTab(hashElement, true);\n const hashElementRect = hashElement.getBoundingClientRect();\n window.scrollTo({top: window.scrollY + hashElementRect.top - 200, behavior: 'smooth'});\n }\n }\n }\n\n return [\n <hy-box pt=\"1.25, 1.25, 1.5, 2.5\" />,\n <div id={id} class={classComponentAttributes}>\n <div class=\"hy-tablist-container\">\n <button tabindex=\"-1\" class=\"hy-tab-scroll hy-tab-scroll__left is-hidden\" aria-hidden=\"true\">\n <span>\n <hy-icon icon={'hy-icon-caret-left'} size={16} />\n </span>\n </button>\n <div role=\"tablist\" aria-label={this.tabListLabel}>\n {this.tabButtonTitles &&\n this.tabButtonTitles.map((item) => {\n const title = Object.values(item)[0];\n const id = title.toLowerCase().replace(/\\W/g, '-');\n\n const titleAsId = title.toLowerCase().replace(/\\W/g, '-');\n const tabItemHref = '#' + titleAsId;\n\n return (\n <a href={tabItemHref} tabindex=\"-1\">\n <button\n aria-selected=\"false\"\n aria-controls={`${id}-tab`}\n class={this.headerstyle}\n role=\"tab\"\n id={id}\n >\n <span>{title}</span>\n </button>\n </a>\n );\n })}\n </div>\n <button tabindex=\"-1\" class=\"hy-tab-scroll hy-tab-scroll__right\" aria-hidden=\"true\">\n <span>\n <hy-icon icon={'hy-icon-caret-right'} size={16} />\n </span>\n </button>\n </div>\n <slot></slot>\n </div>,\n <hy-box mb=\"1.75, 1.75, 2, 2.5\" />,\n ];\n }\n}\n",":host {\n display: block;\n}\n","import {Component, h, Prop} from '@stencil/core';\n\n@Component({\n tag: 'hy-tabs-item',\n styleUrl: 'hy-tabs-item.scss',\n shadow: false,\n})\nexport class HyTabsItem {\n @Prop() tabTitle?: string;\n\n render() {\n const id = this.tabTitle.toLowerCase().replace(/\\W/g, '-');\n\n return (\n <div tabindex=\"0\" role=\"tabpanel\" id={`${id}-tab`} aria-labelledby={id} hidden>\n <slot></slot>\n </div>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-tag {\n margin: 0 4px 4px 0;\n\n span {\n @include font-size(12px, 16px);\n @include font-weight($bold);\n\n background-color: var(--grayscale-dark);\n color: var(--grayscale-white);\n font-family: var(--main-font-family);\n letter-spacing: -0.07px;\n padding: 4px 8px;\n text-transform: uppercase;\n }\n}\n","import {Component, Host, h} from '@stencil/core';\n\n@Component({\n tag: 'hy-tag',\n styleUrl: 'hy-tag.scss',\n shadow: true,\n})\nexport class HyTag {\n render() {\n const classAttributes = ['hy-tag'].join(' ');\n\n return (\n <Host>\n <div class={classAttributes}>\n <span>\n <slot></slot>\n </span>\n </div>\n </Host>\n );\n }\n}\n",".hy-twitter-feed {\n margin: 40px 0;\n}\n\n.hy-twitter-feed__header {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n margin-bottom: 24px;\n\n @include breakpoint($narrow) {\n margin-bottom: 32px;\n }\n\n .without-sidebar & {\n @include breakpoint($extrawide) {\n margin-bottom: 41px;\n }\n }\n\n .with-sidebar & {\n @include breakpoint($xlarge) {\n margin-bottom: 41px;\n }\n }\n}\n\n.hy-twitter-feed__title {\n font-weight: $bold;\n font-family: var(--main-font-family);\n margin-top: 0;\n margin-bottom: 0;\n margin-right: 8px;\n\n @include breakpoint($narrow) {\n margin-right: 12px;\n }\n\n .without-sidebar & {\n @include breakpoint($extrawide) {\n margin-right: 16px;\n }\n }\n\n .with-sidebar & {\n @include breakpoint($xlarge) {\n margin-right: 16px;\n }\n }\n}\n\nh2.hy-twitter-feed__title {\n @include font-size(26px, 32px);\n letter-spacing: -0.82px;\n\n @include breakpoint($narrow) {\n @include font-size(30px, 36px);\n letter-spacing: -0.6px;\n }\n\n .without-sidebar & {\n @include breakpoint($extrawide) {\n @include font-size(34px, 40px);\n letter-spacing: -0.68px;\n }\n }\n\n .with-sidebar & {\n @include breakpoint($xlarge) {\n @include font-size(34px, 40px);\n letter-spacing: -0.68px;\n }\n }\n\n .is-front-page &,\n .is-landing-page & {\n @include font-size(28px, 32px);\n letter-spacing: -0.7px;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n @include font-size(34px, 40px);\n letter-spacing: -0.85px;\n }\n\n .without-sidebar & {\n @include breakpoint($wide) {\n @include font-size(34px, 40px);\n letter-spacing: -0.68px;\n }\n\n @include breakpoint($extrawide) {\n @include font-size(42px, 48px);\n letter-spacing: -1.05px;\n }\n }\n\n .with-sidebar & {\n @include breakpoint($extrawide) {\n @include font-size(34px, 40px);\n letter-spacing: -0.68px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(42px, 48px);\n letter-spacing: -1.05px;\n }\n }\n }\n}\n\nh3.hy-twitter-feed__title {\n @include font-size(21px, 28px);\n letter-spacing: -0.42px;\n\n @include breakpoint($narrow) {\n @include font-size(25px, 32px);\n letter-spacing: -0.5px;\n }\n\n .is-front-page &,\n .is-landing-page & {\n @include font-size(26px, 32px);\n letter-spacing: -0.52px;\n\n @include breakpoint($narrow) {\n @include font-size(30px, 36px);\n letter-spacing: -0.6px;\n }\n\n .without-sidebar & {\n @include breakpoint($wide) {\n @include font-size(30px, 36px);\n letter-spacing: -0.6px;\n }\n\n @include breakpoint($extrawide) {\n @include font-size(34px, 40px);\n letter-spacing: -0.68px;\n }\n }\n\n .with-sidebar & {\n @include breakpoint($extrawide) {\n @include font-size(30px, 36px);\n letter-spacing: -0.6px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(34px, 40px);\n letter-spacing: -0.68px;\n }\n }\n }\n}\n\n.hy-twitter-feed__keyword {\n @include font-size(15px, 22px);\n margin: 0;\n font-weight: $regular;\n font-family: var(--main-font-family);\n color: var(--grayscale-dark-text);\n display: inline-flex;\n align-items: center;\n\n hy-icon {\n margin-right: 4px;\n\n @include breakpoint($narrow) {\n margin-right: 6px;\n }\n\n svg {\n @include breakpoint($narrow) {\n width: 24px;\n height: 24px;\n }\n }\n }\n\n @include breakpoint($narrow) {\n @include font-size(16px, 24px);\n }\n\n .without-sidebar & {\n @include breakpoint($extrawide) {\n @include font-size(17px, 24px);\n }\n\n hy-icon {\n svg {\n @include breakpoint($extrawide) {\n width: 32px;\n height: 32px;\n }\n }\n }\n }\n\n .with-sidebar & {\n @include breakpoint($xlarge) {\n @include font-size(17px, 24px);\n }\n\n hy-icon {\n svg {\n @include breakpoint($xlarge) {\n width: 32px;\n height: 32px;\n }\n }\n }\n }\n\n + a {\n @include font-size(15px, 18px);\n margin: 0 0 0 8px;\n font-weight: $semibold;\n font-family: var(--main-font-family);\n color: var(--link-blue);\n letter-spacing: -0.28px;\n text-decoration: none;\n align-items: center;\n display: inline-flex;\n\n &:hover {\n text-decoration: underline;\n }\n\n hy-icon {\n margin-right: 6px;\n\n svg {\n fill: var(--link-blue);\n }\n }\n\n @include breakpoint($narrow) {\n @include font-size(14px, 18px);\n letter-spacing: -0.26px;\n margin: 0 0 0 12px;\n }\n\n .without-sidebar & {\n @include breakpoint($extrawide) {\n @include font-size(16px, 20px);\n letter-spacing: -0.3px;\n margin: 0 0 0 16px;\n }\n }\n\n .with-sidebar & {\n @include breakpoint($xlarge) {\n @include font-size(16px, 20px);\n letter-spacing: -0.3px;\n margin: 0 0 0 16px;\n }\n }\n }\n}\n\n.hy-twitter-feed__tweets {\n list-style: none;\n padding: 0;\n margin: 0;\n display: grid;\n grid-template-columns: 1fr;\n gap: 16px;\n\n @include breakpoint($narrow) {\n grid-template-columns: repeat(2, 1fr);\n gap: 24px;\n }\n\n .without-sidebar & {\n @include breakpoint($wide) {\n grid-template-columns: repeat(3, 1fr);\n }\n }\n\n .with-sidebar & {\n @include breakpoint($extrawide) {\n grid-template-columns: repeat(3, 1fr);\n }\n }\n}\n\n.hy-twitter-tweet {\n background-color: var(--grayscale-background-box);\n height: 100%;\n display: flex;\n flex-direction: column;\n position: relative;\n}\n\n.hy-twitter-tweet__header {\n display: flex;\n align-items: center;\n margin-left: -8px;\n padding-top: 12px;\n margin-bottom: 8px;\n\n @include breakpoint($narrow) {\n padding-top: 16px;\n }\n}\n\n.hy-twitter-tweet__profile-image {\n img {\n height: 70px;\n width: 70px;\n\n .without-sidebar & {\n @include breakpoint($extrawide) {\n height: 80px;\n width: 80px;\n }\n }\n\n .with-sidebar & {\n @include breakpoint($xlarge) {\n height: 80px;\n width: 80px;\n }\n }\n }\n}\n\n.hy-twitter-tweet__header-content {\n margin-left: 8px;\n\n time {\n @include font-size(12px, 14px);\n font-weight: $regular;\n font-family: var(--main-font-family);\n color: var(--grayscale-black);\n letter-spacing: -0.1px;\n }\n\n p {\n @include font-size(15px, 18px);\n font-weight: $bold;\n font-family: var(--main-font-family);\n color: var(--brand-main-nearly-black);\n letter-spacing: -0.3px;\n margin: 4px 0 2px;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 20px);\n letter-spacing: -0.32px;\n }\n }\n\n a {\n @include font-size(12px, 16px);\n font-weight: $semibold;\n font-family: var(--main-font-family);\n color: var(--link-blue);\n letter-spacing: -0.1px;\n text-decoration: none;\n position: relative;\n z-index: 10;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n\n.hy-twitter-tweet__content-wrapper {\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n}\n\n.hy-twitter-tweet__content {\n padding: 0 16px;\n\n p {\n @include font-size(15px, 20px);\n font-weight: $regular;\n font-family: var(--main-font-family);\n color: var(--grayscale-dark-text);\n letter-spacing: -0.03px;\n margin: 0 0 8px;\n\n @include breakpoint($narrow) {\n @include font-size(14px, 18px);\n letter-spacing: -0.08px;\n }\n }\n}\n\n.hy-twitter-tweet__tweet-link {\n @include font-size(12px, 16px);\n font-weight: $semibold;\n font-family: var(--main-font-family);\n color: var(--link-blue);\n letter-spacing: -0.1px;\n text-decoration: none;\n\n span {\n position: absolute;\n inset: 0;\n }\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n.hy-twitter-tweet__statistics {\n margin-top: 16px;\n padding: 0 16px 16px;\n\n .visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n }\n\n p {\n @include font-size(12px, 14px);\n font-weight: $regular;\n font-family: var(--main-font-family);\n color: var(--grayscale-dark);\n letter-spacing: -0.1px;\n margin: 0;\n display: inline-flex;\n align-items: center;\n\n &:not(:first-of-type) {\n margin-left: 16px;\n }\n\n hy-icon {\n margin-right: 4px;\n\n svg {\n fill: var(--grayscale-dark);\n }\n }\n }\n}\n","import {Component, h, Prop} from '@stencil/core';\n\n@Component({\n tag: 'hy-twitter-feed',\n styleUrl: 'hy-twitter-feed.scss',\n shadow: false,\n})\nexport class HyTwitterFeed {\n @Prop() headingVariant: string;\n @Prop() paragraphTitle?: string;\n @Prop() twitterFeedKeyword: string;\n @Prop() tweetType: string;\n @Prop() tweets: string;\n\n render() {\n const parsedTweets = JSON.parse(this.tweets);\n const HeadingVariant = this.headingVariant.toLowerCase();\n\n if (this.tweetType === 'Hashtag' && this.twitterFeedKeyword.charAt(0) === '#') {\n this.twitterFeedKeyword = this.twitterFeedKeyword.substring(1);\n }\n\n return (\n <section class=\"hy-twitter-feed\">\n <div class=\"hy-twitter-feed__header\">\n <HeadingVariant class=\"hy-twitter-feed__title\">{this.paragraphTitle || 'Twitter'}</HeadingVariant>\n <p class=\"hy-twitter-feed__keyword\">\n <hy-icon icon={`hy-icon-some-twitter`} size={20} />\n {this.tweetType === 'Hashtag' ? `#${this.twitterFeedKeyword}` : `@${this.twitterFeedKeyword}`}\n </p>\n {this.tweetType === 'Username' && (\n <a href={`https://twitter.com/${this.twitterFeedKeyword}`} target=\"_blank\">\n <hy-icon icon={`hy-icon-plus`} size={12} />\n Follow\n </a>\n )}\n </div>\n <ul class=\"hy-twitter-feed__tweets\">\n {parsedTweets.map(\n ({\n tweet_text,\n tweet_created,\n tweet_absolute_url,\n tweet_like_count,\n tweet_retweet_count,\n user_name,\n user_username,\n user_profile_image_url,\n }) => {\n const dateFormatted = new Intl.DateTimeFormat('fi-FI').format(new Date(tweet_created));\n\n return (\n <li class=\"hy-twitter-feed__item\">\n <article class=\"hy-twitter-tweet\">\n <header class=\"hy-twitter-tweet__header\">\n <figure class=\"hy-twitter-tweet__profile-image\" role=\"complementary\">\n <img src={user_profile_image_url} alt=\"\" />\n </figure>\n <div class=\"hy-twitter-tweet__header-content\">\n <time dateTime={tweet_created}>{dateFormatted}</time>\n <p>{user_name}</p>\n <a\n class=\"hy-twitter-tweet__user-link\"\n href={`https://twitter.com/${user_username}`}\n target=\"_blank\"\n >\n @{user_username}\n </a>\n </div>\n </header>\n <div class=\"hy-twitter-tweet__content-wrapper\">\n <div class=\"hy-twitter-tweet__content\">\n <p>{tweet_text.length > 113 ? `${tweet_text.substr(0, 113)}...` : tweet_text}</p>\n <a class=\"hy-twitter-tweet__tweet-link\" href={tweet_absolute_url} target=\"_blank\">\n <span aria-hidden=\"true\"></span>\n {`${tweet_absolute_url.substr(0, 24)}...`}\n </a>\n </div>\n <div class=\"hy-twitter-tweet__statistics\" role=\"complementary\">\n <p>\n <span class=\"visually-hidden\">Tweet like count: </span>\n <hy-icon icon={`hy-icon-some-twitter-like`} size={16} />\n {tweet_like_count}\n </p>\n <p>\n <span class=\"visually-hidden\">Tweet retweet count: </span>\n <hy-icon icon={`hy-icon-some-twitter-retweet`} size={16} />\n {tweet_retweet_count}\n </p>\n </div>\n </div>\n </article>\n </li>\n );\n }\n )}\n </ul>\n </section>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-two-columns {\n align-items: flex-start;\n display: flex;\n flex-direction: column;\n\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin-top: 0;\n }\n p {\n margin-top: 0;\n }\n\n @include breakpoint($narrow) {\n flex-direction: row;\n }\n\n &--reversed {\n flex-direction: column;\n\n @include breakpoint($narrow) {\n flex-direction: row-reverse;\n }\n\n .hy-two-columns__item--side {\n margin-left: 0;\n margin-right: 0;\n\n @include breakpoint($narrow) {\n margin-right: 5.79%;\n }\n\n @include breakpoint($wide) {\n margin-right: 8.5%;\n }\n }\n }\n}\n\n.hy-two-columns__item {\n width: 100%;\n\n [slot='main'] {\n width: 100%;\n\n .hy-paragraph-text {\n width: 100% !important;\n }\n }\n\n [slot='side'] {\n width: 100%;\n }\n\n &--main {\n display: flex;\n flex-basis: 100%;\n width: 100%;\n\n @include breakpoint($narrow) {\n flex-basis: 67.01%;\n }\n\n @include breakpoint($wide) {\n flex-basis: 63%;\n }\n }\n\n &--side {\n display: flex;\n flex-basis: 100%;\n margin-left: 0;\n margin-right: 0;\n padding-left: 0;\n padding-right: 0;\n width: 100%;\n\n @include breakpoint($narrow) {\n flex-basis: 32.99%; // sidebar width is always 4.5 column of the global 12-col content area grid.\n margin-left: 5.79%; // (half of the column+gutter) of global 12-col grid = gap between main and sidebar\n }\n\n @include breakpoint($wide) {\n flex-basis: 37%;\n margin-left: 8.5%; // (1 column + gutter) of global 12-col grid = gap between main and sidebar\n padding: 0;\n }\n\n // Key figure block inside Sidebar\n hy-key-figure {\n padding: 0 10.67%;\n @include breakpoint($narrow) {\n padding: 0;\n }\n }\n }\n}\n","import {Component, Host, h, Prop} from '@stencil/core';\n\n@Component({\n tag: 'hy-two-columns',\n styleUrl: 'hy-two-columns.scss',\n shadow: false,\n})\nexport class HyTwoColumns {\n @Prop() reversed: boolean = false;\n\n render() {\n const classAttributes = ['hy-two-columns', this.reversed ? 'hy-two-columns--reversed' : ''].join(' ');\n\n return (\n <Host>\n <div class={classAttributes}>\n <div class=\"hy-two-columns__item hy-two-columns__item--main\">\n <slot name=\"main\"></slot>\n </div>\n <div class=\"hy-two-columns__item hy-two-columns__item--side\">\n <slot name=\"side\"></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-user-login-form {\n font-family: var(--main-font-family);\n\n .user-login-form {\n position: relative;\n\n .hy-login-label {\n margin-top: 16px;\n }\n\n input {\n display: block;\n margin: 8px 0 0 0;\n min-height: 32px;\n }\n\n label {\n @include font-size(16px, 16px);\n @include font-weight($bold);\n display: block;\n }\n\n label:before {\n content: '*';\n padding-right: 3px;\n }\n\n div#edit-name--description,\n div#edit-pass--description {\n display: none;\n }\n\n div.form-item-pass {\n margin-top: 28px;\n }\n\n div#edit-actions {\n margin-top: 32px;\n }\n }\n}\n","import {Component, h, Prop} from '@stencil/core';\nimport {ColorVariant, SiteLogoSize} from '../../utils/utils';\n\n@Component({\n tag: 'hy-user-login-form',\n styleUrl: 'hy-user-login-form.scss',\n shadow: false,\n})\nexport class HyUserLoginForm {\n @Prop() logoUrl?: string;\n @Prop() logoLabel?: string;\n\n render() {\n const classAttributes = 'hy-user-login-form';\n\n const logoSize = SiteLogoSize.large;\n const logoColor = ColorVariant.black;\n\n return (\n <div class={classAttributes}>\n <div class={'hy-site-header__logo-container'}>\n <hy-site-logo size={logoSize} color={logoColor} url={this.logoUrl} label={this.logoLabel} />\n </div>\n\n <slot />\n </div>\n );\n }\n}\n",":host {\n display: block;\n}\n\na.hy-video {\n text-decoration: none;\n}\n\n.hy-video__video-container {\n display: inline-block;\n margin-bottom: 22px;\n position: relative;\n width: 100%;\n\n iframe {\n border: 0;\n height: 100%;\n overflow: hidden;\n width: 100%;\n\n @supports (aspect-ratio: 16 / 9) {\n aspect-ratio: 16 / 9;\n height: auto;\n }\n }\n\n .hy-video__preview-image {\n height: 100%;\n left: 0;\n object-fit: cover;\n position: absolute;\n top: 0;\n width: 100%;\n }\n\n .hy-video__play {\n background-color: var(--grayscale-white);\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translateX(-50%) translateY(-50%);\n\n button {\n align-items: center;\n background: transparent;\n border: none;\n display: flex;\n flex-direction: column;\n padding: 24px;\n\n @include breakpoint($narrow) {\n padding: 36px;\n }\n\n &:hover {\n cursor: pointer;\n }\n }\n\n button .hy-video__button-label {\n @include font-size(15px, 18px);\n\n color: var(--link-blue);\n font-family: var(--main-font-family);\n font-weight: bold;\n letter-spacing: -0.1px;\n text-align: center;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n @include font-size(17px, 20px);\n\n letter-spacing: -0.14px;\n }\n\n @include breakpoint($extrawide) {\n @include font-size(17px, 20px);\n\n letter-spacing: -0.16px;\n }\n }\n\n button svg {\n fill: var(--link-blue);\n height: 44px;\n width: 44px;\n\n @include breakpoint($wide) {\n height: 80px;\n width: 80px;\n }\n }\n }\n\n .hy-video__play__simple {\n background-color: rgba(#000000, 0.2);\n position: absolute;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &:hover {\n cursor: pointer;\n }\n\n button {\n align-items: center;\n background: transparent;\n border: none;\n display: flex;\n }\n\n button svg {\n fill: var(--grayscale-white);\n height: 44px;\n width: 44px;\n\n @include breakpoint($wide) {\n height: 80px;\n width: 80px;\n }\n }\n }\n\n > *:not(.hy-video__label, .hy-video__play, .hy-video__play__simple) {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n }\n\n &:after {\n content: '';\n display: block;\n // 16:9 ratio\n padding-top: calc(9 / 16) * 100%;\n }\n}\n\n.hy-video:not(.hy-video--horizontal) {\n display: flex;\n flex-direction: column;\n\n &:not(.hy-video__default, .hy-video--list) {\n @include breakpoint($xlarge) {\n max-width: 66%;\n }\n }\n}\n\n.hy-video--list {\n .hy-video__meta__details {\n justify-content: flex-start;\n gap: 32px;\n margin: 0;\n }\n .hy-video__meta__details--item {\n margin-right: 0;\n padding-right: 0;\n }\n}\n\n.hy-video__label {\n // font: h5 small size\n @include font-size(12px, 14px);\n display: inline-block;\n background-color: var(--grayscale-black);\n color: var(--grayscale-white);\n font-family: var(--main-font-family);\n font-weight: bold;\n letter-spacing: -0.5px;\n padding: 6px 8px;\n margin: 0 0 22px;\n text-transform: uppercase;\n}\n\n.hy-video.hy-video--horizontal {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n\n @include breakpoint($wide) {\n flex-direction: row;\n }\n\n .hy-video__meta {\n padding-left: 0;\n width: 100%;\n\n @include breakpoint($wide) {\n padding-left: 2.5%;\n width: 57.24%;\n }\n }\n}\n\n.hy-video__meta__title {\n h2.hy-heading,\n h3.hy-heading {\n border: none;\n margin: 8px 0 12px 0 !important;\n hyphens: auto;\n word-break: break-word;\n padding: 0 !important;\n\n @include breakpoint($wide) {\n margin: 0 0 16px 0 !important;\n }\n }\n}\n\n.hy-video__meta__details {\n display: flex;\n flex-direction: row;\n margin-bottom: 12px;\n\n @include breakpoint($wide) {\n margin-bottom: 16px;\n }\n}\n\n.hy-video__meta__details--item {\n display: flex;\n flex-direction: column;\n margin-right: 44px;\n min-width: 87px;\n padding-right: 46px;\n place-content: center space-between;\n}\n\n.hy-video__meta__description__content {\n @include font-size(15px, 22px);\n\n color: var(--grayscale-black);\n display: block;\n font-family: var(--main-font-family);\n letter-spacing: 0;\n width: 100%;\n\n @include breakpoint($narrow) {\n @include font-size(17px, 26px);\n }\n}\n\n.hy-video__meta__description__more-button {\n @include font-size(16px, 24px);\n color: var(--brand-main-light);\n font-family: var(--main-font-family);\n\n &:hover {\n cursor: pointer;\n }\n}\n\n.hy-video__meta__label {\n @include font-size(15px, 18px);\n @include font-weight($bold);\n color: var(--grayscale-black);\n font-family: var(--main-font-family);\n margin-bottom: 4px;\n}\n\n.hy-video__meta__content {\n @include font-size(15px, 22px);\n\n color: var(--grayscale-black);\n font-family: var(--main-font-family);\n letter-spacing: -0.5px;\n\n @include breakpoint($narrow) {\n @include font-size(17px, 26px);\n\n letter-spacing: -0.56px;\n }\n}\n","import {Component, Prop, h, Element, State} from '@stencil/core';\nimport {HeadingVarians} from '../../utils/utils';\n\n@Component({\n tag: 'hy-video',\n styleUrl: 'hy-video.scss',\n shadow: false,\n})\nexport class HyVideo {\n @Element() el: HTMLElement;\n\n /** Video title */\n @Prop() videoTitle: string;\n /** Video description */\n @Prop() videoDescription: string;\n /** Context label */\n @Prop() contextLabel: string;\n /** Should context label be visible */\n @Prop() contextLabelVisible: boolean = false;\n /** Preview image url */\n @Prop() previewImageUrl: string;\n /** Url to video, used with preview image */\n @Prop() linkToVideo: string;\n /** Label for play button if preview image is provided */\n @Prop() playButtonLabel: string;\n /** Should play button be visible */\n @Prop() playButtonVisible: boolean = false;\n /** Series label */\n @Prop() seriesLabel: string = 'In this series';\n /** Series count */\n @Prop() seriesCount: string = null;\n /** Views count number */\n @Prop() views: string;\n /** Label for views number */\n @Prop() viewsLabel: string;\n /** Duration number */\n @Prop() duration: string;\n /** Label for duration number */\n @Prop() durationLabel: string;\n /** Date added date as string */\n @Prop() dateAdded: string;\n /** Label for date added */\n @Prop() dateAddedLabel: string;\n /** Use horizontal layout where metadata is on side */\n @Prop() horizontal: boolean = false;\n\n @Prop() disableLazy: boolean = false;\n\n @Prop() headerstyle: string = 'default';\n\n @Prop() showMoreLabel: string = 'Show more';\n\n @Prop() showLessLabel: string = 'Show less';\n\n @Prop() simplePlayButton: boolean = false;\n\n @Prop() styleList: boolean = false;\n\n @State() descCollapsed: boolean = false;\n\n componentDidLoad() {\n let hyMainDiv = this.el.closest('.hy-main');\n if (hyMainDiv) {\n if (!hyMainDiv.classList.contains('with-sidebar')) {\n this.headerstyle = 'large';\n }\n }\n\n if (this.videoDescription && this.videoDescription.match(/\\S/g).length > 255) {\n this.descCollapsed = true;\n }\n }\n\n renderPreviewWithLink = () => {\n return this.linkToVideo ? (\n <a title={this.videoTitle} href={this.linkToVideo} class=\"hy-video__link-to-video\">\n <img\n loading={this.disableLazy ? 'eager' : 'lazy'}\n class=\"hy-video__preview-image\"\n src={this.previewImageUrl}\n alt={this.videoTitle}\n />\n </a>\n ) : (\n <img\n loading={this.disableLazy ? 'eager' : 'lazy'}\n class=\"hy-video__preview-image\"\n src={this.previewImageUrl}\n alt={this.videoTitle}\n />\n );\n };\n\n renderPlayButton = () => {\n if (this.simplePlayButton) {\n return (\n <span class=\"hy-video__play__simple\">\n <button type=\"button\">\n <hy-icon icon={'hy-icon-video'} class={'hy-video__play-icon'} size={20} />\n </button>\n </span>\n );\n } else {\n return (\n <span class=\"hy-video__play\">\n <button type=\"button\">\n <hy-icon icon={'hy-icon-video'} class={'hy-video__play-icon'} size={20} />\n <span class=\"hy-video__button-label\">{this.playButtonLabel}</span>\n </button>\n </span>\n );\n }\n };\n\n truncate = (str, n) => {\n return str.length > n ? str.substr(0, n - 1) + '...' : str;\n };\n\n render() {\n const classAttributes = [\n 'hy-video',\n this.horizontal ? 'hy-video--horizontal' : '',\n !this.styleList ? `hy-video__${this.headerstyle}` : '',\n this.styleList ? 'hy-video--list' : '',\n ].join(' ');\n\n const maxChars = 255;\n const charCount = this.videoDescription ? this.videoDescription.match(/\\S/g).length : 0;\n\n if (this.linkToVideo && this.styleList) {\n return [\n <a href={this.linkToVideo} class={classAttributes}>\n {this.videoTitle && !this.horizontal && !this.styleList && (\n <hy-heading class=\"hy-video__meta__title\" heading={HeadingVarians.h2}>\n {this.videoTitle}\n </hy-heading>\n )}\n <div class=\"hy-video__video-container\">\n {this.previewImageUrl ? (\n <div>\n {this.renderPreviewWithLink()}\n <slot name=\"video\"></slot>\n </div>\n ) : (\n <slot name=\"video\"></slot>\n )}\n {this.playButtonVisible && this.renderPlayButton()}\n </div>\n <div class=\"hy-video__meta\">\n {(this.videoTitle && this.horizontal) ||\n (this.styleList && (\n <hy-heading class=\"hy-video__meta__title\" heading={HeadingVarians.h3}>\n {this.videoTitle}\n </hy-heading>\n ))}\n {this.contextLabelVisible && <span class=\"hy-video__label\">{this.contextLabel}</span>}\n {(this.duration || this.views || this.dateAdded || this.seriesCount) && (\n <div class=\"hy-video__meta__details\">\n {this.duration && (\n <div class=\"hy-video__meta__details--item\">\n <span class=\"hy-video__meta__label\">{this.durationLabel}</span>\n <span class=\"hy-video__meta__content\">{this.duration}</span>\n </div>\n )}\n {this.views && (\n <div class=\"hy-video__meta__details--item\">\n <span class=\"hy-video__meta__label\">{this.viewsLabel}</span>\n <span class=\"hy-video__meta__content\">{this.views}</span>\n </div>\n )}\n {this.dateAdded && (\n <div class=\"hy-video__meta__details--item\">\n <span class=\"hy-video__meta__label\">{this.dateAddedLabel}</span>\n <span class=\"hy-video__meta__content\">{this.dateAdded}</span>\n </div>\n )}\n {!this.views && this.seriesCount && (\n <div class=\"hy-video__meta__details--item\">\n <span class=\"hy-video__meta__label\">{this.seriesLabel}</span>\n <span class=\"hy-video__meta__content\">{this.seriesCount}</span>\n </div>\n )}\n </div>\n )}\n {this.videoDescription && (\n <div class=\"hy-video__meta__description\" aria-expanded={this.descCollapsed ? 'false' : 'true'}>\n <div class=\"hy-video__meta__description__content\">\n {this.descCollapsed ? this.truncate(this.videoDescription, 255) : this.videoDescription}\n </div>\n {charCount > maxChars && (\n <span\n class=\"hy-video__meta__description__more-button\"\n role=\"button\"\n tabindex=\"0\"\n aria-expanded={this.descCollapsed ? 'false' : 'true'}\n onClick={() => (this.descCollapsed = !this.descCollapsed)}\n onKeyDown={(e) => {\n if (e.key != ' ') return;\n e.preventDefault();\n this.descCollapsed = !this.descCollapsed;\n }}\n >\n {this.descCollapsed ? this.showMoreLabel : this.showLessLabel}\n </span>\n )}\n </div>\n )}\n </div>\n </a>,\n ];\n } else {\n return [\n <div class={classAttributes}>\n {this.videoTitle && !this.horizontal && !this.styleList && (\n <hy-heading class=\"hy-video__meta__title\" heading={HeadingVarians.h2}>\n {this.videoTitle}\n </hy-heading>\n )}\n <div class=\"hy-video__video-container\">\n {this.previewImageUrl ? (\n <div>\n {this.renderPreviewWithLink()}\n <slot name=\"video\"></slot>\n </div>\n ) : (\n <slot name=\"video\"></slot>\n )}\n {this.playButtonVisible && this.renderPlayButton()}\n </div>\n <div class=\"hy-video__meta\">\n {(this.videoTitle && this.horizontal) ||\n (this.styleList && (\n <hy-heading class=\"hy-video__meta__title\" heading={HeadingVarians.h2}>\n {this.videoTitle}\n </hy-heading>\n ))}\n {this.contextLabelVisible && <span class=\"hy-video__label\">{this.contextLabel}</span>}\n {(this.duration || this.views || this.dateAdded) && (\n <div class=\"hy-video__meta__details\">\n {this.duration && (\n <div class=\"hy-video__meta__details--item\">\n <span class=\"hy-video__meta__label\">{this.durationLabel}</span>\n <span class=\"hy-video__meta__content\">{this.duration}</span>\n </div>\n )}\n {this.views && (\n <div class=\"hy-video__meta__details--item\">\n <span class=\"hy-video__meta__label\">{this.viewsLabel}</span>\n <span class=\"hy-video__meta__content\">{this.views}</span>\n </div>\n )}\n {this.dateAdded && (\n <div class=\"hy-video__meta__details--item\">\n <span class=\"hy-video__meta__label\">{this.dateAddedLabel}</span>\n <span class=\"hy-video__meta__content\">{this.dateAdded}</span>\n </div>\n )}\n </div>\n )}\n {this.videoDescription && (\n <div class=\"hy-video__meta__description\" aria-expanded={this.descCollapsed ? 'false' : 'true'}>\n <div class=\"hy-video__meta__description__content\">\n {this.descCollapsed ? this.truncate(this.videoDescription, 255) : this.videoDescription}\n </div>\n {charCount > maxChars && (\n <span\n class=\"hy-video__meta__description__more-button\"\n role=\"button\"\n tabindex=\"0\"\n aria-expanded={this.descCollapsed ? 'false' : 'true'}\n onClick={() => (this.descCollapsed = !this.descCollapsed)}\n onKeyDown={(e) => {\n if (e.key != ' ') return;\n e.preventDefault();\n this.descCollapsed = !this.descCollapsed;\n }}\n >\n {this.descCollapsed ? this.showMoreLabel : this.showLessLabel}\n </span>\n )}\n </div>\n )}\n </div>\n </div>,\n <hy-box mb=\"1.75, 1.75, 2, 2.5\" />,\n ];\n }\n }\n}\n"],"mappings":"uUAAA,MAAMA,EAAwB,ytC,MCOjBC,EAAkB,M,oDAY7BC,SACE,MAAMC,EAAkB,CAAC,yBAA0B,mBACnD,MAAMC,EAAKC,KAAKC,YAAYC,cAAcC,QAAQ,MAAO,KACzD,OACEC,EAACC,EAAI,KACHD,EAAA,OAAKL,GAAIA,EAAIO,MAAOR,EAAgBS,KAAK,KAAI,sBAAsB,OAAM,oBAAmB,QAC1FH,EAAA,cAEFA,EAAA,UAAQI,GAAG,uB,aC3BnB,MAAMC,EAAmB,umNCGzB,IAAIC,EAAO,CACTC,MAAO,QACPC,IAAK,MACLC,OAAQ,SACRC,SAAU,WACVC,QAAS,UACTC,UAAW,YACXC,KAAM,OACNC,IAAK,O,MAQMC,EAAa,M,oEAGaC,EAAkBC,Q,iBACzB,S,cACF,M,WACF,K,CAE1BC,mBACEtB,KAAKuB,MAAQ,KAEb,IAAIC,EAAYxB,KAAKyB,GAAGC,QAAQ,YAChC,GAAIF,EAAW,CACb,IAAKA,EAAUG,UAAUC,SAAS,gBAAiB,CACjD5B,KAAK6B,YAAc,O,GAKzBC,qBACE,GAAIC,OAAOC,SAASC,KAAM,CACxBjC,KAAKkC,oBAAoBH,OAAOC,SAASC,K,CAG3CE,SAASC,iBAAiB,0BAA0BC,SAAQ,SAAUC,GACpE,IAAIC,EAAWD,EAAUX,UAAUC,SAAS,QAC5C,IAAIY,EAAUF,EACd,GAAIC,EAAU,CACZC,EAAQC,MAAMC,QAAU,QACxBF,EAAQC,MAAME,OAASH,EAAQI,aAAe,I,KACzC,CACLJ,EAAQC,MAAME,OAAS,EAAI,KAC3BH,EAAQC,MAAMC,QAAU,M,KAM9BG,eACE,GAAId,OAAOC,SAASC,KAAM,CACxBjC,KAAKkC,oBAAoBH,OAAOC,SAASC,K,EAK7Ca,cAAcC,GACZ,MAAMC,EAAchD,KAAKyB,GAAGwB,cAAclD,GAC1C,IAAIuC,EAAYH,SAASC,iBAAiB,IAAIY,KAAe,GAE7D,MAAME,EAAWC,MAAMC,UAAUC,MAAMC,KAAKhB,EAAUF,iBAAiB,0BACvE,IAAImB,EAASR,EAAMQ,OACnB,MAAMC,EAAMT,EAAMU,KAElB,MAAMC,EAAeX,EAAMY,SAAW,CAACjD,EAAKI,SAAUJ,EAAKG,QAAQ+C,SAASJ,GAE5E,GAAID,EAAO5B,UAAUC,SAAS,wBAAyB,CAErD,GAAI,CAAClB,EAAKM,UAAWN,EAAKK,SAAS6C,SAASJ,IAAQE,EAAc,CAChE,MAAMG,EAAQX,EAASY,QAAQP,GAC/B,MAAMQ,EAAY,CAACrD,EAAKM,UAAWN,EAAKI,UAAU8C,SAASJ,GAAO,GAAK,EACvE,MAAMQ,EAASd,EAASc,OACxB,MAAMC,GAAYJ,EAAQG,EAASD,GAAaC,EAChDd,EAASe,GAAUC,QAEnBnB,EAAMoB,gB,MACD,GAAI,CAACzD,EAAKO,KAAMP,EAAKQ,KAAK0C,SAASJ,GAAM,CAC9C,OAAQA,GAEN,KAAK9C,EAAKO,KACRiC,EAAS,GAAGgB,QACZ,MAEF,KAAKxD,EAAKQ,IACRgC,EAASA,EAASc,OAAS,GAAGE,QAC9B,MAEJnB,EAAMoB,gB,GAMZC,YAAYrB,GACV,MAAMQ,EAASR,EAAMQ,OACrB,MAAMc,EAAqBrE,KAAKyB,GAAGwB,cACnC,MAAMqB,EAAgBD,EAAmBE,aAAa,uBACtD,MAAMC,EAAcF,EAAgBA,EAAgBD,EAAmBE,aAAa,qBAEpF,GAAIhB,GAAUA,EAAOkB,QAAQvE,gBAAkB,SAAU,CACvD,IAAIwE,EAAenB,EAAO7B,QAAQ,uBAClC,IAAIiD,EAAgBD,EAAaE,uBAAuB,yBAAyB,GACjF,MAAMC,EAAatB,EAAOuB,aAAa,mBAAqB,OAC5D,MAAMC,EAAsBV,EAAmBW,cAAc,0BAE7D,IAAKV,GAAiBS,GAAuBA,IAAwBxB,EAAQ,CAC3EwB,EAAoBE,aAAa,gBAAiB,SAClDjF,KAAKkF,gBAAgBP,GACrB,GAAID,EAAa/C,UAAUC,SAAS,+BAAgC,CAClE8C,EAAa/C,UAAUwD,OAAO,8B,CAGhCd,EACGW,cAAc,IAAID,EAAoBD,aAAa,oBACnDG,aAAa,cAAe,QAE/B,IAAKT,EAAa,CAChBO,EAAoBK,gBAAgB,gB,EAIxC,IAAKP,EAAY,CACf7E,KAAKqF,cAAcV,GACnBpB,EAAO0B,aAAa,gBAAiB,QACrCP,EAAa/C,UAAU2D,IAAI,+BAE3BjB,EACGW,cAAc,IAAIzB,EAAOuB,aAAa,oBACtCG,aAAa,cAAe,SAE/B,IAAKT,EAAa,CAChBjB,EAAO0B,aAAa,gBAAiB,O,OAElC,GAAIT,GAAeK,EAAY,CACpCtB,EAAO0B,aAAa,gBAAiB,SAErCjF,KAAKkF,gBAAgBP,GAErB,GAAID,EAAa/C,UAAUC,SAAS,+BAAgC,CAClE8C,EAAa/C,UAAUwD,OAAO,8B,CAGhCd,EACGW,cAAc,IAAIzB,EAAOuB,aAAa,oBACtCG,aAAa,cAAe,O,CAGjClC,EAAMoB,iBACNpB,EAAMwC,0B,EAIVrD,oBAAoBsD,GAClBC,YAAW,KACT,GAAID,EAAOxB,OAAS,EAAG,CACrBwB,EAASA,EAAOE,OAAO,GACvB,IAAInC,EAASpB,SAASC,iBAAiB,OAAOoD,MAAW,GACzD,GAAIjC,GAAUA,EAAO5B,UAAUC,SAAS,wBAAyB,CAC/D,IAAI8C,EAAenB,EAAO7B,QAAQ,uBAElC,IAAIiD,EAAgBD,EAAatC,iBAAiB,0BAA0B,GAE5EpC,KAAKqF,cAAcV,GACnBpB,EAAO0B,aAAa,gBAAiB,QACrCP,EAAa/C,UAAU2D,IAAI,+BAE3B,MAAMK,EAAoBpC,EAAOqC,wBACjC7D,OAAO8D,SAAS,CAACC,IAAK/D,OAAOgE,QAAUJ,EAAkBG,IAAM,IAAKE,SAAU,WAE9E,MAAMhD,EAAc0B,EAAazB,cAAcA,cAAclD,GAE7D,GAAIiD,EAAYgB,OAAS,EAAG,CAC1B,IAAI1B,EAAYH,SAASC,iBAAiB,IAAIY,KAAe,GAC7DV,EAAU0C,cAAc,IAAIzB,EAAOuB,aAAa,oBAAoBG,aAAa,cAAe,Q,MAIrG,I,CAGLC,gBAAgB1C,GACdA,EAAQC,MAAME,OAAS,EAAI,KAC3BH,EAAQyC,aAAa,iBAAkB,QACvCQ,YAAW,KACTjD,EAAQC,MAAMC,QAAU,MAAM,GAC7B,I,CAGL2C,cAAc7C,GACZA,EAAQC,MAAMC,QAAU,QACxBF,EAAQC,MAAME,OAASH,EAAQI,aAAe,KAC9CJ,EAAQyC,aAAa,iBAAkB,Q,CAGzCpF,SACE,MAAMmD,EAAchD,KAAKyB,GAAGwB,cAAclD,GAE1C,GAAIC,KAAKuB,OAASyB,EAAYgB,OAAS,EAAG,CACxC7B,SAASC,iBAAiB,IAAIY,KAAeX,SAAQ,SAAUC,GAC7D,GAAIA,EAAW,CACbA,EAAUF,iBAAiB,yBAAyBC,SAAQ,SAAU4D,GACpEA,EAAQC,iBAAiB,SAAS,WAChCD,EAAQtE,UAAU2D,IAAI,Q,IAExBW,EAAQC,iBAAiB,QAAQ,WAC/BD,EAAQtE,UAAUwD,OAAO,Q,WAOnC,MAAMgB,EAAcnG,KAAKuC,SAAW,8BAAgC,GACpE,MAAM6D,EAAqBpG,KAAKuC,SAAW,OAAS,GACpD,MAAMzC,EAAkB,CAAC,qBAAsBE,KAAKqG,QAASF,GAAa5F,KAAK,KAC/E,MAAM+F,EAAoB,CAAC,gCAAiCtG,KAAKqG,SAAS9F,KAAK,KAC/E,MAAMgG,EAAyB,CAAC,wBAAyBvG,KAAKqG,SAAS9F,KAAK,KAC5E,MAAMiG,EAAyB,CAC7B,wBACA,0BAA0BxG,KAAKqG,UAC/BrG,KAAKqG,QACLD,GACA7F,KAAK,KACP,MAAMkG,EAA2B,CAC/B,uCACA,yCAAyCzG,KAAK6B,cAC9C,yCAAyC7B,KAAKqG,WAC9C9F,KAAK,KAEP,MAAMmG,EAAY1G,KAAK2G,eAAezG,cAAcC,QAAQ,MAAO,KACnE,MAAMyG,EAAoB,IAAMF,EAAY,UAE5C,MAAMG,EAAe7G,KAAKuC,SAAW,OAAS,QAC9C,MAAMuE,EAAa9G,KAAKuC,SAAW,QAAU,OAC7C,MAAMwE,EAAgB/G,KAAKuC,SAAW,QAAU,OAEhD,OACEnC,EAAA,OAAKE,MAAOR,GACVM,EAAA,OAAKE,MAAOgG,GACVlG,EAAA,MAAIE,MAAOiG,GACTnG,EAAA,KAAG4G,KAAMJ,EAAmBtG,MAAM,qBAAqB2G,SAAS,MAC9D7G,EAAA,0BACiByG,EAAY,gBACZ,GAAGH,aAClBpG,MAAO,8CAA8CN,KAAK6B,cAC1D9B,GAAI,GAAG2G,YAEPtG,EAAA,QAAME,MAAM,+BACVF,EAAA,WAAS8G,KAAM,qBAAsBC,KAAM,MAE7C/G,EAAA,YAAOJ,KAAK2G,mBAIlBvG,EAAA,yBACmB,GAAGsG,WACpBpG,MAAOkG,EACPzG,GAAI,GAAG2G,aACPU,KAAK,SAAQ,cACAN,EAAU,iBACPC,EAChBtE,MAAO,CAACC,QAAS,SAEjBtC,EAAA,OAAKE,MAAOmG,GACVrG,EAAA,gB,qCChRd,MAAMiH,EAAuB,imL,MCehBC,EAAiB,M,0CAEE,U,cACH,K,cACA,G,iBACI,M,8CAEG,K,0GAKG,M,8GAKC,M,yBAKtCC,0BACEvH,KAAKwH,iBAAmBC,EAAiBzH,KAAK0H,U,CAGhDpG,mBACE,IAAIE,EAAYxB,KAAKyB,GAAGC,QAAQ,YAChC,GAAIF,EAAW,CACb,IAAKA,EAAUG,UAAUC,SAAS,gBAAiB,CACjD5B,KAAK6B,YAAc,O,GAKzBhC,SACE,MAAMC,EAAkB,CAAC,yBAA0B,2BAA2BE,KAAK6B,eAAetB,KAAK,KACvG,MAAMoH,EAAyB,CAC7B,yCACA,gDACApH,KAAK,KAEP,MAAMqH,EAA2B,CAAC,2CAA2CrH,KAAK,KAElF,MAAMsH,EAAmB,EACzB,MAAMC,EAAoB,EAC1B,MAAMC,EAAUD,EAAoBD,EAAoB,IACxD,MAAMG,EAAc,CAClB,gBAAiB,GAAGD,MAGtB,OACE3H,EAACC,EAAI,KACHD,EAAA,OAAKE,MAAOR,GACVM,EAAA,OAAKE,MAAOsH,EAA0BnF,MAAOuF,GAC1ChI,KAAKwH,WACJpH,EAAA,eACGJ,KAAKwH,WAAWS,KAAKC,GACpB9H,EAAA,UAAQ+H,OAAQD,EAAKE,IAAKC,MAAOH,EAAKG,MAAOC,KAAMJ,EAAKI,KAAMC,MAAOL,EAAKK,MAAQL,EAAKK,MAAQ,OAEjGnI,EAAA,OACEoI,QAASxI,KAAKyI,YAAc,QAAU,OACtCC,IAAK1I,KAAK2I,SACVrI,MAAM,kBACN8H,IAAKpI,KAAK4I,YAIdxI,EAAA,OACEoI,QAASxI,KAAKyI,YAAc,QAAU,OACtCC,IAAK1I,KAAK2I,SACVrI,MAAM,kBACN8H,IAAKpI,KAAK4I,YAIhBxI,EAAA,OAAKE,MAAOqH,GACVvH,EAAA,OAAKE,MAAM,wDACTF,EAAA,OAAKE,MAAM,iDAAiDN,KAAK6I,WACjEzI,EAAA,KACEE,MAAO,4GAA4GN,KAAK6B,eAEvH7B,KAAK8I,kBAGV1I,EAAA,OAAKE,MAAM,yDACRN,KAAK+I,SACJ3I,EAAA,OAAKE,MAAM,gDACTF,EAAA,8BACgBJ,KAAKgJ,aAAY,WACrBhJ,KAAKiJ,iBACfC,IAAKlJ,KAAK+I,QAAO,cACJ/I,KAAKmJ,qBAIvBnJ,KAAKoJ,UACJhJ,EAAA,OAAKE,MAAM,gDACTF,EAAA,8BACgBJ,KAAKqJ,cAAa,WACtBrJ,KAAKsJ,kBACfJ,IAAKlJ,KAAKoJ,SAAQ,cACLpJ,KAAKuJ,yBAO9BnJ,EAAA,UAAQI,GAAG,uB,qCC5HnB,MAAMgJ,EAAsB,0jH,MCafC,EAAgB,M,4IAoBA,K,CAE3BlC,0BACEvH,KAAK0J,mBAAqBjC,EAAiBzH,KAAK2J,Y,CAIlDC,gBAAgBC,GACd,MAAMC,EAAWD,EAAEtG,OAAOuB,aAAa,QACvC,GAAIgF,EAAU,CACZ,MAAMC,EAAgB5H,SAAS6H,eAAeF,EAASG,UAAU,IACjE,MAAMC,EAAaH,EAAcnE,wBACjC7D,OAAO8D,SAAS,CAACC,IAAK/D,OAAOgE,QAAUmE,EAAWpE,IAAM,IAAKE,SAAU,WACvE+D,EAAc9E,aAAa,WAAY,MACvC8E,EAAc7F,MAAM,CAACiG,cAAe,M,CAEtCN,EAAE1F,iBACF0F,EAAEO,iB,CAGJvK,SACE,MAAMC,EAAkB,CAAC,uBAAuBS,KAAK,KACrD,MAAM8J,EAAgB,CACpB,8BAA+B,KAC/B,UAAWrK,KAAKsK,QAElB,MAAMC,EAAmB,CACvB,iCAAkC,KAClC,UAAWvK,KAAKsK,QAElB,MAAME,EAAQxK,KAAK0J,aAEnB,OACEtJ,EAACC,EAAI,CAACC,MAAOR,GACXM,EAAA,uBAAoBJ,KAAKyK,UAAWC,QAAS,IAAO1K,KAAKsK,QAAUtK,KAAKsK,OAAShK,MAAO+J,GACtFjK,EAAA,QAAME,MAAM,sCACVF,EAAA,WAAS8G,KAAM,sBAAuBC,KAAM,GAAIwD,KAAM,sBACrD3K,KAAKyK,WAERrK,EAAA,QAAME,MAAM,sCACTN,KAAKsK,OAAStK,KAAK4K,WAAa5K,KAAK6K,UACtCzK,EAAA,WAASE,MAAM,mBAAmB4G,KAAM,qBAAsBC,KAAM,GAAIwD,KAAM,wBAGlFvK,EAAA,qBAAkBJ,KAAKsK,OAAS,QAAU,OAAQhK,MAAOiK,GACtDC,GACCA,EAAMvC,KAAKC,GACT9H,EAAA,KAAGE,MAAM,4BAA4B0G,KAAMkB,EAAKgB,IAAKwB,QAAS1K,KAAK4J,iBACjExJ,EAAA,WAAS8G,KAAM,qBAAsBC,KAAM,GAAIwD,KAAM,sBACpDzC,EAAK4C,U,aClFtB,MAAMC,EAAa,uoD,MCONC,EAAO,M,sCAC6C,S,CAE/DnL,SACE,MAAMC,EAAkB,CAAC,WAAYE,KAAKqG,SAC1C,OACEjG,EAACC,EAAI,KACHD,EAAA,QAAME,MAAOR,EAAgBS,KAAK,MAChCH,EAAA,c,aCfV,MAAM6K,EAAc,gwH,MCQPC,EAAQ,M,uEAEe,K,mFAIJ,S,gBACA,K,CAG9B5J,mBACE,IAAIE,EAAYxB,KAAKyB,GAAGC,QAAQ,YAChC,GAAIF,EAAW,CACb,IAAKA,EAAUG,UAAUC,SAAS,gBAAiB,CACjD5B,KAAK6B,YAAc,O,GAKzBhC,SACE,MAAMsL,EAAgB,CAAC,YAAa,cAAcnL,KAAK6B,cAAe7B,KAAK6B,aAAatB,KAAK,KAE7F,MAAM6K,EAAuB,CAAC,6BAA6B7K,KAAK,KAChE,MAAM8K,EAAgB,CACpB,mCACA,qCAAqCrL,KAAK6B,cAC1C7B,KAAK6B,aACLtB,KAAK,KACP,MAAM+K,EAAsB,CAC1B,yCACA,2CAA2CtL,KAAK6B,cAChD7B,KAAK6B,aACLtB,KAAK,KAEP,MAAM8F,EAAUkF,EAAsBC,WAEtC,OACEpL,EAACC,EAAI,KACHD,EAAA,UAAQqL,GAAG,yBACXrL,EAAA,OAAKE,MAAO6K,GACV/K,EAAA,+BACEA,EAAA,OAAKE,MAAO8K,GACVhL,EAAA,OAAKE,MAAO+K,GAAgBrL,KAAK6I,WACjCzI,EAAA,OAAKE,MAAOgL,GAAsBtL,KAAK8I,iBACtC9I,KAAKkJ,KACJ9I,EAAA,OAAKE,MAAM,mCACTF,EAAA,gCACgBJ,KAAK0L,SAAQ,WACjB1L,KAAK2L,QACfzC,IAAKlJ,KAAKkJ,IAAG,cACAlJ,KAAK4L,WAClBvF,QAASA,QAOrBjG,EAAA,UAAQI,GAAG,uB,qCC3CnB,SAASqL,EAAYC,GACnB,GAAIA,EAAIC,MAAO,CAEb,OAAOD,EAAIC,KACf,CAKE,IAAK,IAAIC,EAAI,EAAGA,EAAI7J,SAAS8J,YAAYjI,OAAQgI,IAAK,CACpD,GAAI7J,SAAS8J,YAAYD,GAAGE,YAAcJ,EAAK,CAE7C,OAAO3J,SAAS8J,YAAYD,EAClC,CACA,CACA,CAEA,SAASG,EAAmBC,GAC1B,IAAIN,EAAM3J,SAASkK,cAAc,SACjCP,EAAI7G,aAAa,eAAgBmH,EAAQ5I,KAEzC,GAAI4I,EAAQE,QAAUC,UAAW,CAC/BT,EAAI7G,aAAa,QAASmH,EAAQE,MACtC,CAEER,EAAIU,YAAYrK,SAASsK,eAAe,KACxC,OAAOX,CACT,CAEA,IAAIY,EAEJ,WACE,SAASA,EAAWN,GAClBpM,KAAK2M,SAAWP,EAAQQ,SAAWL,UAAY,eAAyB,aAAeH,EAAQQ,OAC/F5M,KAAK6M,KAAO,GACZ7M,KAAK8M,IAAM,EACX9M,KAAKsM,MAAQF,EAAQE,MAErBtM,KAAKwD,IAAM4I,EAAQ5I,IACnBxD,KAAK+M,UAAYX,EAAQW,UACzB/M,KAAKgN,OAAS,IAClB,CAEE,IAAIC,EAASP,EAAWtJ,UAExB6J,EAAOC,OAAS,SAASA,EAAOC,GAI9B,GAAInN,KAAK8M,KAAO9M,KAAK2M,SAAW,KAAQ,KAAO,EAAG,CAChD,IAAIS,EAAOjB,EAAmBnM,MAE9B,IAAIgN,EAEJ,GAAIhN,KAAK6M,KAAK7I,SAAW,EAAG,CAC1BgJ,EAAShN,KAAKgN,MACtB,KAAa,CACLA,EAAShN,KAAK6M,KAAK7M,KAAK6M,KAAK7I,OAAS,GAAGqJ,WACjD,CAEMrN,KAAK+M,UAAUO,aAAaF,EAAMJ,GAClChN,KAAK6M,KAAKU,KAAKH,EACrB,CAEI,IAAItB,EAAM9L,KAAK6M,KAAK7M,KAAK6M,KAAK7I,OAAS,GAEvC,GAAIhE,KAAK2M,SAAU,CACjB,IAAIZ,EAAQF,EAAYC,GAExB,IAKE,IAAI0B,EAAeL,EAAKM,WAAW,KAAO,KAAON,EAAKM,WAAW,KAAO,GAGxE1B,EAAM2B,WAAWP,EASjBK,EAAe,EAAIzB,EAAM4B,SAAS3J,OAC1C,CAAQ,MAAO6F,GAIf,CACA,KAAW,CACLiC,EAAIU,YAAYrK,SAASsK,eAAeU,GAC9C,CAEInN,KAAK8M,KACT,EAEEG,EAAOW,MAAQ,SAASA,IAEtB5N,KAAK6M,KAAKxK,SAAQ,SAAUyJ,GAC1B,OAAOA,EAAI+B,WAAWC,YAAYhC,EACxC,IACI9L,KAAK6M,KAAO,GACZ7M,KAAK8M,IAAM,CACf,EAEE,OAAOJ,CACT,CA9EA,GCtDA,SAASqB,EAAYC,GACnB,SAASC,EAAEC,EAAGC,EAAGtE,EAAGzJ,EAAGgO,GACrB,IAAK,IAAIC,EAAI,EAAGC,EAAI,EAAGC,EAAI,EAAGC,EAAI,EAAGC,EAAGC,EAAGC,EAAI,EAAGC,EAAI,EAAGC,EAAGC,EAAID,EAAIJ,EAAI,EAAGM,EAAI,EAAGC,EAAI,EAAGC,EAAI,EAAGC,EAAI,EAAGC,EAAItF,EAAE7F,OAAQoL,EAAID,EAAI,EAAGE,EAAGC,EAAI,GAAIC,EAAI,GAAIC,EAAI,GAAIC,EAAI,GAAIC,EAAGX,EAAII,GAAI,CAC5KT,EAAI7E,EAAE4D,WAAWsB,GACjBA,IAAMK,GAAK,IAAMd,EAAIE,EAAID,EAAIF,IAAM,IAAMC,IAAMI,EAAI,KAAOJ,EAAI,GAAK,IAAKE,EAAID,EAAIF,EAAI,EAAGc,IAAKC,KAE5F,GAAI,IAAMd,EAAIE,EAAID,EAAIF,EAAG,CACvB,GAAIU,IAAMK,IAAM,EAAIJ,IAAMM,EAAIA,EAAEnP,QAAQwP,EAAG,KAAM,EAAIL,EAAEM,OAAO5L,QAAS,CACrE,OAAQ0K,GACN,KAAK,GACL,KAAK,EACL,KAAK,GACL,KAAK,GACL,KAAK,GACH,MAEF,QACEY,GAAKzF,EAAEgG,OAAOd,GAGlBL,EAAI,EACd,CAEQ,OAAQA,GACN,KAAK,IACHY,EAAIA,EAAEM,OACNnB,EAAIa,EAAE7B,WAAW,GACjBoB,EAAI,EAEJ,IAAKK,IAAMH,EAAGA,EAAII,GAAI,CACpB,OAAQT,EAAI7E,EAAE4D,WAAWsB,IACvB,KAAK,IACHF,IACA,MAEF,KAAK,IACHA,IACA,MAEF,KAAK,GACH,OAAQH,EAAI7E,EAAE4D,WAAWsB,EAAI,IAC3B,KAAK,GACL,KAAK,GACHX,EAAG,CACD,IAAKU,EAAIC,EAAI,EAAGD,EAAIM,IAAKN,EAAG,CAC1B,OAAQjF,EAAE4D,WAAWqB,IACnB,KAAK,GACH,GAAI,KAAOJ,GAAK,KAAO7E,EAAE4D,WAAWqB,EAAI,IAAMC,EAAI,IAAMD,EAAG,CACzDC,EAAID,EAAI,EACR,MAAMV,CACtC,CAE8B,MAEF,KAAK,GACH,GAAI,KAAOM,EAAG,CACZK,EAAID,EAAI,EACR,MAAMV,CACtC,EAGA,CAEwBW,EAAID,CAC5B,EAIkB,MAEF,KAAK,GACHJ,IAEF,KAAK,GACHA,IAEF,KAAK,GACL,KAAK,GACH,KAAOK,IAAMK,GAAKvF,EAAE4D,WAAWsB,KAAOL,GAAI,CAC5D,EAIc,GAAI,IAAMG,EAAG,MACbE,GACd,CAEYF,EAAIhF,EAAEI,UAAUiF,EAAGH,GACnB,IAAMN,IAAMA,GAAKa,EAAIA,EAAEnP,QAAQ2P,EAAI,IAAIF,QAAQnC,WAAW,IAE1D,OAAQgB,GACN,KAAK,GACH,EAAIO,IAAMM,EAAIA,EAAEnP,QAAQwP,EAAG,KAC3BjB,EAAIY,EAAE7B,WAAW,GAEjB,OAAQiB,GACN,KAAK,IACL,KAAK,IACL,KAAK,IACL,KAAK,GACHM,EAAIb,EACJ,MAEF,QACEa,EAAIe,EAGRlB,EAAIZ,EAAEE,EAAGa,EAAGH,EAAGH,EAAGN,EAAI,GACtBc,EAAIL,EAAE7K,OACN,EAAIgM,IAAMhB,EAAIiB,EAAEF,EAAGT,EAAGL,GAAIS,EAAIQ,EAAE,EAAGrB,EAAGG,EAAGb,EAAGgC,EAAGC,EAAGlB,EAAGR,EAAGN,EAAGhO,GAAIkP,EAAIN,EAAEzO,KAAK,SAAU,IAAMmP,GAAK,KAAOR,GAAKL,EAAIa,EAAEE,QAAQ5L,UAAY0K,EAAI,EAAGG,EAAI,KAChJ,GAAI,EAAIK,EAAG,OAAQR,GACjB,KAAK,IACHY,EAAIA,EAAEnP,QAAQkQ,EAAIC,GAEpB,KAAK,IACL,KAAK,IACL,KAAK,GACHzB,EAAIS,EAAI,IAAMT,EAAI,IAClB,MAEF,KAAK,IACHS,EAAIA,EAAEnP,QAAQoQ,EAAI,SAClB1B,EAAIS,EAAI,IAAMT,EAAI,IAClBA,EAAI,IAAM2B,GAAK,IAAMA,GAAKC,EAAE,IAAM5B,EAAG,GAAK,YAAcA,EAAI,IAAMA,EAAI,IAAMA,EAC5E,MAEF,QACEA,EAAIS,EAAIT,EAAG,MAAQzO,IAAMyO,GAAKU,GAAKV,EAAG,UACnCA,EAAI,GACX,MAEF,QACEA,EAAIZ,EAAEE,EAAG8B,EAAE9B,EAAGmB,EAAGL,GAAIJ,EAAGzO,EAAGgO,EAAI,GAGnCoB,GAAKX,EACLA,EAAII,EAAID,EAAIF,EAAIL,EAAI,EACpBa,EAAI,GACJZ,EAAI7E,EAAE4D,aAAasB,GACnB,MAEF,KAAK,IACL,KAAK,GACHO,GAAK,EAAIN,EAAIM,EAAEnP,QAAQwP,EAAG,IAAML,GAAGM,OACnC,GAAI,GAAKV,EAAII,EAAEtL,QAAS,OAAQ,IAAM8K,IAAML,EAAIa,EAAE7B,WAAW,GAAI,KAAOgB,GAAK,GAAKA,GAAK,IAAMA,KAAOS,GAAKI,EAAIA,EAAEnP,QAAQ,IAAK,MAAM6D,QAAS,EAAIgM,QAAU,KAAON,EAAIQ,EAAE,EAAGZ,EAAGnB,EAAGD,EAAGiC,EAAGC,EAAGb,EAAEvL,OAAQ5D,EAAGgO,EAAGhO,KAAO,KAAO8O,GAAKI,EAAII,EAAEE,QAAQ5L,UAAYsL,EAAI,QAAab,EAAIa,EAAE7B,WAAW,GAAIiB,EAAIY,EAAE7B,WAAW,GAAIgB,GAC9S,KAAK,EACH,MAEF,KAAK,GACH,GAAI,MAAQC,GAAK,KAAOA,EAAG,CACzBe,GAAKH,EAAIzF,EAAEgG,OAAOd,GAClB,KAClB,CAEc,QACE,KAAOO,EAAE7B,WAAWyB,EAAI,KAAOK,GAAKmB,EAAEpB,EAAGb,EAAGC,EAAGY,EAAE7B,WAAW,KAEhEwB,EAAID,EAAIF,EAAIL,EAAI,EAChBa,EAAI,GACJZ,EAAI7E,EAAE4D,aAAasB,GAE/B,CAEM,OAAQL,GACN,KAAK,GACL,KAAK,GACH,KAAOJ,EAAIA,EAAI,EAAI,IAAM,EAAIG,GAAK,MAAQrO,GAAK,EAAIkP,EAAEtL,SAAWgL,EAAI,EAAGM,GAAK,MAC5E,EAAIU,EAAIW,GAAKT,EAAE,EAAGZ,EAAGnB,EAAGD,EAAGiC,EAAGC,EAAGb,EAAEvL,OAAQ5D,EAAGgO,EAAGhO,GACjDgQ,EAAI,EACJD,IACA,MAEF,KAAK,GACL,KAAK,IACH,GAAI,IAAM7B,EAAIE,EAAID,EAAIF,EAAG,CACvB+B,IACA,KACZ,CAEQ,QACEA,IACAf,EAAIxF,EAAEgG,OAAOd,GAEb,OAAQL,GACN,KAAK,EACL,KAAK,GACH,GAAI,IAAMF,EAAIH,EAAIC,EAAG,OAAQK,GAC3B,KAAK,GACL,KAAK,GACL,KAAK,EACL,KAAK,GACHU,EAAI,GACJ,MAEF,QACE,KAAOX,IAAMW,EAAI,KAErB,MAEF,KAAK,EACHA,EAAI,MACJ,MAEF,KAAK,GACHA,EAAI,MACJ,MAEF,KAAK,GACHA,EAAI,MACJ,MAEF,KAAK,GACH,IAAMb,EAAIF,EAAID,IAAMW,EAAIC,EAAI,EAAGI,EAAI,KAAOA,GAC1C,MAEF,KAAK,IACH,GAAI,IAAMb,EAAIF,EAAID,EAAIuC,GAAK,EAAI9B,EAAG,OAAQC,EAAID,GAC5C,KAAK,EACH,MAAQH,GAAK,KAAO9E,EAAE4D,WAAWsB,EAAI,KAAO6B,EAAIjC,GAElD,KAAK,EACH,MAAQC,IAAMgC,EAAIhC,GAEtB,MAEF,KAAK,GACH,IAAMJ,EAAIF,EAAID,IAAMS,EAAIC,GACxB,MAEF,KAAK,GACH,IAAMT,EAAIC,EAAIC,EAAIH,IAAMW,EAAI,EAAGK,GAAK,MACpC,MAEF,KAAK,GACL,KAAK,GACH,IAAMf,IAAME,EAAIA,IAAME,EAAI,EAAI,IAAMF,EAAIE,EAAIF,GAC5C,MAEF,KAAK,GACH,IAAMA,EAAIF,EAAIC,GAAKF,IACnB,MAEF,KAAK,GACH,IAAMG,EAAIF,EAAIC,GAAKF,IACnB,MAEF,KAAK,GACH,IAAMG,EAAIF,EAAID,GAAKE,IACnB,MAEF,KAAK,GACH,GAAI,IAAMC,EAAIF,EAAID,EAAG,CACnB,GAAI,IAAMI,EAAG,OAAQ,EAAIE,EAAI,EAAIC,GAC/B,KAAK,IACH,MAEF,QACEH,EAAI,EAERF,GAChB,CAEc,MAEF,KAAK,GACH,IAAMD,EAAIC,EAAIC,EAAIH,EAAIS,EAAID,IAAMA,EAAI,GACpC,MAEF,KAAK,GACL,KAAK,GACH,KAAM,EAAIL,EAAIH,EAAIE,GAAI,OAAQD,GAC5B,KAAK,EACH,OAAQ,EAAII,EAAI,EAAI7E,EAAE4D,WAAWsB,EAAI,IACnC,KAAK,IACHT,EAAI,GACJ,MAEF,KAAK,IACHY,EAAIH,EAAGT,EAAI,GAGf,MAEF,KAAK,GACH,KAAOI,GAAK,KAAOC,GAAKO,EAAI,IAAMH,IAAM,KAAOlF,EAAE4D,WAAWyB,EAAI,KAAOK,GAAK1F,EAAEI,UAAUiF,EAAGH,EAAI,IAAKM,EAAI,GAAIf,EAAI,IAIxH,IAAMA,IAAMgB,GAAKD,GAGrBT,EAAID,EACJA,EAAID,EACJK,GACN,CAEIG,EAAIK,EAAEvL,OAEN,GAAI,EAAIkL,EAAG,CACTF,EAAIb,EACJ,GAAI,EAAI6B,IAAMN,EAAIQ,EAAE,EAAGX,EAAGP,EAAGd,EAAGiC,EAAGC,EAAGlB,EAAG9O,EAAGgO,EAAGhO,QAAS,IAAMsP,GAAK,KAAOH,EAAIG,GAAG1L,QAAS,OAAOyL,EAAIF,EAAIC,EACzGD,EAAIP,EAAEzO,KAAK,KAAO,IAAMgP,EAAI,IAE5B,GAAI,IAAMiB,EAAII,EAAG,CACf,IAAMJ,GAAKC,EAAElB,EAAG,KAAOqB,EAAI,GAE3B,OAAQA,GACN,KAAK,IACHrB,EAAIA,EAAEpP,QAAQ0Q,EAAI,YAActB,EAChC,MAEF,KAAK,IACHA,EAAIA,EAAEpP,QAAQ2Q,EAAG,sBAAwBvB,EAAEpP,QAAQ2Q,EAAG,aAAevB,EAAEpP,QAAQ2Q,EAAG,iBAAmBvB,EAGzGqB,EAAI,CACZ,CACA,CAEI,OAAOnB,EAAIF,EAAIC,CACnB,CAEE,SAASS,EAAE/B,EAAGC,EAAGtE,GACf,IAAIzJ,EAAI+N,EAAEyB,OAAOmB,MAAMC,GACvB7C,EAAI/N,EACJ,IAAIgO,EAAIhO,EAAE4D,OACNqK,EAAIH,EAAElK,OAEV,OAAQqK,GACN,KAAK,EACL,KAAK,EACH,IAAIC,EAAI,EAER,IAAKJ,EAAI,IAAMG,EAAI,GAAKH,EAAE,GAAK,IAAKI,EAAIF,IAAKE,EAAG,CAC9CH,EAAEG,GAAK2C,EAAE/C,EAAGC,EAAEG,GAAIzE,GAAG+F,MAC/B,CAEQ,MAEF,QACE,IAAIrB,EAAID,EAAI,EAEZ,IAAKH,EAAI,GAAIG,EAAIF,IAAKE,EAAG,CACvB,IAAK,IAAIE,EAAI,EAAGA,EAAIH,IAAKG,EAAG,CAC1BL,EAAEI,KAAO0C,EAAE/C,EAAEM,GAAK,IAAKpO,EAAEkO,GAAIzE,GAAG+F,MAC5C,CACA,EAII,OAAOzB,CACX,CAEE,SAAS8C,EAAE/C,EAAGC,EAAGtE,GACf,IAAIzJ,EAAI+N,EAAEV,WAAW,GACrB,GAAKrN,IAAMA,GAAK+N,EAAIA,EAAEyB,QAAQnC,WAAW,IAEzC,OAAQrN,GACN,KAAK,GACH,OAAO+N,EAAEhO,QAAQqP,EAAG,KAAOtB,EAAE0B,QAE/B,KAAK,GACH,OAAO1B,EAAE0B,OAASzB,EAAEhO,QAAQqP,EAAG,KAAOtB,EAAE0B,QAE1C,QACE,GAAI,EAAI,EAAI/F,GAAK,EAAIsE,EAAErK,QAAQ,MAAO,OAAOqK,EAAEhO,QAAQqP,GAAI,KAAOtB,EAAET,WAAW,GAAK,GAAK,MAAQS,EAAE0B,QAGvG,OAAO1B,EAAIC,CACf,CAEE,SAASuC,EAAExC,EAAGC,EAAGtE,EAAGzJ,GAClB,IAAIgO,EAAIF,EAAI,IACRG,EAAI,EAAIF,EAAI,EAAItE,EAAI,EAAIzJ,EAE5B,GAAI,MAAQiO,EAAG,CACbH,EAAIE,EAAEtK,QAAQ,IAAK,GAAK,EACxB,IAAIwK,EAAIF,EAAEnE,UAAUiE,EAAGE,EAAEpK,OAAS,GAAG4L,OACrCtB,EAAIF,EAAEnE,UAAU,EAAGiE,GAAG0B,OAAStB,EAAI,IACnC,OAAO,IAAMkC,GAAK,IAAMA,GAAKC,EAAEnC,EAAG,GAAK,WAAaA,EAAIA,EAAIA,CAClE,CAEI,GAAI,IAAMkC,GAAK,IAAMA,IAAMC,EAAErC,EAAG,GAAI,OAAOA,EAE3C,OAAQC,GACN,KAAK,KACH,OAAO,KAAOD,EAAEX,WAAW,IAAM,WAAaW,EAAIA,EAAIA,EAExD,KAAK,IACH,OAAO,MAAQA,EAAEX,WAAW,GAAK,WAAaW,EAAIA,EAAIA,EAExD,KAAK,IACH,OAAO,MAAQA,EAAEX,WAAW,GAAK,WAAaW,EAAIA,EAAIA,EAExD,KAAK,KACH,GAAI,MAAQA,EAAEX,WAAW,GAAI,MAE/B,KAAK,IACL,KAAK,IACH,MAAO,WAAaW,EAAIA,EAE1B,KAAK,IACH,MAAO,WAAaA,EAAI,QAAUA,EAAIA,EAExC,KAAK,KACL,KAAK,IACH,MAAO,WAAaA,EAAI,QAAUA,EAAI,OAASA,EAAIA,EAErD,KAAK,IACH,GAAI,KAAOA,EAAEX,WAAW,GAAI,MAAO,WAAaW,EAAIA,EACpD,GAAI,EAAIA,EAAEtK,QAAQ,aAAc,IAAK,OAAOsK,EAAEjO,QAAQ+Q,EAAI,gBAAkB9C,EAC5E,MAEF,KAAK,IACH,GAAI,KAAOA,EAAEX,WAAW,GAAI,OAAQW,EAAEX,WAAW,IAC/C,KAAK,IACH,MAAO,eAAiBW,EAAEjO,QAAQ,QAAS,IAAM,WAAaiO,EAAI,OAASA,EAAEjO,QAAQ,OAAQ,YAAciO,EAE7G,KAAK,IACH,MAAO,WAAaA,EAAI,OAASA,EAAEjO,QAAQ,SAAU,YAAciO,EAErE,KAAK,GACH,MAAO,WAAaA,EAAI,OAASA,EAAEjO,QAAQ,QAAS,kBAAoBiO,EAE5E,MAAO,WAAaA,EAAI,OAASA,EAAIA,EAEvC,KAAK,IACH,MAAO,WAAaA,EAAI,YAAcA,EAAIA,EAE5C,KAAK,KACH,GAAI,KAAOA,EAAEX,WAAW,GAAI,MAC5Ba,EAAIF,EAAEnE,UAAUmE,EAAEtK,QAAQ,IAAK,KAAK3D,QAAQ,QAAS,IAAIA,QAAQ,gBAAiB,WAClF,MAAO,mBAAqBmO,EAAI,WAAaF,EAAI,gBAAkBE,EAAIF,EAEzE,KAAK,KACH,OAAO+C,EAAGC,KAAKhD,GAAKA,EAAEjO,QAAQkR,EAAI,aAAejD,EAAEjO,QAAQkR,EAAI,UAAYjD,EAAIA,EAEjF,KAAK,IACHE,EAAIF,EAAEnE,UAAU,IAAI2F,OACpBzB,EAAIG,EAAExK,QAAQ,KAAO,EAErB,OAAQwK,EAAEb,WAAW,GAAKa,EAAEb,WAAWU,IACrC,KAAK,IACHG,EAAIF,EAAEjO,QAAQsP,EAAG,MACjB,MAEF,KAAK,IACHnB,EAAIF,EAAEjO,QAAQsP,EAAG,SACjB,MAEF,KAAK,IACHnB,EAAIF,EAAEjO,QAAQsP,EAAG,MACjB,MAEF,QACE,OAAOrB,EAGX,MAAO,WAAaA,EAAI,OAASE,EAAIF,EAEvC,KAAK,KACH,IAAK,IAAMA,EAAEtK,QAAQ,SAAU,GAAI,MAErC,KAAK,IACHqK,GAAKC,EAAIF,GAAGlK,OAAS,GACrBsK,GAAK,KAAOF,EAAEX,WAAWU,GAAKC,EAAEnE,UAAU,EAAGkE,GAAKC,GAAGnE,UAAUiE,EAAEpK,QAAQ,IAAK,GAAK,GAAG8L,OAEtF,OAAQvB,EAAIC,EAAEb,WAAW,IAAMa,EAAEb,WAAW,GAAK,IAC/C,KAAK,IACH,GAAI,IAAMa,EAAEb,WAAW,GAAI,MAE7B,KAAK,IACHW,EAAIA,EAAEjO,QAAQmO,EAAG,WAAaA,GAAK,IAAMF,EACzC,MAEF,KAAK,IACL,KAAK,IACHA,EAAIA,EAAEjO,QAAQmO,EAAG,YAAc,IAAMD,EAAI,UAAY,IAAM,OAAS,IAAMD,EAAEjO,QAAQmO,EAAG,WAAaA,GAAK,IAAMF,EAAEjO,QAAQmO,EAAG,OAASA,EAAI,OAAS,IAAMF,EAG5J,OAAOA,EAAI,IAEb,KAAK,IACH,GAAI,KAAOA,EAAEX,WAAW,GAAI,OAAQW,EAAEX,WAAW,IAC/C,KAAK,IACH,OAAOa,EAAIF,EAAEjO,QAAQ,SAAU,IAAK,WAAaiO,EAAI,eAAiBE,EAAI,YAAcA,EAAIF,EAE9F,KAAK,IACH,MAAO,WAAaA,EAAI,iBAAmBA,EAAEjO,QAAQmR,EAAI,IAAMlD,EAEjE,QACE,MAAO,WAAaA,EAAI,qBAAuBA,EAAEjO,QAAQ,gBAAiB,IAAIA,QAAQmR,EAAI,IAAMlD,EAEpG,MAEF,KAAK,IACL,KAAK,IACH,GAAI,KAAOA,EAAEX,WAAW,IAAM,MAAQW,EAAEX,WAAW,GAAI,MAEzD,KAAK,IACL,KAAK,IACH,IAAK,IAAM8D,EAAGH,KAAKlD,GAAI,OAAO,OAASI,EAAIJ,EAAEjE,UAAUiE,EAAEpK,QAAQ,KAAO,IAAI2J,WAAW,GAAKiD,EAAExC,EAAE/N,QAAQ,UAAW,kBAAmBgO,EAAGtE,EAAGzJ,GAAGD,QAAQ,kBAAmB,YAAciO,EAAEjO,QAAQmO,EAAG,WAAaA,GAAKF,EAAEjO,QAAQmO,EAAG,QAAUA,EAAEnO,QAAQ,QAAS,KAAOiO,EACxQ,MAEF,KAAK,IACH,GAAIA,EAAI,WAAaA,GAAK,MAAQA,EAAEX,WAAW,GAAK,OAASW,EAAI,IAAMA,EAAG,MAAQvE,EAAIzJ,GAAK,MAAQgO,EAAEX,WAAW,KAAO,EAAIW,EAAEtK,QAAQ,YAAa,IAAK,OAAOsK,EAAEnE,UAAU,EAAGmE,EAAEtK,QAAQ,IAAK,IAAM,GAAG3D,QAAQqR,EAAI,gBAAkBpD,EAGvO,OAAOA,CACX,CAEE,SAASqC,EAAEvC,EAAGC,GACZ,IAAItE,EAAIqE,EAAEpK,QAAQ,IAAMqK,EAAI,IAAM,KAC9B/N,EAAI8N,EAAEjE,UAAU,EAAG,IAAMkE,EAAItE,EAAI,IACrCA,EAAIqE,EAAEjE,UAAUJ,EAAI,EAAGqE,EAAElK,OAAS,GAClC,OAAOyN,EAAE,IAAMtD,EAAI/N,EAAIA,EAAED,QAAQuR,EAAI,MAAO7H,EAAGsE,EACnD,CAEE,SAASmC,EAAGpC,EAAGC,GACb,IAAItE,EAAI6G,EAAEvC,EAAGA,EAAEV,WAAW,GAAIU,EAAEV,WAAW,GAAIU,EAAEV,WAAW,IAC5D,OAAO5D,IAAMsE,EAAI,IAAMtE,EAAE1J,QAAQwR,EAAI,YAAY1H,UAAU,GAAK,IAAMkE,EAAI,GAC9E,CAEE,SAAS+B,EAAEhC,EAAGC,EAAGtE,EAAGzJ,EAAGgO,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,GACpC,IAAK,IAAIC,EAAI,EAAGC,EAAIR,EAAGqC,EAAG9B,EAAIsB,IAAKtB,EAAG,CACpC,OAAQ8B,EAAIoB,EAAElD,GAAGpL,KAAK6L,EAAGjB,EAAGS,EAAG9E,EAAGzJ,EAAGgO,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,IAClD,UAAU,EACV,KAAM,EACN,KAAM,EACN,KAAK,KACH,MAEF,QACEE,EAAI6B,EAEd,CAEI,GAAI7B,IAAMR,EAAG,OAAOQ,CACxB,CAEE,SAASkD,EAAE3D,GACT,OAAQA,GACN,UAAU,EACV,KAAK,KACH8B,EAAI4B,EAAE5N,OAAS,EACf,MAEF,QACE,GAAI,oBAAsBkK,EAAG0D,EAAE5B,KAAO9B,OAAO,GAAI,kBAAoBA,EAAG,IAAK,IAAIC,EAAI,EAAGtE,EAAIqE,EAAElK,OAAQmK,EAAItE,IAAKsE,EAAG,CAChH0D,EAAE3D,EAAEC,GACd,MAAewC,IAAMzC,EAAI,EAGrB,OAAO2D,CACX,CAEE,SAASC,EAAE5D,GACTA,EAAIA,EAAE6D,YACD,IAAM7D,IAAMuD,EAAI,KAAMvD,EAAI,oBAAsBA,EAAIsC,EAAI,GAAKA,EAAI,EAAGiB,EAAIvD,GAAKsC,EAAI,GACtF,OAAOsB,CACX,CAEE,SAAS3C,EAAEjB,EAAGC,GACZ,IAAItE,EAAIqE,EACR,GAAKrE,EAAE4D,WAAW,KAAO5D,EAAIA,EAAE+F,QAC/BoC,EAAInI,EACJA,EAAI,CAACmI,GAEL,GAAI,EAAIhC,EAAG,CACT,IAAI5P,EAAI8P,GAAG,EAAG/B,EAAGtE,EAAGA,EAAGsG,EAAGC,EAAG,EAAG,EAAG,EAAG,QACjC,IAAMhQ,GAAK,kBAAoBA,IAAM+N,EAAI/N,EACpD,CAEI,IAAIgO,EAAIH,EAAE8B,EAAGlG,EAAGsE,EAAG,EAAG,GACtB,EAAI6B,IAAM5P,EAAI8P,GAAG,EAAG9B,EAAGvE,EAAGA,EAAGsG,EAAGC,EAAGhC,EAAEpK,OAAQ,EAAG,EAAG,QAAS,IAAM5D,IAAMgO,EAAIhO,IAC5E4R,EAAI,GACJpB,EAAI,EACJR,EAAID,EAAI,EACR,OAAO/B,CACX,CAEE,IAAI0B,EAAK,QACLH,EAAI,YACJ0B,EAAK,OACLF,EAAK,UACLK,EAAK,sBACLR,EAAK,SACLxB,EAAI,oBACJe,EAAK,qBACLO,EAAI,aACJD,EAAK,gBACLpB,EAAI,qBACJY,EAAK,kBACLsB,EAAK,eACLL,EAAK,eACLI,EAAK,8BACLH,EAAK,mCACLL,EAAK,sBACLd,EAAI,EACJD,EAAI,EACJS,EAAI,EACJJ,EAAI,EACJT,EAAI,GACJ6B,EAAI,GACJ5B,EAAI,EACJyB,EAAI,KACJd,EAAI,EACJqB,EAAI,GACR7C,EAAE8C,IAAMJ,EACR1C,EAAE+C,IAAMJ,OACH,IAAM9D,GAAK8D,EAAE9D,GAClB,OAAOmB,CACT,CC7lBA,IAAIgD,EAAY,QAChB,IAAIC,EAASD,EAAY,IAEzB,SAASE,GAAQC,GACf,GAAIA,EAAO,CACTC,GAAMC,QAAQtF,OAAOoF,EAAQ,IACjC,CACA,CAEA,IAAIC,GAAQ,CACVC,QAAS,MAEX,IAAIC,GAAY,SAASA,EAAUC,EAASC,EAASC,EAAWC,EAASC,EAAMC,EAAQ/O,EAAQgP,EAAIC,EAAOC,GACxG,OAAQR,GAEN,KAAK,EACH,CACE,OAAQC,EAAQlF,WAAW,IACzB,KAAK,GACH,CAEE8E,GAAMC,QAAQtF,OAAOyF,EAAU,KAC/B,MAAO,EACrB,CAGU,KAAK,IACH,CAGE,GAAIA,EAAQlF,WAAW,KAAO,GAAI,CAChC,MAAO,EACvB,CACA,EAGQ,KACR,CAGI,KAAK,EACH,CACE,GAAIuF,IAAO,EAAG,OAAOL,EAAUR,EAC/B,KACR,CAGI,KAAK,EACH,CACE,OAAQa,GAEN,KAAK,IACL,KAAK,IACH,CACET,GAAMC,QAAQtF,OAAO0F,EAAU,GAAKD,GACpC,MAAO,EACrB,CAEU,QACE,CACE,OAAOA,GAAWO,IAAO,EAAIf,EAAY,GACvD,EAEA,CAEI,KAAM,EACJ,CACEQ,EAAQ5B,MAAMqB,GAAQ/P,QAAQgQ,GACtC,EAEA,EAEA,IAAIc,GAAc,SAASA,EAAY/G,GACrC,GAAIA,IAAYG,UAAWH,EAAU,GACrC,IAAI5I,EAAM4I,EAAQ5I,KAAO,MACzB,IAAI4P,EAEJ,GAAIhH,EAAQ2F,SAAWxF,UAAW,CAChC6G,EAAgB,CACdrB,OAAQ3F,EAAQ2F,OAEtB,CAEE,IAAIsB,EAAS,IAAIC,EAAOF,GASxB,IAAIG,EAAW,GAEf,IAAIxG,EAEJ,CACEA,EAAYX,EAAQW,WAAa5K,SAASqR,KAC1C,IAAIC,EAAQtR,SAASC,iBAAiB,sBAAwBoB,EAAM,KACpEL,MAAMC,UAAUf,QAAQiB,KAAKmQ,GAAO,SAAUC,GAC5C,IAAIC,EAASD,EAAK5O,aAAa,gBAAkBtB,GAEjDmQ,EAAO5C,MAAM,KAAK1O,SAAQ,SAAUtC,GAClCwT,EAASxT,GAAM,IACvB,IAEM,GAAI2T,EAAK7F,aAAed,EAAW,CACjCA,EAAUP,YAAYkH,EAC9B,CACA,GACA,CAEE,IAAIE,EAEJ,CACEP,EAAOpB,IAAI7F,EAAQyH,cAAnBR,CAAkCZ,IAElCmB,EAAU,SAAS1G,EAAO4G,EAAUC,EAAYhI,EAAOiI,GACrD,IAAIC,EAAOF,EAAWE,KACtB1B,GAAMC,QAAUzG,EAWhBsH,EAAOS,EAAUC,EAAWG,QAE5B,GAAIF,EAAa,CACfG,EAAMZ,SAASU,GAAQ,IAC/B,CACA,CACA,CAkDE,IAAIE,EAAQ,CACV3Q,IAAKA,EACLuI,MAAO,IAAIW,EAAW,CACpBlJ,IAAKA,EACLuJ,UAAWA,EACXT,MAAOF,EAAQE,MACfM,OAAQR,EAAQQ,SAElBN,MAAOF,EAAQE,MACfiH,SAAUA,EACVa,WAAY,GACZlH,OAAQ0G,GAEV,OAAOO,CACT,EC5MA,SAASE,GAAQC,GAMf,IAAIlU,EAAI,EAER,IAAIyO,EACA7C,EAAI,EACJuI,EAAMD,EAAItQ,OAEd,KAAOuQ,GAAO,IAAKvI,EAAGuI,GAAO,EAAG,CAC9B1F,EAAIyF,EAAI7G,WAAWzB,GAAK,KAAQsI,EAAI7G,aAAazB,GAAK,MAAS,GAAKsI,EAAI7G,aAAazB,GAAK,MAAS,IAAMsI,EAAI7G,aAAazB,GAAK,MAAS,GACxI6C,GAECA,EAAI,OAAU,aAAeA,IAAM,IAAM,OAAU,IACpDA,GAEAA,IAAM,GACNzO,GAECyO,EAAI,OAAU,aAAeA,IAAM,IAAM,OAAU,KAEnDzO,EAAI,OAAU,aAAeA,IAAM,IAAM,OAAU,GACxD,CAGE,OAAQmU,GACN,KAAK,EACHnU,IAAMkU,EAAI7G,WAAWzB,EAAI,GAAK,MAAS,GAEzC,KAAK,EACH5L,IAAMkU,EAAI7G,WAAWzB,EAAI,GAAK,MAAS,EAEzC,KAAK,EACH5L,GAAKkU,EAAI7G,WAAWzB,GAAK,IACzB5L,GAECA,EAAI,OAAU,aAAeA,IAAM,IAAM,OAAU,IAKxDA,GAAKA,IAAM,GACXA,GAECA,EAAI,OAAU,aAAeA,IAAM,IAAM,OAAU,IACpD,QAASA,EAAIA,IAAM,MAAQ,GAAGoU,SAAS,GACzC,CCpDA,IAAIC,GAAe,CACjBC,wBAAyB,EACzBC,kBAAmB,EACnBC,iBAAkB,EAClBC,iBAAkB,EAClBC,QAAS,EACTC,aAAc,EACdC,gBAAiB,EACjBC,YAAa,EACbC,QAAS,EACTC,KAAM,EACNC,SAAU,EACVC,aAAc,EACdC,WAAY,EACZC,aAAc,EACdC,UAAW,EACXC,QAAS,EACTC,WAAY,EACZC,YAAa,EACbC,aAAc,EACdC,WAAY,EACZC,cAAe,EACfC,eAAgB,EAChBC,gBAAiB,EACjBC,UAAW,EACXC,cAAe,EACfC,aAAc,EACdC,iBAAkB,EAClBC,WAAY,EACZC,WAAY,EACZC,QAAS,EACTC,MAAO,EACPC,QAAS,EACTC,QAAS,EACTC,OAAQ,EACRC,OAAQ,EACRC,KAAM,EACNC,gBAAiB,EAEjBC,YAAa,EACbC,aAAc,EACdC,YAAa,EACbC,gBAAiB,EACjBC,iBAAkB,EAClBC,iBAAkB,EAClBC,cAAe,EACfC,YAAa,GC9Cf,SAASC,GAAQC,GACf,IAAIrD,EAAQ,GACZ,OAAO,SAAUsD,GACf,GAAItD,EAAMsD,KAASlL,UAAW4H,EAAMsD,GAAOD,EAAGC,GAC9C,OAAOtD,EAAMsD,EACjB,CACA,CCAA,IAAIC,GAAiB,aACrB,IAAIC,GAAiB,8BAErB,IAAIC,GAAmB,SAASA,EAAiBC,GAC/C,OAAOA,EAASpK,WAAW,KAAO,EACpC,EAEA,IAAIqK,GAAqB,SAASA,EAAmBC,GACnD,OAAOA,GAAS,aAAeA,IAAU,SAC3C,EAEA,IAAIC,GAAmBT,IAAQ,SAAUU,GACvC,OAAOL,GAAiBK,GAAaA,EAAYA,EAAU9X,QAAQuX,GAAgB,OAAOxX,aAC5F,IAEA,IAAIgY,GAAoB,SAASA,EAAkB1U,EAAKuU,GACtD,OAAQvU,GACN,IAAK,YACL,IAAK,gBACH,CACE,UAAWuU,IAAU,SAAU,CAC7B,OAAOA,EAAM5X,QAAQwX,IAAgB,SAAUQ,EAAOC,EAAIC,GACxDC,GAAS,CACPrE,KAAMmE,EACNlE,OAAQmE,EACRE,KAAMD,IAER,OAAOF,CACnB,GACA,CACA,EAGE,GAAII,GAAShV,KAAS,IAAMoU,GAAiBpU,WAAeuU,IAAU,UAAYA,IAAU,EAAG,CAC7F,OAAOA,EAAQ,IACnB,CAEE,OAAOA,CACT,EAgCA,SAASU,GAAoBC,EAAatE,EAAYuE,EAAeC,GACnE,GAAID,GAAiB,KAAM,CACzB,MAAO,EACX,CAEE,GAAIA,EAAcE,mBAAqBtM,UAAW,CAKhD,OAAOoM,CACX,CAEE,cAAeA,GACb,IAAK,UACH,CACE,MAAO,EACf,CAEI,IAAK,SACH,CACE,GAAIA,EAAcG,OAAS,EAAG,CAC5BR,GAAS,CACPrE,KAAM0E,EAAc1E,KACpBC,OAAQyE,EAAczE,OACtBqE,KAAMD,IAER,OAAOK,EAAc1E,IAC/B,CAEQ,GAAI0E,EAAczE,SAAW3H,UAAW,CACtC,IAAIgM,EAAOI,EAAcJ,KAEzB,GAAIA,IAAShM,UAAW,CAGtB,MAAOgM,IAAShM,UAAW,CACzB+L,GAAS,CACPrE,KAAMsE,EAAKtE,KACXC,OAAQqE,EAAKrE,OACbqE,KAAMD,IAERC,EAAOA,EAAKA,IAC1B,CACA,CAEU,IAAIrE,EAASyE,EAAczE,OAAS,IAMpC,OAAOA,CACjB,CAEQ,OAAO6E,GAAuBL,EAAatE,EAAYuE,EAC/D,CAEI,IAAK,WACH,CACE,GAAID,IAAgBnM,UAAW,CAC7B,IAAIyM,EAAiBV,GACrB,IAAIW,EAASN,EAAcD,GAC3BJ,GAASU,EACT,OAAOP,GAAoBC,EAAatE,EAAY6E,EAAQL,EACtE,CAIQ,KACR,EAoBE,GAAIxE,GAAc,KAAM,CACtB,OAAOuE,CACX,CAEE,IAAIO,EAAS9E,EAAWuE,GAOxB,OAAOO,IAAW3M,YAAcqM,EAA+BM,EAASP,CAC1E,CAEA,SAASI,GAAuBL,EAAatE,EAAY+E,GACvD,IAAIC,EAAS,GAEb,GAAIjW,MAAMkW,QAAQF,GAAM,CACtB,IAAK,IAAInN,EAAI,EAAGA,EAAImN,EAAInV,OAAQgI,IAAK,CACnCoN,GAAUX,GAAoBC,EAAatE,EAAY+E,EAAInN,GAAI,MACrE,CACA,KAAS,CACL,IAAK,IAAIsN,KAAQH,EAAK,CACpB,IAAIpB,EAAQoB,EAAIG,GAEhB,UAAWvB,IAAU,SAAU,CAC7B,GAAI3D,GAAc,MAAQA,EAAW2D,KAAWxL,UAAW,CACzD6M,GAAUE,EAAO,IAAMlF,EAAW2D,GAAS,GACrD,MAAe,GAAID,GAAmBC,GAAQ,CACpCqB,GAAUpB,GAAiBsB,GAAQ,IAAMpB,GAAkBoB,EAAMvB,GAAS,GACpF,CACA,KAAa,CACL,GAAIuB,IAAS,yBAA2B,eAAyB,aAAc,CAC7E,MAAM,IAAIC,MAAM,iFAC1B,CAEQ,GAAIpW,MAAMkW,QAAQtB,WAAiBA,EAAM,KAAO,WAAa3D,GAAc,MAAQA,EAAW2D,EAAM,MAAQxL,WAAY,CACtH,IAAK,IAAIiN,EAAK,EAAGA,EAAKzB,EAAM/T,OAAQwV,IAAM,CACxC,GAAI1B,GAAmBC,EAAMyB,IAAM,CACjCJ,GAAUpB,GAAiBsB,GAAQ,IAAMpB,GAAkBoB,EAAMvB,EAAMyB,IAAO,GAC5F,CACA,CACA,KAAe,CACL,IAAIC,EAAehB,GAAoBC,EAAatE,EAAY2D,EAAO,OAEvE,OAAQuB,GACN,IAAK,YACL,IAAK,gBACH,CACEF,GAAUpB,GAAiBsB,GAAQ,IAAMG,EAAe,IACxD,KAChB,CAEY,QACE,CAKEL,GAAUE,EAAO,IAAMG,EAAe,GACtD,EAEA,CACA,CACA,CACA,CAEE,OAAOL,CACT,CAEA,IAAIM,GAAe,6BASnB,IAAIpB,GACJ,IAAIqB,GAAkB,SAASA,EAAgBC,EAAMxF,EAAYsE,GAC/D,GAAIkB,EAAK5V,SAAW,UAAY4V,EAAK,KAAO,UAAYA,EAAK,KAAO,MAAQA,EAAK,GAAG1F,SAAW3H,UAAW,CACxG,OAAOqN,EAAK,EAChB,CAEE,IAAIC,EAAa,KACjB,IAAI3F,EAAS,GACboE,GAAS/L,UACT,IAAIuN,EAAUF,EAAK,GAEnB,GAAIE,GAAW,MAAQA,EAAQC,MAAQxN,UAAW,CAChDsN,EAAa,MACb3F,GAAUuE,GAAoBC,EAAatE,EAAY0F,EAAS,MACpE,KAAS,CAKL5F,GAAU4F,EAAQ,EACtB,CAGE,IAAK,IAAI9N,EAAI,EAAGA,EAAI4N,EAAK5V,OAAQgI,IAAK,CACpCkI,GAAUuE,GAAoBC,EAAatE,EAAYwF,EAAK5N,GAAIkI,EAAOzG,WAAWyG,EAAOlQ,OAAS,KAAO,IAEzG,GAAI6V,EAAY,CAKd3F,GAAU4F,EAAQ9N,EACxB,CACA,CAYE0N,GAAaM,UAAY,EACzB,IAAIC,EAAiB,GACrB,IAAI9B,EAEJ,OAAQA,EAAQuB,GAAaQ,KAAKhG,MAAa,KAAM,CACnD+F,GAAkB,IAClB9B,EAAM,EACV,CAEE,IAAIlE,EAAOkG,GAAWjG,GAAU+F,EAehC,MAAO,CACLhG,KAAMA,EACNC,OAAQA,EACRqE,KAAMD,GAEV,EC/TA,IAAI8B,GAAY,WAAa,YAC7B,SAASC,GAAoBjG,EAAYkG,EAAkBC,GACzD,IAAIC,EAAe,GACnBD,EAAWxJ,MAAM,KAAK1O,SAAQ,SAAUoY,GACtC,GAAIrG,EAAWqG,KAAelO,UAAW,CACvC+N,EAAiB/M,KAAK6G,EAAWqG,GACvC,KAAW,CACLD,GAAgBC,EAAY,GAClC,CACA,IACE,OAAOD,CACT,CACA,IAAIE,GAAe,SAASA,EAAavG,EAAOJ,EAAY4G,GAC1D,IAAIF,EAAYtG,EAAM3Q,IAAM,IAAMuQ,EAAWE,KAE7C,IAKC0G,IAAgB,OAIjBP,KAAc,QAAwCjG,EAAMC,WAAWqG,KAAelO,UAAW,CAC/F4H,EAAMC,WAAWqG,GAAa1G,EAAWG,MAC7C,CAEE,GAAIC,EAAMZ,SAASQ,EAAWE,QAAU1H,UAAW,CACjD,IAAIiG,EAAUuB,EAEd,EAAG,CACiBI,EAAMjH,OAAO,IAAMuN,EAAWjI,EAAS2B,EAAMpI,MAAO,MAEtEyG,EAAUA,EAAQ+F,IACxB,OAAa/F,IAAYjG,UACzB,CACA,ECjCA,SAASqO,GAAqBzG,EAAOJ,GACnC,GAAII,EAAMZ,SAASQ,EAAWE,QAAU1H,UAAW,CACjD,OAAO4H,EAAMjH,OAAO,GAAI6G,EAAYI,EAAMpI,MAAO,KACrD,CACA,CAEA,SAAS8O,GAAMzG,EAAY0G,EAAKL,GAC9B,IAAIH,EAAmB,GACvB,IAAIE,EAAeH,GAAoBjG,EAAYkG,EAAkBG,GAErE,GAAIH,EAAiBtW,OAAS,EAAG,CAC/B,OAAOyW,CACX,CAEE,OAAOD,EAAeM,EAAIR,EAC5B,CAEA,IAAIS,GAAgB,SAASA,EAAc3O,GACzC,IAAI+H,EAAQhB,GAAY/G,GAExB+H,EAAMpI,MAAMa,OAAS,SAAUmL,GAK7B/X,KAAK2M,SAAWoL,CACpB,EAEE5D,EAAM6G,OAAS,KAEf,IAAIF,EAAM,SAASA,IACjB,IAAK,IAAIG,EAAOC,UAAUlX,OAAQ4V,EAAO,IAAIzW,MAAM8X,GAAO3B,EAAO,EAAGA,EAAO2B,EAAM3B,IAAQ,CACvFM,EAAKN,GAAQ4B,UAAU5B,EAC7B,CAEI,IAAIvF,EAAa4F,GAAgBC,EAAMzF,EAAMC,WAAY7H,WACzDmO,GAAavG,EAAOJ,EAAY,OAChC,OAAOI,EAAM3Q,IAAM,IAAMuQ,EAAWE,IACxC,EAEE,IAAIkH,EAAY,SAASA,IACvB,IAAK,IAAIC,EAAQF,UAAUlX,OAAQ4V,EAAO,IAAIzW,MAAMiY,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAAS,CAC7FzB,EAAKyB,GAASH,UAAUG,EAC9B,CAEI,IAAItH,EAAa4F,GAAgBC,EAAMzF,EAAMC,YAC7C,IAAIkH,EAAY,aAAevH,EAAWE,KAC1C2G,GAAqBzG,EAAO,CAC1BF,KAAMF,EAAWE,KACjBC,OAAQ,cAAgBoH,EAAY,IAAMvH,EAAWG,OAAS,MAEhE,OAAOoH,CACX,EAEE,IAAIC,EAAe,SAASA,IAC1B,IAAK,IAAIC,EAAQN,UAAUlX,OAAQ4V,EAAO,IAAIzW,MAAMqY,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAAS,CAC7F7B,EAAK6B,GAASP,UAAUO,EAC9B,CAEI,IAAI1H,EAAa4F,GAAgBC,EAAMzF,EAAMC,YAC7CwG,GAAqBzG,EAAOJ,EAChC,EAEE,IAAI2H,EAAK,SAASA,IAChB,IAAK,IAAIC,EAAQT,UAAUlX,OAAQ4V,EAAO,IAAIzW,MAAMwY,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IAAS,CAC7FhC,EAAKgC,GAASV,UAAUU,EAC9B,CAEI,OAAOf,GAAM1G,EAAMC,WAAY0G,EAAKe,GAAWjC,GACnD,EAEE,MAAO,CACLkB,IAAKA,EACLY,GAAIA,EACJH,aAAcA,EACdJ,UAAWA,EACXW,QAAS,SAASA,EAAQC,GACxBA,EAAI1Z,SAAQ,SAAUmB,GACpB2Q,EAAMZ,SAAS/P,GAAO,IAC9B,GACA,EACIoK,MAAO,SAASA,IACduG,EAAMC,WAAa,GACnBD,EAAMZ,SAAW,GACjBY,EAAMpI,MAAM6B,OAClB,EAEI7B,MAAOoI,EAAMpI,MACboI,MAAOA,EACPkG,oBAAqBA,GAAoB2B,KAAK,KAAM7H,EAAMC,YAC1DyG,MAAOA,GAAMmB,KAAK,KAAM7H,EAAMC,WAAY0G,GAE9C,EAEA,IAAIe,GAAa,SAASA,EAAWjC,GACnC,IAAIqC,EAAM,GAEV,IAAK,IAAIjQ,EAAI,EAAGA,EAAI4N,EAAK5V,OAAQgI,IAAK,CACpC,IAAIyL,EAAMmC,EAAK5N,GACf,GAAIyL,GAAO,KAAM,SACjB,IAAIyE,OAAa,EAEjB,cAAezE,GACb,IAAK,UACH,MAEF,IAAK,SACH,CACE,GAAItU,MAAMkW,QAAQ5B,GAAM,CACtByE,EAAQL,EAAWpE,EAC/B,KAAiB,CACLyE,EAAQ,GAER,IAAK,IAAIrN,KAAK4I,EAAK,CACjB,GAAIA,EAAI5I,IAAMA,EAAG,CACfqN,IAAUA,GAAS,KACnBA,GAASrN,CACzB,CACA,CACA,CAEU,KACV,CAEM,QACE,CACEqN,EAAQzE,CAClB,EAGI,GAAIyE,EAAO,CACTD,IAAQA,GAAO,KACfA,GAAOC,CACb,CACA,CAEE,OAAOD,CACT,EC3IG,IAACE,GAAiBpB,KAQjBD,GAAMqB,GAAerB,ICVzB,MAAMsB,GAAc,iCCGpB,MAAMC,GAAatE,GACV+C,EAAG;;oBAEQ/C;;;UAWPuE,GAAQ,M,qCAIM,C,CACzBzc,SACE,OACEO,EAAA,OAAKE,MAAO+b,GAAUrc,KAAKuc,SACzBnc,EAAA,a,eCzBR,MAAMoc,GAAW,srCCYjB,MAAMC,GAAcC,UACJA,IAAQ,SAAW,GAAGA,OAAWnQ,UAuBjD,MAAMoQ,GAAc,CAAC,QAAS,QAAS,aAAc,eASrD,MAAMC,GAAKD,GAAY1U,KAAKqG,GAAM,sBAAsBA,OACxD,MAAMuO,GAAiB,EAAEC,aAAYrR,KAAIsR,KAAIC,KAAIC,KAAIC,KAAI1c,KAAI2c,KAAIC,KAAIhd,IAAGid,KAAIC,QAAOC,UAASC,QAAOzZ,gBACjG,MAAM0Z,EAAOH,EAAMA,EAAMtZ,OAAS,GAElC,OAAO8W,EAAG;mBACO2B,GAAWhR,EAAG;qBACZgR,GAAWQ,EAAG;sBACbR,GAAWM,EAAG;oBAChBN,GAAWO,EAAG;kBAChBP,GAAWS,EAAG;oBACZT,GAAWW,EAAG;qBACbX,GAAWjc,EAAG;mBAChBic,GAAWU,EAAG;cACnBV,GAAWrc;0BACCid,EAAK,SAASA,KAAQ;aACnCC,EAAM;;iBAEFvZ,GAAa;uBACPwZ,GAAW;mBACfC,GAAS;;MAEtBZ,GAAG;eACMU,EAAM;;qBAEAb,GAAWhR,EAAG;uBACZgR,GAAWQ,EAAG;wBACbR,GAAWM,EAAG;sBAChBN,GAAWO,EAAG;;oBAEhBP,GAAWS,EAAG;sBACZT,GAAWW,EAAG;uBACbX,GAAWjc,EAAG;qBAChBic,GAAWU,EAAG;;MAE7BP,GAAG;eACMU,EAAM,IAAMG;;qBAENhB,GAAWhR,EAAG;uBACZgR,GAAWQ,EAAG;wBACbR,GAAWM,EAAG;sBAChBN,GAAWO,EAAG;;oBAEhBP,GAAWS,EAAG;sBACZT,GAAWW,EAAG;uBACbX,GAAWjc,EAAG;qBAChBic,GAAWU,EAAG;;MAE7BP,GAAG;eACMU,EAAM,IAAMG;;qBAENX,EAAa,GAAGL,GAAWhR,EAAG,MAAQ,GAAGgR,GAAWhR,EAAG;uBACrDqR,EAAa,GAAGL,GAAWQ,EAAG,MAAQ,GAAGR,GAAWQ,EAAG;wBACtDH,EAAa,GAAGL,GAAWM,EAAG,MAAQ,GAAGN,GAAWM,EAAG;sBACzDD,EAAa,GAAGL,GAAWO,EAAG,MAAQ,GAAGP,GAAWO,EAAG;;oBAEzDF,EAAa,GAAGL,GAAWS,EAAG,MAAQ,GAAGT,GAAWS,EAAG;sBACrDJ,EAAa,GAAGL,GAAWW,EAAG,MAAQ,GAAGX,GAAWW,EAAG;uBACtDN,EAAa,GAAGL,GAAWjc,EAAG,MAAQ,GAAGic,GAAWjc,EAAG;qBACzDsc,EAAa,GAAGL,GAAWU,EAAG,MAAQ,GAAGV,GAAWU,EAAG;;MAEtEP,GAAG;eACMU,EAAM,IAAMG;;qBAENhB,GAAWhR,EAAG;uBACZgR,GAAWQ,EAAG;wBACbR,GAAWM,EAAG;sBAChBN,GAAWO,EAAG;;oBAEhBP,GAAWS,EAAG;sBACZT,GAAWW,EAAG;uBACbX,GAAWjc,EAAG;qBAChBic,GAAWU,EAAG;;GAEhC,EAGH,MAAMO,GAAc3F,GAClBA,IAAK,MAALA,SAAK,SAALA,EACIhH,MAAM,KACP9I,KAAKsG,GAAM,GAAGA,EAAEqB,WAChB3H,KAAKsG,GAAMoP,WAAWpP,K,MAOdqP,GAAK,M,0CAEc,S,+LA8CJ,a,WAIF,W,yBASH,c,WAIG,M,eACI,K,CAE5BC,oBACE,IAAIrc,EAAYxB,KAAKyB,GAAGC,QAAQ,YAChC,GAAIF,EAAW,CACb,IAAKA,EAAUG,UAAUC,SAAS,gBAAiB,CACjD5B,KAAK6B,YAAc,O,GAKzBhC,S,oCACE,MAAM4L,GAAKqS,GAAAC,EAAAL,GAAW1d,KAAKyL,OAAG,MAAAsS,SAAA,EAAAA,EAAIL,GAAW1d,KAAKuP,MAAE,MAAAuO,SAAA,EAAAA,EAAI,CAAC,GACzD,MAAMf,GAAKiB,GAAAC,EAAAP,GAAW1d,KAAK+c,OAAG,MAAAkB,SAAA,EAAAA,EAAIP,GAAW1d,KAAKuP,MAAE,MAAAyO,SAAA,EAAAA,EAAI,CAAC,GACzD,MAAMf,GAAKiB,GAAAC,EAAAT,GAAW1d,KAAKid,OAAG,MAAAkB,SAAA,EAAAA,EAAIT,GAAW1d,KAAKuP,MAAE,MAAA2O,SAAA,EAAAA,EAAI,CAAC,GACzD,MAAMlB,GAAKoB,GAAAC,EAAAX,GAAW1d,KAAKgd,OAAG,MAAAqB,SAAA,EAAAA,EAAIX,GAAW1d,KAAKuP,MAAE,MAAA6O,SAAA,EAAAA,EAAI,CAAC,GACzD,MAAMlB,GAAKoB,GAAAC,EAAAb,GAAW1d,KAAKkd,OAAG,MAAAqB,SAAA,EAAAA,EAAIb,GAAW1d,KAAKqO,MAAE,MAAAiQ,SAAA,EAAAA,EAAI,CAAC,GACzD,MAAM9d,GAAKge,GAAAC,EAAAf,GAAW1d,KAAKQ,OAAG,MAAAie,SAAA,EAAAA,EAAIf,GAAW1d,KAAKqO,MAAE,MAAAmQ,SAAA,EAAAA,EAAI,CAAC,GACzD,MAAMpB,GAAKsB,GAAAC,EAAAjB,GAAW1d,KAAKod,OAAG,MAAAuB,SAAA,EAAAA,EAAIjB,GAAW1d,KAAKqO,MAAE,MAAAqQ,SAAA,EAAAA,EAAI,CAAC,GACzD,MAAMvB,GAAKyB,GAAAC,EAAAnB,GAAW1d,KAAKmd,OAAG,MAAA0B,SAAA,EAAAA,EAAInB,GAAW1d,KAAKqO,MAAE,MAAAuQ,SAAA,EAAAA,EAAI,CAAC,GACzD,MAAM9B,EAAa9c,KAAK6B,aAAe,SAEvC,OACEzB,EAACC,EAAI,CACHC,MAAOuc,GAAe,CACpBC,aACArR,KACAuR,KACAC,KACAF,KACAG,KACAC,KACAC,KACA5c,KACAJ,EAAGJ,KAAKI,EACRid,GAAIrd,KAAKqd,GACTC,MAAOtd,KAAKsd,MAAMvM,MAAM,KAAK9I,KAAKsG,GAAM,GAAGA,EAAEqB,YAC7C2N,QAASvd,KAAKud,QACdC,MAAOxd,KAAKwd,MACZzZ,UAAW/D,KAAK+D,aAGlB3D,EAAA,a,uCChPR,MAAM0e,GAAoB,uB,MCQbC,GAAc,M,mCAID,K,cAII,I,CAC5Blf,SACE,OACEO,EAACC,EAAI,CAACoC,MAAO,CAAC6a,MAAO,OAAQ5a,QAAS,OAAQyS,KAAM,IAAK6J,eAAgB,WACvE5e,EAAA,OACEE,MAAOwa,EAAG;;;yBAGK9a,KAAKif,KAAO,OAAS;yBACrBjf,KAAKkf,SAAW,QAAU;aAGzC9e,EAAA,c,eC5BV,MAAM+e,GAAmB,4hF,MCcZC,GAAa,M,+DAGcC,EAAmBhe,Q,iBAC3B,e,cAED,K,CAG7BkG,0BACEvH,KAAKsf,iBAAmB7X,EAAiBzH,KAAKuf,U,CAGhDje,mBACE,IAAIE,EAAYxB,KAAKyB,GAAGC,QAAQ,YAChC,GAAIF,EAAW,CACb,IAAKA,EAAUG,UAAUC,SAAS,gBAAiB,CACjD5B,KAAK6B,YAAc,iB,GAKzBhC,SACE,MAAM2f,EAAmB,CAAC,iBAAkBxf,KAAKqG,QAASrG,KAAK6B,aAAatB,KAAK,KACjF,OACEH,EAAA,oBAAgB,aAAagH,KAAK,aAAY,kBAAiB,oBAAoB9G,MAAOkf,GACxFpf,EAAA,MAAIE,MAAM,wBACPN,KAAKsf,WAAWrX,KAAKC,IACpB,GAAIA,EAAKgB,IAAIlF,OAAS,EAAG,CACvB,OACE5D,EAAA,MAAIE,MAAM,mBACRF,EAAA,KAAGE,MAAM,wBAAwB0G,KAAMkB,EAAKgB,KACzChB,EAAKuX,MAERrf,EAAA,WAASE,MAAM,wBAAwB4G,KAAK,sBAAsBC,KAAM,K,KAGvE,CACL,OACE/G,EAAA,MAAIE,MAAM,4CACRF,EAAA,KAAG4G,KAAMkB,EAAKgB,IAAG,eAAe,QAC7BhB,EAAKuX,M,6CCvD1B,MAAMC,GAAgB,8iJ,MCQTC,GAAU,M,kIAgBc,M,aAICC,EAAiBve,O,CAErDxB,SACE,OAAQG,KAAKqG,SACX,IAAK,SACH,OACEjG,EAACC,EAAI,CAACC,MAAM,uBACVF,EAAA,SACEkI,KAAK,WACLhI,MAAM,gCACNuf,QAAS7f,KAAK8f,gBACd/f,GAAI,GAAGC,KAAK+f,aACZhI,MAAO,GAAG/X,KAAKggB,kBAEjB5f,EAAA,SAAOE,MAAM,6BAA6B2f,QAAS,GAAGjgB,KAAK+f,cACxD/f,KAAKkgB,cACN9f,EAAA,QAAME,MAAM,kCACVF,EAAA,WAASE,MAAM,kCAAkC4G,KAAM,eAAgBC,KAAM,GAAE,cAAc,YAMvG,QACE,OACE/G,EAACC,EAAI,CAACC,MAAM,eACVF,EAAA,SACEkI,KAAK,WACLhI,MAAM,wBACNuf,QAAS7f,KAAK8f,gBACd/f,GAAI,GAAGC,KAAK+f,aACZhI,MAAO,GAAG/X,KAAKggB,kBAEjB5f,EAAA,SAAOE,MAAM,qBAAqB2f,QAAS,GAAGjgB,KAAK+f,cACjD3f,EAAA,QAAME,MAAM,0BACVF,EAAA,WAASE,MAAM,0BAA0B4G,KAAM,eAAgBC,KAAM,GAAE,cAAc,UAEtFnH,KAAKkgB,gB,eCjEpB,MAAMC,GAAqB,umG,MCOdC,GAAe,M,4JAO1BvgB,SACE,OACEO,EAAA,OAAKE,MAAM,oBACTF,EAAA,UAAQE,MAAM,yBAAyB8G,KAAK,iBAC1ChH,EAAA,OAAKgI,IAAKpI,KAAK4I,SAAUF,IAAK1I,KAAKqgB,gBAErCjgB,EAAA,OAAKE,MAAM,6BACTF,EAAA,KAAGE,MAAM,iCAAiCN,KAAK8I,iBAC9C9I,KAAKsgB,SACJlgB,EAAA,KAAG4G,KAAMhH,KAAKsgB,QAAShgB,MAAM,0BAC1BN,KAAKugB,UACNngB,EAAA,sBAAkB,QAChBA,EAAA,WAAS8G,KAAM,sBAAuBC,KAAM,Q,eC1B5D,MAAMqZ,GAAmB,y5E,MCQZC,GAAa,M,yBAShBzgB,KAAAqG,QAA0Bqa,EAAerf,Q,eARrB,oB,mBACI,qC,kBACD,K,oBACE,Y,0CAEH,S,wBACoBsf,EAAoBtf,Q,wBAGzB,E,CAMzBuf,YAAYC,GAC9B7gB,KAAKsf,kBAAoBuB,IAAS,SAAWC,KAAKC,MAAMF,GAAQA,C,CAGlEhD,oBACE7d,KAAK4gB,YAAY5gB,KAAKuf,U,CAGxByB,gBAAgBnX,EAAG9J,GACjB8J,EAAE1F,iBACF,IAAI8c,EAAOjhB,KAAKyB,GAAGuD,cAAc,IAAIjF,KAErC,GAAIkhB,EAAM,CACRlf,OAAOmf,KAAKD,EAAKE,QAAQnf,SAAU,S,EAIvCuF,yBACE,IAAI/F,EAAYxB,KAAKyB,GAAGC,QAAQ,YAChC,GAAIF,EAAW,CACb,IAAKA,EAAUG,UAAUC,SAAS,gBAAiB,CACjD5B,KAAK6B,YAAc,O,GAKzBuf,cACE,IAAIC,EAAqB,GACzB,GAAIrhB,KAAKsf,YAActf,KAAKsf,WAAWtb,OAAS,EAAG,CACjDhE,KAAKsf,WAAWjd,SAAS6F,IACvB,MAAMoZ,EAAeR,KAAKC,MAAMD,KAAKS,UAAUrZ,IAE/C,MAAMsZ,EAAiBF,EAAa,kBACpCthB,KAAKqG,QAAUmb,GAAkB,OAASd,EAAee,IAAMf,EAAegB,KAE9E,IAAK,MAAMC,KAAkBL,EAAc,CACzC,GAAIK,GAAkB,iBAAkB,SAExC,MAAMC,EAAaN,EAAaK,GAChC,MAAME,EAAaD,EAAW,QAC9B,MAAME,EAAgBF,EAAW,WAGjC,GAAIA,EAAW,gBAAiB,CAC9B,MAAMG,EAAejB,KAAKC,MAAMD,KAAKS,UAAUK,EAAW,kBAC1D,IAAK,MAAMI,KAAuBD,EAAc,CAC9C,MAAME,EAAkBF,EAAaC,GACrC,MAAME,EAAwBD,EAAgB,QAC9C,MAAME,EAA4BD,EAAwB,KAAOJ,EAAgB,IAAM9hB,KAAKoiB,aAC5F,MAAMC,EAAoBJ,EAAgB,eAC1C,MAAMK,EAAkBL,EAAgB,aACxC,MAAMM,EAAkBN,EAAgB,aACxC,MAAMO,EAAgBP,EAAgB,WACtC,MAAMQ,EAAqBR,EAAgB,sBAC3C,MAAMS,EAAuBT,EAAgB,iBAC7C,MAAMU,EAAyBV,EAAgB,oBAC/C,MAAMW,EAAqBX,EAAgB,gBAE3C,IAAIY,EAAa,GACjB,GAAIZ,EAAgB,QAAS,CAC3B,IAAIpV,EAAOiU,KAAKC,MAAMD,KAAKS,UAAUU,EAAgB,UACrD,IAAK,IAAI7R,KAAKvD,EAAM,CAClB,IAAIiW,EAAU,CAAC7O,KAAMpH,EAAKuD,IAC1ByS,EAAWtV,KAAKuV,E,EAGpB,MAAMC,EAAiBjC,KAAKS,UAAUsB,GAEtC,MAAMG,EAAiC,CAAC,OAAQhjB,KAAKqG,SAAS9F,KAAK,KAEnE8gB,EAAmB9T,KACjBnN,EAAA,wBACEL,GAAIiiB,EACJ1hB,MAAO0iB,EACP3c,QAASrG,KAAKqG,QAAO,gBACNrG,KAAKijB,mBAAkB,cACzBpB,EAAU,cACVM,EAAyB,eACxBG,EAAe,kBACZtiB,KAAKkjB,eAAc,iBACpBpB,EAAa,cAChBiB,EAAc,oBACRR,EAAe,kBACjBC,EAAa,uBACRC,EAAkB,sBACnBJ,EAAiB,sBACjBO,EAAkB,yBACfF,EAAoB,2BAClBC,EAAsB,oBAC7B3iB,KAAKmjB,UAAS,gBAClBT,EACfhY,QAAUb,GAAM7J,KAAKghB,gBAAgBnX,EAAGmY,K,OAUtD,OAAOX,C,CAGTxhB,SACE,MAAMC,EAAkB,CAACE,KAAKqG,QAAS,mBAAmB9F,KAAK,KAC/D,MAAM6iB,EAAuB,CAAC,yBAA0B,2BAA2BpjB,KAAK6B,eAAetB,KAAK,KAC5G,MAAM8iB,EAA4B,CAChC,+BACA,iCAAiCrjB,KAAK6B,eACtCtB,KAAK,KAEPP,KAAKqhB,mBAAqBrhB,KAAKohB,cAC/B,GAAIphB,KAAKqhB,oBAAsBrhB,KAAKqhB,mBAAmBrd,OAAS,EAAG,CACjE,OACE5D,EAACC,EAAI,KACHD,EAAA,OAAKE,MAAOR,GAAkBE,KAAKqhB,oB,KAGlC,CACL,OACEjhB,EAACC,EAAI,KACHD,EAAA,OAAKE,MAAOR,GACVM,EAAA,OAAKE,MAAM,8BACTF,EAAA,QAAME,MAAO8iB,GACXhjB,EAAA,WAAS8G,KAAM,eAAgBC,KAAM,MAEvC/G,EAAA,QAAME,MAAO+iB,GAA4BrjB,KAAKsjB,iB,gGCvJ5D,MAAMC,GAAuB,6sNCQ7B,IAAI7iB,GAAO,CACTC,MAAO,S,MAQI6iB,GAAgB,M,sCACO9C,EAAerf,Q,kBACLsf,EAAoBtf,Q,mGAI/B,Y,iUAejCkG,0BACEvH,KAAKyjB,kBAAoBhc,EAAiBzH,KAAK6iB,W,CAIjD/f,cAAcC,GACZ,MAAMS,EAAOT,EAAwBU,KACrC,GAAID,GAAO9C,GAAKC,MAAO,CACrB,IAAIsgB,EAAOjhB,KAAKyB,GAChBM,OAAOmf,KAAKD,EAAKE,QAAQnf,SAAU,SAAU,W,EAIjDnC,SACE,MAAMC,EAAkB,CAACE,KAAKqG,QAAS,wBAAwB9F,KAAK,KAEpE,MAAMgD,EAAS,SACf,MAAMmgB,EAAY,2CAElB,MAAMC,EAAgB,CACpB,kCACA,oCAAoC3jB,KAAK4jB,gBACzCrjB,KAAK,KACP,MAAMsjB,EAAqB,CAAC,YAAa,cAAc7jB,KAAK4jB,gBAAgBrjB,KAAK,KAEjF,MAAO,CACLH,EAAA,OAAKE,MAAOR,EAAiBmH,SAAS,KACpC7G,EAAA,OAAKE,MAAOqjB,GAAgB3jB,KAAK8jB,YACjC1jB,EAAA,OAAKE,MAAM,kCACRN,KAAK+jB,aACJ3jB,EAAA,OAAKE,MAAOujB,GACVzjB,EAAA,YAAOJ,KAAKkjB,iBAGhB9iB,EAAA,OAAKE,MAAM,oFACTF,EAAA,YAAOJ,KAAKyiB,qBAEbziB,KAAK4iB,mBACF,CACExiB,EAAA,OAAKE,MAAM,wCACTF,EAAA,YAAOJ,KAAKqiB,oBAEdjiB,EAAA,OAAKE,MAAM,mFACTF,EAAA,YAAOJ,KAAK4iB,sBAGhB,CACExiB,EAAA,OAAKE,MAAM,mFACTF,EAAA,YAAOJ,KAAKqiB,sBAIrBriB,KAAKyjB,aAAezjB,KAAKyjB,YAAYzf,OAAS,GAC7C5D,EAAA,OAAKE,MAAM,8BACRN,KAAKyjB,YAAYxb,KAAK0G,GACdvO,EAAA,cAASuO,EAAEsF,SAIvBjU,KAAK+jB,aACJ3jB,EAAA,OAAKE,MAAM,oBACTF,EAAA,YAAOJ,KAAKkjB,iBAGhB9iB,EAAA,OAAKE,MAAM,8BACTF,EAAA,KACE4G,KAAMhH,KAAK0iB,qBACXnf,OAAQA,EAAM,aACFmgB,EACZpjB,MAAM,mCACN2G,SAAS,MAET7G,EAAA,QAAME,MAAM,SAASN,KAAKgkB,iBAC1B5jB,EAAA,QAAME,MAAM,gBACVF,EAAA,OAAKE,MAAM,QACTF,EAAA,WAAS8G,KAAM,yBAA0BC,KAAM,U,uCCjH/D,MAAM8c,GAAoB,6mK,MCObC,GAAc,M,qIAMzBrkB,SACE,OACEO,EAACC,EAAI,CAACC,MAAM,mBAAmB8G,KAAK,SAClChH,EAAA,OAAKE,MAAM,+BACTF,EAAA,OAAKE,MAAM,+BACTF,EAAA,WAASE,MAAO,mCAAoC4G,KAAM,mBAE5D9G,EAAA,OAAKE,MAAM,qCACTF,EAAA,OAAKE,MAAM,6BACTF,EAAA,MAAIE,MAAM,2BAA2BN,KAAKmkB,aACzCnkB,KAAKokB,mBACJhkB,EAAA,OAAKE,MAAM,gCAAgC+jB,UAAWrkB,KAAKokB,qBAG9DpkB,KAAKsgB,SACJlgB,EAAA,KAAGE,MAAM,yBAAyB0G,KAAMhH,KAAKsgB,SAC1CtgB,KAAKugB,UACNngB,EAAA,WAASE,MAAO,8BAA+B4G,KAAM,8B,eC9BrE,MAAMod,GAAe,upP,MCQRC,GAAS,M,sCACqBhZ,EAAsBC,W,iBACjC,G,gBACA,M,0DAGA,M,iBACA,Q,CAG9B3L,SACE,MAAMC,EAAkB,CAAC,gBAAiBE,KAAKqG,QAASrG,KAAK6B,aAAatB,KAAK,KAE/E,MAAMikB,EAA2B,CAAC,2BAA2BjkB,KAAK,KAElE,MAAMkkB,EAAsB,CAAC,QAAQlkB,KAAK,KAC1C,MAAMmkB,EAAsB,CAAC,aAAankB,KAAK,KAE/C,MAAMgD,EAASvD,KAAK4L,WAAa,SAAW,QAE5C,OACExL,EAAA,QAAME,MAAOkkB,IACTxkB,KAAK2kB,WACLvkB,EAAA,kBAAeJ,KAAK2L,QAASrL,MAAOR,EAAiBkH,KAAMhH,KAAKkJ,IAAK3F,OAAQA,GAC3EnD,EAAA,QAAME,MAAOmkB,GAAsBzkB,KAAK4kB,YAAY5gB,SAAW,EAAI5D,EAAA,aAAWJ,KAAK4kB,aACnFxkB,EAAA,QAAME,MAAOokB,GACXtkB,EAAA,WAAS8G,KAAM,sBAAuBC,KAAM,OAIhD/G,EAAA,uBAAoBJ,KAAK2L,QAASrL,MAAOR,GACvCM,EAAA,QAAME,MAAOmkB,GAAsBzkB,KAAK4kB,YAAY5gB,SAAW,EAAI5D,EAAA,aAAWJ,KAAK4kB,aACnFxkB,EAAA,QAAME,MAAOokB,GACXtkB,EAAA,WAAS8G,KAAM,sBAAuBC,KAAM,O,uCCzC1D,MAAM0d,GAAa,skE,MCQNC,GAAO,M,sCAEiBC,EAAgB1jB,Q,iBACrB,G,0DAGA,K,CAE9BxB,SACE,MAAM6kB,EAAsB,CAAC,oBAAqB1kB,KAAK4L,YAAc,+BAA+BrL,KAAK,KACzG,MAAMgD,EAASvD,KAAK4L,WAAa,SAAW,QAE5C,OACExL,EAAA,kBAAeJ,KAAK2L,QAAS3E,KAAMhH,KAAKkJ,IAAK3F,OAAQA,EAAQjD,MAAO,4BAA4BN,KAAKqG,WAClGrG,KAAKqG,SAAW0e,EAAgBC,UAC/B5kB,EAAA,QAAME,MAAOokB,GACXtkB,EAAA,WAAS8G,KAAM,yBAA0BC,KAAM,MAGnD/G,EAAA,YAAOJ,KAAK4kB,aACX5kB,KAAKqG,SAAW0e,EAAgB1jB,SAC/BjB,EAAA,QAAME,MAAOokB,GACXtkB,EAAA,WAAS8G,KAAM,yBAA0BC,KAAM,M,uCC9B3D,MAAM8d,GAAgB,2qL,MCoBTC,GAAU,M,qCAGK,M,mBACM,K,gBACH,iB,iDAEE,M,mBACyB,K,iBACxB,M,eACF,M,mBACW,CAAC,CAACnlB,GAAI,EAAGolB,MAAOnlB,KAAKolB,aAAcrN,MAAO,G,CAEnFxQ,0BACEvH,KAAKqlB,uBAAyB5d,EAAiBzH,KAAKslB,gB,CAGtDC,sBACE,MAAM/a,EAAQxK,KAAKyB,GAAGW,iBAAiB,0BACvC,GAAIoI,EAAO,CACT,GAAI,IAAIA,GAAOgb,MAAMtd,GAASA,EAAK2X,SAAW,OAAO,CACnD7f,KAAKylB,UAAY,I,KACZ,CACLzlB,KAAKylB,UAAY,K,GAMvBC,iBAAiBC,EAA2BC,GAC1C,IAAK5lB,KAAK6lB,OAAQ,OAElB,GAAIF,IAAaC,EAAU,CACzB,MAAME,EAAgC9lB,KAAKyB,GAAGmD,uBAAuB,yBAIrEzB,MAAM4iB,KAAKD,GAA+BE,QAAQ9d,IAChD,GAAIA,EAAKnI,IAAM4lB,EAAU,CACvBzd,EAAK2X,QAAU,KACf7f,KAAKimB,cAAgBjmB,KAAKqlB,iBAAiBW,QAAQE,GAAWA,EAAOnmB,IAAM4lB,IAC3E,M,CAEF,OAAO,IAAI,G,EAKjBQ,oBACEnmB,KAAKomB,aAAepmB,KAAKomB,W,CAI3BhiB,YAAYrB,GACV,MAAMsjB,EAA8BrmB,KAAKyB,GAAGuD,cAAc,IAAIhF,KAAKsmB,cACnE,MAAMC,EAAuBvmB,KAAKyB,GAAGuD,cAAc,uBACnD,MAAM8gB,EAAgC9lB,KAAKyB,GAAGW,iBAAiB,0BAC/D,MAAMokB,EAAkCxmB,KAAKyB,GAAGuD,cAAc,sBAE9D,MAAMzB,OAACA,GAAUR,EAEjB,MAAM0jB,EAAkB,CACtBJ,EACAE,EACAC,KACGV,GAGL,GAAI9lB,KAAKomB,cAAgBK,EAAgB7iB,SAASL,GAAS,CACzDvD,KAAKomB,YAAc,K,CAErBrjB,EAAMqH,iB,CAIRsc,kBAAkB3jB,GAChB,IAAK/C,KAAK6lB,SAAW7lB,KAAKomB,YAAa,OACvC,MAAMN,EAAgC9lB,KAAKyB,GAAGmD,uBAAuB,yBAGrE,MAAM6hB,EAAkB,IAAIX,GAC5B,MAAMviB,OAACA,GAAUR,EACjB,IAAK0jB,EAAgB7iB,SAASL,GAAS,OACvCJ,MAAM4iB,KAAKD,GAA+BE,QAAQ9d,IAChD,GAAIA,EAAKnI,IAAMwD,EAAOxD,GAAI,CACxB,IAAKmI,EAAK2X,QAAS,CACjB7f,KAAKimB,cAAgB,CAAC,CAAClmB,GAAI,KAAMolB,MAAOnlB,KAAKolB,aAAcrN,MAAO,OAClE,M,CAEF/X,KAAKimB,cAAgBjmB,KAAKqlB,iBAAiBW,QAAQE,GAAWA,EAAOnmB,IAAMwD,EAAOxD,KAClF,M,CAEF,GAAImI,EAAKnI,KAAOwD,EAAOxD,IAAMmI,EAAK2X,QAAS,CACzC3X,EAAK2X,QAAU,MACf,M,CAEF,OAAO,IAAI,IAGb9c,EAAMqH,iB,CAGRvK,SACE,MAAOslB,MAAOwB,EAAc5mB,GAAI6mB,EAAW7O,MAAO8O,GAAgB7mB,KAAKimB,cAAc,GACrF,MAAMnmB,EAAkB,CAAC,cAAeE,KAAK6lB,OAAS,sBAAwB,IAAItlB,KAAK,KAEvF,GAAIP,KAAK6lB,OAAQ,CACf,OACEzlB,EAACC,EAAI,CAACC,MAAOR,GACVE,KAAK8mB,eACJ1mB,EAAA,SAAOE,MAAM,4BAA4B2f,QAASjgB,KAAKsmB,YACpDtmB,KAAK8mB,eAGV1mB,EAAA,UACEL,GAAIC,KAAKsmB,WACThmB,MAAO,uBAAuBN,KAAKomB,YAAc,UAAY,KAAI,gBAClD,GAAGpmB,KAAKomB,aAAe,QAAO,gBAC/B,OAAM,gBACN,gBACd1b,QAAS,IAAM1K,KAAKmmB,oBAAmB,aAC3B,IAAInmB,KAAKomB,YAAc,OAAS,mBAAkB,kBAC7CQ,EAAS,qBACNC,EACpB9O,MAAO6O,EACPte,KAAK,UAEJqe,EACDvmB,EAAA,WAASE,MAAM,oBAAoB4G,KAAM,qBAAsBC,KAAM,GAAE,cAAc,UAEvF/G,EAAA,wCAAqCJ,KAAKylB,UAAY,OAAS,QAAO,aAAczlB,KAAKomB,aACtFpmB,KAAKqlB,iBAAiBpd,KAAI,EAAElI,KAAIolB,QAAOpN,SAAQlU,IAC9CzD,EAAA,6CACoBL,EAAE,sBACColB,EAAK,sBACLpN,EAAK,UACjB/X,KAAKqlB,iBAAiBrhB,OAAS,IAAMH,O,KAMnD,CACL,OACEzD,EAACC,EAAI,CAACC,MAAOR,GACXM,EAAA,UACEL,GAAIC,KAAKsmB,WACThmB,MAAO,uBAAuBN,KAAKomB,YAAc,UAAY,KAAI,gBAClD,GAAGpmB,KAAKomB,aAAe,QAAO,gBAC/B,OAAM,gBACN,gBACd1b,QAAS,IAAM1K,KAAKmmB,oBAAmB,aAC3B,IAAInmB,KAAKomB,YAAc,OAAS,mBAC5C9d,KAAK,UAEJtI,KAAK8mB,eAAiB9mB,KAAK8mB,cAC5B1mB,EAAA,WAASE,MAAM,oBAAoB4G,KAAM,qBAAsBC,KAAM,GAAE,cAAc,UAEvF/G,EAAA,wCAAqCJ,KAAKylB,UAAY,OAAS,QAAO,aAAczlB,KAAKomB,aACtFpmB,KAAKqlB,iBAAiBpd,KAAI,EAAElI,KAAIolB,QAAOpN,SAAQlU,IAC9CzD,EAAA,6CACoBL,EAAE,sBACColB,EAAK,sBACLpN,EAAK,UACjB/X,KAAKqlB,iBAAiBrhB,OAAS,IAAMH,O,+GClLjDkjB,GAAe,M,iDAG1BlnB,SACE,OACEO,EAAA,MACEL,GAAG,gBACHO,MAAO,sBAAsBN,KAAKgnB,SAAW,YAAc,KAAI,cAClD,GAAGhnB,KAAKgnB,UAAY,QACjC5f,KAAK,SAAQ,kBACG,kBAEhBhH,EAAA,a,SCZK6mB,GAAmB,M,qCACH,M,gGAK3BpnB,SACE,OACEO,EAAA,MAAIE,MAAO,2BAA2BN,KAAKknB,OAAS,UAAY,MAC9D9mB,EAAA,SACEkI,KAAK,WACLhI,MAAM,wBACNP,GAAI,GAAGC,KAAKmnB,iBACZpP,MAAO,GAAG/X,KAAKonB,sBAEjBhnB,EAAA,SAAOE,MAAM,qBAAqB2f,QAAS,GAAGjgB,KAAKmnB,kBAChDnnB,KAAKqnB,kBACNjnB,EAAA,WAASE,MAAM,0BAA0B4G,KAAM,eAAgBC,KAAM,GAAE,cAAc,U,GCvB/F,MAAMmgB,GAAmB,i+F,MCYZC,GAAa,M,2FAMxBC,iBAAiB7B,GACf,UAAWA,IAAa,SAAU,CAChC3lB,KAAKynB,oBAAsB3G,KAAKC,MAAM4E,E,KACjC,CACL3lB,KAAKynB,oBAAsB9B,C,EAI/B9H,oBACE7d,KAAKwnB,iBAAiBxnB,KAAK0nB,mB,CAI7BC,qBAAqB5nB,GACnB6nB,QAAQC,IAAI9nB,E,CAGdF,SACE,OACEO,EAACC,EAAI,CAACC,MAAM,mBACVF,EAAA,MAAIE,MAAM,4BACRF,EAAA,UACEA,EAAA,MAAIE,MAAM,0BAA0BN,KAAK8nB,mBAE1C9nB,KAAKynB,oBAAoBxf,KAAI,EAAElI,KAAIolB,WAClC/kB,EAAA,+CACwBL,EAAE,0BACColB,EACzBza,QAAS,IAAM1K,KAAK2nB,qBAAqB5nB,Q,2FCvC1CgoB,GAAiB,M,8FAI5BloB,SACE,OACEO,EAAA,MAAIE,MAAM,2BACRF,EAAA,UAAQkI,KAAK,SAAShI,MAAM,0BAAyB,aAAa,YAAYN,KAAKgoB,wBAChFhoB,KAAKgoB,qBACN5nB,EAAA,WACEE,MAAM,+BACN4G,KAAM,iBACNC,KAAM,GAAE,cACI,OACZwD,KAAMsd,EAAaC,aAGvB9nB,EAAA,a,GCxBR,MAAM+nB,GAAsB,6iF,MCQfC,GAAgB,M,+EAI3BvoB,SACE,OACEO,EAAA,OAAKE,MAAM,wBACTF,EAAA,YAAOJ,KAAKqoB,aACZjoB,EAAA,UACEkI,KAAK,SACLhI,MAAO,CACL,iBAAkB,KAClB,6BAA8B,KAC9B,YAAaN,KAAKsoB,aAAeC,EAAkBC,MACpD,aACW,GAAGxoB,KAAKqoB,qBAEpBjoB,EAAA,WAASE,MAAM,+BAA+B4G,KAAM,0BAA2BC,KAAM,GAAE,cAAc,UAEvG/G,EAAA,UACEkI,KAAK,SACLhI,MAAO,CACL,iBAAkB,KAClB,6BAA8B,KAC9B,YAAaN,KAAKsoB,aAAeC,EAAkB7G,MACpD,aACW,GAAG1hB,KAAKqoB,qBAEpBjoB,EAAA,WAASE,MAAM,+BAA+B4G,KAAM,0BAA2BC,KAAM,GAAE,cAAc,U,eCpC/G,MAAMshB,GAA4B,mpE,MCOrBC,GAAsB,M,iEAGjC7oB,SACE,OAAQG,KAAK2oB,0BACX,IAAK,SACH,OACEvoB,EAACC,EAAI,KACHD,EAAA,0CAIN,IAAK,QACH,OACEA,EAACC,EAAI,KACHD,EAAA,yC,qBChBCwoB,GAA2B,M,yBACtC/oB,SACE,OACEO,EAAA,UAAQE,MAAM,6DAA6DgI,KAAK,UAC9ElI,EAAA,WAASE,MAAM,kCAAkC4G,KAAM,iBAAkBC,KAAM,GAAE,cAAc,SAAS,gB,SCJnG0hB,GAA4B,M,yBACvChpB,SACE,OACEO,EAACC,EAAI,KACHD,EAAA,UAAQE,MAAM,iEAAiEgI,KAAK,UAClFlI,EAAA,WAASE,MAAM,kCAAkC4G,KAAM,eAAgBC,KAAM,GAAE,cAAc,SAAS,qBAGxG/G,EAAA,UAAQE,MAAM,iEAAiEgI,KAAK,UAClFlI,EAAA,WAASE,MAAM,kCAAkC4G,KAAM,gBAAiBC,KAAM,GAAE,cAAc,SAAS,qB,GCfjH,MAAM2hB,GAAc,2rC,MCOPC,GAAQ,M,yBACnBlpB,SACE,MAAMC,EAAkB,CAAC,aACzB,OACEM,EAAA,UAAQE,MAAOR,EAAgBS,KAAK,MAClCH,EAAA,a,eCZR,MAAM4oB,GAAoB,kvFCE1B,IAAIC,GAAgB,K,MAOPC,GAAc,M,iFAUzBC,uBACEC,aAAaH,G,CAGuBI,YACpC,MAAMC,EAASnnB,SAAS6C,cAAc,mBACtCjD,OAAO8D,SAAS,CAACC,IAAK,EAAGE,SAAU,WACnCijB,GAAgBlnB,OAAO0D,YAAW,KAChC6jB,EAAOplB,OAAO,GACb,I,CAGLrE,SACE,MAAMC,EAAkB,CAAC,oBAAoBS,KAAK,KAElD,OACEH,EAACC,EAAI,CAACC,MAAOR,GACXM,EAAA,QAAME,MAAO,kCAAmCN,KAAKupB,aACpDvpB,KAAKwpB,eACJppB,EAAA,QAAME,MAAM,+BACVF,EAAA,SAAOL,GAAG,WAAWkgB,QAAQ,aAC1BjgB,KAAKwpB,eAERppB,EAAA,UACE6T,KAAK,YAAW,kBACA,WAChBvJ,QAAS,IAAM1K,KAAKqpB,YACpB/oB,MAAM,8BACNgI,KAAK,UAELlI,EAAA,WAASE,MAAO,4BAA6B4G,KAAM,mBAAoBC,KAAM,O,eCjD3F,MAAMsiB,GAAkB,0iM,MCuBXC,GAAY,M,oCAIcC,EAAoBC,M,0DAY5BC,EAAaC,I,2HAqB1CviB,0BACEvH,KAAK+pB,2BAA6BtiB,EAAiBzH,KAAKgqB,qBACxDhqB,KAAKiqB,0BAA4BxiB,EAAiBzH,KAAKkqB,mB,CAGzDrqB,SACE,MAAMsqB,EAAYlC,EAAa2B,MAC/B,MAAM9pB,EAAkB,CAAC,qCAAqCS,KAAK,KACnE,MAAM6pB,EAAQpqB,KAAK+pB,qBACnB,MAAMvE,EAAOxlB,KAAKiqB,oBAElB,OACE7pB,EAACC,EAAI,CAACC,MAAOR,GACXM,EAAA,OAAKE,MAAM,kBACTF,EAAA,OAAKE,MAAM,wBACTF,EAAA,OAAKE,MAAM,wBACTF,EAAA,gBACEkI,KAAM+hB,EAAcC,OACpBnjB,KAAM,GACNojB,MAAOJ,EACPjhB,IAAKlJ,KAAKwqB,QACVrF,MAAOnlB,KAAKyqB,aAGhBrqB,EAAA,OAAKE,MAAM,2BACTF,EAAA,QAAM6T,KAAK,aAEb7T,EAAA,OAAKE,MAAM,wBACTF,EAAA,QAAME,MAAM,+BAA+BN,KAAK0qB,WAChDtqB,EAAA,OAAKE,MAAM,+BACRklB,GACCA,EAAKvd,KAAK0iB,GAENvqB,EAAA,kBACcuqB,EAAExF,MACdne,KAAM2jB,EAAEzhB,IACR5I,MAAO,6BACPwK,MAAO6f,EAAExF,MACT5hB,OAAO,UAEPnD,EAAA,WAAS8G,KAAM,gBAAgByjB,EAAEriB,OAAQnB,KAAM,WAO7D/G,EAAA,OAAKE,MAAM,yBACR8pB,GACCA,EAAMniB,KAAK2iB,GAEPxqB,EAAA,uBACE+kB,MAAOyF,EAAKzF,MACZjc,IAAK0hB,EAAK1hB,IACVqhB,MAAOZ,EAAoBC,UAIlC5pB,KAAK6qB,eAAiBzqB,EAAA,QAAME,MAAM,wBAAwBN,KAAK6qB,iB,eC5G5E,MAAMC,UACK/oB,OAAOgpB,UAAY,mBACnBhpB,OAAOipB,MAAQ,WAE1B,MAAMD,GAAU,MACZ,GAAID,GAAsB,CACtB,OAAO/oB,OAAOgpB,OACtB,CAEI,SAASE,EAASC,EAAK1nB,GACnB,IAAIyV,GAAU,EAEdiS,EAAI1F,MAAK,CAAC2F,EAAOtnB,KACb,IAAIunB,EAAUD,EAAM,KAAO3nB,EAE3B,GAAI4nB,EAAS,CACTnS,EAASpV,CACzB,CAEY,OAAOunB,CAAO,IAGlB,OAAOnS,CACf,CAEI,OAAO,MACHoS,cACIrrB,KAAKsrB,YAAc,EAC/B,CAEQC,IAAI/nB,GACA,IAAIK,EAAQonB,EAASjrB,KAAKsrB,YAAa9nB,GAEvC,OAAOxD,KAAKsrB,YAAYznB,GAAO,EAC3C,CAEQqO,IAAI1O,EAAKuU,GACL,IAAIlU,EAAQonB,EAASjrB,KAAKsrB,YAAa9nB,GAEvC,IAAKK,EAAO,CACR7D,KAAKsrB,YAAYznB,GAAO,GAAKkU,CAC7C,KAAmB,CACH/X,KAAKsrB,YAAY/d,KAAK,CAAC/J,EAAKuU,GAC5C,CACA,CAEQyT,OAAOhoB,GACH,IAAIioB,EAAUzrB,KAAKsrB,YACfznB,EAAQonB,EAASQ,EAASjoB,GAE9B,IAAKK,EAAO,CACR4nB,EAAQC,OAAO7nB,EAAO,EACtC,CACA,CAEQ8nB,IAAInoB,GACA,SAAUynB,EAASjrB,KAAKsrB,YAAa9nB,EACjD,EAEC,EAvDe,GAyDhB,MAAMwnB,GAAM,MACR,GAAIF,GAAsB,CACtB,OAAO/oB,OAAOipB,GACtB,CAEI,OAAO,cAAcD,GACb5jB,WACA,OAAOnH,KAAKsrB,YAAYtnB,MACpC,CAEQ4nB,QACI5rB,KAAKsrB,YAAYI,OAAO,EAAG1rB,KAAKsrB,YAAYtnB,OACxD,CAEQynB,UACI,OAAOzrB,KAAKsrB,YAAYjoB,OACpC,CAEQ3C,OACI,OAAOV,KAAKsrB,YAAYrjB,KAAIkjB,GAASA,EAAM,IACvD,CAEQU,SACI,OAAO7rB,KAAKsrB,YAAYrjB,KAAIkjB,GAASA,EAAM,IACvD,CAEQ9oB,QAAQypB,EAAUC,EAAM,MACpB,IAAK,MAAMZ,KAASnrB,KAAKsrB,YAAa,CAClCQ,EAASxoB,KAAKyoB,EAAKZ,EAAM,GAAIA,EAAM,GACnD,CACA,EAEC,EAhCW,GCjEZ,MAAAa,GAAe,MACX,GACIjqB,OAAOkqB,oBACAlqB,OAAOkqB,YAAYD,MAAQ,WACpC,CACE,MAAO,IAAMjqB,OAAOkqB,YAAYD,KACxC,CAEI,MAAO,IAAME,KAAKF,KACrB,EATc,GCAf,MAAAG,GAAe,MACX,GACIpqB,OAAOqqB,8BACArqB,OAAOqqB,wBAA0B,WAC1C,CACE,OAAOrqB,OAAOqqB,qBACtB,CAEI,OAAON,GACIrmB,YAAW,IAAMqmB,EAASI,KAAKF,QAAQ,IAAO,GAE5D,EAXc,GCHf,MAAMK,UAA4BtqB,OAAOuqB,mBAAqB,WAW9D,SAASC,GAAST,EAAUU,EAAQ,GAChC,IAAIC,EAAY,MAEhB,OAAO,YAAa7S,GAChB,GAAI6S,IAAc,MAAO,CACrBrD,aAAaqD,EACzB,CAEQA,EAAYhnB,YAAW,KACnBgnB,EAAY,MAGZX,EAASY,MAAM1sB,KAAM4Z,EAAK,GAG3B4S,EACX,CACA,CAae,MAAMG,GAOjBtB,YAAYuB,EAAc,GAAIC,EAAoB,OAC9C7sB,KAAK8sB,aAAeF,EACpB5sB,KAAK+sB,mBAAqBF,EAE1B7sB,KAAKgtB,gBAAkB,EAGvBhtB,KAAKitB,eAAiB,MAGtBjtB,KAAKktB,mBAAqB,MAG1BltB,KAAKmtB,kBAAoB,MAGzBntB,KAAKotB,mBAAqB,KAG1BptB,KAAKqtB,WAAa,GAGlBrtB,KAAKstB,WAAattB,KAAKstB,WAAWtR,KAAKhc,MACvCA,KAAKutB,kBAAoBvtB,KAAKutB,kBAAkBvR,KAAKhc,MACrDA,KAAKwtB,YAAcxtB,KAAKwtB,YAAYxR,KAAKhc,MAIzCA,KAAKytB,wBAA0BlB,GAASvsB,KAAKstB,WAAY,IACjE,CAOQV,kBACA,OAAO5sB,KAAK8sB,YACpB,CAOQF,gBAAY7U,GACZ/X,KAAK8sB,aAAe/U,CAC5B,CAOQ8U,wBACA,OAAO7sB,KAAK+sB,kBACpB,CASQF,sBAAkB9U,GAClB,GAAIsU,GAAoB,CACpBrsB,KAAK+sB,mBAAqBhV,CACtC,CACA,CAOI2V,QAAQC,GACJ,IAAK3tB,KAAK4tB,YAAYD,GAAW,CAC7B3tB,KAAKqtB,WAAW9f,KAAKogB,EACjC,CAGQ,IAAK3tB,KAAKmtB,kBAAmB,CACzBntB,KAAK6tB,eACjB,CACA,CAOIC,WAAWH,GACP,IAAII,EAAY/tB,KAAKqtB,WACjBxpB,EAAQkqB,EAAUjqB,QAAQ6pB,GAE9B,IAAK9pB,EAAO,CACRkqB,EAAUrC,OAAO7nB,EAAO,EACpC,CAIQ,IAAKkqB,EAAU/pB,QAAUhE,KAAKmtB,kBAAmB,CAC7CntB,KAAKguB,kBACjB,CACA,CAQIJ,YAAYD,GACR,SAAU3tB,KAAKqtB,WAAWvpB,QAAQ6pB,EAC1C,CAUIM,mBACI,IAAIC,EAAa,MAEjB,IAAK,MAAMP,KAAY3tB,KAAKqtB,WAAY,CACpCM,EAASQ,eAET,GAAIR,EAASS,YAAa,CACtBF,EAAa,KAEbP,EAASU,iBACzB,CACA,CAEQ,OAAOH,CACf,CAOIZ,aACIttB,KAAKgtB,gBAAkBhB,KACvBhsB,KAAKitB,eAAiB,KAEtBjtB,KAAKsuB,gBACb,CAOIA,iBACI,IAAKtuB,KAAKktB,mBAAoB,CAC1BltB,KAAKktB,mBAAqB,KAE1Bf,GAAiBnsB,KAAKutB,kBAClC,CACA,CAQIA,oBACI,MAAMW,EAAaluB,KAAKiuB,mBAExBjuB,KAAKktB,mBAAqB,MAG1B,IAAKltB,KAAKitB,eAAgB,CACtB,MACZ,CAGQ,GAAIiB,EAAY,CACZluB,KAAKstB,YACjB,MAAe,GAAIttB,KAAKuuB,oBAAqB,CACjCvuB,KAAKsuB,gBACjB,KAAe,CACHtuB,KAAKwuB,aACjB,CACA,CAQID,oBACI,MAAME,EAAazC,KAAQhsB,KAAKgtB,gBAEhC,OAAOhtB,KAAK8sB,aAAe2B,EAAa,CAChD,CASID,cACIxuB,KAAKitB,eAAiB,MAEtB,GAAIjtB,KAAK+sB,oBAAsB/sB,KAAKmtB,kBAAmB,CACnDntB,KAAKytB,yBACjB,CACA,CAOII,gBAEI,GAAI7tB,KAAKmtB,kBAAmB,CACxB,MACZ,CAEQntB,KAAKmtB,kBAAoB,KAKzBprB,OAAOmE,iBAAiB,SAAUlG,KAAKstB,YAGvC,IAAKjB,GAAoB,CACrBrsB,KAAK+sB,mBAAqB,KAE1B/sB,KAAKstB,YACjB,KAAe,CAGHttB,KAAKotB,mBAAqB,IAAId,iBAAiBtsB,KAAKwtB,aAEpDxtB,KAAKotB,mBAAmBsB,QAAQvsB,SAAU,CACtCwsB,WAAY,KACZC,UAAW,KACXC,cAAe,KACfC,QAAS,MAEzB,CACA,CAOId,mBAEI,IAAKhuB,KAAKmtB,kBAAmB,CACzB,MACZ,CAEQprB,OAAOgtB,oBAAoB,SAAU/uB,KAAKstB,YAE1C,GAAIttB,KAAKotB,mBAAoB,CACzBptB,KAAKotB,mBAAmBU,YACpC,CAEQ9tB,KAAKotB,mBAAqB,KAC1BptB,KAAKmtB,kBAAoB,KACjC,CAQIK,YAAY/B,GAGR,MAAMuD,EAAevD,EAAQjG,MAAK2F,GACvBA,EAAM7iB,OAAS,eAK1B0mB,EACIhvB,KAAKstB,aACLttB,KAAKsuB,gBACjB,ECzVA,MAAMW,GAAY,CACd3R,MAAO,EACP3a,OAAQ,EACRmD,IAAK,EACLopB,MAAO,EACPC,OAAQ,EACRC,KAAM,GAUV,SAASC,GAAY9rB,GACjB,MAAM2Q,EAASnS,OAAOutB,iBAAiB/rB,GACvC,MAAM7C,EAAO,CAAC,MAAO,QAAS,SAAU,QAExC,MAAM6uB,EAAW,GAEjB,IAAK,MAAM/rB,KAAO9C,EAAM,CACpB,MAAMqX,EAAQ7D,EAAO,WAAa1Q,GAAKrD,QAAQ,KAAM,IAErDovB,EAAS/rB,GAAOma,WAAW5F,EACnC,CAEI,OAAOwX,CACX,CAWA,SAASC,GAAkBC,EAAaC,EAAcH,GAClD,MAAMzpB,EAAMypB,EAASzpB,IACrB,MAAMspB,EAAOG,EAASH,KAEtB,MAAM9R,EAAQmS,GAAeL,EAAOG,EAASL,OAC7C,MAAMvsB,EAAS+sB,GAAgB5pB,EAAMypB,EAASJ,QAE9C,MAAO,CACH7R,QACA3a,SACAmD,MACAopB,MAAO5R,EAAQ8R,EACfD,OAAQxsB,EAASmD,EACjBspB,OAER,CASA,SAASO,GAAkBpsB,GACvB,MAAMqsB,EAAOrsB,EAAOssB,UAEpB,OAAOL,GAAkBI,EAAKtS,MAAOsS,EAAKjtB,OAAQssB,GACtD,CASA,SAASa,GAA0BvsB,GAC/B,MAAM+Z,EAAQ/Z,EAAOksB,YACrB,MAAM9sB,EAASY,EAAOmsB,aAItB,IAAKpS,IAAU3a,EAAQ,CACnB,OAAOssB,EACf,CAEI,OAAOO,GAAkBlS,EAAO3a,EAAQ0sB,GAAY9rB,GACxD,CASA,SAASwsB,GAAaxsB,GAClB,OAAOA,aAAkBxB,OAAOiuB,UACpC,CAUA,SAASC,GAAe1sB,GACpB,OAAOwsB,GAAaxsB,GAChBosB,GAAkBpsB,GAClBusB,GAA0BvsB,EAClC,CAOe,MAAM2sB,GAOjB7E,YAAY9nB,GACRvD,KAAKuD,OAASA,EAGdvD,KAAKmwB,aAAelB,GAGpBjvB,KAAKowB,eAAiB,EAGtBpwB,KAAKqwB,gBAAkB,CAC/B,CASIC,gBACI,MAAMC,EAAOvwB,KAAKmwB,aAElBnwB,KAAKowB,eAAiBG,EAAKjT,MAC3Btd,KAAKqwB,gBAAkBE,EAAK5tB,OAE5B,OAAO4tB,CACf,CASIC,WACI,MAAMD,EAAON,GAAejwB,KAAKuD,QAEjCvD,KAAKmwB,aAAeI,EAEpB,OACIA,EAAKjT,QAAUtd,KAAKowB,gBACpBG,EAAK5tB,SAAW3C,KAAKqwB,eAEjC,EC7Ke,MAAMI,GAOjBpF,YAAY9nB,EAAQmtB,GAChB,MAAMC,EAAc,GAKpBC,OAAOC,iBAAiBF,EAAa,CACjCrT,MAAO,CAACvF,MAAO2Y,EAASpT,OACxB3a,OAAQ,CAACoV,MAAO2Y,EAAS/tB,QACzBmD,IAAK,CAACiS,MAAO2Y,EAAS5qB,KACtBopB,MAAO,CAACnX,MAAO2Y,EAASxB,OACxBC,OAAQ,CAACpX,MAAO2Y,EAASvB,QACzBC,KAAM,CAACrX,MAAO2Y,EAAStB,QAG3BwB,OAAOC,iBAAiB7wB,KAAM,CAC1BuD,OAAQ,CAACwU,MAAOxU,GAChBotB,YAAa,CAAC5Y,MAAO4Y,IAEjC,ECtBe,MAAMG,GAYjBzF,YAAYS,EAAUiF,EAAYC,GAC9B,UAAWlF,IAAa,WAAY,CAChC,MAAM,IAAImF,UAAU,0DAChC,CAGQjxB,KAAKkxB,UAAYpF,EAGjB9rB,KAAKmxB,SAAW,IAAInG,GAIpBhrB,KAAKoxB,eAAiB,GAGtBpxB,KAAKqxB,YAAcN,EAInB/wB,KAAKsxB,gBAAkBN,CAC/B,CAOItC,QAAQnrB,GACJ,IAAK2X,UAAUlX,OAAQ,CACnB,MAAM,IAAIitB,UAAU,2CAChC,CAEQ,KAAM1tB,aAAkBguB,SAAU,CAC9B,MAAM,IAAIN,UAAU,wCAChC,CAEQ,MAAMO,EAAUxxB,KAAKmxB,SAGrB,GAAIK,EAAQ7F,IAAIpoB,GAAS,CACrB,MACZ,CAEQiuB,EAAQtf,IAAI3O,EAAQ,IAAI2sB,GAAkB3sB,IAI1C,IAAKvD,KAAKqxB,YAAYzD,YAAY5tB,MAAO,CACrCA,KAAKqxB,YAAY3D,QAAQ1tB,KACrC,CAGQA,KAAKqxB,YAAY/D,YACzB,CAOImE,UAAUluB,GACN,IAAK2X,UAAUlX,OAAQ,CACnB,MAAM,IAAIitB,UAAU,2CAChC,CAEQ,KAAM1tB,aAAkBguB,SAAU,CAC9B,MAAM,IAAIN,UAAU,wCAChC,CAEQ,MAAMO,EAAUxxB,KAAKmxB,SAGrB,IAAKK,EAAQ7F,IAAIpoB,GAAS,CACtB,MACZ,CAIQiuB,EAAQhG,OAAOjoB,GAEf,IAAKiuB,EAAQrqB,KAAM,CACfnH,KAAK8tB,YACjB,CACA,CAMIA,aACI9tB,KAAK0xB,cACL1xB,KAAKmxB,SAASvF,QAEd5rB,KAAKqxB,YAAYvD,WAAW9tB,KACpC,CAOIquB,kBACI,IAAKruB,KAAKouB,YAAa,CACnB,MACZ,CAEQ,MAAM4C,EAAiBhxB,KAAKsxB,gBAE5B,MAAM7F,EAAUzrB,KAAKoxB,eAAenpB,KAAI0pB,GAC7B,IAAIlB,GACPkB,EAAYpuB,OACZouB,EAAYrB,mBAIpBtwB,KAAK0xB,cAEL1xB,KAAKkxB,UAAU5tB,KAAK0tB,EAAgBvF,EAASuF,EACrD,CAKIU,cACI1xB,KAAKoxB,eAAe1F,OAAO,EACnC,CAQI0C,YACI,QAASpuB,KAAKoxB,eAAeptB,MACrC,CAOImqB,eACInuB,KAAK0xB,cAEL,MAAME,EAAgB5xB,KAAKoxB,eAE3BpxB,KAAKmxB,SAAS9uB,SAAQsvB,IAClB,GAAIA,EAAYnB,WAAY,CACxBoB,EAAcrkB,KAAKokB,EACnC,IAEA,ECpKA,MAAMZ,GAAa,IAAIpE,GAGvB,MAAMoB,GAAY,IAAIhD,GAWtB,MAAM+F,GAQFzF,YAAYS,GACR,IAAK5Q,UAAUlX,OAAQ,CACnB,MAAM,IAAIitB,UAAU,2CAChC,CAEQ,MAAMtD,EAAW,IAAIkE,GAAgB/F,EAAUiF,GAAY/wB,MAG3D+tB,GAAU7b,IAAIlS,KAAM2tB,EAC5B,CAOef,yBACP,OAAOmE,GAAWnE,WAC1B,CAOeA,uBAAY7U,GACnB,UAAWA,IAAU,SAAU,CAC3B,MAAM,IAAIkZ,UAAU,gDAChC,CAEQ,UAAWlZ,EAAQ,EAAG,CAClB,MAAM,IAAIkZ,UAAU,8CAChC,CAEQF,GAAWnE,YAAc7U,CACjC,CAOe8U,+BACP,OAAOkE,GAAWlE,iBAC1B,CAQeA,6BAAkB9U,GACzB,UAAWA,IAAU,UAAW,CAC5B,MAAM,IAAIkZ,UAAU,uDAChC,CAEQF,GAAWlE,kBAAoB9U,CACvC,EAIA,CACI,UACA,YACA,cACF1V,SAAQyvB,IACNhB,GAAe1tB,UAAU0uB,GAAU,WAC/B,OAAO/D,GAAUxC,IAAIvrB,MAAM8xB,MAAW5W,UAC9C,CAAK,IC9FL,IAAI4V,GAAiBiB,GAGrB,UAAWhwB,OAAO+uB,iBAAmB,WAAY,CAC7CA,GAAiB/uB,OAAO+uB,cAC5B,CAEA,MAAAkB,GAAelB,GCTf,MAAMmB,GAAkB,8nM,MCiCXC,GAAY,M,oJAkBW,M,iJAkBD,M,8FAajC3qB,0BACEvH,KAAKmyB,2BAA6B1qB,EAAiBzH,KAAKoyB,qBACxDpyB,KAAKqyB,+BAAiC5qB,EAAiBzH,KAAKsyB,oB,CAG9DhxB,mBACEtB,KAAKuyB,GAAK,IAAIzB,IAAgBrF,IAC5B,IAAK,MAAMN,KAASM,EAAS,CAC3BzrB,KAAKwyB,eAAerH,EAAMwF,YAAYrT,M,KAG1Ctd,KAAKuyB,GAAG7D,QAAQvsB,SAASswB,K,CAG3BtJ,uBACEnpB,KAAKuyB,GAAGzE,Y,CAGV0E,eAAerrB,GACbnH,KAAK0yB,SAAWvrB,GAAQ,IAAM,KAAO,K,CAGvCtH,SACE,MAAMuqB,EAAQpqB,KAAKmyB,qBACnB,MAAMQ,EAA2B3yB,KAAKqyB,yBAEtC,MAAMhsB,EAAUrG,KAAK4yB,QAAUC,EAAmBC,MAAQD,EAAmBE,OAC7E,MAAMC,EAAUhzB,KAAK4yB,QAAUK,EAAuBC,gBAAkBD,EAAuBE,kBAE/F,MAAMC,EAAsBpzB,KAAK4yB,QAAU,QAAU,SAErD,MAAMjnB,EAAU3L,KAAKqzB,aAAerzB,KAAKqzB,YAAYrvB,OAAS,EAAIhE,KAAKqzB,YAAcrzB,KAAKszB,SAC1F,MAAMnJ,EAAYlC,EAAa2B,MAC/B,MAAM2J,EAAavzB,KAAKwzB,cAAgB7J,EAAoBC,MAAQD,EAAoB8J,MAExF,OACErzB,EAACC,EAAI,CACHC,MAAO,CACL,iBAAkB,KAClBozB,OAAQ1zB,KAAKwzB,gBAGfpzB,EAAA,OACEE,MAAO,CACL,0BAA2B,KAC3B,WAAYN,KAAK4yB,WAGjB5yB,KAAKwzB,eACLpzB,EAAA,cAAYuzB,QAASC,EAAeC,GAAIb,QAASA,GAC9ChzB,KAAK6I,WAGT7I,KAAKwzB,eACJpzB,EAAA,OAAKE,MAAM,wBACTF,EAAA,gBACEkI,KAAM+hB,EAAcC,OACpBsI,QAAS5yB,KAAK4yB,QACdzrB,KAAM,GACNojB,MAAOJ,EACPjhB,IAAKlJ,KAAKwqB,QACVrF,MAAOnlB,KAAKyqB,aAIjBzqB,KAAKwzB,eACJpzB,EAAA,OAAKE,MAAO,4BACVF,EAAA,KAAG4G,KAAMhH,KAAK8zB,cACZ1zB,EAAA,OAAKgI,IAAKpI,KAAK8zB,aAAcprB,IAAK,mBAItC1I,KAAKwzB,eACLpzB,EAAA,OACEE,MAAO,CACL,0BAA2B,KAC3B,WAAYN,KAAK4yB,SAEnBvO,UAAWrkB,KAAK8I,mBAGlB9I,KAAKwzB,eAAiBxzB,KAAKsgB,SAC3BlgB,EAAA,gCACgBJ,KAAKszB,SAAQ,WACjB3nB,EAAO,cACJ3L,KAAK+zB,eAClB7qB,IAAKlJ,KAAKsgB,QACVja,QAASkF,EAAsByoB,cAGlCh0B,KAAKwzB,eACJb,GACAA,EAAyB1qB,KAAKC,GAE1B9H,EAAA,OAAKE,MAAM,yBACTF,EAAA,KAAG4G,KAAMkB,EAAKgB,IAAK5I,MAAM,+BACtB4H,EAAKyrB,SAEPzrB,EAAKyK,SAAWvS,EAAA,OAAKE,MAAM,qCAAqC+jB,UAAWnc,EAAKyK,cAK1F3S,KAAK0yB,UAAY1yB,KAAK4yB,UAAY,MACjCxyB,EAAA,OACEE,MAAO,CACL,wBAAyB,KACzB,WAAYN,KAAK4yB,QACjBc,OAAQ1zB,KAAKwzB,gBAGfpzB,EAAA,0BAAwBH,YAAa,QAClCmqB,GACCA,EAAMniB,KAAK2iB,GAEPxqB,EAAA,qBAAmBuG,eAAgBikB,EAAKzF,OACtC/kB,EAAA,uBACEE,MAAO8yB,EACP/sB,QAASA,EACTkkB,MAAOgJ,EACPpO,MAAOyF,EAAKzF,MACZjc,IAAK0hB,EAAK1hB,IAAG,YACF0hB,EAAKqJ,SAChBzpB,MAAOogB,EAAKpgB,MACZkoB,SAAU1yB,KAAK0yB,gBAQ7BtyB,EAAA,OACEE,MAAO,CACL,wBAAyB,KACzB,WAAYN,KAAK4yB,QACjBc,OAAQ1zB,KAAKwzB,gBAGdpJ,GACCA,EAAMniB,KAAK2iB,IACT,MAAMsJ,EAAgBtJ,EAAKhf,aAAe,WAC1C,OACExL,EAAA,yCACmBJ,KAAKwzB,cACtBlzB,MAAO8yB,EACP/sB,QAASA,EACTkkB,MAAOgJ,EACPpO,MAAOyF,EAAKzF,MACZjc,IAAK0hB,EAAK1hB,IAAG,cACAgrB,EAAa,YACftJ,EAAKqJ,SAChBzpB,MAAOogB,EAAKpgB,MACZkoB,SAAU1yB,KAAK0yB,UACM,K,uCC5OzC,MAAMyB,GAAsB,swI,MCQfC,GAAgB,M,iFAGG,M,cACF,M,gCAESzK,EAAoB8J,M,qCAEnBZ,EAAmBwB,K,mBACxB,K,CAEjCx0B,SACE,MAAM2kB,EAA2B,CAC/B,iCACA,wBAAwBxkB,KAAKqG,UAC7BrG,KAAKwK,OAAS,qCACdjK,KAAK,KACP,MAAMT,EAAkB,CACtB,sBACAE,KAAKs0B,UAAY,4BACjB,8BAA8Bt0B,KAAKuqB,SACnChqB,KAAK,KACP,MAAMg0B,EAAyB,CAC7B,sBACA,+BACAv0B,KAAKs0B,UAAY,4BACjB,uCAAuCt0B,KAAKuqB,SAC5ChqB,KAAK,KACP,MAAMi0B,EAAsB,CAC1B,sBACA,8BAA8Bx0B,KAAKuqB,QACnCvqB,KAAKwzB,cAAgB,SAAW,IAChCjzB,KAAK,KAEP,GAAIP,KAAKwK,MAAO,CACd,GAAIxK,KAAK0yB,UAAY1yB,KAAKqG,UAAYwsB,EAAmBC,MAAO,CAC9D,OACE1yB,EAAA,OAAKE,MAAOkkB,GACTxkB,KAAKwK,MAAMvC,KAAKC,IACf,MAAM3E,EAAS2E,EAAK0D,aAAe,WAAa,SAAW,QAC3D,OACExL,EAAA,KAAGE,MAAOk0B,EAAqBxtB,KAAMkB,EAAKgB,IAAK3F,OAAQA,EAAQd,MAAO,CAAC8nB,MAAOvqB,KAAKuqB,QAChFriB,EAAKid,MACN/kB,EAAA,WAASE,MAAO,4BAA6B4G,KAAM,sBAAuBC,KAAM,KAC9E,I,KAKP,CACL,OACE/G,EAAA,OAAKE,MAAOkkB,GACVpkB,EAAA,cAAYE,MAAOi0B,EAAwBZ,QAASC,EAAea,IAChEz0B,KAAKkJ,IAAIlF,OAAS,GACjB5D,EAAA,KAAGE,MAAO,4BAA6B0G,KAAMhH,KAAKkJ,IAAKzG,MAAO,CAAC8nB,MAAOvqB,KAAKuqB,QACxEvqB,KAAKmlB,OAGTnlB,KAAKkJ,IAAIlF,QAAU,GAAK5D,EAAA,OAAKE,MAAO,6BAA8BN,KAAKmlB,QAEzEnlB,KAAKwK,MAAMvC,KAAKC,IACf,MAAM3E,EAAS2E,EAAK0D,aAAe,WAAa,SAAW,QAC3D,OACExL,EAAA,KAAGE,MAAOk0B,EAAqBxtB,KAAMkB,EAAKgB,IAAK3F,OAAQA,EAAQd,MAAO,CAAC8nB,MAAOvqB,KAAKuqB,QAChFriB,EAAKid,MACN/kB,EAAA,WAASE,MAAO,4BAA6B4G,KAAM,sBAAuBC,KAAM,KAC9E,I,MAMT,CACL,MAAM5D,EAASvD,KAAK4L,WAAa,SAAW,QAC5C,OACExL,EAAA,KAAGE,MAAOR,EAAiBkH,KAAMhH,KAAKkJ,IAAKzG,MAAO,CAAC8nB,MAAOvqB,KAAKuqB,OAAQhnB,OAAQA,GAC5EvD,KAAKmlB,MACN/kB,EAAA,WAASE,MAAO,4BAA6B4G,KAAM,sBAAuBC,KAAM,K,gBCrF1F,MAAMutB,GAAmB,wuD,MCwBZC,GAAa,M,mCACSC,EAAiBpM,K,WACzB,K,kDAEc,K,mBACP,I,gBAGD,K,CAE/BjhB,0BACEvH,KAAKsf,iBAAmB7X,EAAiBzH,KAAKuf,WAE9C,MAAM/d,EAAYxB,KAAKyB,GAAGC,QAAQ,YAClC,GAAIF,EAAW,CACb,GAAIA,EAAUG,UAAUC,SAAS,gBAAiB,CAChD5B,KAAK8c,WAAa,I,GAMxBvV,uBAAuBoe,EAA2BC,GAChD,GAAID,IAAaC,EAAU,CACzB5lB,KAAKsf,iBAAmB7X,EAAiBzH,KAAKuf,U,EAIlD1f,SACE,MAAMC,EAAkB,CACtB,kBACAE,KAAK8c,WAAa,gCAAkC,GACpD,0BAA0B9c,KAAKsI,QAC/B/H,KAAK,KAEP,IAAIs0B,EAAW70B,KAAKsf,WACpB,UAAWtf,KAAKsf,aAAe,SAAU,CACvCuV,EAAWjE,OAAO/E,OAAO7rB,KAAKsf,W,CAGhC,SAASwV,EAASxgB,EAAK9F,GACrB,OAAO8F,EAAItQ,OAASwK,EAAI8F,EAAI5O,OAAO,EAAG8I,EAAI,GAAK,MAAQ8F,C,CAGzD,OACElU,EAACC,EAAI,KACHD,EAAA,MAAIE,MAAOR,GACR+0B,GACCA,EAAS5sB,KAAKC,GACZ9H,EAAA,UACEA,EAAA,sCACeJ,KAAK8c,WAClBvZ,OAAQvD,KAAK+0B,MAAK,gBACH7sB,EAAKgB,IACpB8rB,YACEh1B,KAAKi1B,oBAAsBH,EAAS5sB,EAAK8sB,YAAah1B,KAAKk1B,eAAiBhtB,EAAK8sB,YAEnFj1B,GAAImI,EAAKnI,GACT4I,SAAUT,EAAKS,SACfC,SAAUV,EAAKU,SAAQ,aACXV,EAAK4C,MACjBqa,MAAOjd,EAAKid,MAAK,YACNjd,EAAKitB,SAChBrpB,IAAK5D,EAAK4D,IACVspB,KAAMltB,EAAKktB,KACX9sB,KAAMJ,EAAKI,KACXY,IAAKhB,EAAKgB,IAAG,aACDlJ,KAAKsI,WAK3BlI,EAAA,UAAQI,GAAG,uB,oGChGnB,MAAM60B,GAAuB,knM,MCOhBC,GAAiB,M,yCACE,K,yCAEH,G,cACA,K,iBACI,M,4DAGJ,G,UACJ,G,SACD,G,4EAII,I,CAI1Bz1B,SACE,MAAMC,EAAkB,CAAC,uBAAwB,+BAA+BE,KAAKu1B,aAAah1B,KAAK,KACvG,MAAMoH,EAAyB,CAAC,wCAAwCpH,KAAK,KAC7E,MAAMi1B,EAAuB,CAAC,yCAAyCj1B,KAAK,KAE5E,MAAMk1B,EAAez1B,KAAK8c,WAAa,SAAW,QAClD,MAAM4Y,EAAuB,CAAC,8BAA+B,gCAAgCD,KAAgBl1B,KAC3G,KAEF,MAAMo1B,EAA6B,CACjC,oCACA,sCAAsCF,KACtCl1B,KAAK,KAEP,MAAMsH,EAAmB,GACzB,MAAMC,EAAoB,GAC1B,MAAMC,EAAUD,EAAoBD,EAAoB,IACxD,MAAMG,EAAc,CAClB,gBAAiB,GAAGD,MAGtB,OACE3H,EAAA,WAASE,MAAOR,GACdM,EAAA,KAAGE,MAAM,6BAA6B0G,KAAMhH,KAAKkJ,IAAK3F,OAAQvD,KAAKuD,OAAS,SAAW,SACpFvD,KAAKsI,MACJlI,EAAA,OAAKE,MAAM,8BACTF,EAAA,QAAME,MAAM,qCAAqCN,KAAKmlB,OACtD/kB,EAAA,QAAME,MAAM,mCAAmCN,KAAKm1B,WAGvDn1B,KAAK4I,UACJxI,EAAA,UAAQE,MAAOk1B,EAAsB/yB,MAAOuF,GAC1C5H,EAAA,OACEoI,QAASxI,KAAKyI,YAAc,QAAU,OACtCC,IAAK1I,KAAK2I,SACVrI,MAAM,8BACN8H,IAAKpI,KAAK4I,YAIhBxI,EAAA,OAAKE,MAAOqH,IACR3H,KAAK8L,KAAO9L,KAAKo1B,OACjBh1B,EAAA,QAAME,MAAM,+BACTN,KAAK8L,IACN1L,EAAA,QAAME,MAAM,qCACTN,KAAK8L,KAAO,IAAG,IAAG9L,KAAKo1B,OAI9Bh1B,EAAA,MAAIE,MAAOo1B,GAAuB11B,KAAK41B,WACvCx1B,EAAA,KAAGE,MAAOq1B,GAA6B31B,KAAKg1B,e,uCC3ExD,MAAMa,GAAoB,utVCA1B,MAAMC,GAAmB,myV,MCSZC,GAAO,M,sCAIgBnC,EAAevyB,Q,cACrB,M,aAIc4xB,EAAuB5xB,Q,cACrC,M,iBACE,S,+CAGE,I,CAEhCC,mBACE,IAAIE,EAAYxB,KAAKyB,GAAGC,QAAQ,YAChC,GAAIF,EAAW,CACb,IAAKA,EAAUG,UAAUC,SAAS,gBAAiB,CACjD5B,KAAK6B,YAAc,O,EAGvB,GAAI7B,KAAKyB,GAAGwB,cAActB,UAAUC,SAAS,4BAA6B,CACxE5B,KAAKg2B,YAAc,K,EAIvBn2B,SACE,MAAMo2B,EAAoBj2B,KAAK2zB,WAAWC,EAC1C,MAAM9zB,EAAkB,CACtB,aACAE,KAAKk2B,SAAW,WAAa,GAC7Bl2B,KAAKm2B,SAAW,qBAAuB,GACvCn2B,KAAKm2B,SAAW,uBAAuBn2B,KAAK6B,cAAgB,GAC5D,eAAe7B,KAAKgzB,UACpB,eAAehzB,KAAK6B,cACpB,eAAe7B,KAAKgzB,YAAYhzB,KAAK6B,eAGvC,MAAMu0B,EAAyB,CAAC,eAAep2B,KAAKgzB,oBAAoBzyB,KAAK,KAE7E,MAAM81B,EAAwB,CAC5B,wBACA,0BAA0Br2B,KAAKgzB,UAC/B,0BAA0BhzB,KAAK6B,eAC/BtB,KAAK,KAEP,OACEH,EAACC,EAAI,KACF41B,EAAiB,CAEd71B,EAAA,OAAKE,MAAO+1B,GACTr2B,KAAKs2B,iBAAmBt2B,KAAKg2B,YAC5B51B,EAACJ,KAAK2zB,QAAO,CAACrzB,MAAOR,EAAgBS,KAAK,KAAM8jB,UAAWrkB,KAAKs2B,iBAEhEl2B,EAACJ,KAAK2zB,QAAO,CAACrzB,MAAOR,EAAgBS,KAAK,MACxCH,EAAA,cAIJA,EAAA,QAAME,MAAO81B,MAIjBh2B,EAAA,OAAKE,MAAO+1B,GACTr2B,KAAKs2B,iBAAmBt2B,KAAKg2B,YAC5B51B,EAACwzB,EAAevyB,QAAO,CAACf,MAAOR,EAAgBS,KAAK,MAClDH,EAAA,QAAMikB,UAAWrkB,KAAKs2B,kBAGxBl2B,EAACwzB,EAAevyB,QAAO,CAACf,MAAOR,EAAgBS,KAAK,MAClDH,EAAA,YACEA,EAAA,eAKNA,EAAA,QAAME,MAAO81B,K,yDCvFzB,MAAMG,GAAY,+jVCMlB,IAAIC,GAAU,KACd,IAAIhK,GAAQ,I,MAiBCiK,GAAM,M,uCAEmBC,EAAgBC,Q,mBACNC,EAAqBv1B,Q,kBAC1Bw1B,EAAiBC,K,iBACnBC,EAAgBC,M,uCAExB,G,iBACA,M,kBACC,M,oIAMF,M,yBAI9BzvB,0BACEvH,KAAKwH,iBAAmBC,EAAiBzH,KAAK0H,U,CAGhDuvB,8BAA8BC,EAAiBC,GAC7C,MAAMC,EAA8BD,EAAYvyB,uBAC9C,8BACA,GAEF,GAAIsyB,IAAoB,QAAS,CAC/B,GAAIE,EAA4BC,cAAgB,IAAK,CACnDF,EAAYx1B,UAAU2D,IAAI,Y,KACrB,CACL6xB,EAAYx1B,UAAUwD,OAAO,Y,EAIjC,GAAI+xB,IAAoB,QAAS,CAC/B,GAAIE,EAA4BC,cAAgB,IAAK,CACnDF,EAAYx1B,UAAU2D,IAAI,Y,KACrB,CACL6xB,EAAYx1B,UAAUwD,OAAO,Y,GAKnCtF,SACE,IAAIwG,EAAUkF,EAAsB+rB,UACpC,IAAIC,EAAoBv3B,KAAKw3B,aAC7B,IAAIC,EAAgBz3B,KAAK03B,SAEzB,GAAI13B,KAAK03B,WAAa,gBAAiB,CACrCH,EAAoBV,EAAiBjN,MACrC6N,EAAgBf,EAAgBC,O,CAGlC,GAAIY,IAAsBV,EAAiBC,KAAM,CAC/CzwB,EAAUkF,EAAsBosB,Q,CAGlC,GAAIJ,IAAsBV,EAAiBpD,MAAO,CAChDptB,EAAUkF,EAAsBqsB,S,CAGlC,IAAKL,GAAqBA,IAAsB,WAAY,CAC1DA,EAAoBV,EAAiBjN,K,CAGvC,MAAMiO,EAAgB,CACpB,UACA,YAAYJ,IACZ,YAAYz3B,KAAK83B,gBACjB,YAAYP,IACZ,YAAYv3B,KAAK+3B,eAGnB,MAAMC,EAAmB,CAAC,iBAAkB,oBAAoBz3B,KAAK,KAGrE,GAAIP,KAAKi4B,aAAc,CACrBJ,EAActqB,KAAK,gB,CAGrB,MAAM1F,EAAmB,GACzB,MAAMC,EAAoB,GAC1B,MAAMC,EAAUD,EAAoBD,EAAoB,IACxD,MAAMG,EAAc,CAClB,gBAAiB,GAAGD,MAGtBhG,OAAOm2B,OAAS,KACd,MAAMf,EAAch1B,SAASyC,uBAAuB,WAAW,GAC/D5E,KAAKi3B,8BAA8Bj3B,KAAK+3B,YAAaZ,GACrDp1B,OAAOmE,iBAAiB,UAAU,KAChCkjB,aAAaoN,IACbA,GAAU/wB,YAAW,IAAMzF,KAAKi3B,8BAA8Bj3B,KAAK+3B,YAAaZ,IAAc3K,GAAM,GACpG,EAGJ,GAAIiL,IAAkB,aAAc,CAClC,OACEr3B,EAACC,EAAI,KACHD,EAAA,OAAKE,MAAOu3B,EAAct3B,KAAK,MAC7BH,EAAA,OAAKE,MAAO,sBACVF,EAAA,OAAKE,MAAO,2BAA4BmC,MAAOuF,GAC5ChI,KAAKm4B,QACHn4B,KAAKwH,WACJpH,EAAA,eACGJ,KAAKwH,WAAWS,KAAKC,GACpB9H,EAAA,UACE+H,OAAQD,EAAKE,IACbC,MAAOH,EAAKG,MACZC,KAAMJ,EAAKI,KACXC,MAAOL,EAAKK,MAAQL,EAAKK,MAAQ,OAGrCnI,EAAA,OACEoI,QAASxI,KAAKyI,YAAc,QAAU,OACtCC,IAAK1I,KAAKqgB,aACV/f,MAAO,kBACP8H,IAAKpI,KAAKm4B,SAId/3B,EAAA,OACEoI,QAASxI,KAAKyI,YAAc,QAAU,OACtCC,IAAK1I,KAAKqgB,aACV/f,MAAO,kBACP8H,IAAKpI,KAAKm4B,UAIlB/3B,EAAA,OAAKE,MAAO,wBACZF,EAAA,OAAKE,MAAO,8BACVF,EAAA,OAAKE,MAAO,oBACVF,EAAA,OAAKE,MAAO,4BACVF,EAAA,MAAIikB,UAAWrkB,KAAK2zB,QAASrzB,MAAO03B,KAErCh4B,KAAKg1B,aAAe50B,EAAA,KAAGE,MAAO,wBAAyBN,KAAKg1B,aAC5Dh1B,KAAKkJ,KACJ9I,EAAA,OAAKE,MAAO,oBACVF,EAAA,gCACgBJ,KAAK0L,SAAQ,WACjB1L,KAAK2L,QACfzC,IAAKlJ,KAAKkJ,IAAG,cACAlJ,KAAK4L,WAClBvF,QAASA,SAQvBjG,EAAA,UAAQI,GAAG,e,CAKjB,OACEJ,EAACC,EAAI,KACHD,EAAA,OAAKE,MAAOu3B,EAAct3B,KAAK,MAC7BH,EAAA,OAAKE,MAAO,sBACVF,EAAA,OAAKE,MAAO,2BAA4BmC,MAAOuF,GAC5ChI,KAAKm4B,QACHn4B,KAAKwH,WACJpH,EAAA,eACGJ,KAAKwH,WAAWS,KAAKC,GACpB9H,EAAA,UACE+H,OAAQD,EAAKE,IACbC,MAAOH,EAAKG,MACZC,KAAMJ,EAAKI,KACXC,MAAOL,EAAKK,MAAQL,EAAKK,MAAQ,OAGrCnI,EAAA,OACEoI,QAASxI,KAAKyI,YAAc,QAAU,OACtCC,IAAK1I,KAAKqgB,aACV/f,MAAO,kBACP8H,IAAKpI,KAAKm4B,SAId/3B,EAAA,OACEoI,QAASxI,KAAKyI,YAAc,QAAU,OACtCC,IAAK1I,KAAKqgB,aACV/f,MAAO,kBACP8H,IAAKpI,KAAKm4B,UAIlB/3B,EAAA,OAAKE,MAAO,8BACVF,EAAA,OAAKE,MAAO,oBACVF,EAAA,OAAKE,MAAO,4BACVF,EAAA,MAAIikB,UAAWrkB,KAAK2zB,QAASrzB,MAAO03B,KAErCh4B,KAAKg1B,aAAe50B,EAAA,KAAGE,MAAO,wBAAyBN,KAAKg1B,aAC5Dh1B,KAAKkJ,KACJ9I,EAAA,OAAKE,MAAO,oBACVF,EAAA,gCACgBJ,KAAK0L,SAAQ,WACjB1L,KAAK2L,QACfzC,IAAKlJ,KAAKkJ,IAAG,cACAlJ,KAAK4L,WAClBvF,QAASA,SAQvBjG,EAAA,UAAQI,GAAG,e,uCCzOnB,SAAS43B,GAAiBC,GACxB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,sMAGd,CCNA,SAASsqB,GAASH,GAChB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,aAAgBF,GAC3Bj4B,EAAA,UAAQsb,GAAG,KAAK+c,GAAG,KAAKzpB,EAAE,OAC1B5O,EAAA,QAAM8N,EAAE,8OAGd,CCPA,SAASwqB,GAAaL,GACpB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,oGAGd,CCNA,SAASyqB,GAAWN,GAClB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,gHAGd,CCNA,SAAS0qB,GAAWP,GAClB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,aAAgBF,GAC3Bj4B,EAAA,QAAML,GAAG,QAAQmO,EAAE,mDACnB9N,EAAA,WACEL,GAAG,UACH84B,OAAO,yGAETz4B,EAAA,QAAMuO,EAAE,OAAOU,EAAE,OAAOiO,MAAM,QAAQ3a,OAAO,SAC7CvC,EAAA,QAAMuO,EAAE,OAAO2O,MAAM,QAAQ3a,OAAO,SAG1C,CCZA,SAASm2B,GAAeT,GACtB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,mVAGd,CCNA,SAAS6qB,GAAUV,GACjB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,qLAGd,CCNA,SAAS8qB,GAAYX,GACnB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,gzFAGd,CCNA,SAAS+qB,GAAcZ,GACrB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,uIAGd,CCNA,SAASgrB,GAAUb,GACjB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,4LAGd,CCNA,SAASirB,GAAad,GACpB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,qDAGd,CCNA,SAASkrB,GAAaf,GACpB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,qDAGd,CCNA,SAASmrB,GAAchB,GACrB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,4DAGd,CCNA,SAASorB,GAAWjB,GAClB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,qDAGd,CCNA,SAASqrB,GAAQlB,GACf,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,0FAGd,CCNA,SAASsrB,GAAYnB,GACnB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,gBAAmBF,GAC9Bj4B,EAAA,QAAM8N,EAAE,0fAGd,CCNA,SAASurB,GAAQpB,GACf,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,g3CAGd,CCNA,SAASwrB,GAAerB,GACtB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,6SAGd,CCNA,SAASyrB,GAActB,GACrB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,+JAGd,CCNA,SAAS0rB,GAAQvB,GACf,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,mOAGd,CCNA,SAAS2rB,GAAYxB,GACnB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,6dAGd,CCNA,SAAS4rB,GAAQzB,GACf,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,iHAGd,CCNA,SAAS6rB,GAAO1B,GACd,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,qKAGd,CCNA,SAASwqB,GAAaL,GACpB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,aAAgBF,GAC3Bj4B,EAAA,UAAQL,GAAG,OAAO4K,KAAK,UAAU+Q,GAAG,MAAM+c,GAAG,IAAIzpB,EAAE,MACnD5O,EAAA,KAAGL,GAAG,sBAAsBi6B,UAAU,kCACpC55B,EAAA,KAAG45B,UAAU,qFACX55B,EAAA,QACE8N,EAAE,yfACFnO,GAAG,OACHi6B,UAAU,yFAIhB55B,EAAA,UAAQL,GAAG,YAAY4K,KAAK,UAAU+Q,GAAG,IAAI+c,GAAG,IAAIzpB,EAAE,MAG5D,CChBA,SAASirB,GAAY5B,GACnB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,wGAGd,CCNA,SAASgsB,GAAQ7B,GACf,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,wEAGd,CCNA,SAASisB,GAAc9B,GACrB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,+IAGd,CCNA,SAASksB,GAAY/B,GACnB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,kCAGd,CCNA,SAASmsB,GAAahC,GACpB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,gHAGd,CCNA,SAASosB,GAAQjC,GACf,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,2bAGd,CCNA,SAASqsB,GAASlC,GAChB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,4HAGd,CCNA,SAASssB,GAAQnC,GACf,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,8zBAGd,CCNA,SAASusB,GAAUpC,GACjB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,mJAGd,CCNA,SAASwsB,GAAgBrC,GACvB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,kXAGd,CCNA,SAASysB,GAAYtC,GACnB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,inBAGd,CCNA,SAAS0sB,GAAYvC,GACnB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,0KAGd,CCNA,SAAS2sB,GAAaxC,GACpB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,4EAGd,CCNA,SAAS4sB,GAAQzC,GACf,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,6SAGd,CCNA,SAAS6sB,GAAY1C,GACnB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,6cAGd,CCNA,SAAS8sB,GAAc3C,GACrB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,kNAGd,CCNA,SAAS+sB,GAAS5C,GAChB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,0/BAGd,CCNA,SAASgtB,GAAc7C,GACrB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,4TAGd,CCNA,SAASitB,GAAQ9C,GACf,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,mQAGd,CCNA,SAASktB,GAAa/C,GACpB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,qFAGd,CCNA,SAASmtB,GAAShD,GAChB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,uVAGd,CCNA,SAASotB,GAAgBjD,GACvB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,aAAgBF,GAC3Bj4B,EAAA,QAAM8N,EAAE,sqCAGd,CCNA,SAASqtB,GAAsBlD,GAC7B,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,05BAGd,CCNA,SAASstB,GAAQnD,GACf,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,aAAgBF,EAAK,CAAEoD,OAAO,QAAO,eAAc,MAC9Dr7B,EAAA,QAAM8N,EAAE,qeAGd,CCNA,SAASwtB,GAAoBrD,GAC3B,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,2HAGd,CCNA,SAASytB,GAAUtD,GACjB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,w6BAGd,CCNA,SAAS0tB,GAAYvD,GACnB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,oGAGd,CCNA,SAAS2tB,GAAgBxD,GACvB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,qwBAGd,CCNA,SAAS4tB,GAASzD,GAChB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,6RAGd,CCNA,SAAS6tB,GAAU1D,GACjB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,+UAGd,CCNA,SAAS8tB,GAAc3D,GACrB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,uWAGd,CCNA,SAAS+tB,GAAQ5D,GACf,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,8MAGd,CCNA,SAASguB,GAAa7D,GACpB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,6YAGd,CCNA,SAASiuB,GAAa9D,GACpB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,6cAGd,CCNA,SAASkuB,GAAiB/D,GACxB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,+GAGd,CCNA,SAASmuB,GAAiBhE,GACxB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,kGAGd,CCNA,SAASouB,GAAoBjE,GAC3B,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,oHAGd,CCNA,SAASquB,GAAelE,GACtB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,iHAGd,CCNA,SAASsuB,GAAanE,GACpB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,oGAGd,CCNA,SAASuuB,GAAYpE,GACnB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,iQAGd,CCNA,SAASwuB,GAAgBrE,GACvB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,8MAGd,CCNA,SAASyuB,GAAQtE,GACf,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,0FAGd,CCNA,SAAS0uB,GAAevE,GACtB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,2aAGd,CCNA,SAAS2uB,GAAiBxE,GACxB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,aAAgBF,GAC3Bj4B,EAAA,QAAMuO,EAAE,kBAAkBU,EAAE,kBAAkBiO,MAAM,aAAa3a,OAAO,eACxEvC,EAAA,QAAMuO,EAAE,kBAAkBU,EAAE,aAAaiO,MAAM,aAAa3a,OAAO,eACnEvC,EAAA,QAAMuO,EAAE,kBAAkBU,EAAE,aAAaiO,MAAM,aAAa3a,OAAO,eACnEvC,EAAA,QAAMuO,EAAE,aAAaU,EAAE,kBAAkBiO,MAAM,aAAa3a,OAAO,eACnEvC,EAAA,QAAMuO,EAAE,aAAaU,EAAE,aAAaiO,MAAM,aAAa3a,OAAO,eAC9DvC,EAAA,QAAMuO,EAAE,aAAaU,EAAE,aAAaiO,MAAM,aAAa3a,OAAO,eAC9DvC,EAAA,QAAMuO,EAAE,aAAaU,EAAE,kBAAkBiO,MAAM,aAAa3a,OAAO,eACnEvC,EAAA,QAAMuO,EAAE,aAAaU,EAAE,aAAaiO,MAAM,aAAa3a,OAAO,eAC9DvC,EAAA,QAAMuO,EAAE,aAAaU,EAAE,aAAaiO,MAAM,aAAa3a,OAAO,eAGpE,CCdA,SAASm6B,GAAiBzE,GACxB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,aAAgBF,GAC3Bj4B,EAAA,QAAMuO,EAAE,IAAIU,EAAE,IAAIiO,MAAM,KAAK3a,OAAO,eACpCvC,EAAA,QAAMuO,EAAE,IAAIU,EAAE,aAAaiO,MAAM,KAAK3a,OAAO,eAC7CvC,EAAA,QAAMuO,EAAE,IAAIU,EAAE,aAAaiO,MAAM,KAAK3a,OAAO,eAC7CvC,EAAA,QAAMuO,EAAE,IAAIU,EAAE,aAAaiO,MAAM,KAAK3a,OAAO,eAGnD,CCTA,SAASo6B,GAAY1E,GACnB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,+YAGd,CCNA,SAAS8uB,GAAO3E,GACd,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,mKAGd,CCNA,SAAS+uB,GAAS5E,GAChB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,qHAGd,CCNA,SAASgvB,GAAU7E,GACjB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,oHAGd,CCNA,SAASivB,GAAgB9E,GACvB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,8SAGd,CCNA,SAASkvB,GAAe/E,GACtB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,yUAGd,CCNA,SAASmvB,GAAQhF,GACf,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,sJAGd,CCNA,SAASovB,GAAUjF,GACjB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,2hDAGd,CCNA,SAASqvB,GAASlF,GAChB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,iCAGd,CCNA,SAASsvB,GAAUnF,GACjB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,2UAGd,CCNA,SAASuvB,GAAgBpF,GACvB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,kCAGd,CCNA,SAASwvB,GAAYrF,GACnB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,0XAGd,CCNA,SAASyvB,GAAatF,GACpB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,qOAGd,CCNA,SAAS0vB,GAAgBvF,GACvB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,2JAGd,CCNA,SAAS2vB,GAAkBxF,GACzB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,gfAGd,CCNA,SAAS4vB,GAAOzF,GACd,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,oaAGd,CCNA,SAAS6vB,GAAU1F,GACjB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,wOAGd,CCNA,SAAS8vB,GAAiB3F,GACxB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,s/BAGd,CCNA,SAAS+vB,GAAmB5F,GAC1B,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,6zBAGd,CCNA,SAASgwB,GAAqB7F,GAC5B,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,6QAGd,CCNA,SAASiwB,GAAiB9F,GACxB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,4OAGd,CCNA,SAASkwB,GAAU/F,GACjB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,qIAGd,CCNA,SAASmwB,GAAShG,GAChB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,grBAGd,CCNA,SAASowB,GAAQjG,GACf,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,uHAGd,CCNA,SAASqwB,GAAQlG,GACf,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,gEAGd,CCNA,SAASswB,GAAWnG,GAClB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,4iBAGd,CCNA,SAASuwB,GAAWpG,GAClB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,kTAGd,CCNA,SAASwwB,GAAYrG,GACnB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,4TAGd,CCNA,SAASywB,GAAUtG,GACjB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,8GAGd,CCNA,SAAS0wB,GAAWvG,GAClB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,uYAGd,CCNA,SAAS2wB,GAAcxG,GACrB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,4RAGd,CCNA,SAAS4wB,GAAezG,GACtB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,yRAGd,CCNA,SAAS6wB,GAAU1G,GACjB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,qrBAGd,CCNA,SAAS8wB,GAAS3G,GAChB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,6UAGd,CCNA,SAAS+wB,GAAqB5G,GAC5B,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,aAAgBF,GAC3Bj4B,EAAA,QAAM8N,EAAE,qLAGd,CCNA,SAASgxB,GAAe7G,GACtB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,2QAGd,CCNA,SAASixB,GAAa9G,GACpB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,GAASD,EAAK,aAAY,UAAU+G,MAAM,6BAA6B7G,QAAQ,cAC7En4B,EAAA,QACEE,MAAM,QACN4N,EAAE,wMAIV,CCTA,SAASmxB,GAAchH,GACrB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,GAASD,EAAK,aAAY,UAAU+G,MAAM,6BAA6B7G,QAAQ,cAC7En4B,EAAA,QACEE,MAAM,QACN4N,EAAE,4kCAEJ9N,EAAA,QACEE,MAAM,QACN4N,EAAE,oIAEJ9N,EAAA,QAAME,MAAM,QAAQ4N,EAAE,sEAG5B,CCdA,SAASoxB,GAAYjH,GACnB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,GAASD,EAAK,aAAY,UAAU+G,MAAM,6BAA6B7G,QAAQ,cAC7En4B,EAAA,QACEE,MAAM,QACN4N,EAAE,whBAIV,CCTA,SAASqxB,GAAelH,GACtB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,aAAgBF,GAC3Bj4B,EAAA,QAAM8N,EAAE,sqCAGd,CCNA,SAASsxB,GAAYnH,GACnB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,GAASD,EAAK,aAAY,UAAUE,QAAQ,cAC1Cn4B,EAAA,QACEE,MAAM,QACN4N,EAAE,+TAIV,CCTA,SAASuxB,GAAapH,GACpB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,GAASD,EAAK,aAAY,UAAU+G,MAAM,6BAA6B7G,QAAQ,cAC7En4B,EAAA,QACEE,MAAM,QACN4N,EAAE,ipBAIV,CCTA,SAASwxB,GAAWrH,GAClB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,sRAGd,CCNA,SAASyxB,GAAiBtH,GACxB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,qKAGd,CCNA,SAAS0xB,GAAUvH,GACjB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,iDAGd,CCNA,SAAS2xB,GAAQxH,GACf,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,yVAGd,CCNA,SAAS4xB,GAAYzH,GACnB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,sKAGd,CCNA,SAAS6xB,GAAQ1H,GACf,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,sWAGd,CCNA,SAAS8xB,GAAW3H,GAClB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,ghBAGd,CCNA,SAAS+xB,GAAqB5H,GAC5B,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,mJAGd,CCNA,SAASgyB,GAAO7H,GACd,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,8aAGd,CCNA,SAASiyB,GAAS9H,GAChB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,sVAGd,CCNA,SAASkyB,GAAW/H,GAClB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,uEAGd,CCNA,SAASmyB,GAAUhI,GACjB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,oQAGd,CCNA,SAASoyB,GAAWjI,GAClB,OACEj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QAAM8N,EAAE,88BAGd,CCNO,MAAMqyB,GAAsClI,GAE/Cj4B,EAAA,OACEg/B,MAAM,6BACN9hB,MAAO+a,EAAM/a,OAAS,GACtB3a,OAAQ01B,EAAM11B,QAAU,GACxB41B,QAAQ,YACR5tB,KAAM0tB,EAAM1tB,MAAQ,SAEpBvK,EAAA,WACEy4B,OAAO,yLACPmB,UAAU,0BAKX,MAAMwG,GAAuCnI,GAEhDj4B,EAAA,OACEg/B,MAAM,6BACN9hB,MAAO+a,EAAM/a,OAAS,GACtB3a,OAAQ01B,EAAM11B,QAAU,GACxB41B,QAAQ,YACR5tB,KAAM0tB,EAAM1tB,MAAQ,SAEpBvK,EAAA,WAASy4B,OAAO,4LAIf,MAAM4H,GAAyCpI,GAElDj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,iBAAoBF,GAC/Bj4B,EAAA,QACE8N,EAAE,obASH,MAAMwyB,GAAkCrI,GAE3Cj4B,EAAA,MAAAwwB,OAAA0H,OAAA,CAAKC,QAAQ,gBAAmBF,GAC9Bj4B,EAAA,QACEL,GAAG,aACHmO,EAAE,0MCjDV,MAAMyyB,GAAU,uBCKhB,MAAMC,GAAsB,CAC1B,mBAAqBrxB,GAAMnP,EAACygC,GAAmBjQ,OAAA0H,OAAA,GAAK/oB,IACpD,gBAAkBA,GAAMnP,EAAC0gC,GAAWlQ,OAAA0H,OAAA,GAAK/oB,IACzC,kBAAoBA,GAAMnP,EAAC2gC,GAAanQ,OAAA0H,OAAA,GAAK/oB,IAC7C,qBAAuBA,GAAMnP,EAAC4gC,GAAepQ,OAAA0H,OAAA,GAAK/oB,IAClD,qBAAuBA,GAAMnP,EAAC6gC,GAAmBrQ,OAAA0H,OAAA,GAAK/oB,IACtD,sBAAwBA,GAAMnP,EAAC8gC,GAAoBtQ,OAAA0H,OAAA,GAAK/oB,IACxD,yBAA2BA,GAAMnP,EAAC+gC,GAAsBvQ,OAAA0H,OAAA,GAAK/oB,IAC7D,mBAAqBA,GAAMnP,EAACghC,GAAaxQ,OAAA0H,OAAA,GAAK/oB,IAC9C,uBAAyBA,GAAMnP,EAACihC,GAAiBzQ,OAAA0H,OAAA,GAAK/oB,IACtD,iBAAmBA,GAAMnP,EAACkhC,GAAY1Q,OAAA0H,OAAA,GAAK/oB,IAC3C,mBAAqBA,GAAMnP,EAACmhC,GAAc3Q,OAAA0H,OAAA,GAAK/oB,IAC/C,sBAAwBA,GAAMnP,EAACohC,GAAgB5Q,OAAA0H,OAAA,GAAK/oB,IACpD,iBAAmBA,GAAMnP,EAACqhC,GAAY7Q,OAAA0H,OAAA,GAAK/oB,IAC3C,qBAAuBA,GAAMnP,EAACshC,GAAe9Q,OAAA0H,OAAA,GAAK/oB,IAClD,qBAAuBA,GAAMnP,EAACuhC,GAAe/Q,OAAA0H,OAAA,GAAK/oB,IAClD,sBAAwBA,GAAMnP,EAACwhC,GAAgBhR,OAAA0H,OAAA,GAAK/oB,IACpD,mBAAqBA,GAAMnP,EAACyhC,GAAajR,OAAA0H,OAAA,GAAK/oB,IAC9C,eAAiBA,GAAMnP,EAAC0hC,GAAUlR,OAAA0H,OAAA,GAAK/oB,IACvC,oBAAsBA,GAAMnP,EAAC2hC,GAAcnR,OAAA0H,OAAA,GAAK/oB,IAChD,eAAiBA,GAAMnP,EAAC4hC,GAAUpR,OAAA0H,OAAA,GAAK/oB,IACvC,uBAAyBA,GAAMnP,EAAC6hC,GAAiBrR,OAAA0H,OAAA,GAAK/oB,IACtD,sBAAwBA,GAAMnP,EAAC8hC,GAAgBtR,OAAA0H,OAAA,GAAK/oB,IACpD,eAAiBA,GAAMnP,EAAC+hC,GAAUvR,OAAA0H,OAAA,GAAK/oB,IACvC,mBAAqBA,GAAMnP,EAACgiC,GAAcxR,OAAA0H,OAAA,GAAK/oB,IAC/C,eAAiBA,GAAMnP,EAACiiC,GAAUzR,OAAA0H,OAAA,GAAK/oB,IACvC,cAAgBA,GAAMnP,EAACkiC,GAAS1R,OAAA0H,OAAA,GAAK/oB,IACrC,0BAA4BA,GAAMnP,EAACmiC,GAAmB3R,OAAA0H,OAAA,GAAK/oB,IAC3D,mBAAqBA,GAAMnP,EAACoiC,GAAc5R,OAAA0H,OAAA,GAAK/oB,IAC/C,eAAiBA,GAAMnP,EAACqiC,GAAU7R,OAAA0H,OAAA,GAAK/oB,IACvC,sBAAwBA,GAAMnP,EAACsiC,GAAgB9R,OAAA0H,OAAA,GAAK/oB,IACpD,oBAAsBA,GAAMnP,EAACuiC,GAAc/R,OAAA0H,OAAA,GAAK/oB,IAChD,eAAiBA,GAAMnP,EAACwiC,GAAUhS,OAAA0H,OAAA,GAAK/oB,IACvC,qBAAuBA,GAAMnP,EAACyiC,GAAejS,OAAA0H,OAAA,GAAK/oB,IAClD,gBAAkBA,GAAMnP,EAAC0iC,GAAWlS,OAAA0H,OAAA,GAAK/oB,IACzC,eAAiBA,GAAMnP,EAAC2iC,GAAUnS,OAAA0H,OAAA,GAAK/oB,IACvC,iBAAmBA,GAAMnP,EAAC4iC,GAAYpS,OAAA0H,OAAA,GAAK/oB,IAC3C,wBAA0BA,GAAMnP,EAAC6iC,GAAkBrS,OAAA0H,OAAA,GAAK/oB,IACxD,kBAAoBA,GAAMnP,EAAC8iC,GAActS,OAAA0H,OAAA,GAAK/oB,IAC9C,mBAAqBA,GAAMnP,EAAC+iC,GAAcvS,OAAA0H,OAAA,GAAK/oB,IAC/C,oBAAsBA,GAAMnP,EAACgjC,GAAexS,OAAA0H,OAAA,GAAK/oB,IACjD,eAAiBA,GAAMnP,EAACijC,GAAUzS,OAAA0H,OAAA,GAAK/oB,IACvC,oBAAsBA,GAAMnP,EAACkjC,GAAc1S,OAAA0H,OAAA,GAAK/oB,IAChD,qBAAuBA,GAAMnP,EAACmjC,GAAgB3S,OAAA0H,OAAA,GAAK/oB,IACnD,gBAAkBA,GAAMnP,EAACojC,GAAW5S,OAAA0H,OAAA,GAAK/oB,IACzC,qBAAuBA,GAAMnP,EAACqjC,GAAgB7S,OAAA0H,OAAA,GAAK/oB,IACnD,eAAiBA,GAAMnP,EAACsjC,GAAU9S,OAAA0H,OAAA,GAAK/oB,IACvC,oBAAsBA,GAAMnP,EAACujC,GAAe/S,OAAA0H,OAAA,GAAK/oB,IACjD,gBAAkBA,GAAMnP,EAACwjC,GAAWhT,OAAA0H,OAAA,GAAK/oB,IACzC,wBAA0BA,GAAMnP,EAACyjC,GAAkBjT,OAAA0H,OAAA,GAAK/oB,IACxD,8BAAgCA,GAAMnP,EAAC0jC,GAAwBlT,OAAA0H,OAAA,GAAK/oB,IACpE,eAAiBA,GAAMnP,EAAC2jC,GAAUnT,OAAA0H,OAAA,GAAK/oB,IACvC,4BAA8BA,GAAMnP,EAAC4jC,GAAsBpT,OAAA0H,OAAA,GAAK/oB,IAChE,kBAAoBA,GAAMnP,EAAC6jC,GAAYrT,OAAA0H,OAAA,GAAK/oB,IAC5C,oBAAsBA,GAAMnP,EAAC8jC,GAActT,OAAA0H,OAAA,GAAK/oB,IAChD,gBAAkBA,GAAMnP,EAAC+jC,GAAWvT,OAAA0H,OAAA,GAAK/oB,IACzC,wBAA0BA,GAAMnP,EAACgkC,GAAkBxT,OAAA0H,OAAA,GAAK/oB,IACxD,iBAAmBA,GAAMnP,EAACikC,GAAYzT,OAAA0H,OAAA,GAAK/oB,IAC3C,eAAiBA,GAAMnP,EAACkkC,GAAU1T,OAAA0H,OAAA,GAAK/oB,IACvC,sBAAwBA,GAAMnP,EAACmkC,GAAgB3T,OAAA0H,OAAA,GAAK/oB,IACpD,oBAAsBA,GAAMnP,EAACokC,GAAe5T,OAAA0H,OAAA,GAAK/oB,IACjD,qBAAuBA,GAAMnP,EAACqkC,GAAe7T,OAAA0H,OAAA,GAAK/oB,IAClD,qBAAuBA,GAAMnP,EAACskC,GAAe9T,OAAA0H,OAAA,GAAK/oB,IAClD,0BAA4BA,GAAMnP,EAACukC,GAAmB/T,OAAA0H,OAAA,GAAK/oB,IAC3D,0BAA4BA,GAAMnP,EAACwkC,GAAmBhU,OAAA0H,OAAA,GAAK/oB,IAC3D,6BAA+BA,GAAMnP,EAACykC,GAAsBjU,OAAA0H,OAAA,GAAK/oB,IACjE,wBAA0BA,GAAMnP,EAAC0kC,GAAiBlU,OAAA0H,OAAA,GAAK/oB,IACvD,mBAAqBA,GAAMnP,EAAC2kC,GAAcnU,OAAA0H,OAAA,GAAK/oB,IAC/C,eAAiBA,GAAMnP,EAAC4kC,GAAUpU,OAAA0H,OAAA,GAAK/oB,IACvC,wBAA0BA,GAAMnP,EAAC6kC,GAAiBrU,OAAA0H,OAAA,GAAK/oB,IACvD,yBAA2BA,GAAMnP,EAAC8kC,GAAkBtU,OAAA0H,OAAA,GAAK/oB,IACzD,0BAA4BA,GAAMnP,EAAC+kC,GAAmBvU,OAAA0H,OAAA,GAAK/oB,IAC3D,0BAA4BA,GAAMnP,EAACglC,GAAmBxU,OAAA0H,OAAA,GAAK/oB,IAC3D,eAAiBA,GAAMnP,EAACilC,GAASzU,OAAA0H,OAAA,GAAK/oB,IACtC,mBAAqBA,GAAMnP,EAACklC,GAAc1U,OAAA0H,OAAA,GAAK/oB,IAC/C,cAAgBA,GAAMnP,EAACmlC,GAAS3U,OAAA0H,OAAA,GAAK/oB,IACrC,iBAAmBA,GAAMnP,EAAColC,GAAW5U,OAAA0H,OAAA,GAAK/oB,IAC1C,kBAAoBA,GAAMnP,EAACqlC,GAAY7U,OAAA0H,OAAA,GAAK/oB,IAC5C,wBAA0BA,GAAMnP,EAACslC,GAAkB9U,OAAA0H,OAAA,GAAK/oB,IACxD,uBAAyBA,GAAMnP,EAACulC,GAAiB/U,OAAA0H,OAAA,GAAK/oB,IACtD,gBAAkBA,GAAMnP,EAACwlC,GAAUhV,OAAA0H,OAAA,GAAK/oB,IACxC,iBAAmBA,GAAMnP,EAACylC,GAAYjV,OAAA0H,OAAA,GAAK/oB,IAC3C,gBAAkBA,GAAMnP,EAAC0lC,GAAWlV,OAAA0H,OAAA,GAAK/oB,IACzC,iBAAmBA,GAAMnP,EAAC2lC,GAAYnV,OAAA0H,OAAA,GAAK/oB,IAC3C,wBAA0BA,GAAMnP,EAAC4lC,GAAkBpV,OAAA0H,OAAA,GAAK/oB,IACxD,oBAAsBA,GAAMnP,EAAC6lC,GAAcrV,OAAA0H,OAAA,GAAK/oB,IAChD,qBAAuBA,GAAMnP,EAAC8lC,GAAetV,OAAA0H,OAAA,GAAK/oB,IAClD,uBAAyBA,GAAMnP,EAAC+lC,GAAkBvV,OAAA0H,OAAA,GAAK/oB,IACvD,uBAAyBA,GAAMnP,EAACgmC,GAAoBxV,OAAA0H,OAAA,GAAK/oB,IACzD,cAAgBA,GAAMnP,EAACimC,GAASzV,OAAA0H,OAAA,GAAK/oB,IACrC,iBAAmBA,GAAMnP,EAACkmC,GAAY1V,OAAA0H,OAAA,GAAK/oB,IAC3C,yBAA2BA,GAAMnP,EAACmmC,GAAmB3V,OAAA0H,OAAA,GAAK/oB,IAC1D,2BAA6BA,GAAMnP,EAAComC,GAAqB5V,OAAA0H,OAAA,GAAK/oB,IAC9D,6BAA+BA,GAAMnP,EAACqmC,GAAuB7V,OAAA0H,OAAA,GAAK/oB,IAClE,iBAAmBA,GAAMnP,EAACsmC,GAAY9V,OAAA0H,OAAA,GAAK/oB,IAC3C,yBAA2BA,GAAMnP,EAACumC,GAAmB/V,OAAA0H,OAAA,GAAK/oB,IAC1D,gBAAkBA,GAAMnP,EAACwmC,GAAWhW,OAAA0H,OAAA,GAAK/oB,IACzC,eAAiBA,GAAMnP,EAACymC,GAAUjW,OAAA0H,OAAA,GAAK/oB,IACvC,eAAiBA,GAAMnP,EAAC0mC,GAAUlW,OAAA0H,OAAA,GAAK/oB,IACvC,kBAAoBA,GAAMnP,EAAC2mC,GAAanW,OAAA0H,OAAA,GAAK/oB,IAC7C,kBAAoBA,GAAMnP,EAAC4mC,GAAapW,OAAA0H,OAAA,GAAK/oB,IAC7C,mBAAqBA,GAAMnP,EAAC6mC,GAAcrW,OAAA0H,OAAA,GAAK/oB,IAC/C,iBAAmBA,GAAMnP,EAAC8mC,GAAYtW,OAAA0H,OAAA,GAAK/oB,IAC3C,kBAAoBA,GAAMnP,EAAC+mC,GAAavW,OAAA0H,OAAA,GAAK/oB,IAC7C,sBAAwBA,GAAMnP,EAACgnC,GAAgBxW,OAAA0H,OAAA,GAAK/oB,IACpD,uBAAyBA,GAAMnP,EAACinC,GAAiBzW,OAAA0H,OAAA,GAAK/oB,IACtD,iBAAmBA,GAAMnP,EAACknC,GAAY1W,OAAA0H,OAAA,GAAK/oB,IAC3C,gBAAkBA,GAAMnP,EAACmnC,GAAW3W,OAAA0H,OAAA,GAAK/oB,IACzC,8BAAgCA,GAAMnP,EAAConC,GAAuB5W,OAAA0H,OAAA,GAAK/oB,IACnE,uBAAyBA,GAAMnP,EAACqnC,GAAiB7W,OAAA0H,OAAA,GAAK/oB,IACtD,wBAA0BA,GAAMnP,EAACsnC,GAAkB9W,OAAA0H,OAAA,GAAK/oB,IACxD,yBAA2BA,GAAMnP,EAACunC,GAAmB/W,OAAA0H,OAAA,GAAK/oB,IAC1D,wBAA0BA,GAAMnP,EAACwnC,GAAkBhX,OAAA0H,OAAA,GAAK/oB,IACxD,uBAAyBA,GAAMnP,EAACynC,GAAiBjX,OAAA0H,OAAA,GAAK/oB,IACtD,+BAAiCA,GAAMnP,EAAC0nC,GAAwBlX,OAAA0H,OAAA,GAAK/oB,IACrE,4BAA8BA,GAAMnP,EAAC2nC,GAAqBnX,OAAA0H,OAAA,GAAK/oB,IAC/D,uBAAyBA,GAAMnP,EAAC4nC,GAAiBpX,OAAA0H,OAAA,GAAK/oB,IACtD,kBAAoBA,GAAMnP,EAAC6nC,GAAarX,OAAA0H,OAAA,GAAK/oB,IAC7C,iBAAmBA,GAAMnP,EAAC8nC,GAAYtX,OAAA0H,OAAA,GAAK/oB,IAC3C,yBAA2BA,GAAMnP,EAAC+nC,GAAmBvX,OAAA0H,OAAA,GAAK/oB,IAC1D,eAAiBA,GAAMnP,EAACgoC,GAAUxX,OAAA0H,OAAA,GAAK/oB,IACvC,mBAAqBA,GAAMnP,EAACioC,GAAczX,OAAA0H,OAAA,GAAK/oB,IAC/C,eAAiBA,GAAMnP,EAACkoC,GAAU1X,OAAA0H,OAAA,GAAK/oB,IACvC,kBAAoBA,GAAMnP,EAACmoC,GAAa3X,OAAA0H,OAAA,GAAK/oB,IAC7C,8BAAgCA,GAAMnP,EAACooC,GAAuB5X,OAAA0H,OAAA,GAAK/oB,IACnE,gBAAkBA,GAAMnP,EAACqoC,GAAW7X,OAAA0H,OAAA,GAAK/oB,IACzC,kBAAoBA,GAAMnP,EAACsoC,GAAa9X,OAAA0H,OAAA,GAAK/oB,IAC7C,iBAAmBA,GAAMnP,EAACuoC,GAAY/X,OAAA0H,OAAA,GAAK/oB,IAC3C,gBAAkBA,GAAMnP,EAACwoC,GAAehY,OAAA0H,OAAA,GAAK/oB,IAC7C,kBAAoBA,GAAMnP,EAACyoC,GAAajY,OAAA0H,OAAA,GAAK/oB,K,MAQlCu5B,GAAI,M,uDAEQ,Q,UACA,E,CAEvBjpC,SACE,OACEO,EAACC,EAAI,eAAa,OAAOoC,MAAO,CAACC,QAAS,SACvCk+B,GAAU5gC,KAAKkH,MAAM,CACpBvE,OAAQ3C,KAAKmH,KACbmW,MAAOtd,KAAKmH,KACZwD,KAAM3K,KAAK2K,O,eCzJrB,MAAMo+B,GAAW,mjE,MCcJC,GAAK,M,uCACW,K,cACA,K,iBACI,M,aACL,K,sBACS,G,uBACC,E,yBAIhBC,cAAcpoB,GAChC7gB,KAAKwH,kBAAoBqZ,IAAS,SAAWC,KAAKC,MAAMF,GAAQA,C,CAGlEhD,oBACE7d,KAAKipC,cAAcjpC,KAAK0H,U,CAG1B7H,SACE,IAAImI,EAAc,KAClB,GAAIhI,KAAK6H,mBAAqB,GAAK7H,KAAK6H,mBAAqB,EAAG,CAC9D,MAAME,EAAU/H,KAAK8H,kBAAoB9H,KAAK6H,iBAAoB,IAClEG,EAAc,CACZ,gBAAiB,GAAGD,K,CAGxB,MAAMjI,EAAkB,CAAC,WAAYE,KAAKkpC,QAAU,yBAA2B,MAAM3oC,KAAK,KAE1F,MAAMgK,EAAmB,CACvB,4BACAvC,IAAgB,KAAO,wBAA0B,uBACjDzH,KAAK,KAEP,MAAO,CACLH,EAAA,OAAKE,MAAOR,GACVM,EAAA,OAAKE,MAAOiK,EAAkB9H,MAAOuF,IAAgB,KAAOA,EAAc,IACvEhI,KAAK4I,WACH5I,KAAKwH,WACJpH,EAAA,eACGJ,KAAKwH,WAAWS,KAAI,EAAEG,MAAKC,QAAOC,OAAMC,WACvCnI,EAAA,UAAQ+H,OAAQC,EAAKC,MAAOA,EAAOC,KAAMA,EAAMC,MAAOA,GAAS,OAEjEnI,EAAA,OACEoI,QAASxI,KAAKyI,YAAc,QAAU,OACtCC,IAAK1I,KAAK2I,SACVrI,MAAM,kBACN8H,IAAKpI,KAAK4I,YAIdxI,EAAA,OACEoI,QAASxI,KAAKyI,YAAc,QAAU,OACtCC,IAAK1I,KAAK2I,SACVrI,MAAM,kBACN8H,IAAKpI,KAAK4I,aAIjB5I,KAAKkpC,SAAW9oC,EAAA,OAAKE,MAAM,qBAAqBN,KAAKkpC,UAExD9oC,EAAA,UAAQI,GAAG,uB,yEC1EjB,MAAM2oC,GAAa,goD,MCONC,GAAO,M,0CAEY,Q,CAE9B9nC,mBACE,IAAIE,EAAYxB,KAAKyB,GAAGC,QAAQ,YAChC,GAAIF,EAAW,CACb,IAAKA,EAAUG,UAAUC,SAAS,gBAAiB,CACjD5B,KAAK6B,YAAc,O,GAKzBhC,SACE,MAAMC,EAAkB,CAAC,aAAc,eAAeE,KAAK6B,eAAetB,KAAK,KAC/E,OACEH,EAACC,EAAI,KACHD,EAAA,KAAGE,MAAOR,GACRM,EAAA,c,uCCzBV,MAAMipC,GAAoB,y1L,MCebC,GAAc,M,sCACe,K,cACZ,M,uBACS,M,8CAEH,K,wGAKP,G,gBACG,M,iBACA,S,yBAI9BhoC,mBACE,IAAIE,EAAYxB,KAAKyB,GAAGC,QAAQ,YAChC,GAAIF,EAAW,CACb,IAAKA,EAAUG,UAAUC,SAAS,gBAAiB,CACjD5B,KAAK6B,YAAc,O,GAKzBhC,SACE,MAAMC,EAAkB,CACtB,kBACA,oBAAoBE,KAAK6B,cACzB7B,KAAK6B,YACL7B,KAAKupC,SAAW,4BAA8B,GAC9CvpC,KAAKqG,QACD,sDAAsDrG,KAAKqG,UAC3D,+BACJ9F,KAAK,KAEP,MAAMipC,EAAa,CAAC,yBAA0B,2BAA2BxpC,KAAK6B,eAAetB,KAAK,KAClG,MAAMkpC,EAAmB,CAAC,+BAAgC,iCAAiCzpC,KAAK6B,eAAetB,KAC7G,KAGF,MAAMmpC,EAAwB,CAC5B,2BACA1pC,KAAKupC,SAAW,qCAAuC,GACvDvpC,KAAK4I,SAAW,uCAAyC,0CACzD5I,KAAK2pC,kBAAoB,wCAA0C,IACnEppC,KAAK,KAEP,MAAMgD,EAASvD,KAAK4L,WAAa,SAAW,QAE5C,OACExL,EAACC,EAAI,KACHD,EAAA,UAAQqL,GAAG,yBACXrL,EAAA,OAAKE,MAAOR,GACVM,EAAA,+BACEA,EAAA,OAAKE,MAAM,kCACTF,EAAA,OAAKE,MAAOopC,GACVtpC,EAAA,cACEE,MAAOkpC,EACP7V,QAASC,EAAeC,GACxBb,QAASC,EAAuB2W,cAE/B5pC,KAAK6I,WAERzI,EAAA,KAAGE,MAAOmpC,GAAmBzpC,KAAK8I,iBACjC9I,KAAKkJ,KACJ9I,EAAA,OAAKE,MAAM,oCACTF,EAAA,KAAGE,MAAM,wBAAwB0G,KAAMhH,KAAKkJ,IAAG,aAAclJ,KAAK2L,QAASpI,OAAQA,GAChFvD,KAAK0L,SACNtL,EAAA,QAAME,MAAM,+BACVF,EAAA,WAAS8G,KAAM,sBAAuBC,KAAM,SAMrDnH,KAAK4I,WACH5I,KAAK0H,UACJtH,EAAA,OAAKE,MAAM,0BACTF,EAAA,yBACcJ,KAAK0H,UAAS,YACf1H,KAAK4I,SAChBf,iBAAkB,GAClBC,kBAAmB,GAAE,YACV9H,KAAK2I,YAIpBvI,EAAA,OAAKE,MAAM,0BACTF,EAAA,wBACaJ,KAAK4I,SAChBf,iBAAkB,GAClBC,kBAAmB,GAAE,YACV9H,KAAK2I,gBAO9BvI,EAAA,UAAQI,GAAG,uB,uCCnHnB,MAAMqpC,GAAiB,gtE,MCQVC,GAAW,M,sCACkBC,EAAqB1oC,Q,kDAI7DxB,SACE,MAAMmqC,EAAe,CAAChqC,KAAKqG,QAAS,iBAAiB9F,KAAK,KAE1D,OACEH,EAAA,OAAKE,MAAO0pC,GACV5pC,EAAA,OAAKE,MAAM,wBAAwBN,KAAK2zB,SACxCvzB,EAAA,OAAKE,MAAM,8BAA8BN,KAAKg1B,a,eCnBtD,MAAMiV,GAAsB,+3E,MCcfC,GAAgB,M,mEAIG,Q,CAE9B3iC,0BACEvH,KAAKsf,iBAAmB7X,EAAiBzH,KAAKuf,U,CAGhDje,mBACE,IAAIE,EAAYxB,KAAKyB,GAAGC,QAAQ,YAChC,GAAIF,EAAW,CACb,IAAKA,EAAUG,UAAUC,SAAS,gBAAiB,CACjD5B,KAAK6B,YAAc,O,GAKzBsoC,gBAAgBC,GACd,IAAI3vB,EAAY,MAEhB,GAAI2vB,EAAQ,GAAK,EAAG,CAClB3vB,EAAY,O,MACP,GAAI2vB,EAAQ,GAAK,EAAG,CACzB3vB,EAAY,O,MACP,GAAI2vB,EAAQ,GAAK,EAAG,CACzB3vB,EAAY,O,CAGd,OAAOA,C,CAGT5a,SAQE,MAAMwqC,EAAoBrqC,KAAKsf,WAAWtb,QAAU,EAAI+lC,EAAqBO,MAAQP,EAAqB1oC,QAE1G,MAAMvB,EAAkB,CACtBuqC,EACA,gCACA,kCAAkCrqC,KAAK6B,eACvCtB,KAAK,KACP,MAAMgqC,EAAqB,CAAC,uBAAuBhqC,KAAK,KACxD,MAAMiqC,EAA6B,CAAC,sBAAuB,gCAAgCjqC,KAAK,KAEhG,GAAIP,KAAKsf,WAAWtb,OAAS,GAAK,EAAG,CACnC,OACE5D,EAACC,EAAI,KACHD,EAAA,OAAKE,MAAOR,GACVM,EAAA,OAAKE,MAAOiqC,GACTvqC,KAAKsf,WAAWrX,KAAI,CAAC0G,EAAG9K,KACvB,GAAIA,EAAQ,EAAG,CACb,OACEzD,EAAA,iBACEE,MAAM,QACN+F,QAASgkC,EACT1W,QAAShlB,EAAEglB,QACXqB,YAAarmB,EAAEqmB,a,MAMzB50B,EAAA,OAAKE,MAAOkqC,GACTxqC,KAAKsf,WAAWrX,KAAI,CAAC0G,EAAG9K,KACvB,GAAIA,GAAS,EAAG,CACd,OACEzD,EAAA,iBACEE,MAAM,QACN+F,QAASgkC,EACT1W,QAAShlB,EAAEglB,QACXqB,YAAarmB,EAAEqmB,a,OAO3B50B,EAAA,UAAQI,GAAG,uB,KAGV,CACL,OACEJ,EAACC,EAAI,KACHD,EAAA,OAAKE,MAAOR,GACVM,EAAA,OAAKE,MAAOiqC,GACTvqC,KAAKsf,WAAWrX,KAAK0G,GAElBvO,EAAA,iBACEE,MAAON,KAAKmqC,gBAAgBnqC,KAAKsf,WAAWtb,QAC5CqC,QAASgkC,EACT1W,QAAShlB,EAAEglB,QACXqB,YAAarmB,EAAEqmB,kBAMzB50B,EAAA,UAAQI,GAAG,uB,wCCtHrB,MAAMiqC,GAAoB,y7F,MCQbC,GAAc,M,sCACeX,EAAqB1oC,Q,kDAI7DxB,SACE,MAAMmqC,EAAe,CAAChqC,KAAKqG,QAAS,oBAAoB9F,KAAK,KAE7D,OACEH,EAAA,OAAKE,MAAO0pC,GACV5pC,EAAA,OAAKE,MAAM,sCACTF,EAAA,OAAKE,MAAM,0BAA0B+jB,UAAWrkB,KAAK2zB,WAEvDvzB,EAAA,OAAKE,MAAM,iCAAiCN,KAAKg1B,a,eCrBzD,MAAM2V,GAAyB,q1E,MCclBC,GAAmB,M,sCAEUb,EAAqB1oC,Q,0CAG/B,Q,CAE9BkG,0BACEvH,KAAKsf,iBAAmB7X,EAAiBzH,KAAKuf,U,CAGhDje,mBACE,IAAIE,EAAYxB,KAAKyB,GAAGC,QAAQ,YAChC,GAAIF,EAAW,CACb,IAAKA,EAAUG,UAAUC,SAAS,gBAAiB,CACjD5B,KAAK6B,YAAc,O,GAKzBhC,SACE,MAAMC,EAAkB,CACtBE,KAAKqG,QACL,yBACA,2BAA2BrG,KAAK6B,eAChCtB,KAAK,KAEP,MAAMsqC,EAAgB7qC,KAAKsf,WAAWtb,OACtC,MAAM8mC,EAAYD,EAAgB,GAAK,EAAI,QAAU,MAErD,OACEzqC,EAACC,EAAI,KACHD,EAAA,OAAKE,MAAOR,GACTE,KAAKsf,WAAWrX,KAAK0G,GAElBvO,EAAA,oBACEE,MAAOwqC,EACPzkC,QAASrG,KAAKqG,QACdstB,QAAShlB,EAAEglB,QACXqB,YAAarmB,EAAEqmB,iB,uCCrD/B,MAAM+V,GAAwB,wyF,MCcjBC,GAAkB,M,0CAEC,S,yBAK9BzjC,0BACEvH,KAAKsf,iBAAmB7X,EAAiBzH,KAAKuf,U,CAGhDje,mBACE,IAAIE,EAAYxB,KAAKyB,GAAGC,QAAQ,YAChC,GAAIF,EAAW,CACb,IAAKA,EAAUG,UAAUC,SAAS,gBAAiB,CACjD5B,KAAK6B,YAAc,O,GAKzBhC,SACE,MAAMC,EAAkB,CAAC,wBAAyB,0BAA0BE,KAAK6B,eAAetB,KAAK,KAErG,MAAO,CACLH,EAAA,OAAKE,MAAOR,GACTE,KAAKsf,WAAWrX,KAAI,CAAC0G,EAAG9K,KACvB,IAAIonC,EAASnqB,KAAKS,UAAU5S,EAAEu8B,OAC9B,MAAMC,EACJtnC,IAAU,EAAI,2CAA6C,qCAE7D,MAAO,CACLzD,EAAA,cAAYE,MAAO6qC,EAAgBxX,QAASC,EAAea,IACxD9lB,EAAEy8B,YAELhrC,EAAA,4CAAyC6qC,IAC1C,K,uCCjDX,MAAMI,GAA6B,+yJ,MCqBtBC,GAAuB,M,kDAIlC/jC,0BACEvH,KAAKsf,iBAAmB7X,EAAiBzH,KAAKuf,U,CAGhD1f,SACE,MAAMC,EAAkB,CAAC,0CAA0CS,KAAK,KAExE,OACEH,EAAA,OAAKE,MAAOR,GACTE,KAAKsf,WAAWrX,KAAI,CAAC0G,EAAG9K,KACvB,IAAI2G,EACJ,GAAImE,EAAEyb,OAASzb,EAAEyb,MAAMpmB,OAAS,EAAG,CACjC,IAAIunC,EAAY58B,EAAEyb,MAClB,IAAIohB,EAAiB78B,EAAEyb,MAAMpmB,OAC7BwG,EAAQ+gC,EAAUtjC,KAAI,CAACC,EAAMrE,KAC3B,IAAI4nC,EAAa5nC,GAAS2nC,EAAiB,EAAI,kBAAoB,aACnE,OAAOtjC,EACL9H,EAAA,eACEE,MAAOmrC,EAAU,eACHvjC,EAAKid,MAAK,WACdjd,EAAKwb,UAAS,cACXxb,EAAK0D,WAClB1C,IAAKhB,EAAKgB,MAEV,IAAI,G,CAIZ,MAAO,CACL9I,EAAA,OAAKE,MAAM,iDACTF,EAAA,OAAKE,MAAM,yDACTF,EAAA,MAAIE,MAAM,iEACRF,EAAA,OAAKE,MAAM,gEAAgEuD,EAAQ,KAGvFzD,EAAA,OAAKE,MAAM,0DACTF,EAAA,OAAKE,MAAM,mEAAmEqO,EAAEglB,SAChFvzB,EAAA,OACEE,MAAM,sEACN+jB,UAAW1V,EAAEqmB,cAEf50B,EAAA,OAAKE,MAAM,iEAAiEkK,KAGjF,I,eCrEX,MAAMkhC,GAAU,ihD,MCQHC,GAAI,M,sCACiBC,EAAavqC,Q,iBACf,G,0DAGA,K,CAE9BxB,SACE,MAAMC,EAAkB,CAAC,UAAWE,KAAKqG,SACzC,MAAM9C,EAASvD,KAAK4L,WAAa,SAAW,QAE5C,OACExL,EAACC,EAAI,KACHD,EAAA,kBAAeJ,KAAK2L,QAASrL,MAAOR,EAAgBS,KAAK,KAAMyG,KAAMhH,KAAKkJ,IAAK3F,OAAQA,GACpFvD,KAAK4kB,a,eCtBhB,MAAMinB,GAAa,iiI,MCeNC,GAAO,M,sCACiBC,EAAgB1qC,Q,cACxB,K,cACA,K,iBACI,M,aACJ,M,cACC,M,8CAEM,K,mCAEJ,M,qEAGA,S,yBAKV4nC,cAAcpoB,GAChC7gB,KAAKwH,kBAAoBqZ,IAAS,SAAWC,KAAKC,MAAMF,GAAQA,C,CAGlEhD,oBACE7d,KAAKipC,cAAcjpC,KAAK0H,U,CAG1BpG,mBACE,IAAIE,EAAYxB,KAAKyB,GAAGC,QAAQ,YAChC,GAAIF,EAAW,CACb,IAAKA,EAAUG,UAAUC,SAAS,gBAAiB,CACjD5B,KAAK6B,YAAc,O,GAKzBhC,SACE,MAAMmsC,EAA2B,CAAC,yBAAyBzrC,KAAK,KAChE,MAAMT,EAAkB,CACtB,cACAE,KAAKqG,QACL,gBAAgBrG,KAAKqG,UACrBrG,KAAK6B,YACL,gBAAgB7B,KAAK6B,cACrB7B,KAAK4I,SAAW,0BAA4B,MAC5CrI,KAAK,KAEP,MAAM0rC,EAAqB,CAAC,8BAA+BjsC,KAAK4I,SAAW,0BAA4B,MAAMrI,KAC3G,KAGF,MAAMipC,EAAa,CACjB,qCACA,uCAAuCxpC,KAAKqG,UAC5C,uCAAuCrG,KAAK6B,cAC5C7B,KAAK4I,SAAW,4CAA8C,GAC9D5I,KAAK4I,SAAW,QAAU,IAC1BrI,KAAK,KAEP,MAAMkpC,EAAmB,CACvB,2CACA,6CAA6CzpC,KAAKqG,UAClD,6CAA6CrG,KAAK6B,eAClDtB,KAAK,KAEP,MAAMgD,EAASvD,KAAK4L,WAAa,SAAW,QAE5C,MAAM/D,EAAmB,GACzB,MAAMC,EAAoB,GAC1B,MAAMC,EAAUD,EAAoBD,EAAoB,IACxD,MAAMG,EAAc,CAClB,gBAAiB,GAAGD,MAGtB,MAAO,CACL3H,EAAA,WAASE,MAAO0rC,GACd5rC,EAAA,OAAKE,MAAOR,GACTE,KAAK4I,WACH5I,KAAKwH,WACJpH,EAAA,UAAQE,MAAM,+BAA+BmC,MAAOuF,GAClD5H,EAAA,eACGJ,KAAKwH,WAAWS,KAAKC,GACpB9H,EAAA,UACE+H,OAAQD,EAAKE,IACbC,MAAOH,EAAKG,MACZC,KAAMJ,EAAKI,KACXC,MAAOL,EAAKK,MAAQL,EAAKK,MAAQ,OAGrCnI,EAAA,OACEoI,QAASxI,KAAKyI,YAAc,QAAU,OAAM,cAChC,OACZL,IAAKpI,KAAK4I,SACVF,IAAK1I,KAAK2I,aAKhBvI,EAAA,UAAQE,MAAM,+BAA+BmC,MAAOuF,GAClD5H,EAAA,OACEoI,QAASxI,KAAKyI,YAAc,QAAU,OAAM,cAChC,OACZL,IAAKpI,KAAK4I,SACVF,IAAK1I,KAAK2I,cAIhB3I,KAAK4I,UAAY5I,KAAKksC,UACtB9rC,EAAA,qBAAiB,OAAOE,MAAM,iDAC5BF,EAAA,WAASE,MAAO,CAAC,qBAAsB,MAAO4G,KAAM,qBAGxD9G,EAAA,OAAKE,MAAO2rC,GACV7rC,EAAA,MAAIE,MAAOkpC,GAAaxpC,KAAK6I,WAC5B7I,KAAK8I,iBACJ1I,EAAA,KAAGE,MAAOmpC,GACPzpC,KAAK8I,gBAAgB9E,QAAU,IAAMhE,KAAK8I,gBAAgBzF,MAAM,EAAG,KAAO,MAAQrD,KAAK8I,mBAKhG1I,EAAA,kBACcJ,KAAK2L,SAAW,GAAG3L,KAAKmsC,mBAAmBnsC,KAAK6I,YAC5DiC,MAAO9K,KAAK2L,SAAW,GAAG3L,KAAKmsC,mBAAmBnsC,KAAK6I,YACvD7B,KAAMhH,KAAKkJ,IACX3F,OAAQA,EACRjD,MAAO,oCAEPF,EAAA,sBAAkB,SAClBA,EAAA,YAAOJ,KAAKmsC,eACZ/rC,EAAA,QAAME,MAAO,qBAAqBN,KAAK4L,WAAa,8BAAgC,MAClFxL,EAAA,WAAS8G,KAAM,yBAA0BC,KAAM,Q,iGCjJ3D,MAAMilC,GAAiB,8gD,MCqBVC,GAAW,M,0CAEQ,S,aACKN,EAAgB1qC,Q,sDAMnDkG,0BACEvH,KAAKsf,iBAAmB7X,EAAiBzH,KAAKuf,U,CAGhDje,mBACE,IAAIE,EAAYxB,KAAKyB,GAAGC,QAAQ,YAChC,GAAIF,EAAW,CACb,IAAKA,EAAUG,UAAUC,SAAS,gBAAiB,CACjD5B,KAAK6B,YAAc,O,GAKzBhC,SACE,MAAMC,EAAkB,CACtB,mBACAE,KAAKqG,QACL,qBAAqBrG,KAAKqG,UAC1B,qBAAqBrG,KAAK6B,eAC1BtB,KAAK,KAYP,MAAM+rC,EAAsB,CAACtsC,KAAKqG,QAAS,gBAAgBrG,KAAKqG,WAAW9F,KAAK,KAChF,OACEH,EAACC,EAAI,KACHD,EAAA,MAAIE,MAAOR,GACRE,KAAKsf,WAAWrX,KAAK0G,GAElBvO,EAAA,UACEA,EAAA,eACEE,MAAOgsC,EACPjmC,QAASrG,KAAKqG,QAAO,aACTsI,EAAE49B,UAAS,YACZ59B,EAAE/F,SAAQ,YACV+F,EAAEhG,SAAQ,aACTgG,EAAEglB,QAAO,mBACHhlB,EAAEqmB,YAAW,YACpBrmB,EAAEu9B,SACbhjC,IAAKyF,EAAE69B,OAAM,cACA79B,EAAE/C,WAAU,WACf+C,EAAE+U,UAAS,kBACJ1jB,KAAKmsC,oBAMhC/rC,EAAA,UAAQI,GAAG,uB,uCCtFnB,MAAMisC,GAAgB,qzK,MCiBTC,GAAU,M,0CAES,U,0CAGA,G,6CAEG,I,CAEjCnlC,0BACEvH,KAAKsf,iBAAmB7X,EAAiBzH,KAAKuf,U,CAGhDje,mBACE,IAAIE,EAAYxB,KAAKyB,GAAGC,QAAQ,YAChC,GAAIF,EAAW,CACb,IAAKA,EAAUG,UAAUC,SAAS,gBAAiB,CACjD5B,KAAK6B,YAAc,O,GAKzBhC,SACE,MAAM8sC,EAAc5nB,EAAgBC,SACpC,MAAM4nB,EAAiB5sC,KAAK6sC,eAAe3sC,cAC3C,IAAI4sC,EAAa,QAEjB,GAAI9sC,KAAKsf,WAAWtb,SAAW,GAAKhE,KAAKsf,WAAWtb,OAAS,IAAM,EAAG,CACpE8oC,EAAa,O,CAGf,MAAO,CACL1sC,EAAA,WAASE,MAAO,8BAA8BN,KAAK6B,eAChD7B,KAAK+sC,YAAY/oC,OAAS,GACzB5D,EAACwsC,EAAc,CAACtsC,MAAO,uBAAwBN,KAAK+sC,aAEtD3sC,EAAA,MACEE,MAAO,4CAA4CN,KAAKgtC,aACtDhtC,KAAKgtC,YAAc,OAASF,EAAa,MAG1C9sC,KAAKsf,WAAWrX,KAAI,EAAE0rB,UAASjQ,YAAWxa,MAAK0C,gBAC9CxL,EAAA,MAAIE,MAAM,4BACRF,EAAA,eACEiG,QAASsmC,EAAW,eACNhZ,EAAO,WACXjQ,EACVxa,IAAKA,EAAG,cACK0C,S,uCCjE7B,MAAMqhC,GAAgB,+tgBCsBtB,IAAIvsC,GAAO,CACTC,MAAO,QACPusC,MAAO,S,MAQIC,GAAU,M,uDAEwB,M,aACTC,EAAiB/rC,Q,mHAKvB,M,gGAIC,M,kHAKK,uB,+CAGN,S,kDAGS,M,mBACP,I,qBAEG,E,oBACD,C,CAGlCgsC,oBAAoB1nB,GAClB,UAAWA,IAAa,SAAU,CAChC3lB,KAAKstC,cAAgBxsB,KAAKC,MAAM4E,E,KAC3B,CACL3lB,KAAKstC,cAAgB3nB,C,EAKzB4nB,sBAAsB5nB,GACpB,UAAWA,IAAa,SAAU,CAChC3lB,KAAKwtC,gBAAkB1sB,KAAKC,MAAM4E,E,KAC7B,CACL3lB,KAAKwtC,gBAAkB7nB,C,EAIPsjB,cAAcpoB,GAChC7gB,KAAKwH,kBAAoBqZ,IAAS,SAAWC,KAAKC,MAAMF,GAAQA,C,CAGlE4sB,uBAAuBlqC,GACrB,IAAImqC,EAAkB,yBAAyB1tC,KAAKqG,iCACpD,IAAIsnC,EAAoB,8DACxB,IAAIC,EAAiBzrC,SAASC,iBAAiB,qBAAqBmB,EAAOxD,QAAQ,GACnF,GAAI6tC,EAAgB,CAClB,IAAK5tC,KAAK6tC,yBAA0B,CAClCD,EAAejsC,UAAU2D,IAAI,GAAGooC,cAChCnqC,EAAO5B,UAAU2D,IAAI,GAAGqoC,a,KACnB,CACLC,EAAejsC,UAAUwD,OAAO,GAAGuoC,cACnCnqC,EAAO5B,UAAUwD,OAAO,GAAGwoC,a,CAE7B3tC,KAAK6tC,0BAA4B7tC,KAAK6tC,wB,EAK1C/qC,cAAcC,GACZ,MAAMS,EAAMT,EAAMU,KAClB,IAAIF,EAASR,EAAMQ,OAEnB,MAAMwG,EAAgBxG,EAAOkB,QAAQvE,cACrC,MAAM4tC,EAAe,CAAC/jC,GAAeyb,MAAMxW,GAAM,CAAC,MAAO,OAAQ,SAAU,KAAKlL,QAAQkL,IAAM,IAE9F,GACEzL,GACAuqC,IACCvqC,EAAO5B,UAAUC,SAAS,qDAC3B,CAAClB,GAAKC,MAAOD,GAAKwsC,OAAOtpC,SAASJ,GAClC,CACA,GAAIuG,IAAkB,SAAU,CAC9BxG,EAASA,EAAO7B,QAAQ,0BAA0B1B,KAAKqG,yC,CAEzDrG,KAAKytC,uBAAuBlqC,GAC5BR,EAAMoB,gB,EAKVC,YAAYrB,GACV,IAAIQ,EAASR,EAAMQ,OACnB,MAAMwG,EAAgBxG,EAAOkB,QAAQvE,cACrC,MAAM4tC,EAAe,CAAC/jC,GAAeyb,MAAMxW,GAAM,CAAC,MAAO,OAAQ,SAAU,KAAKlL,QAAQkL,IAAM,IAE9F,GAAIzL,GAAUuqC,IAAiBvqC,EAAO5B,UAAUC,SAAS,oDAAqD,CAC5G,GAAImI,IAAkB,SAAU,CAC9BxG,EAASA,EAAO7B,QAAQ,0BAA0B1B,KAAKqG,yC,CAEzDrG,KAAKytC,uBAAuBlqC,GAC5BR,EAAMoB,iBACNpB,EAAMwC,0B,EAIVsY,oBACE7d,KAAKqtC,oBAAoBrtC,KAAK+tC,cAC9B/tC,KAAKutC,sBAAsBvtC,KAAKguC,gBAChChuC,KAAKipC,cAAcjpC,KAAK0H,U,CAG1BpG,mBACE,IAAIE,EAAYxB,KAAKyB,GAAGC,QAAQ,YAChC,GAAIF,EAAW,CACb,IAAKA,EAAUG,UAAUC,SAAS,gBAAiB,CACjD5B,KAAK6B,YAAc,O,EAGvB,GAAI7B,KAAKqG,SAAW+mC,EAAiBa,gBAAiB,CACpD,MAAM9V,EAAQh2B,SAAS6C,cAAc,qDAErC,GAAImzB,EAAO,CACTA,EAAMjyB,iBAAiB,QAAQ,WAC7B,MAAMgoC,EAAyB,EAC/B,MAAMC,EAAchW,EAAMiW,cAC1B,MAAMC,EAAalW,EAAMmW,aACzB,MAAMC,EAAwBF,EAAaF,EAC3CnuC,KAAKwuC,eAAiBH,EACtBruC,KAAKyuC,gBAAkBN,EACvB,GAAII,EAAwBL,EAAwB,CAClDluC,KAAKwuC,eAAiBL,EAAcD,C,MAC/B,GAAIK,EAAwBL,EAAwB,CACzDluC,KAAKyuC,gBAAkBJ,EAAaH,C,OAO9CruC,SACE,MAAM6uC,EAAyB,CAC7B,uBACA,yBAAyB1uC,KAAKqG,UAC9B,yBAAyBrG,KAAKqG,YAAYrG,KAAK6B,eAC/CtB,KAAK,KACP,MAAMT,EAAkB,CAAC,eAAgB,iBAAiBE,KAAKqG,WAAW9F,KAAK,KAC/E,MAAMouC,EAA+B,CACnC,iBAAiB3uC,KAAKqG,0BACtB,iBAAiBrG,KAAKqG,4BAA4BrG,KAAK6B,eACvDtB,KAAK,KAKP,MAAMquC,EAA2B,CAC/B,iBAAiB5uC,KAAKqG,kCACtB,iBAAiBrG,KAAKqG,oCAAoCrG,KAAK6B,eAC/DtB,KAAK,KACP,MAAMsuC,EAA0B,CAC9B,iBAAiB7uC,KAAKqG,iCACtB,iBAAiBrG,KAAKqG,mCAAmCrG,KAAK6B,eAC9DtB,KAAK,KACP,MAAMuuC,EAAgC,CACpC,iBAAiB9uC,KAAKqG,uCACtB,iBAAiBrG,KAAKqG,yCAAyCrG,KAAK6B,eACpEtB,KAAK,KACP,MAAMwuC,EAAkC,CAAC,iBAAiB/uC,KAAKqG,2CAA2C9F,KAAK,KAC/G,MAAMyuC,EAA6B,CAAC,iBAAiBhvC,KAAKqG,uCAAuC9F,KAAK,KACtG,MAAM0uC,EAAyB,CAAC,iBAAiBjvC,KAAKqG,iCAAiC9F,KAAK,KAE5F,MAAMgD,EAASvD,KAAK4L,WAAa,SAAW,QAE5C,SAASkpB,EAASxgB,EAAK9F,GACrB,OAAO8F,EAAItQ,OAASwK,EAAI8F,EAAI5O,OAAO,EAAG8I,EAAI,GAAK,MAAQ8F,C,CAGzD,OAAQtU,KAAKqG,SACX,KAAK+mC,EAAiB8B,SAAU,CAC9B,MAAMC,EAAiC,CACrC,iBAAiBnvC,KAAKqG,yCACtB,iBAAiBrG,KAAKqG,2CAA2CrG,KAAK6B,eACtEtB,KAAK,KACP,OACEH,EAAA,eACEA,EAAA,KAAGE,MAAOR,EAAiBkH,KAAMhH,KAAKkJ,IAAK3F,OAAQA,EAAM,aAAcvD,KAAK2L,SAC1EvL,EAAA,OAAKE,MAAOquC,GACVvuC,EAAA,OAAKE,MAAOsuC,GACVxuC,EAAA,OAAKE,MAAM,QACTF,EAAA,WAAS8G,KAAM,8BAA+BC,KAAM,MAErDnH,KAAKovC,UAERhvC,EAAA,OAAKE,MAAOuuC,GAA0B7uC,KAAK41B,WAE1C51B,KAAKqvC,iBACJjvC,EAAA,OACEE,MAAOwuC,EACPzqB,UACErkB,KAAKi1B,oBACDH,EAAS90B,KAAKqvC,gBAAiBrvC,KAAKk1B,eACpCl1B,KAAKqvC,mBAKjBjvC,EAAA,OAAKE,MAAO6uC,GACV/uC,EAAA,QAAME,MAAM,QACVF,EAAA,WAAS8G,KAAM,eAAgBC,KAAM,MAEvC/G,EAAA,QAAME,MAAM,SAASN,KAAKsvC,oB,CAMpC,KAAKlC,EAAiBa,gBAAiB,CACrC,MAAMsB,EAAgC,CAAC,iBAAiBvvC,KAAKqG,4BAA4B9F,KAAK,KAC9F,MAAMivC,EAA2B,CAAC,iBAAiBxvC,KAAKqG,mCAAmC9F,KAAK,KAEhG,MAAMkvC,EAA6C,CACjD,iBAAiBzvC,KAAKqG,2CACtB,iBAAiBrG,KAAKqG,6CAA6CrG,KAAK6B,eACxEtB,KAAK,KAEP,MAAMmvC,EAAqB1vC,KAAKwtC,iBAAmBxtC,KAAKwtC,gBAAgBxpC,OAAS,EAAI,GAAK,YAC1F,MAAM2rC,EAAuB,CAC3B,iBAAiB3vC,KAAKqG,4CACtBqpC,GACAnvC,KAAK,KACP,MAAMqvC,EAAsB,CAAC,iBAAiB5vC,KAAKqG,4CAA4C9F,KAAK,KAEpG,MAAM4uC,EAAiC,CACrC,iBAAiBnvC,KAAKqG,yCACtB,iBAAiBrG,KAAKqG,2CAA2CrG,KAAK6B,eACtEtB,KAAK,KACP,MAAMsvC,EAAoC,CACxC,iBAAiB7vC,KAAKqG,gDACtB9F,KAAK,KAEP,MAAMuvC,EAA4B,CAChC,yBAAyB9vC,KAAKqG,wBAC9B,yBAAyBrG,KAAKqG,0BAA0BrG,KAAK6B,eAC7DtB,KAAK,KACP,MAAMwvC,EAA0B,CAAC,yBAAyB/vC,KAAKqG,kCAAkC9F,KAAK,KACtG,MAAMyvC,EAA8B,CAAC,yBAAyBhwC,KAAKqG,wCAAwC9F,KACzG,KAEF,MAAM0vC,EAAgC,CACpC,yBAAyBjwC,KAAKqG,0CAC9B9F,KAAK,KACP,MAAM2vC,EAA8B,CAAC,yBAAyBlwC,KAAKqG,wCAAwC9F,KACzG,KAEF,MAAM4vC,EAA0B,CAAC,yBAAyBnwC,KAAKqG,kCAAkC9F,KAAK,KACtG,MAAM6vC,EAAuB,CAAC,yBAAyBpwC,KAAKqG,+BAA+B9F,KAAK,KAEhG,MAAMmG,EACJ1G,KAAKqwC,wBAA0BrwC,KAAKqwC,uBAAuBrsC,OAAS,EAChE,GAAGhE,KAAK41B,aAAa51B,KAAKqwC,yBAAyBnwC,cAAcC,QAAQ,MAAO,KAChF,GACN,MAAMyG,EAAoB,IAAMF,EAAY,UAE5C,MAAM4pC,EACJtwC,KAAKqwC,wBAA0BrwC,KAAKqwC,uBAAuBrsC,OAAS,EAAIhE,KAAKstC,cAActpC,OAAS,GAEtG,MAAO,CACL5D,EAAA,WAASE,MAAOouC,GACdtuC,EAAA,KAAGE,MAAOR,EAAiBkH,KAAMhH,KAAKkJ,IAAK3F,OAAQA,EAAM,aAAcvD,KAAK2L,SAC1EvL,EAAA,OAAKE,MAAOivC,GACVnvC,EAAA,OAAKE,MAAOkvC,GACTxvC,KAAKwH,WACJpH,EAAA,eACGJ,KAAKwH,WAAWS,KAAKC,GACpB9H,EAAA,UACE+H,OAAQD,EAAKE,IACbC,MAAOH,EAAKG,MACZC,KAAMJ,EAAKI,KACXC,MAAOL,EAAKK,MAAQL,EAAKK,MAAQ,OAGrCnI,EAAA,OACEoI,QAASxI,KAAKyI,YAAc,QAAU,OAAM,cAChC,OACZL,IAAKpI,KAAKuwC,aACV7nC,IAAK1I,KAAKwwC,aACV/tC,MAAO,CACL,cAAe,GAAGzC,KAAKyuC,oBACvB,aAAc,GAAGzuC,KAAKwuC,uBAK5BpuC,EAAA,OACEoI,QAASxI,KAAKyI,YAAc,QAAU,OAAM,cAChC,OACZL,IAAKpI,KAAKuwC,aACV7nC,IAAK1I,KAAKwwC,aACV/tC,MAAO,CACL,cAAe,GAAGzC,KAAKyuC,oBACvB,aAAc,GAAGzuC,KAAKwuC,uBAK7BxuC,KAAKywC,YAAcrwC,EAAA,YAAOJ,KAAKywC,aAElCrwC,EAAA,OAAKE,MAAOquC,GACVvuC,EAAA,OAAKE,MAAOsvC,GACVxvC,EAAA,OAAKE,MAAOuuC,GAA0B7uC,KAAK41B,WAC1C51B,KAAKqvC,iBACJjvC,EAAA,OAAKE,MAAOwuC,EAA+BzqB,UAAWrkB,KAAKqvC,mBAG/DjvC,EAAA,OAAKE,MAAOqvC,GACT3vC,KAAKwtC,iBACJptC,EAAA,OAAKE,MAAOmvC,GACTzvC,KAAKwtC,gBAAgBvlC,KAAK0G,IACzB,IAAI+hC,EAAuC,CACzC,iBAAiB1wC,KAAKqG,iDACtB,iBAAiBrG,KAAKqG,mDAAmDrG,KAAK6B,cAC9E,GAAG8M,EAAE6hB,SAAShc,YAAc,OAAS,SAAW,MAChDjU,KAAK,KACP,OAAOH,EAAA,OAAKE,MAAOowC,GAAuC/hC,EAAE8Q,KAAW,KAI7Erf,EAAA,OAAKE,MAAO6uC,GACV/uC,EAAA,KACE4G,KAAMhH,KAAKkJ,IACX3F,OAAQA,EAAM,aACFvD,KAAK2L,QACjBrL,MAAOuvC,EACP5oC,SAAS,MAET7G,EAAA,QAAME,MAAM,SAASN,KAAKsvC,kBAC1BlvC,EAAA,QAAME,MAAM,gBACVF,EAAA,OAAKE,MAAM,QACTF,EAAA,WAAS8G,KAAM,yBAA0BC,KAAM,YAQ5DnH,KAAKqwC,wBACJjwC,EAAA,OAAKE,MAAOwvC,GACV1vC,EAAA,OAAKE,MAAOyvC,GACV3vC,EAAA,KAAG4G,KAAMJ,EAAmBtG,MAAO0vC,EAA6B/oC,SAAS,MACvE7G,EAAA,0BACgB,QAAO,gBACN,GAAGsG,aAClBpG,MAAO2vC,EACPlwC,GAAI,GAAG2G,YAEPtG,EAAA,QAAME,MAAO4vC,GACX9vC,EAAA,WAAS8G,KAAM,qBAAsBC,KAAM,MAE5CnH,KAAKqwC,uBAAsB,KAAIC,EAAiB,OAIvDlwC,EAAA,OACEE,MAAO6vC,EAAuB,kBACb,GAAGzpC,WACpB3G,GAAI,GAAG2G,aACPU,KAAK,SAAQ,cACD,QAEXpH,KAAKstC,cAAcrlC,KAAK0G,IACvB,IAAIgiC,EAAoBhiC,EAAE/C,WAAa,SAAW,QAClD,OACExL,EAAA,KAAGE,MAAO8vC,EAAsBppC,KAAM2H,EAAEzF,IAAK3F,OAAQA,EAAM,aAAcotC,GACtEhiC,EAAEwW,MACD,O,CASpB,QAAS,CACP,OACE/kB,EAAA,eACEA,EAAA,KAAGE,MAAOR,EAAiBkH,KAAMhH,KAAKkJ,IAAK3F,OAAQA,EAAM,aAAcvD,KAAK2L,SAC1EvL,EAAA,OAAKE,MAAOquC,GACVvuC,EAAA,OAAKE,MAAOsuC,GAA2B5uC,KAAKovC,UAC5ChvC,EAAA,OAAKE,MAAOuuC,GAA0B7uC,KAAK41B,WAE3Cx1B,EAAA,OAAKE,MAAOyuC,GACV3uC,EAAA,QAAME,MAAO0uC,GACX5uC,EAAA,WAAS8G,KAAM,eAAgBC,KAAM,MAEvC/G,EAAA,OAAKE,MAAO2uC,GAAyBjvC,KAAKkJ,MAG3ClJ,KAAKqvC,iBACJjvC,EAAA,OAAKE,MAAOwuC,EAA+BzqB,UAAWrkB,KAAKqvC,oB,iLC/a7E,MAAMuB,GAAgB,+2F,MCOTC,GAAU,M,oFAIrBhxC,SACE,MAAM+sC,EAAiB5sC,KAAK6sC,eAE5B,OACEzsC,EAAA,OAAKE,MAAM,eAAe8G,KAAK,iBAC5BpH,KAAK8wC,eAAiB1wC,EAACwsC,EAAc,CAACtsC,MAAM,uBAAuBN,KAAK8wC,eACzE1wC,EAAA,OAAKE,MAAM,wBACTF,EAAA,c,eClBV,MAAMwwC,GAAgB,+2F,MCOTG,GAAc,M,kEAIzBlxC,SACE,MAAMmxC,EAAclwB,KAAKC,MAAM/gB,KAAKm4B,OACpC,MAAM8Y,EAAajxC,KAAK4qB,KAAO9J,KAAKC,MAAM/gB,KAAK4qB,MAAQ,KAEvD,OAAOomB,EAAY/oC,KAAI,EAAEipC,cAAeC,EAASC,UAAWC,EAAcC,UAAW5oC,MACnF,MAAM6oC,EAAgBzwB,KAAKC,MAAMowB,GAEjC,MAAMK,EACJpxC,EAAA,UAAQE,MAAM,wBACXixC,GACCnxC,EAAA,eACGmxC,EAActpC,KAAI,EAAEG,MAAKC,QAAOC,OAAMC,WACrCnI,EAAA,UAAQ+H,OAAQC,EAAKC,MAAOA,EAAOC,KAAMA,EAAMC,MAAOA,EAAQA,EAAQ,OAExEnI,EAAA,OAAKsI,IAAKA,EAAKN,IAAKipC,MAGtBE,GAAiBnxC,EAAA,OAAKsI,IAAKA,EAAKN,IAAKipC,KAI3C,GAAIJ,EAAY,CACd,MAAM/nC,IAACA,EAAG3F,OAAEA,GAAU0tC,EACtB,MAAMQ,EAAcluC,IAAW,SAAWA,EAAS,QAEnD,OACEnD,EAAA,KAAG4G,KAAMkC,EAAK3F,OAAQkuC,EAAanxC,MAAM,sBACtCkxC,E,CAKP,OAAOA,CAAc,G,eC3C3B,MAAME,GAAY,i9E,MCOLC,GAAM,M,yCACa,K,CAE9B9xC,SACE,MAAMC,EAAkB,CACtB,UACAE,KAAK8c,WAAa,eAAiB,kBACnC9c,KAAK8c,WAAa,kBAAoB,kBACtCvc,KAAK,KAEP,OACEH,EAAA,OAAKE,MAAOR,GACVM,EAAA,a,eCnBR,MAAMwxC,GAA0B,2uD,MCOnBC,GAAoB,M,yBAC/BhyC,SACE,MAAMC,EAAkB,CAAC,2BAA2BS,KAAK,KAEzD,OACEH,EAACC,EAAI,KACHD,EAAA,OAAKE,MAAOR,GACVM,EAAA,c,eCdV,MAAM0xC,GAAkB,muH,MCmBXC,GAAY,M,+HAGI,M,sCAEI,K,CAS/BC,uBAAuBjvC,GACrB/C,KAAKiyC,WAAa,MAClBlvC,EAAMqH,iB,CAKR8nC,qBACElyC,KAAKiyC,WAAa,K,CAKpBE,qBACEnyC,KAAKiyC,WAAa,K,CAKpBG,iCACEpyC,KAAKiyC,WAAa,K,CAIpBI,qBAAqBtvC,GAEnB/C,KAAKsyC,oBAAoBC,OAEzBxvC,EAAMqH,iB,CAIRooC,qBAAqBzvC,GACnB/C,KAAKiyC,YAAcjyC,KAAKiyC,WAExB,GAAIjyC,KAAKiyC,WAAY,CAEnBjyC,KAAKsyC,oBAAoBC,OAEzB,MAAME,EAAuB1vC,EAAMQ,OACnCvD,KAAK0yC,eAAeD,EAAsBzyC,KAAKyB,G,CAGjDsB,EAAMqH,iB,CAGRsoC,eAAeD,EAAsBlvC,GACnC,MAAMovC,EAAgBF,EAAqBG,WAAWxwC,iBACpD,4BACA,GACF,IAAIywC,EAAe,IACnB,IAAIC,EAAW9yC,KAAK4yB,QACfrvB,EAAO7B,QAAQ,gCACf6B,EAAO7B,QAAQ,mBAEpB,GAAIoxC,EAAU,CACZ,IAAIC,EAAaD,EAASltC,wBAC1B,IAAIotC,EAAeP,EAAqB7sC,wBAExCitC,EAAe,GAAGJ,EAAqBpb,aAAe0b,EAAW5jB,OAAS,EAAI6jB,EAAa7jB,U,CAG7FwjB,EAAclwC,MAAMqD,IAAM+sC,C,CAG5BtrC,0BACEvH,KAAKizC,wBAA0BxrC,EAAiBzH,KAAKkzC,kBACrDlzC,KAAKmzC,cAAgB1rC,EAAiBzH,KAAKozC,O,CAG7CvzC,SACE,MAAM4zB,EAAQ,iCACd,MAAM7J,EAAQ,yBACd,MAAMypB,EAAWrzC,KAAK4yB,QAAUhJ,EAAQ6J,EACxC,MAAM6f,EAAgBtzC,KAAK4yB,QAAU,GAAK,GAE1C,OACExyB,EAAA,OACEE,MAAO,CACL,gBAAiB,KACjB,UAAWN,KAAKiyC,WAChB,WAAYjyC,KAAK4yB,UAGnBxyB,EAAA,UACEE,MAAO,CACL,wBAAyB,MAC1B,aACWN,KAAKiyC,WAAajyC,KAAKmzC,QAAQ,SAAWnzC,KAAKmzC,QAAQ,SAEnE/yC,EAAA,WAAS8G,KAAM,gBAAiBC,KAAMmsC,EAAe3oC,KAAM0oC,IAC3DjzC,EAAA,YACGJ,KAAKizC,kBAAkBhrC,KAAI,EAAEuoB,WAAU+iB,eACtC,GAAI/iB,EAAU,CACZ,OAAO+iB,C,MAIbnzC,EAAA,WAAS8G,KAAM,qBAAsBC,KAAM,EAAGwD,KAAM0oC,KAEtDjzC,EAAA,OACEE,MAAO,CACL,0BAA2B,MAC5B,cACY,IAAIN,KAAKiyC,cAEtB7xC,EAAA,MAAIE,MAAM,wBACPN,KAAKizC,kBAAkBhrC,KAAKC,GAEzB9H,EAAA,qCACa8H,EAAKqrC,SAChBrqC,IAAKhB,EAAKgB,IACVic,MAAOjd,EAAKid,MACZquB,KAAMtrC,EAAKsrC,KAAI,YACJtrC,EAAKsoB,SAAQ,cACXtoB,EAAKurC,iB,uCCpJpC,MAAMC,GAAsB,uuD,MCOfC,GAAY,M,2DAEK,M,gBACE,M,gEAK9B9zC,SACE,OACEO,EAAA,MAAIE,MAAO,6BACTF,EAAA,KACE4G,KAAMhH,KAAKkJ,IACX0qC,KAAM5zC,KAAKuzC,SACXjzC,MAAO,CACL,YAAaN,KAAKwwB,SAClB,cAAexwB,KAAKyzC,WACpB,sBAAuB,OAGxBzzC,KAAKmlB,O,eC3BhB,MAAM0uB,GAAqB,yyQCe3B,IAAInzC,GAAO,CACTC,MAAO,S,MAQImzC,GAAe,M,sKAEE,uB,oBACK,Q,0CAEL,M,sIAMG,K,CAQ/BtB,qBAAqBzvC,GACnBA,EAAMqH,kBACNpK,KAAK+zC,YAEL/zC,KAAKiyC,YAAcjyC,KAAKiyC,WACxB,GAAIjyC,KAAKiyC,WAAY,CACnBjyC,KAAKg0C,uBAAuBjxC,EAAMQ,O,EAKtC0wC,uBAAuBlxC,GACrBA,EAAMqH,kBACN,MAAM5G,EAAMT,EAAMU,KAClB,IAAIF,EAASR,EAAMQ,OAEnB,GAAIC,IAAQ,UAAYxD,KAAKiyC,WAAY,CACvCjyC,KAAKiyC,WAAa,MAClBjyC,KAAK+zC,W,CAGP,GAAIxwC,GAAU,CAAC7C,GAAKC,OAAOiD,SAASJ,GAAM,CACxCxD,KAAKiyC,YAAcjyC,KAAKiyC,WAExB,GAAIjyC,KAAKiyC,WAAY,CACnBjyC,KAAK+zC,YACL/zC,KAAKg0C,uBAAuBzwC,E,GAKlCwwC,YAEE/zC,KAAKk0C,0BAA0B3B,OAC/BvyC,KAAKm0C,oBAAoB5B,M,CAG3ByB,uBAAuBzwC,GACrB,IAAI6wC,EAAcp0C,KAAKyB,GAAGC,QAAQ,gCAElC,GAAI0yC,IAAgBA,EAAY7vC,aAAa,aAAc,CACzD,IAAI8vC,EAAiB9wC,EAAOqvC,WAAW5tC,cAAc,6BACrD,IAAIsvC,EAAmB/wC,EAAOqvC,WAAW5tC,cAAc,+BACvD,IAAIuvC,EAAehxC,EAAOqvC,WAAW5tC,cAAc,SACnD,GAAIsvC,GAAoBC,GAAgBF,EAAgB,CACtD,IAAItB,EAAaqB,EAAYxuC,wBAC7B,IAAI4uC,EAAiBH,EAAezuC,wBACpC0uC,EAAiB7xC,MAAMqD,IAAM,GAAGitC,EAAWpwC,WAE3C4xC,EAAa9xC,MAAM2sB,KAAO,GAAGolB,EAAeplB,Q,CAE9C,IAAIyjB,EAAeuB,EAAY/c,aAAe,IAE9Cr3B,KAAKy0C,mBAAmB,OAAQ5B,E,EAIpC4B,mBAAmBC,EAAQ,QAAS5uC,EAAM,GACxC,IAAIgtC,EAAW9yC,KAAKyB,GAAGC,QAAQ,mBAC/B,IAAIizC,EAAgB7B,EAAS8B,SAAS,GAEtC,GAAID,EAAe,CACjB,GAAID,IAAU,OAAQ,CACpB,IAAIG,EAAK9yC,OAAO+yC,YAAchvC,EAC9B6uC,EAAclyC,MAAME,OAAS,GAAGkyC,MAChCF,EAAclyC,MAAMqD,IAAM,GAAGA,MAC7B6uC,EAAclyC,MAAMysC,SAAW,WAC/ByF,EAAchzC,UAAU2D,IAAI,Y,KACvB,CACLqvC,EAAcvvC,gBAAgB,SAC9BuvC,EAAchzC,UAAUwD,OAAO,Y,GAKrCoC,0BACEvH,KAAK+0C,oBAAsBttC,EAAiBzH,KAAKg1C,a,CAGnDC,mBAAmBlyC,GACjB/C,KAAKiyC,WAAa,MAClBjyC,KAAKm0C,oBAAoB5B,OACzBvyC,KAAKy0C,qBACL1xC,EAAMqH,iB,CAOR4nC,uBAAuBjvC,GACrB,GAAI/C,KAAKiyC,WAAY,CACnBjyC,KAAKiyC,WAAa,MAClBjyC,KAAKi1C,mBAAmBlyC,E,CAE1BA,EAAMqH,iB,CAKR8nC,qBACElyC,KAAKiyC,WAAa,K,CAKpBE,qBACEnyC,KAAKiyC,WAAa,K,CAKpBiD,sBACEl1C,KAAKiyC,WAAa,K,CAGpBpyC,SACE,MAAM+pB,EAAQ,yBACd,MAAMurB,EAAgBn1C,KAAK0yB,SAAW7I,EAAaygB,MAAQzgB,EAAaygB,MACxE,MAAM8K,EAAiBntB,EAAa2B,MAEpC,OAAO5pB,KAAK0yB,SACVtyB,EAACC,EAAI,CACHC,MAAO,CACL,2BAA4B,KAC5B,oCAAqCN,KAAKiyC,aAG5C7xC,EAAA,uBACcJ,KAAKq1C,UACjB/0C,MAAO,CACL,kCAAmC,KACnC,UAAWN,KAAKiyC,aAGlB7xC,EAAA,WAAS8G,KAAM,8BAA+BC,KAAM,GAAIwD,KAAMif,KAEhExpB,EAAA,OACEgH,KAAK,aAAY,cACJpH,KAAKiyC,WAAa,QAAU,OACzC3xC,MAAO,CACL,qCAAsC,KACtC,UAAWN,KAAKiyC,aAGlB7xC,EAAA,OAAKE,MAAM,mCACTF,EAAA,OAAKE,MAAO,mCAAoCP,GAAI,aAClDK,EAAA,2BACY,KACV+G,KAAMguC,EACN5qB,MAAO6qB,EACPlsC,IAAKlJ,KAAKs1C,QACVnwB,MAAOnlB,KAAKu1C,aAGhBn1C,EAAA,uBACc,SAASJ,KAAKq1C,YAC1B/0C,MAAM,oCACNoK,QAAUb,GAAM7J,KAAKi1C,mBAAmBprC,IAExCzJ,EAAA,WAAS8G,KAAM,iBAAkBC,KAAM,GAAIwD,KAAMif,MAGrDxpB,EAAA,OAAKE,MAAM,qCACRN,KAAK+0C,cAAc9sC,KAAKC,GAErB9H,EAAA,KAAG4G,KAAMkB,EAAKgB,IAAK5I,MAAO,CAAC,iBAAkB,OAC3CF,EAAA,QAAME,MAAO,2BAA4B4H,EAAKid,WAKtD/kB,EAAA,OAAKE,MAAM,sCACRN,KAAKw1C,QACJx1C,KAAKw1C,OAAOvtC,KAAK+D,GAEb5L,EAAA,KAAGE,MAAO,8CAA+C0G,KAAMgF,EAAE9C,KAC/D9I,EAAA,WAAS8G,KAAM,wBAAyBC,KAAM,GAAIwD,KAAMyqC,IACxDh1C,EAAA,QAAME,MAAO,gCAAiC0L,EAAEmZ,aAQ9D/kB,EAACC,EAAI,CACHC,MAAO,CACL,mBAAoB,KACpB,4BAA6BN,KAAKiyC,aAGpC7xC,EAAA,UACEE,MAAO,CACL,2BAA4B,KAC5B,UAAWN,KAAKiyC,YACjB,gBACcjyC,KAAKiyC,WAAa,OAAS,QAAO,gBACnC,QAGbjyC,KAAKiyC,WACJ7xC,EAAA,WAASE,MAAO,gBAAiB4G,KAAM,iBAAkBC,KAAM,EAAGwD,KAAMif,IAExExpB,EAAA,WAASE,MAAO,gBAAiB4G,KAAM,8BAA+BC,KAAM,EAAGwD,KAAMif,IAEvFxpB,EAAA,YAAOJ,KAAKq1C,YAEdj1C,EAAA,OACEE,MAAO,CACL,6BAA8B,KAC9B,UAAWN,KAAKiyC,aAGlB7xC,EAAA,OAAKE,MAAM,QACRN,KAAK+0C,cAAc9sC,KAAKC,GAErB9H,EAAA,KAAG4G,KAAMkB,EAAKgB,IAAK5I,MAAO,CAAC,iBAAkB,OAC3CF,EAAA,QAAME,MAAM,gBACVF,EAAA,WAAS8G,KAAM,sBAAuBC,KAAM,GAAIwD,KAAMif,KAExDxpB,EAAA,QAAME,MAAO,2BAA4B4H,EAAKid,WAKtD/kB,EAAA,UACEsK,QAAUb,GAAM7J,KAAKwyC,qBAAqB3oC,GAC1CvJ,MAAO,CACL,eAAgB,MACjB,aACU,cAEXF,EAAA,QAAME,MAAM,uBACVF,EAAA,QAAME,MAAM,8BAA8BN,KAAKy1C,gBAC/Cr1C,EAAA,WAAS8G,KAAM,iBAAkBC,KAAM,GAAIwD,KAAMsd,EAAa2B,W,uCCtR5E,MAAM8rB,GAAoB,s0M,MCQbC,GAAc,M,yCACI,K,uCAED,Y,6KAOL,K,eACK,K,cACD,M,cACC,M,qBACM,K,gBACL,K,iBACE,K,CAE/B91C,SACE,MAAM0K,EAAmB,CACvB,2BACAvK,KAAK41C,YAAc,wCAA0C,IAC7Dr1C,KAAK,KAEP,MAAMs1C,EAAc,CAAC,iCAAkC71C,KAAK81C,WAAWv1C,KAAK,KAC5E,MAAMw1C,EAAkB,CAAC,0CAA2C/1C,KAAK81C,WAAWv1C,KAAK,KACzF,OACEH,EAACC,EAAI,KACHD,EAAA,OACEE,MAAOiK,EAAgB,YACZvK,KAAKg2C,SAAQ,UACfh2C,KAAKi2C,QAAO,YACVj2C,KAAKo1B,KAAI,YACTp1B,KAAKk2C,SAAQ,gBACTl2C,KAAKm2C,UAEnBn2C,KAAKo2C,YAAch2C,EAAA,MAAIE,MAAM,qBAAqBN,KAAKo2C,aACtDp2C,KAAK41C,aACLx1C,EAAA,OAAKE,MAAM,2BACTF,EAAA,uBAAoBJ,KAAKq2C,UAAW/1C,MAAM,0CACxCF,EAAA,WAAS8G,KAAM,qBAAsBC,KAAM,MAE7C/G,EAAA,QAAME,MAAM,kCAAkCN,KAAKs2C,WACnDl2C,EAAA,uBAAoBJ,KAAKu2C,UAAWj2C,MAAM,2CACxCF,EAAA,WAAS8G,KAAM,sBAAuBC,KAAM,OAIlD/G,EAAA,OAAKE,MAAM,4BACTF,EAAA,QAAME,MAAOu1C,GAAc71C,KAAKw2C,WAChCp2C,EAAA,QAAME,MAAOy1C,GAAkB/1C,KAAKy2C,eACnCz2C,KAAK02C,sBAAwBt2C,EAAA,QAAME,MAAOu1C,GAAc71C,KAAK02C,uBAEhEt2C,EAAA,OAAKE,MAAM,uBACTF,EAAA,cAEDJ,KAAK22C,YACJv2C,EAAA,OAAKE,MAAM,qBACTF,EAAA,gDAEgBJ,KAAK42C,gBAAe,WACxB52C,KAAK42C,gBACf1tC,IAAKlJ,KAAK22C,WACVtwC,QAAS0e,EAAgBC,UAExBhlB,KAAK42C,mBAKdx2C,EAAA,UAAQI,GAAG,uB,eC9EnB,MAAMq2C,GAA2B,slE,MCcpBC,GAAqB,M,uCACJ,M,sBACO,K,eACP,Y,yBAMRC,iBAAiBl2B,GACnC7gB,KAAKsf,kBAAoBuB,IAAS,SAAWC,KAAKC,MAAMF,GAAQA,C,CAGlEhD,oBACE7d,KAAK+2C,iBAAiB/2C,KAAKuf,U,CAG7B1f,SACE,OACEO,EAACC,EAAI,KACFL,KAAKsf,WAAWrX,KAAKC,IACpB,IAAKA,EAAK8uC,QAAS,OACnB,MAAMC,EAAc,CAAC,wBAAyB/uC,EAAKgvC,MAAQ,+BAAiC,IAAI32C,KAAK,KACrG,OACEH,EAAA,OAAKE,MAAO22C,GACV72C,EAAA,QAAME,MAAM,iCAAiC4H,EAAKgvC,MAAQhvC,EAAKgvC,MAAQhvC,EAAKivC,aAC5E/2C,EAAA,QAAME,MAAM,gCAAgC4H,EAAKkvC,UACjDh3C,EAAA,QAAME,MAAM,kCAAkC4H,EAAK8uC,SAC/C,IAGTh3C,KAAKq3C,kBACJj3C,EAAA,OAAKE,MAAM,4BACTF,EAAA,QAAME,MAAM,kCAAkCN,KAAKq3C,mBAGtDr3C,KAAKsf,WAAWrX,KAAKC,IACpB,GAAIA,EAAK8uC,QAAS,OAClB,MAAMC,EAAc,CAAC,wBAAyB/uC,EAAKgvC,MAAQ,+BAAiC,IAAI32C,KAAK,KAErG,MAAM+2C,EAAe,CAAC,+BAAgCt3C,KAAK81C,WAAWv1C,KAAK,KAC3E,MAAMg3C,EAAgB,CAAC,gCAAiCv3C,KAAK81C,WAAWv1C,KAAK,KAC7E,OACEH,EAAA,OAAKE,MAAO22C,GACV72C,EAAA,QAAME,MAAOi3C,GAAgBrvC,EAAKgvC,MAAQhvC,EAAKgvC,MAAQhvC,EAAKivC,aAC5D/2C,EAAA,QAAME,MAAOg3C,GAAepvC,EAAKkvC,UAChCp3C,KAAK81C,YAAc,UAAY11C,EAAA,QAAME,MAAM,kCAAgC,KACxE,I,4EC7DlB,MAAMk3C,GAAa,gkD,MCONC,GAAO,M,yBAClB53C,SACE,MAAMC,EAAkB,CAAC,YAAYS,KAAK,KAE1C,OACEH,EAAA,MAAIE,MAAOR,GACTM,EAAA,a,eCbR,MAAMs3C,GAAiB,o6G,MCQVC,GAAW,M,sCACoBC,EAAuBv2C,Q,2EAKjExB,SACE,IAAIC,EAAkB,CAAC,kBAAkBS,KAAK,KAC9C,OAAQP,KAAKqG,SACX,KAAKuxC,EAAuBplC,QAAS,CACnC1S,EAAkB,CAAC,iBAAkB,2BAA2BS,KAAK,KACrE,OACEH,EAAA,MAAIE,MAAOR,GACTM,EAAA,KAAG4G,KAAMhH,KAAK63C,QAAO,eAAe,QACjC73C,KAAK83C,W,CAKd,KAAKF,EAAuBr/B,KAAM,CAChCzY,EAAkB,CAAC,iBAAkB,wBAAwBS,KAAK,KAClE,MAAMmkB,EAAsB,CAAC,aAAankB,KAAK,KAC/C,OACEH,EAAA,MAAIE,MAAOR,GACTM,EAAA,KAAG4G,KAAMhH,KAAK63C,QAAO,aAAc73C,KAAK+3C,aACrC/3C,KAAK83C,UACN13C,EAAA,QAAME,MAAO,mBACXF,EAAA,OAAKE,MAAOokB,GACVtkB,EAAA,WAAS8G,KAAM,yBAA0BC,KAAM,Q,CAO3D,KAAKywC,EAAuBI,SAAU,CACpCl4C,EAAkB,CAAC,iBAAkB,4BAA4BS,KAAK,KACtE,MAAMmkB,EAAsB,CAAC,aAAankB,KAAK,KAC/C,OACEH,EAAA,MAAIE,MAAOR,GACTM,EAAA,KAAG4G,KAAMhH,KAAK63C,QAAO,aAAc73C,KAAK+3C,aACtC33C,EAAA,QAAME,MAAO,mBACXF,EAAA,OAAKE,MAAOokB,GACVtkB,EAAA,WAAS8G,KAAM,qBAAsBC,KAAM,OAG9CnH,KAAK83C,W,CAKd,KAAKF,EAAuBK,SAAU,CACpCn4C,EAAkB,CAAC,iBAAkB,4BAA4BS,KAAK,KACtE,OAAOH,EAAA,MAAIE,MAAOR,GAAe,M,CAEnC,QAAS,CACPA,EAAkB,CAAC,kBAAkBS,KAAK,KAC1C,OACEH,EAAA,MAAIE,MAAOR,GACTM,EAAA,KAAG4G,KAAMhH,KAAK63C,QAAO,aAAc73C,KAAK+3C,aACrC/3C,KAAK83C,W,iBCpEpB,MAAMI,GAA0B,0iICAhC,MAAMC,GAA0B,+wSCAhC,MAAMC,GAA0B,8mG,MCWnBC,GAAa,M,+DAEI,W,iBACE,S,CAG9B/2C,mBACE,IAAIE,EAAYxB,KAAKyB,GAAGC,QAAQ,YAChC,GAAIF,EAAW,CACb,IAAKA,EAAUG,UAAUC,SAAS,gBAAiB,CACjD5B,KAAK6B,YAAc,O,GAKzBhC,SACE,MAAMC,EAAkB,CACtB,oBACA,sBAAsBE,KAAK6B,cAC3B,GAAG7B,KAAKqG,UACR,GAAGrG,KAAKs4C,YACR,GAAGt4C,KAAK6B,eACRtB,KAAK,KAEP,OACEH,EAACC,EAAI,KACHD,EAAA,OAAKE,MAAOR,GACVM,EAAA,c,uECtCV,MAAMm4C,GAAkB,8lR,MCSXC,GAAY,M,sCACeC,EAAmBp3C,Q,2CAE9B,K,cACA,K,iBACI,M,0DAGT,K,gBACQ,M,oEAGD,K,WACL,K,WACA,K,WACA,K,eACI,K,4LAa5BC,mBACEtB,KAAKuyB,GAAK,IAAIzB,IAAgBrF,IAC5B,IAAK,MAAMN,KAASM,EAAS,CAC3BzrB,KAAKwyB,eAAerH,EAAMwF,YAAYrT,M,KAG1Ctd,KAAKuyB,GAAG7D,QAAQvsB,SAASswB,K,CAG3BtJ,uBACEnpB,KAAKuyB,GAAGzE,Y,CAGV0E,eAAerrB,GACbnH,KAAK0yB,SAAWvrB,GAAQ,IAAM,KAAO,K,CAGvCuxC,sBACE14C,KAAK24C,UAAY34C,KAAK44C,WAAa54C,KAAK64C,SAAW,GAAG74C,KAAK44C,aAAa54C,KAAK64C,WAAa,GAC1F74C,KAAK84C,UACH94C,KAAK4I,UAAY5I,KAAK44C,WAAa54C,KAAK64C,SAAW,GAAK,GAAG74C,KAAK44C,UAAU/oC,OAAO,KAAK7P,KAAK64C,SAAShpC,OAAO,KAC7G,IAAK7P,KAAK2I,SAAU,CAClB3I,KAAK2I,SAAW3I,KAAK24C,S,CAEvB,IAAK34C,KAAK2L,QAAS,CACjB3L,KAAK2L,QAAU,4B,EAInB9L,SACE,IAAIk5C,EAAsB,CAAC,iCAAkC/4C,KAAKqG,SAAS9F,KAAK,KAChF,IAAIy4C,EAAgBh5C,KAAKkJ,KAAOlJ,KAAKkJ,IAAIlF,OAAS,EAAI,GAAK,YAC3D+0C,EAAsBA,EAAoBE,OAAOD,GAEjD,MAAMl5C,EAAkB,CAAC,iBAAkBE,KAAKqG,SAAS9F,KAAK,KAC9D,MAAM24C,EAAqB,CACzB,iDACA,mDAAmDl5C,KAAKqG,WACxD9F,KAAK,KACP,MAAMgD,EAASvD,KAAK4L,WAAa,SAAW,QAE5C,OACExL,EAAA,WAASE,MAAM,4BACbF,EAAA,OAAKE,MAAOy4C,GACT/4C,KAAKm5C,eAAiBn5C,KAAKqG,SAAWoyC,EAAmBp3C,SACxDjB,EAAA,OAAKE,MAAM,4CAA4CN,KAAKm5C,eAE9D/4C,EAAA,OAAKE,MAAOR,GACVM,EAAA,OAAKE,MAAM,mCACRN,KAAK4I,SACJxI,EAAA,KAAGE,MAAM,yCAAyC0G,KAAMhH,KAAKkJ,IAAK3F,OAAQA,GACxEnD,EAAA,OACEoI,QAASxI,KAAKyI,YAAc,QAAU,OAAM,cAChC,OACZL,IAAKpI,KAAK4I,SACVF,IAAK1I,KAAK2I,YAIdvI,EAAA,OAAKE,MAAM,6CACTF,EAAA,OAAKE,MAAM,sDAAqD,cAAa,QAC1EN,KAAK84C,aAKd14C,EAAA,OAAKE,MAAM,kCACTF,EAAA,KAAGE,MAAM,4CAA4C0G,KAAMhH,KAAKkJ,IAAK3F,OAAQA,GAC1EvD,KAAK24C,WAEP34C,KAAKo5C,eAAiBh5C,EAAA,OAAKE,MAAO44C,GAAqBl5C,KAAKo5C,eAC5Dp5C,KAAKq5C,aACHr5C,KAAKqG,SAAWoyC,EAAmBp3C,SACjCrB,KAAKqG,SAAWoyC,EAAmBa,WAAat5C,KAAK0yB,WACtDtyB,EAAA,OAAKE,MAAM,8CAA8CN,KAAKq5C,YAEjEr5C,KAAKu5C,QACHv5C,KAAKqG,SAAWoyC,EAAmBp3C,SACjCrB,KAAKqG,SAAWoyC,EAAmBa,WAAat5C,KAAK0yB,WACtDtyB,EAAA,OAAKE,MAAM,yCAAyCN,KAAKu5C,OAE5Dv5C,KAAKw5C,QACHx5C,KAAKqG,SAAWoyC,EAAmBp3C,SACjCrB,KAAKqG,SAAWoyC,EAAmBa,WAAat5C,KAAK0yB,WAAc,CACpEtyB,EAAA,OAAKE,MAAM,mDACTF,EAAA,QAAME,MAAM,+CACVF,EAAA,WAAS8G,KAAM,gBAAiBC,KAAM,MAExC/G,EAAA,QAAME,MAAM,yCAAyCN,KAAKw5C,SAG/Dx5C,KAAKy5C,QACHz5C,KAAKqG,SAAWoyC,EAAmBp3C,SACjCrB,KAAKqG,SAAWoyC,EAAmBa,WAAat5C,KAAK0yB,WAAc,CACpEtyB,EAAA,OAAKE,MAAM,mDACTF,EAAA,QAAME,MAAM,+CACVF,EAAA,WAAS8G,KAAM,gBAAiBC,KAAM,MAExC/G,EAAA,QAAME,MAAM,yCAAyCN,KAAKy5C,WAKnEz5C,KAAKqG,SAAWoyC,EAAmBa,UAClCl5C,EAAA,OAAKE,MAAM,0DACRN,KAAKq5C,YAAcr5C,KAAK0yB,UACvBtyB,EAAA,OAAKE,MAAM,8CAA8CN,KAAKq5C,YAE/Dr5C,KAAKu5C,OAASv5C,KAAK0yB,UAAYtyB,EAAA,OAAKE,MAAM,yCAAyCN,KAAKu5C,OACxFv5C,KAAKw5C,OACJx5C,KAAK0yB,UAAY,CACftyB,EAAA,OAAKE,MAAM,mDACTF,EAAA,QAAME,MAAM,+CACVF,EAAA,WAAS8G,KAAM,gBAAiBC,KAAM,MAExC/G,EAAA,QAAME,MAAM,yCAAyCN,KAAKw5C,SAG/Dx5C,KAAKy5C,OACJz5C,KAAK0yB,UAAY,CACftyB,EAAA,OAAKE,MAAM,mDACTF,EAAA,QAAME,MAAM,+CACVF,EAAA,WAAS8G,KAAM,gBAAiBC,KAAM,MAExC/G,EAAA,QAAME,MAAM,yCAAyCN,KAAKy5C,SAG/Dz5C,KAAK05C,WACJt5C,EAAA,OAAKE,MAAM,kDACTF,EAAA,QAAME,MAAM,SAASN,KAAK25C,eAAc,KACxCv5C,EAAA,YAAOJ,KAAK05C,c,eCxK9B,MAAME,GAAmB,ooTCGzB,IAAIC,G,MAMSC,GAAa,M,2QAQkB,M,4BAG1Cj8B,oBACE7d,KAAK+5C,aAAeh4C,OAAOi4C,U,CAG7BC,0BACEj6C,KAAKk6C,uBAAyBl6C,KAAKk6C,qB,CAGrC/wB,uBACEC,aAAaywB,G,CAGfh6C,SACE,MAAMoU,KACJA,EAAIkmC,UACJA,EAASC,uBACTA,EAAsBhJ,UACtBA,EAASiJ,oBACTA,EAAmBC,mBACnBA,EAAkBC,MAClBA,EAAKC,SACLA,EAAQC,eACRA,GACE35B,KAAKC,MAAM/gB,KAAK06C,gBAEpB,MAAMC,cAACA,EAAaC,uBAAEA,GAA0BN,EAAmB9vC,MAEnE,MAAMqwC,EAAmCN,EAAMvlB,YAE/C,MAAM8lB,EAAyBD,EAAiC72C,OAEhE,IAAI+2C,EAA0B,GAE9B,GAAID,EAAyB,IAAK,CAChC,GAAI96C,KAAKk6C,sBAAuB,CAC9B,MAAMc,EAAoBH,EAAmC,MAE7DE,EAA0BC,C,KACrB,CACL,MAAMA,EAAoBH,EAAiC5wC,UAAU,EAAG,KAAO,MAE/E8wC,EAA0BC,C,EAI9Bj5C,OAAOmE,iBAAiB,UAAU,KAChCkjB,aAAaywB,IACbA,GAAQp0C,YAAW,KACjBzF,KAAK+5C,aAAeh4C,OAAOi4C,UAAU,GACpC,IAAI,IAGT,MAAMiB,EAAwB,GAAGT,EAASU,0BAA0BjnC,IACpE,OACE7T,EAACC,EAAI,KACHD,EAAA,WAASE,MAAM,mBACbF,EAAA,KAAG4G,KAAMhH,KAAKm7C,uBAAwB76C,MAAM,gCAC1CF,EAAA,WAAS8G,KAAM,qBAAsBC,KAAM,KAC3C/G,EAAA,YAAOJ,KAAKo7C,0BAEdh7C,EAAA,WAASE,MAAM,4BACbF,EAAA,OAAKE,MAAM,uCACTF,EAAA,WACEA,EAAA,MAAIE,MAAM,yBAAyB2T,GAClCkmC,GAAa/5C,EAAA,KAAGE,MAAM,8BAA8B65C,GACpDC,GACCh6C,EAAA,KAAGE,MAAM,2CAA2C85C,IAGvDhJ,EACChxC,EAAA,OAAKgI,IAAKgpC,EAAW1oC,IAAI,GAAGpI,MAAM,2BAElCF,EAAA,OAAKE,MAAM,yBAAwB,cAAa,UAGnD+5C,GACCj6C,EAAA,OAAKE,MAAM,wCACR+5C,EAAoBl1B,OAAS/kB,EAAA,UAAKi6C,EAAoBl1B,OACtDk1B,EAAoB7vC,OACnBpK,EAAA,6BACEoK,MAAO6vC,EAAoB7vC,MAC3B6wC,IAAI,QACJC,aAAY,KACZC,iBAAgB,UAMxBZ,EAAcnwC,MAAMxG,OAAS,GAAK4sB,OAAOlwB,KAAKk6C,EAAuBpwC,OAAOxG,OAAS,IACrF5D,EAAA,WAASE,MAAM,4BACZg6C,EAAmBn1B,OAAS/kB,EAAA,UAAKk6C,EAAmBn1B,OACpDw1B,EAAcnwC,MAAMxG,OAAS,GAC5B5D,EAAA,WAASE,MAAM,+CACbF,EAAA,UAAKu6C,EAAcx1B,OACnB/kB,EAAA,MAAIE,MAAM,kCACRF,EAAA,UACGu6C,EAAcnwC,MAAMvC,KAAI,CAACC,EAAMrE,IAE5BzD,EAAA,YACGyD,EAAQ,GAAKzD,EAAA,WAAS8G,KAAM,sBAAuBC,KAAM,KACzDtD,IAAU,GACTzD,EAAA,YACEA,EAAA,KACE4G,KACEszC,EAAmBkB,mBAAmBlB,EAAmB1G,MACzD,+BACA1rC,EAAKnI,GAEPwD,OAAQ,UAEP2E,EAAK+L,KAAKqmC,EAAmB1G,cAWjDhjB,OAAOlwB,KAAKk6C,EAAuBpwC,OAAOxG,OAAS,GAClD5D,EAAA,WAASE,MAAM,+CACbF,EAAA,UAAKw6C,EAAuBz1B,OAC5B/kB,EAAA,MAAIE,MAAM,2CACPswB,OAAO/E,OAAO+uB,EAAuBpwC,OAAOvC,KAAI,KAAKC,KACpD9H,EAAA,UACG8H,EAAKD,KAAI,CAACC,EAAMrE,IAEbzD,EAACq7C,EAAQ,KACN53C,EAAQ,GACPzD,EAAA,UACEA,EAAA,UACEA,EAAA,YACEA,EAAA,WAAS8G,KAAM,sBAAuBC,KAAM,KAC5C/G,EAAA,YACEA,EAAA,KACE4G,KACEszC,EAAmBkB,mBAAmBlB,EAAmB1G,MACzD,+BACA1rC,EAAKnI,GAEPwD,OAAQ,UAEP2E,EAAK+L,KAAKqmC,EAAmB1G,WAOzC/vC,GAAS,GACRzD,EAAA,YACEA,EAAA,KACE4G,KACEszC,EAAmBkB,mBAAmBlB,EAAmB1G,MACzD,+BACA1rC,EAAKnI,GAEPwD,OAAQ,UAEP2E,EAAK+L,KAAKqmC,EAAmB1G,iBAcvD2G,GAASO,IAA2B,GACnC16C,EAAA,WAASE,MAAM,4BACZi6C,EAAMvlB,aACL50B,EAACq7C,EAAQ,KACPr7C,EAAA,UAAKm6C,EAAMp1B,OACX/kB,EAAA,OACEE,MAAM,qCACN+jB,WACGrkB,KAAKk6C,uBAAyBY,EAAyB,IACpDC,EACAR,EAAMvlB,eAKjB8lB,EAAyB,KACxB16C,EAAA,UACEE,MAAM,4CACNoK,QAAS,IAAM1K,KAAKi6C,0BAAyB,gBAC9B,GAAGj6C,KAAKk6C,sBAAwB,OAAS,WAEvDl6C,KAAKk6C,sBAAwBl6C,KAAK07C,kBAAoB17C,KAAK27C,qBAKjEnB,GAAYA,EAAShwC,MAAMxG,OAAS,GAAOy2C,GAAkBA,EAAemB,aAAa53C,OAAS,IACnG5D,EAAA,WAASE,MAAM,4BACbF,EAAA,OAAKE,MAAM,4CACRk6C,EAASr1B,OAAS/kB,EAAA,UAAKo6C,EAASr1B,OAChCq1B,EAASr1B,OAASs1B,EAAemB,aAAa53C,OAAS,GACtD5D,EAAA,gCACgB66C,EAAqB,WACzBA,EACV/xC,IAAKuxC,EAAemB,aAAY,cACpB,OACZv1C,QAASkF,EAAsByoB,eAKpCwmB,EAAShwC,OACRpK,EAAA,6BACEoK,MAAOgwC,EAAShwC,MAChB6wC,IAAI,QACJE,iBAAgB,wBAEhBM,OAAM,OAITpB,EAAemB,aAAa53C,OAAS,GACpC5D,EAAA,OAAKE,MAAM,0BAA0B8G,KAAK,gBACxChH,EAAA,YACAA,EAAA,YACAA,EAAA,YACAA,EAAA,aAIHq6C,EAAemB,aAAa53C,OAAS,GAAKhE,KAAK+5C,aAAe,KAC7D35C,EAAA,OAAKE,MAAM,6CACTF,EAAA,0BAAwBH,YAAY,sCACjCw6C,EAAeqB,cACd17C,EAAA,yCACqB,eACnBuG,eAAgB8zC,EAAeqB,aAAa32B,QAG/Cs1B,EAAesB,UACd37C,EAAA,yCACqB,WACnBuG,eAAgB8zC,EAAesB,SAAS52B,QAG3Cs1B,EAAeuB,YACd57C,EAAA,yCACqB,aACnBuG,eAAgB8zC,EAAeuB,WAAW72B,UAMnDs1B,EAAemB,aAAa53C,OAAS,GAAKhE,KAAK+5C,cAAgB,KAC9D35C,EAAA,OAAKE,MAAM,6CACTF,EAAA,oBAAgB,iCACbq6C,EAAeqB,cACd17C,EAAA,8BACe,eAAc,YAChBq6C,EAAeqB,aAAa32B,QAG1Cs1B,EAAesB,UACd37C,EAAA,8BAA2B,WAAU,YAAaq6C,EAAesB,SAAS52B,QAE3Es1B,EAAeuB,YACd57C,EAAA,8BACe,aAAY,YACdq6C,EAAeuB,WAAW72B,Y,eCvS7D,MAAM82B,GAA0B,ovG,MCcnBnC,GAAa,M,uDAEoB,Q,kGAId,K,CAE9Bj6C,SACE,OACEO,EAACC,EAAI,KACHD,EAAA,MACEE,MAAO,6BAA6BN,KAAKq7C,OAAOr7C,KAAK67C,OAAS,YAAc,MAC1E77C,KAAKs7C,aAAe,gBAAkB,MACpCt7C,KAAKu7C,iBAAmB,aAAe,MAE1Cv7C,KAAKk8C,YAAc97C,EAAA,MAAIE,MAAM,oCAAoCN,KAAKwK,MAAM,GAAG2a,OAC/EnlB,KAAKwK,MAAMvC,KAAI,EAAEkd,QAAO3a,YACvB,GAAKA,EAAcwb,QAAO,EAAEb,WAAWA,IAAU,KAAInhB,OAAS,EAAG,CAC/D,OACE5D,EAAA,WACIJ,KAAKk8C,YAAc97C,EAAA,MAAIE,MAAM,oCAAoC6kB,GAEnE/kB,EAAA,MAAIE,MAAM,oCACNkK,EAAcvC,KAAI,EAAEkd,QAAOjc,OAAMrF,KACjC,GAAIqF,EAAK,CACP,OACE9I,EAAA,MAAIE,MAAM,mCACRF,EAAA,KAAG4G,KAAMkC,GACNrF,IAAU,GAAKzD,EAAA,WAAS8G,KAAM,sBAAuBC,KAAM,KAC5D/G,EAAA,YAAO+kB,I,CAMf,OACE/kB,EAAA,MAAIE,MAAM,mCACPuD,IAAU,GAAKzD,EAAA,WAAS8G,KAAM,sBAAuBC,KAAM,KAC5D/G,EAAA,YAAO+kB,GACJ,K,qBCtD7B,MAAMg3B,GAAa,kvE,MCeNC,GAAO,M,0CAEY,S,mDAK9B70C,0BACEvH,KAAKsf,iBAAmB7X,EAAiBzH,KAAKuf,U,CAGhDje,mBACE,IAAIE,EAAYxB,KAAKyB,GAAGC,QAAQ,YAChC,GAAIF,EAAW,CACb,IAAKA,EAAUG,UAAUC,SAAS,gBAAiB,CACjD5B,KAAK6B,YAAc,O,GAKzBhC,SAWE,MAAMw8C,EAAc,CAAC,EAAG,EAAG,EAAG,GAC9B,MAAMC,EAAiBD,EAAYz4C,SAAS5D,KAAKsf,WAAWtb,QACxDu4C,EAAuBl7C,QACvBk7C,EAAuBjS,MAE3B,MAAMkS,EAAcF,GAAkBC,EAAuBjS,MAAQ,EAAI,EACzE,MAAMxqC,EAAkB,CAACw8C,EAAgB,aAAc,eAAet8C,KAAK6B,eAAetB,KAAK,KAC/F,MAAMuqC,EAAY,MAClB,IAAI2R,EAEJ,MAAO,CACLr8C,EAAA,OAAKE,MAAOR,GACTE,KAAKsf,WAAWrX,KAAI,CAAC0G,EAAG9K,KACvBA,EAAQ24C,GAAe,EAAKC,EAAY,QAAYA,EAAY,UAChE,OACEr8C,EAAA,uBACEE,MAAOwqC,EACPzkC,QAASi2C,EAAc,aACXz4C,EAAQ,EAAC,YACV8K,EAAEglB,QAAO,kBACHhlB,EAAEqmB,YAAW,0BACLrmB,EAAE+tC,KAAI,aACnBD,EAAS,cACRz8C,KAAK28C,YAClB,K,uCCtEd,MAAMC,GAAoB,k4J,MCSbC,GAAc,M,sCACiBN,EAAuBl7C,Q,0GAIzB,G,eACM,U,0BAE9CxB,SACE,MAAMmqC,EAAe,CAAChqC,KAAKqG,QAAS,uBAAuB9F,KAAK,KAChE,MAAMu8C,EAAsB,CAAC98C,KAAKqG,QAAS,gCAAgC9F,KAAK,KAEhF,MAAMw8C,EAAcC,SAASh9C,KAAKi9C,WAAa,GAAK,EAAI,OAAS,MAEjE,MAAMC,EAAqB,CAACl9C,KAAKqG,QAAS,0CAA0C9F,KAAK,KACzF,MAAM48C,EAAmB,CAACn9C,KAAKqG,QAASrG,KAAKy8C,UAAWM,EAAa,wCAAwCx8C,KAC3G,KAGF,OACEH,EAACC,EAAI,KACHD,EAAA,OAAKE,MAAO0pC,GACThqC,KAAKo9C,uBACJh9C,EAAA,OAAKE,MAAO68C,GACV/8C,EAAA,OAAKE,MAAM,UAAUgd,MAAM,MAAM3a,OAAO,MACtCvC,EAAA,WAASy4B,OAAO,2CAElBz4B,EAAA,OAAKE,MAAM,SAASgd,MAAM,MAAM3a,OAAO,MACrCvC,EAAA,WAASy4B,OAAO,4CAElBz4B,EAAA,MAAIE,MAAM,6BAA6BN,KAAKo9C,wBAGhDh9C,EAAA,OAAKE,MAAO48C,GACV98C,EAAA,MACEE,MAAM,8BAA6B,aACvB,GAAGN,KAAK28C,YAAc38C,KAAK28C,cAAc38C,KAAKi9C,aAE1D78C,EAAA,OAAKE,MAAM,qCAAqCN,KAAKi9C,aAGzD78C,EAAA,OAAKE,MAAOw8C,GACV18C,EAAA,MAAIE,MAAM,6BAA6B+jB,UAAWrkB,KAAKq9C,WACvDj9C,EAAA,OAAKE,MAAM,mCAAmC+jB,UAAWrkB,KAAKs9C,mBAGlEl9C,EAAA,UAAQI,GAAG,uB,eCvDnB,MAAM+8C,GAAsB,2sE,MCcfC,GAAgB,M,wFAGA,G,iBACG,S,yBAI9Bl8C,mBACE,IAAIE,EAAYxB,KAAKyB,GAAGC,QAAQ,YAChC,GAAIF,EAAW,CACb,IAAKA,EAAUG,UAAUC,SAAS,gBAAiB,CACjD5B,KAAK6B,YAAc,O,GAKzBhC,SACE,MAAM49C,EAAsB,CAC1B,qBACAz9C,KAAK6B,YACL,uBAAuB7B,KAAK6B,eAC5BtB,KAAK,KAEP,MAAMm9C,EAAqB,CAAC,2BAA4B,6BAA6B19C,KAAK6B,eAAetB,KAAK,KAE9G,OACEH,EAACC,EAAI,KACHD,EAAA,OAAKE,MAAOm9C,GACVr9C,EAAA,OAAKE,MAAM,6BACTF,EAAA,yBACcJ,KAAK0H,UAAS,YACf1H,KAAK4I,SAAQ,YACb5I,KAAK2I,SAChBd,iBAAkB,EAClBC,kBAAmB,KAGtB9H,KAAK6I,WAAazI,EAAA,OAAKE,MAAOo9C,GAAqB19C,KAAK6I,Y,uCCpDnE,MAAM80C,GAAa,82F,MCONC,GAAO,M,wEAEY,Q,CAG9Bt8C,mBACE,IAAIE,EAAYxB,KAAKyB,GAAGC,QAAQ,YAChC,GAAIF,EAAW,CACb,IAAKA,EAAUG,UAAUC,SAAS,gBAAiB,CACjD5B,KAAK6B,YAAc,O,GAKzBhC,SACE,MAAMg+C,EAAa,CAAC,WAAY79C,KAAK6B,YAAa,aAAa7B,KAAK6B,eAAetB,KAAK,KACxF,OACEH,EAAA,OAAKE,MAAOu9C,GACVz9C,EAAA,QAAME,MAAM,0BACVF,EAAA,OAAKE,MAAM,kBACTF,EAAA,WAAS8G,KAAM,gBAAiBC,KAAM,OAG1C/G,EAAA,OAAKE,MAAM,yBACTF,EAAA,OAAKE,MAAM,kBACTF,EAAA,cAEDJ,KAAK89C,gBAAkB19C,EAAA,OAAKE,MAAM,uBAAuBN,KAAK89C,iB,uCClCzE,MAAMC,GAAS,4BCGf,MAAM1hC,GAAY,CAACkB,EAAiBC,EAAejB,IAC1CzB,EAAG;;uBAEWyC;mBACJC;;qBAEEjB;;UAURyhC,GAAG,M,sCAIY,U,WAIF,S,YAIC,C,CACzBn+C,SACE,OACEO,EAAA,OAAKE,MAAO+b,GAAUrc,KAAKud,QAASvd,KAAKwd,MAAOxd,KAAKuc,SACnDnc,EAAA,a,eCnCR,MAAM69C,GAAmB,4qK,MCQZC,GAAa,M,+DAGO,M,gBACD,M,oBACI,M,iBACJ,e,mBACI,M,6CAEC,G,uBACG,I,CAEtC58C,mBACE,MAAM68C,EAAcn+C,KAAKyB,GAAGuD,cAAc,wBAE1Cm5C,EAAYj4C,iBAAiB,SAAUnD,IACrC,MAAMgV,MAACA,GAAShV,EAAMQ,OAEtBvD,KAAKo+C,kBAAoBrmC,EAAM/T,OAAS,EAAI,MAAQ,IAAI,IAG1D,GAAIhE,KAAKq+C,iBAAiBr6C,OAAS,EAAG,CACpC,GAAIjC,OAAOC,WAAauK,UAAW,OAEnC,MAAM+xC,EAAY,IAAIC,gBAAgBx8C,OAAOC,SAASw8C,QACtD,MAAMC,EAAcH,EAAU/yB,IAAI,GAAGvrB,KAAKq+C,oBAC1C,MAAMF,EAAcn+C,KAAKyB,GAAGuD,cAAc,wBAC1Cm5C,EAAYpmC,MAAQ0mC,GAAeA,EAAYz6C,OAAS,EAAIy6C,EAAc,GAC1Ez+C,KAAKo+C,kBAAoB,K,EAI7BM,mBACE1+C,KAAKo+C,kBAAoB,KACzB,MAAMD,EAAcn+C,KAAKyB,GAAGuD,cAAc,wBAC1Cm5C,EAAYpmC,MAAQ,GACpBomC,EAAYj6C,O,CAGdrE,SACE,OACEO,EAACC,EAAI,CAACC,MAAM,iBACRN,KAAK2+C,gBACLv+C,EAAA,SACE6f,QAASjgB,KAAK4+C,QACdt+C,MAAO,mCACPN,KAAK6+C,cAAgB,kBAAoB,kBACzC7+C,KAAK8+C,WAAa,cAAgB,kBAClC9+C,KAAK++C,YAAc,OAAS,MAE3B/+C,KAAKmlB,OAGV/kB,EAAA,OAAKE,MAAM,yBACTF,EAAA,OAAKE,MAAM,yBACRN,KAAK2+C,gBACJv+C,EAAA,SACEL,GAAIC,KAAK4+C,QACT3qC,KAAK,SAAQ,uBACQ,cACrB8D,MAAM,GACNzP,KAAK,OACL02C,YAAah/C,KAAKg/C,YAClB1+C,MAAM,yBAGRN,KAAK2+C,gBACLv+C,EAAA,SAAOL,GAAIC,KAAK4+C,QAASt2C,KAAK,OAAO02C,YAAah/C,KAAKg/C,YAAa1+C,MAAM,yBAE1EN,KAAKo+C,mBACLh+C,EAAA,UACEkI,KAAK,SACLhI,MAAM,sBAAqB,aAChB,QACXoK,QAAS,IAAM1K,KAAK0+C,oBAEpBt+C,EAAA,WAAS8G,KAAM,iBAAkBC,KAAM,GAAE,cAAc,WAI5DnH,KAAK2+C,gBACJv+C,EAAA,UACEkI,KAAK,SACLhI,MAAM,uBAAsB,aACjB,SAAQ,uBACE,4BACrBP,GAAG,4BACHgY,MAAM,SAEN3X,EAAA,WAAS8G,KAAM,iBAAkBC,KAAM,GAAIwD,KAAMsd,EAAa2B,MAAK,cAAc,WAGnF5pB,KAAK2+C,gBACLv+C,EAAA,UAAQkI,KAAK,SAAShI,MAAM,uBAAsB,aAAY,UAC5DF,EAAA,WAAS8G,KAAM,iBAAkBC,KAAM,GAAIwD,KAAMsd,EAAa2B,MAAK,cAAc,W,uCCtG/F,MAAMq1B,GAAiB,0oJ,MCeVC,GAAW,M,mEAIQ,G,iBACA,S,CAG9B13B,iBAAiB7B,GACf,UAAWA,IAAa,SAAU,CAChC3lB,KAAKsf,WAAawB,KAAKC,MAAM4E,E,KACxB,CACL3lB,KAAKsf,WAAaqG,C,EAGtB9H,oBACE7d,KAAKwnB,iBAAiBxnB,KAAKuf,U,CAG7Bje,mBACE,IAAIE,EAAYxB,KAAKyB,GAAGC,QAAQ,YAChC,GAAIF,EAAW,CACb,IAAKA,EAAUG,UAAUC,SAAS,gBAAiB,CACjD5B,KAAK6B,YAAc,O,GAKzBhC,SACE,MAAMC,EAAkB,CAAC,eAAgB,iBAAiBE,KAAK6B,eAAetB,KAAK,KACnF,MAAMkkB,EAAsB,CAAC,QAAQlkB,KAAK,KAC1C,MAAMmkB,EAAsB,CAAC,aAAankB,KAAK,KAE/C,IAAIuqC,EAAY,CAAC,wBAAyB9qC,KAAKsf,WAAWtb,OAAS,GAAK,EAAI,QAAU,SAASzD,KAAK,KAEpG,OACEH,EAACC,EAAI,KACHD,EAAA,OAAKE,MAAOR,GACTE,KAAK+sC,YAAY/oC,OAAS,GACzB5D,EAAA,cAAYE,MAAM,aAAaqzB,QAASC,EAAeC,IACpD7zB,KAAK+sC,aAGV3sC,EAAA,OAAKE,MAAM,2BACRN,KAAKsf,WAAWrX,KAAI,CAAC0G,EAAG9K,KACvB,IAAIs7C,EAAc,GAClB,GAAIn/C,KAAKsf,WAAWtb,OAAS,GAAK,EAAG,CACnCm7C,EAAct7C,GAAS,GAAKA,GAAS,EAAI,QAAU,E,KAC9C,CACLs7C,EAAct7C,GAAS,EAAI,QAAU,E,CAEvC,IAAIu7C,EAAmBtU,EAAUmO,OAAO,IAAKkG,GAC7C,IAAI57C,EAASoL,EAAE/C,WAAa,SAAW,QAEvC,OACExL,EAAA,OAAKE,MAAO8+C,GACVh/C,EAAA,kBAAeuO,EAAE+U,UAAWpjB,MAAM,gBAAgB0G,KAAM2H,EAAEzF,IAAK3F,OAAQA,GACrEnD,EAAA,QAAME,MAAOmkB,GAAsB9V,EAAEglB,SACrCvzB,EAAA,QAAME,MAAOokB,GACXtkB,EAAA,WAAS8G,KAAM,sBAAuBC,KAAM,OAG5C,MAKd/G,EAAA,UAAQI,GAAG,uB,oGClFnB,MAAM6+C,GAAgB,wgPCgBtB,IAAIC,GAAa,KAOjB,IAAIC,GAAe,K,MAONC,GAAU,M,wPAEM,M,mBACM,M,iBACF,M,wBACM,G,eACT,G,kBACG,G,2PASI,K,cACP,M,eACA,O,yEAGgB,K,wGAMb,M,uBACO,M,2BACI,M,mBACR,M,qBACE,M,kBACH,M,mBAgBR,E,WACR,G,kBACO,C,CAGIC,mBAC1Bz/C,KAAKiyC,YAAcjyC,KAAKiyC,WACxBjyC,KAAK0/C,kBAAkBnN,OACvB,IAAIoN,EAAcx9C,SAASy9C,qBAAqB,QAAQ,GAExD,GAAI5/C,KAAKiyC,WAAY,CACnB0N,EAAYl9C,MAAMo9C,SAAW,Q,KACxB,CACLF,EAAYl9C,MAAMo9C,SAAW,S,EAKF1L,sBAC7Bn0C,KAAK8/C,eAAiB9/C,KAAK8/C,cAC3B9/C,KAAK+/C,qBAAqBxN,M,CAGeyN,kBACzChgD,KAAKigD,mBAAqBjgD,KAAKigD,iB,CAIjCC,eACElgD,KAAKmgD,qB,CAGPA,sBACE,IAAIC,EAAYr+C,OAAOs+C,YACvB,GAAIC,KAAKC,IAAIvgD,KAAKwgD,cAAgBJ,IAAcpgD,KAAKygD,MAAO,CAC1D,M,CAGF,GAAIL,EAAYpgD,KAAKwgD,gBAAkBxgD,KAAK0gD,aAAc,CACxD1gD,KAAK2gD,iBAAiB,OACtB3gD,KAAK4gD,iBAAiBrO,M,CAGxB,GAAI6N,EAAYpgD,KAAKwgD,gBAAkBxgD,KAAK0gD,aAAc,CACxD1gD,KAAK2gD,mBACL3gD,KAAK6gD,eAAetO,M,CAGtB,GAAIvyC,KAAK0gD,aAAc,CACrB1gD,KAAK2gD,iBAAiB,M,CAGxB3gD,KAAKwgD,cAAgBJ,C,CAGvBO,iBAAiBG,EAAW,MAC1B,MAAMC,EAAqB5+C,SAAS6C,cAAc,QAAQrD,UAC1D,IAAIq/C,EAAehhD,KAAKyB,GAAGuD,cAAc,mBACzC,IAAKg8C,EAAc,OAEnBhhD,KAAK0gD,aAAeM,EAAar/C,UAAU2D,IAAI,aAAe07C,EAAar/C,UAAUwD,OAAO,aAE5F,GAAI27C,EAAU,CACZE,EAAar/C,UAAU2D,IAAI,gCAAiC,kCAC5D07C,EAAar/C,UAAUwD,OAAO,kCAE7BnF,KAAKihD,kBAAoBjhD,KAAK0gD,cAAgBK,EAAmBz7C,IAAI,iBAEtE,GAAIy7C,EAAmBn/C,SAAS,sBAAuB,CACrDo/C,EAAar/C,UAAU2D,IAAI,eAE3B,GAAIy7C,EAAmBn/C,SAAS,qBAAsB,CACpDo/C,EAAar/C,UAAU2D,IAAI,qB,GAKjC,IAAKw7C,EAAU,CACbE,EAAar/C,UAAUwD,OACrB,gCACA,iCACA,gCACA,cACA,sBAEF47C,EAAmB57C,OAAO,gB,EAI9B7D,mBAEEtB,KAAKuyB,GAAK,IAAIzB,IAAgBrF,IAC5B,IAAK,MAAMN,KAASM,EAAS,CAC3BzrB,KAAKkhD,iBAAiB/1B,EAAMwF,YAAYrT,M,KAG5Ctd,KAAKuyB,GAAG7D,QAAQvsB,SAASswB,MAEzB,MAAM0uB,EAAa,CACjBC,KAAM,KACNC,WAAY,QACZC,UAAW,CAAC,EAAK,IAGnBthD,KAAKuhD,YAAc,IAAIC,sBAAsB/1B,IAC3CA,EAAQppB,SAAS8oB,IACf,GAAIA,EAAM5nB,OAAOk+C,WAAa,SAAU,CACtCzhD,KAAK0gD,aAAev1B,EAAMu2B,c,IAE5B,GACDP,GAEH,MAAMQ,EAASx/C,SAAS6C,cAAc,UACtC,GAAI28C,EAAQ,CACV3hD,KAAKuhD,YAAY7yB,QAAQizB,E,CAG3B,MAAMC,EAAgB,CACpBR,KAAM,KACNC,WAAY,MACZC,UAAW,CAAC,EAAK,IAGnBthD,KAAK6hD,eAAiB,IAAIL,sBAAsB/1B,IAC9CA,EAAQppB,SAAS8oB,IACf,GAAIA,EAAM5nB,OAAOk+C,WAAa,SAAU,CACtCzhD,KAAK0gD,aAAev1B,EAAMu2B,c,IAE5B,GACDE,GAEH,MAAMt3B,EAASnoB,SAAS6C,cAAc,aACtC,GAAIslB,EAAQ,CACVtqB,KAAK6hD,eAAenzB,QAAQpE,E,CAI9BtqB,KAAKyB,GAAGmzC,SAAS,GAAG3vC,aAAa,qBAAsBjF,KAAKkzC,kBAC5DlzC,KAAK8hD,aAAe,IACpB,MAAMrvB,EAAOtwB,SAAS6C,cAAc,QACpCytB,EAAKhwB,MAAMs/C,YAAY,eAAgB,GAAG/hD,KAAK8hD,aAAe,M,CAGhEv6C,0BAEE,GAAIvH,KAAKgiD,qBAAsB,CAC7B,MAAM5O,QAAe3rC,EAAiBzH,KAAKgiD,sBAC3ChiD,KAAKiiD,WAAa7O,EAAO8O,YACzBliD,KAAKmiD,eAAiB/O,EAAOgP,gBAC7BpiD,KAAKqiD,aAAejP,EAAOkP,cAC3BtiD,KAAKuiD,WAAanP,EAAOoP,YAEzBxiD,KAAKyB,GAAGmzC,SAAS,GAAG3vC,aAAa,iCAAkCjF,KAAKwqB,Q,CAK1E,GAAIxqB,KAAKyiD,eAAgB,CACvBziD,KAAK0iD,iBAAmBj7C,EAAiBzH,KAAKyiD,gBAC9CziD,KAAKyB,GAAGmzC,SAAS,GAAG3vC,aAAa,mBAAoBjF,KAAKyiD,e,CAI5DziD,KAAKyB,GAAGmzC,SAAS,GAAG3vC,aAAa,OAAQjF,KAAKiyC,WAAWz9B,YACzDxU,KAAKyB,GAAGmzC,SAAS,GAAG3vC,aAAa,aAAcjF,KAAKyqB,WACpDzqB,KAAKyB,GAAGmzC,SAAS,GAAG3vC,aAAa,WAAYjF,KAAKwqB,SAClDxqB,KAAKyB,GAAGmzC,SAAS,GAAG3vC,aAAa,aAAcjF,KAAKu1C,WACpDv1C,KAAKyB,GAAGmzC,SAAS,GAAG3vC,aAAa,WAAYjF,KAAKs1C,SAClDt1C,KAAKyB,GAAGmzC,SAAS,GAAG3vC,aAAa,iCAAkCjF,KAAKwqB,SACxExqB,KAAKyB,GAAGmzC,SAAS,GAAG3vC,aAAa,2BAA4BjF,KAAKmiD,eAAe,SACjFniD,KAAKyB,GAAGmzC,SAAS,GAAG3vC,aAAa,4BAA6BjF,KAAKmiD,eAAe,UAClFniD,KAAKyB,GAAGmzC,SAAS,GAAG3vC,aAAa,mBAAoBjF,KAAKiiD,WAAW,eAErE,GAAIjiD,KAAK2iD,YAAc,GAAI,CACzB3iD,KAAK4iD,sBAAwB,I,EAIjCz5B,uBACEC,aAAak2B,IACbt/C,KAAKuyB,GAAGzE,aACR9tB,KAAKuhD,YAAYzzB,aACjB9tB,KAAK6hD,eAAe/zB,aACpB1E,aAAam2B,G,CAGf2B,iBAAiB/5C,GAEfA,GAAQ,KAAQnH,KAAK6iD,SAAWC,EAASC,OAAW/iD,KAAK6iD,SAAWC,EAASE,QAG7EhjD,KAAK0yB,SAAW1yB,KAAK6iD,YAAcC,EAASC,QAAUD,EAASG,QAC/D,MAAMC,EAAgBljD,KAAK6iD,SAC3B7iD,KAAKyB,GAAGmzC,SAAS,GAAG3vC,aAAa,YAAai+C,E,CAGhDrjD,S,MACE,GAAIG,KAAK6iD,WAAa,KAAM,OAE5B,MAAMM,EAAWnjD,KAAK0yB,SAAW7I,EAAaygB,MAAQzgB,EAAaC,IACnE,MAAMqrB,EAAgBn1C,KAAK0yB,SAAW7I,EAAaygB,MAAQzgB,EAAaygB,MACxE,MAAMngB,EAAYlC,EAAawL,MAC/B,MAAM2hB,EAAiBntB,EAAa2B,MAEpC,IAAI9pB,EAAkB,CACpB,iBACA,mBAAmBE,KAAK6iD,WACxB7iD,KAAK4yB,QAAU,WAAa,GAC5B,aAGF,MAAMwwB,EAAoC,KACxCrhD,OAAOgtB,oBAAoB,QAASs0B,GACpCrjD,KAAKy/C,kBAAkB,EAGzB,MAAM4D,EAAsBtgD,IAC1B,MAAOgH,GAAiBhH,EAAMugD,eAC9B,GAAIv5C,EAAcpI,UAAUC,SAAS,eAAgB,CACnDwhD,G,GAIJ,GAAIpjD,KAAKiyC,WAAY,CACnBlwC,OAAOmE,iBAAiB,SAAS,KAC/BkjB,aAAam2B,IACbA,GAAe95C,YAAW,QAEvB,IAAI,G,CAIX,IAAI89C,EAAa,KACjB,IAAIC,EAAwB1iC,KAAKC,MAAM/gB,KAAKkzC,kBAC5CsQ,EAAsBnhD,SAASuxC,IAC7B,GAAIA,EAAKpjB,SAAU,CACjB+yB,EAAa3P,EAAKL,Q,KAItB,OAAQvzC,KAAK6iD,UACX,KAAKC,EAASE,QAEZ,MAAO,CACL5iD,EAAA,UAAQE,MAAO,GAAGR,EAAgBS,KAAK,QACrCH,EAAA,OACEE,MAAO,CACL,cAAe,KACf,YACGN,KAAKiyC,aAAejyC,KAAK4iD,uBACzB5iD,KAAK8/C,gBAAkB9/C,KAAK4iD,yBAGlC5iD,KAAK4yB,SACJxyB,EAAA,WAASE,MAAO,+BAA+BN,KAAK8/C,cAAgB,UAAY,MAC9E1/C,EAAA,OAAKE,MAAM,6BACTF,EAAA,OAAKE,MAAM,4BACTF,EAAA,2BACY,KAAI,kBACGJ,KAAKwzB,cACtBrsB,KAAMguC,EACN5qB,MAAO6qB,EACPlsC,IAAKlJ,KAAKs1C,QACVnwB,MAAOnlB,KAAKu1C,aAGfv1C,KAAKyjD,kBAAkBz/C,OAAS,GAC/B5D,EAAA,sBACE6G,SAAS,IAAG,YACD,MAAK,cACJ8W,EAAA/d,KAAKuiD,WAAW,2BAAuB,MAAAxkC,SAAA,EAAAA,EAAI,KAAI,iBAC3C/d,KAAKyjD,kBAAiB,mBACpBzjD,KAAKy1C,iBAG3Br1C,EAAA,OAAKE,MAAM,2BACTF,EAAA,yCAAsCJ,KAAKkzC,iBAAkBE,OAAQpzC,KAAKmiD,eAAgBvvB,QAAO,QAC/F5yB,KAAK0jD,UACLtjD,EAAA,kBACEE,MAAO,8BACP6G,KAAM,GACNojB,MAAO6qB,EAAc,WACX,KAAI,kBACGp1C,KAAKwzB,cAAa,gBACpBxzB,KAAK2jD,YAAW,kBACdJ,EAAU,aACfvjD,KAAK4jD,gBACjBxQ,OAAQpzC,KAAKqiD,aAAY,gBACVriD,KAAK6jD,qBAAoB,eAC1B7jD,KAAK8jD,kBAGtB9jD,KAAK0iD,WAAWz6C,KAAI,EAAEkd,QAAOjc,SAE1B9I,EAAA,KAAGE,MAAO,8BAA+B0G,KAAMkC,GAC7C9I,EAAA,WAAS8G,KAAM,wBAAyBC,KAAM,GAAIwD,KAAMsd,EAAawL,QACrErzB,EAAA,YAAO+kB,SAQrB/kB,EAAA,WACEE,MAAO,6BAA6BN,KAAK4yB,QAAU,WAAa,MAC9D5yB,KAAK2iD,YAAc,sBAAwB,oBAAsB,MAGnEviD,EAAA,OAAKE,MAAO,4BACTN,KAAK4yB,SAAW5yB,KAAK2iD,WAAa,uBAAyBviD,EAAA,SAAIJ,KAAK+jD,oBACpE/jD,KAAK4yB,QACJxyB,EAAA,KAAG4G,KAAMhH,KAAKwqB,SACXxqB,KAAK2iD,WAAa,2BAA6B3iD,KAAK8zB,aACnD1zB,EAAA,OAAKgI,IAAKpI,KAAK8zB,aAAcprB,IAAK,GAAG1I,KAAKyqB,mBAE1CzqB,KAAc,WAIlBI,EAAA,gBAAc+G,KAAMg8C,EAAU54B,MAAOJ,EAAWjhB,IAAKlJ,KAAKwqB,QAASrF,MAAOnlB,KAAKyqB,aAGlFzqB,KAAK2iD,WAAa,uBAAyBviD,EAAA,QAAM6T,KAAK,UACrDjU,KAAK4yB,SACLxyB,EAAA,OAAKE,MAAM,2BACTF,EAAA,yCAAsCJ,KAAKkzC,iBAAkBE,OAAQpzC,KAAKmiD,kBACxEniD,KAAK0jD,UACLtjD,EAAA,kBACE+G,KAAM,GAAE,kBACSnH,KAAKwzB,cAAa,gBACpBxzB,KAAK2jD,YAAW,kBACdJ,EACjBh5B,MAAOtC,EAAawL,MAAK,aACbzzB,KAAK4jD,gBACjBxQ,OAAQpzC,KAAKqiD,aAAY,gBACVriD,KAAK6jD,qBAAoB,eAC1B7jD,KAAK8jD,kBAGtB9jD,KAAK0iD,WAAWz6C,KAAI,EAAEkd,QAAOjc,SAE1B9I,EAAA,KAAGE,MAAO,8BAA+B0G,KAAMkC,GAC7C9I,EAAA,WAAS8G,KAAM,wBAAyBC,KAAM,GAAIwD,KAAMsd,EAAawL,QACrErzB,EAAA,YAAO+kB,UAUzB,KAAK29B,EAASC,OAEZ,OACE3iD,EAAA,UAAQE,MAAOR,EAAgBS,KAAK,KAAI,mBAAoBP,KAAKiyC,YAC/D7xC,EAAA,OAAKE,MAAO,CAAC,cAAe,KAAM,YAAaN,KAAKiyC,cACpD7xC,EAAA,OAAKE,MAAO,CAAC,cAAe,KAAM,gBAAiBN,KAAK8/C,iBACvD9/C,KAAK4yB,SACJxyB,EAAA,WAASE,MAAO,+BAA+BN,KAAK8/C,cAAgB,UAAY,MAC9E1/C,EAAA,OAAKE,MAAM,6BACTF,EAAA,OAAKE,MAAM,4BACTF,EAAA,2BACY,KAAI,kBACGJ,KAAKwzB,cACtBrsB,KAAMguC,EACN5qB,MAAO6qB,EACPlsC,IAAKlJ,KAAKs1C,QACVnwB,MAAOnlB,KAAKu1C,aAGhBn1C,EAAA,OAAKE,MAAM,2BACTF,EAAA,yCAAsCJ,KAAKkzC,iBAAkBE,OAAQpzC,KAAKmiD,eAAgBvvB,QAAO,QAC/F5yB,KAAK0jD,UACLtjD,EAAA,kBACEE,MAAO,8BACP6G,KAAM,GACNojB,MAAO6qB,EAAc,WACX,KAAI,kBACGp1C,KAAKwzB,cAAa,gBACpBxzB,KAAK2jD,YAAW,kBACdJ,EAAU,aACfvjD,KAAK4jD,gBACjBxQ,OAAQpzC,KAAKqiD,aAAY,gBACVriD,KAAK6jD,qBAAoB,eAC1B7jD,KAAK8jD,kBAGtB9jD,KAAKyjD,kBAAkBz/C,OAAS,GAC/B5D,EAAA,mCACcJ,KAAKu1C,UAAS,WAChBv1C,KAAKs1C,QAAO,aACVt1C,KAAKyqB,UAAS,WAChBzqB,KAAKwqB,QAAO,YACX,KACXgrB,OAAQx1C,KAAK0iD,WAAU,iBACP1iD,KAAKyjD,uBAOjCrjD,EAAA,WAASE,MAAM,6BACbF,EAAA,OAAKE,MAAO,4BACTN,KAAK2iD,WAAa,uBAAyBviD,EAAA,SAAIJ,KAAK+jD,oBACpD/jD,KAAK4yB,QACJxyB,EAAA,KAAG4G,KAAMhH,KAAKwqB,SACXxqB,KAAK2iD,WAAa,2BAA6B3iD,KAAK8zB,aACnD1zB,EAAA,OAAKgI,IAAKpI,KAAK8zB,aAAcprB,IAAK,GAAG1I,KAAKyqB,mBAE1CzqB,KAAc,WAIlBI,EAAA,gBAAc+G,KAAMg8C,EAAU54B,MAAOJ,EAAWjhB,IAAKlJ,KAAKwqB,QAASrF,MAAOnlB,KAAKyqB,aAGnFrqB,EAAA,OAAKE,MAAM,4BACPN,KAAK4yB,SACLxyB,EAAA,yCAAsCJ,KAAKkzC,iBAAkBE,OAAQpzC,KAAKmiD,kBAE1EniD,KAAK4yB,UAAY5yB,KAAK0jD,UACtBtjD,EAAA,kBACE+G,KAAM,GACNojB,MAAOtC,EAAawL,MAAK,kBACRzzB,KAAKwzB,cAAa,gBACpBxzB,KAAK2jD,YAAW,kBACdJ,EAAU,aACfvjD,KAAK4jD,gBACjBxQ,OAAQpzC,KAAKqiD,aAAY,gBACVriD,KAAK6jD,qBAAoB,eAC1B7jD,KAAK8jD,kBAGvB1jD,EAAA,UACEsK,QAAS,IAAM04C,IACf9iD,MAAO,mCAAkC,aAC7BN,KAAKiyC,WAAajyC,KAAKiiD,WAAW,SAAWjiD,KAAKiiD,WAAW,QAAO,gBACjE,GAAGjiD,KAAKiyC,eAErBjyC,KAAKiyC,YAAc7xC,EAAA,WAAS8G,KAAM,oBAAqBC,KAAM,GAAIwD,KAAMsd,EAAawL,QACrFzzB,KAAKiyC,YACJ7xC,EAACq7C,EAAQ,KACPr7C,EAAA,YAAOJ,KAAKy1C,gBACZr1C,EAAA,WAAS8G,KAAM,iBAAkBC,KAAM,QAK/C/G,EAAA,OACEE,MAAO,CACL,UAAWN,KAAKiyC,WAChB,wBAAyB,MAC1B,cACY,IAAIjyC,KAAKiyC,cAEtB7xC,EAAA,QAAM6T,KAAM,mB,uCCzhB5B,MAAM+vC,GAAc,6iJ,MCQPC,GAAQ,M,mCACW55B,EAAcs3B,O,WACd15B,EAAawL,M,aAChB,M,mBACM,M,+BAEJ5J,EAAaC,I,mBAG1CjqB,SACE,MAAMqkD,EAAelkD,KAAK4yB,QAAU,QAAU,OAE9C,MAAM9yB,EAAkB,CACtB,eACA,iBAAiBE,KAAKsI,SAAS47C,IAC/B,iBAAiBlkD,KAAKsI,OACtB,UACA/H,KAAK,KAEP,OAAOP,KAAKkJ,IACV9I,EAACC,EAAI,CAACC,MAAOR,IACTE,KAAKwzB,eACLpzB,EAAA,KAAG4G,KAAMhH,KAAKkJ,KACZ9I,EAAA,WACEE,MAAO,CAAC,qBAAsB,KAAMwyB,MAAO9yB,KAAK4yB,SAChD1rB,KAAM,kBACNC,KAAMnH,KAAKmH,KACXwD,KAAM3K,KAAKuqB,QAEbnqB,EAAA,QAAME,MAAO,CAAC,sBAAuB,KAAMwyB,MAAO9yB,KAAK4yB,SAAUnwB,MAAO,CAAC8nB,MAAOvqB,KAAKuqB,QAClFvqB,KAAKmlB,QAIXnlB,KAAKwzB,eACJpzB,EAAA,OAAKE,MAAM,gBACTF,EAAA,WACEE,MAAO,CAAC,qBAAsB,KAAMwyB,MAAO9yB,KAAK4yB,SAChD1rB,KAAM,kBACNC,KAAMnH,KAAKmH,KACXwD,KAAM3K,KAAKuqB,QAEbnqB,EAAA,QAAME,MAAO,CAAC,sBAAuB,KAAMwyB,MAAO9yB,KAAK4yB,SAAUnwB,MAAO,CAAC8nB,MAAOvqB,KAAKuqB,QAClFvqB,KAAKmlB,SAKZnlB,KAAKmlB,MACP/kB,EAACC,EAAI,CAACC,MAAOR,GACXM,EAAA,WACEE,MAAO,CAAC,qBAAsB,KAAMwyB,MAAO9yB,KAAK4yB,SAChD1rB,KAAM,kBACNC,KAAMnH,KAAKmH,KACXwD,KAAM3K,KAAKuqB,QAEbnqB,EAAA,QAAME,MAAO,CAAC,sBAAuB,KAAMwyB,MAAO9yB,KAAK4yB,SAAUnwB,MAAO,CAAC8nB,MAAOvqB,KAAKuqB,QAClFvqB,KAAKmlB,QAEH,E,eCnEb,MAAMg/B,GAAgB,25P,MC4BTC,GAAU,M,2FAGSn8B,EAAawL,M,mBACV,M,aACN,M,mBACM,M,iBACF,M,0HAOF,M,iFAUS,K,CAKtClsB,0BACEvH,KAAKmzC,cAAgB1rC,EAAiBzH,KAAKozC,QAE3C,GAAIpzC,KAAKqkD,YAAa,CACpBrkD,KAAKskD,mBAAqB78C,EAAiBzH,KAAKqkD,Y,CAGlD,GAAIrkD,KAAKqiD,aAAc,CACrBriD,KAAKukD,oBAAsB98C,EAAiBzH,KAAKqiD,cAEjDriD,KAAKwkD,iBAAmBxkD,KAAKukD,cAAc,gBAC3CvkD,KAAKykD,iBAAmBzkD,KAAKukD,cAAc,sBAC3CvkD,KAAK0kD,iBAAmB1kD,KAAKukD,cAAc,sBAC3CvkD,KAAK2kD,uBAAyB3kD,KAAKukD,cAAc,qB,EAMrDrS,qBACElyC,KAAK4kD,kB,CAKPC,oBACE7kD,KAAK4kD,kB,CAKPtS,sBACEtyC,KAAK4kD,kB,CAKPxS,iCACEpyC,KAAK4kD,kB,CAIPE,kBAAkB/hD,GAEhB,GAAIA,EAAMgiD,QAAU,EAAG,OAEvB,GAAI/kD,KAAKglD,kBAAmB,CAC1B,MAAMC,EAAOliD,EAAMkiD,MAASliD,EAAMugD,cAAgBvgD,EAAMugD,eAExD,GAAK2B,EAAK,GAAmBtjD,UAAUC,SAAS,eAAgB,CAC9D5B,KAAK4kD,mBACL7hD,EAAMqH,iB,GAWZw6C,mBACE5kD,KAAKglD,kBAAoB,MAEzB,IAAIE,EAAY/iD,SAASC,iBAAiB,sBAAsB,GAChE,GAAI8iD,EAAW,CACb,IAAIC,EAAYpjD,OAAOojD,UACvB,UAAWA,IAAc,YAAa,CACpCA,EAAUC,M,EAIdplD,KAAKy0C,oB,CAGP4Q,wBAAwBtiD,GACtB,GAAI/C,KAAKwzB,cAAe,CACtB,IAAI8xB,EAAOtlD,KAAK2jD,YAAc,QAAU,GACxC,IAAI4B,EAAoB,IAAMvlD,KAAKwlD,eAAiBF,EAAO,yBAC3D,GAAItlD,KAAKwlD,gBAAkB,KAAM,CAC/BD,EAAoB,IAAMvlD,KAAKwlD,eAAiBF,EAAO,sB,MAClD,GAAItlD,KAAKwlD,gBAAkB,KAAM,CACtCD,EAAoB,IAAMvlD,KAAKwlD,eAAiBF,EAAO,qB,MAClD,GAAItlD,KAAKwlD,gBAAkB,KAAM,CACtCD,EAAoB,IAAMvlD,KAAKwlD,eAAiBF,EAAO,0B,CAEzDtjD,SAASgF,KAAOu+C,C,KACX,CACLvlD,KAAKglD,mBAAqBhlD,KAAKglD,kBAE/B,GAAIhlD,KAAKglD,kBAAmB,CAE1BhlD,KAAKmyC,mBAAmBI,OAExBvyC,KAAK0yC,eAAe1yC,KAAKyB,IAGzB,IAAIyjD,EAAY/iD,SAASC,iBAAiB,sBAAsB,GAEhE,GAAI8iD,EAAW,CACb,MAAMO,EAAgCzlD,KAAKyB,GAAGmxC,WAAW5tC,cACvD,8BAEFkgD,EAAUvjD,UAAUwD,OAAO,UAC3BsgD,EAA8BC,OAAOR,GACpCA,EAAUtS,WAAW5tC,cAAc,6BAA6CvC,MAAMysC,SAAW,WACjGgW,EAAUtS,WAAW5tC,cAAc,qBAAqCvC,MAAMysC,SAAW,WACzFgW,EAAUtS,WAAW5tC,cAAc,qBAAqCvC,MAAMyc,SAAW,M,CAI5FzZ,YAAW,KACT,MAAM04C,EAAcn+C,KAAKyB,GAAGmxC,WAAW5tC,cAAc,gBACrDm5C,EAAYj6C,OAAO,G,KAEhB,CACLlE,KAAK4kD,kB,EAIT7hD,EAAMqH,iB,CAGRsoC,eAAenvC,GACb,IAAIsvC,EAAe,IACnB,IAAI8S,EAAY,EAChB,MAAMC,EAAcriD,EAAOqvC,WAAWxwC,iBAAiB,uBAAuB,GAC9E,IAAIyjD,EAAsBD,EAAYnjD,MAAMC,QAE5C,GAAI1C,KAAK4yB,QAAS,CAChB,IAAIkgB,EAAWvvC,EAAO7B,QAAQ,gCAC9B,GAAIoxC,EAAU,CACZ,IAAIgT,EAAoBhT,EAASzb,aACjCwb,EAAe,GAAGiT,MAClB,IAAIC,EAAYjT,EAASkT,UAGzBJ,EAAYnjD,MAAMC,QAAU,OAC5BijD,EAAYG,EAAoBC,EAAYH,EAAYvuB,Y,MAErD,CACL,IAAIyb,EAAWvvC,EAAO7B,QAAQ,mBAC9B,GAAIoxC,EAAU,CACZ,IAAIgT,EAAoBhT,EAASnxC,UAAUC,SAAS,iCAChDkxC,EAASzb,aACTyb,EAASkT,UAAYlT,EAASzb,aAElCwb,EAAe,GAAGiT,MAGlBF,EAAYnjD,MAAMC,QAAU,OAC5B,IAAIujD,EAAoBL,EAAYvuB,aAEpCsuB,EAAYM,EAAoBH,C,EAIpCF,EAAYnjD,MAAMC,QAAUmjD,EAC5BD,EAAYnjD,MAAMqD,IAAM+sC,EAExB7yC,KAAKy0C,mBAAmB,OAAQkR,E,CAGlClR,mBAAmBC,EAAQ,QAAS5uC,EAAM,GACxC,IAAIgtC,EAAW9yC,KAAKyB,GAAGC,QAAQ,mBAC/B,IAAIizC,EAAgB7B,EAAS8B,SAAS,GAEtC,GAAID,EAAe,CACjB,GAAID,IAAU,OAAQ,CACpB,IAAIG,EAAK9yC,OAAO+yC,YAAchvC,EAC9B6uC,EAAclyC,MAAME,OAAS,GAAGkyC,MAChCF,EAAclyC,MAAMqD,IAAM,GAAGA,MAC7B6uC,EAAclyC,MAAMysC,SAAW,WAC/ByF,EAAchzC,UAAU2D,IAAI,Y,KACvB,CACLqvC,EAAcvvC,gBAAgB,SAC9BuvC,EAAchzC,UAAUwD,OAAO,Y,GAKrCtF,SACE,MAAMqmD,EAAyBnkD,OAAOC,SAASmkD,SAC/C,MAAMC,EAAsB,CAAC,WAAY,aAAc,WAEvD,OACEhmD,EAAA,OACEE,MAAO,CACL,cAAe,KACf,uBAAwBN,KAAKglD,kBAC7B,WAAYhlD,KAAK4yB,UAGnBxyB,EAAA,uBACcJ,KAAKqmD,UAAYrmD,KAAKmzC,QAAQ,QAAU,GAAE,gBACvC,GAAGnzC,KAAKglD,oBACvB1kD,MAAO,CACL,iBAAkB,KAClB,gBAAiBN,KAAKsmD,cACtB,UAAWtmD,KAAKglD,kBAChB,YAAaoB,EAAoB5gC,MAAMtd,GAASA,IAASg+C,KAE3Dx7C,QAAUb,GAAM7J,KAAKqlD,wBAAwBx7C,GAC7C08C,SAAUH,EAAoB5gC,MAAMtd,GAASA,IAASg+C,IAA0B,KAAO,OAEtFlmD,KAAKqmD,UACJjmD,EAAA,QAAME,MAAO,CAAC,wBAAyB,KAAM,+BAAgCN,KAAK4yB,UAC/E5yB,KAAKmzC,QAAQ,UACT,GAIT/yC,EAAA,WAAS8G,KAAM,iBAAkBC,KAAMnH,KAAKmH,KAAMwD,KAAM3K,KAAKuqB,UAE7DvqB,KAAKwzB,eACLpzB,EAAA,OACEE,MAAO,CACL,qBAAsB,KACtB,8BAA+BN,KAAKglD,mBACrC,cACY,IAAIhlD,KAAKglD,qBAEtB5kD,EAAA,OAAKE,MAAM,+BACTF,EAAA,OAAKE,MAAM,6BACTF,EAAA,OAAKE,MAAM,oCACTF,EAAA,QAAME,MAAM,eAAeN,KAAKwkD,kBAChCpkD,EAAA,OAAKE,MAAM,eAAeN,KAAK2kD,0BAGnCvkD,EAAA,OAAKL,GAAG,uBAAuBO,MAAM,gBACnCF,EAAA,OAAKE,MAAM,kBACXF,EAAA,OAAKE,MAAM,yCAEXF,EAAA,OAAKE,MAAM,aACTF,EAAA,OAAKqC,MAAO,CAAC8Z,OAAQ,eAAgBxc,GAAG,6BACtCK,EAAA,8BAA0B,SAAS+kB,MAAM,OAI7C/kB,EAAA,OAAKE,MAAM,YACTF,EAAA,OAAKE,MAAM,iBAAgB,gBAAe,oBAE5CF,EAAA,OAAKE,MAAM,YACTF,EAAA,OAAKE,MAAM,4BACTF,EAAA,yBACEA,EAAA,OAAKE,MAAM,yBAEbF,EAAA,OAAKE,MAAM,sBAAsB8G,KAAK,kBACtChH,EAAA,OAAKE,MAAM,iBAAiB8G,KAAK,SAASrH,GAAG,iBAAgB,YAAW,cAK7EC,KAAKskD,cAAgBtkD,KAAKskD,aAAatgD,OAAS,GAC/C5D,EAAA,OAAKE,MAAM,6BACTF,EAAA,OAAKE,MAAM,SAASN,KAAK0kD,kBACzBtkD,EAAA,OAAKE,MAAM,QACRN,KAAKskD,aAAar8C,KAAK+D,IACtB,IAAIw6C,EAAmBx6C,EAAEJ,WAAa,SAAW,QACjD,OACExL,EAAA,KAAGE,MAAM,sBAAsB0G,KAAMgF,EAAE9C,IAAK3F,OAAQijD,GAClDpmD,EAAA,WAAS8G,KAAM,yBAA0BC,KAAM,GAAIwD,KAAMsd,EAAawL,QACtErzB,EAAA,QAAME,MAAM,SAAS0L,EAAEmZ,OACvB/kB,EAAA,QAAME,MAAM,eAAe0L,EAAEgpB,aAC3B,MAMd50B,EAAA,UACEsK,QAAS,IAAM1K,KAAK4kD,mBACpBtkD,MAAO,CACL,mCAAoC,MACrC,aACWN,KAAKykD,iBAAgB,gBAClB,GAAGzkD,KAAKglD,qBAEvB5kD,EAAA,QAAME,MAAM,2CACVF,EAAA,QAAME,MAAM,iDAAiD2G,SAAS,KACnEjH,KAAKykD,kBAERrkD,EAAA,WAAS8G,KAAM,iBAAkBC,KAAM,GAAIwD,KAAMsd,EAAawL,Y,uCCpVhF,MAAMgzB,GAAsB,67I,MCOfC,GAAgB,M,yBAC3B7mD,SACE,MAAMC,EAAkB,CAAC,sBAAsBS,KAAK,KAEpD,OACEH,EAACC,EAAI,CAACC,MAAOR,GACXM,EAAA,aACAA,EAAA,UAAQI,GAAG,uB,eCdnB,MAAMmmD,GAAY,yyMCElB,IAAIjmD,GAAO,CACTQ,IAAK,GACLD,KAAM,GACNmuB,KAAM,GACNw3B,GAAI,GACJ13B,MAAO,GACP23B,KAAM,GACNr7B,OAAQ,IAIV,IAAIznB,GAAY,CACd,IAAK,EACL,IAAK,EACL,GAAI,EACJ,GAAI,GAEN,IAAI+iD,GACJ,IAAIC,GACJ,IAAI99B,G,MAOS+9B,GAAM,M,gEAEc,G,yBACS,K,+HAMV,Q,CAE9BnpC,oBACE,MAAMopC,EAAWjnD,KAAKyB,GAAGW,iBAAiB,gBAC1C,GAAI6kD,EAAU,CACZjnD,KAAKknD,gBAAkB/jD,MAAM4iB,KAAKkhC,GAAUh/C,KAAKk/C,IACxC,CACLr8C,MAAOq8C,EAAMriD,aAAa,aAC1B/E,GAAIonD,EAAMriD,aAAa,aAAa5E,cAAcC,QAAQ,MAAO,Q,EAMzEmB,mBACE,IAAIE,EAAYxB,KAAKyB,GAAGC,QAAQ,YAChC,GAAIF,EAAW,CACb,IAAKA,EAAUG,UAAUC,SAAS,gBAAiB,CACjD5B,KAAK6B,YAAc,O,EAIvB,MAAMulD,EAAepnD,KAAKyB,GAAGuD,cAAc,uBAE3C,GAAIoiD,EAAc,CAChBpnD,KAAKqnD,eAAeD,GAEpB,MAAME,EAAatnD,KAAKyB,GAAGW,iBAAiB,wBAAwB,GACpE,MAAMmlD,EAAcvnD,KAAKyB,GAAGW,iBAAiB,yBAAyB,GACtE,MAAMolD,EAAUxnD,KAAKwnD,QAErBxnD,KAAKynD,kBAAkBD,EAASF,EAAYC,GAE5CC,EAAQthD,iBACN,UACA,KACE+iB,GAAgBxjB,YAAW,KACzB1D,OAAOqnB,aAAaH,IACpBjpB,KAAKynD,kBAAkBD,EAASF,EAAYC,EAAY,GACvD,IAAI,GAET,OAGF,GAAIC,EAAQE,aAAevlD,SAASswB,KAAKk1B,YAAa,CACpDL,EAAW3lD,UAAU2D,IAAI,aACzBiiD,EAAY5lD,UAAU2D,IAAI,Y,CAG5B,MAAMsiD,EAAc,IACpBL,EAAYrhD,iBAAiB,SAAU2D,IACrCA,EAAE1F,iBACFojD,EAAY5lD,UAAU2D,IAAI,eAC1BkiD,EAAQK,SAAS,CACf/hD,IAAK,EACLspB,MAAOw4B,EACP5hD,SAAU,WAEZ8gD,GAAe/kD,OAAO0D,YAAW,KAC/B1D,OAAOqnB,aAAa09B,IACpB9mD,KAAKynD,kBAAkBD,EAASF,EAAYC,GAC5CA,EAAY5lD,UAAUwD,OAAO,cAAc,GAC1C,IAAI,IAGTmiD,EAAWphD,iBAAiB,SAAU2D,IACpCA,EAAE1F,iBACFmjD,EAAW3lD,UAAU2D,IAAI,eACzBkiD,EAAQK,SAAS,CACf/hD,IAAK,EACLspB,MAAOw4B,EACP5hD,SAAU,WAEZ8gD,GAAe/kD,OAAO0D,YAAW,KAC/B1D,OAAOqnB,aAAa09B,IACpB9mD,KAAKynD,kBAAkBD,EAASF,EAAYC,GAC5CD,EAAW3lD,UAAUwD,OAAO,cAAc,GACzC,IAAI,G,EAKbkiD,eAAeS,GACb9nD,KAAKwnD,QAAUM,EAAG1lD,iBAAiB,oBAAoB,GACvDpC,KAAK+nD,WAAaD,EAAG1lD,iBAAiB,gBACtCpC,KAAKgoD,eAAiB,CAACF,EAAG1lD,iBAAiB,sBAE3C,GAAIpC,KAAK+nD,WAAW/jD,OAAS,EAAG,CAC9BhE,KAAKioD,aAAajoD,KAAK+nD,WAAY,GACnC/nD,KAAKkoD,YAAYloD,KAAK+nD,WAAW,GAAI,K,EAIzCE,aAAaE,EAAMtkD,GACjB,GAAIskD,EAAKnkD,OAAS,EAAG,CACnB,IAAK,IAAIgI,EAAI,EAAGA,EAAIm8C,EAAKnkD,SAAUgI,EAAG,CACpCm8C,EAAKtkD,GAAOqC,iBAAiB,QAASlG,KAAKooD,oBAC3CD,EAAKtkD,GAAOqC,iBAAiB,UAAWlG,KAAKqoD,sBAE7CF,EAAKtkD,GAAOA,MAAQA,C,GAK1B4jD,kBAAkBa,EAAShB,EAAYC,GACrC,GAAIe,EAAQC,aAAe,EAAG,CAC5BjB,EAAW3lD,UAAU2D,IAAI,Y,KACpB,CACLgiD,EAAW3lD,UAAUwD,OAAO,Y,CAE9B,GAAImjD,EAAQC,WAAaD,EAAQ74B,aAAe64B,EAAQX,YAAc,EAAG,CACvEJ,EAAY5lD,UAAU2D,IAAI,Y,KACrB,CACLiiD,EAAY5lD,UAAUwD,OAAO,Y,EAMjCijD,mBAAmBrlD,GACjB,GAAIA,EAAO,CACT,MAAMQ,EAASR,EAAMQ,OACrB,MAAM4kD,EAAOnoD,KAAKknD,gBAClB,GAAIiB,EAAM,CACRA,EAAK9lD,SAASzB,IACZ,MAAMb,EAAK6wB,OAAO/E,OAAOjrB,GAAK,GAC9B,GAAIb,IAAOwD,EAAOxD,GAAI,CACpBC,KAAKkoD,YAAY3kD,EAAQ,K,KAG7BR,EAAMqH,kBACNrH,EAAMwC,0B,GAMZ8iD,qBAAqBtlD,GACnB,MAAMS,EAAMT,EAAMylD,QAClB,MAAML,EAAOnoD,KAAKknD,gBAClB,OAAQ1jD,GACN,KAAK9C,GAAKQ,IACR6B,EAAMoB,iBAENnE,KAAKkoD,YAAYC,EAAKA,EAAKnkD,OAAS,GAAI,MACxC,MACF,KAAKtD,GAAKO,KACR8B,EAAMoB,iBAENnE,KAAKkoD,YAAYC,EAAK,GAAI,MAC1B,MAIF,KAAKznD,GAAKkmD,GACV,KAAKlmD,GAAKmmD,KACR,GAAI7mD,KAAKyoD,oBAAqB,CAC5BzoD,KAAK0oD,qBAAqB3lD,E,CAE5B,M,CAKN4lD,mBAAmB5lD,GACjB,MAAMS,EAAMT,EAAMylD,QAElB,OAAQhlD,GACN,KAAK9C,GAAK0uB,KACV,KAAK1uB,GAAKwuB,MACR,GAAInsB,EAAMQ,OAAO6D,OAAS,MAAO,CAC/BrE,EAAMoB,iBACN,GAAInE,KAAKyoD,oBAAqB,CAC5BzoD,KAAK0oD,qBAAqB3lD,E,EAG9B,MAEJA,EAAMqH,kBACNrH,EAAMwC,0B,CAGRmjD,qBAAqB3lD,GACnB,MAAMukD,EAAatnD,KAAKyB,GAAGW,iBAAiB,wBAAwB,GACpE,MAAMmlD,EAAcvnD,KAAKyB,GAAGW,iBAAiB,yBAAyB,GACtE,MAAMolD,EAAUxnD,KAAKwnD,QAErBxnD,KAAKynD,kBAAkBD,EAASF,EAAYC,GAC5C,MAAM/jD,EAAMT,EAAMylD,QAClB,MAAMI,EAAWpB,EAAQ1iD,aAAa,qBAAuB,WAC7D,IAAI+jD,EAAU,MACd,GAAID,EAAU,CACZ,GAAIplD,IAAQ9C,GAAKkmD,IAAMpjD,IAAQ9C,GAAKmmD,KAAM,CACxC9jD,EAAMoB,iBACN0kD,EAAU,I,MAEP,CACL,GAAIrlD,IAAQ9C,GAAK0uB,MAAQ5rB,IAAQ9C,GAAKwuB,MAAO,CAC3C25B,EAAU,I,EAId,GAAIA,EAAS,CACX7oD,KAAK8oD,sBAAsB/lD,E,EAI/B+lD,sBAAsB/lD,GACpB,MAAMgmD,EAAUhmD,EAAMylD,QAEtB,GAAIzkD,GAAUglD,GAAU,CACtB,MAAMxlD,EAASR,EAAMQ,OACrB,MAAM4kD,EAAOnoD,KAAK+nD,WAElB,IAAK,IAAI/7C,EAAI,EAAGA,EAAIm8C,EAAKnkD,OAAQgI,IAAK,CACpC,GAAIm8C,EAAKn8C,GAAGjM,KAAOwD,EAAOxD,GAAI,CAC5B,GAAIiM,EAAI,EAAG,CACT,GAAIjI,GAAUglD,MAAc,EAAG,CAC7BZ,EAAKn8C,EAAI,GAAG9H,QACZlE,KAAKgpD,kBAAkBb,EAAKn8C,EAAI,IAChC,K,EAGJ,GAAIA,EAAIm8C,EAAKnkD,OAAS,EAAG,CACvB,GAAID,GAAUglD,KAAa,EAAG,CAC5BZ,EAAKn8C,EAAI,GAAG9H,QACZlE,KAAKgpD,kBAAkBb,EAAKn8C,EAAI,IAChC,K,MASZk8C,YAAYtnD,EAAKqoD,GACfA,EAAWA,GAAY,KAEvBjpD,KAAKkpD,eAAelpD,KAAK+nD,YAEzBnnD,EAAIwE,gBAAgB,YACpBxE,EAAIqE,aAAa,gBAAiB,QAClC,MAAMkkD,EAAWvoD,EAAIkE,aAAa,iBAClC9E,KAAKyB,GAAGuD,cAAc,IAAImkD,KAAY/jD,gBAAgB,UACtD,GAAI6jD,EAAU,CACZroD,EAAIsD,O,EAKRglD,eAAef,GACb,IAAK,IAAIj5C,EAAI,EAAGA,EAAIi5C,EAAKnkD,OAAQkL,IAAK,CACpCi5C,EAAKj5C,GAAGjK,aAAa,WAAY,MACjCkjD,EAAKj5C,GAAGjK,aAAa,gBAAiB,SACtCkjD,EAAKj5C,GAAG6f,oBAAoB,QAAS/uB,KAAKgpD,kB,CAE5C,MAAMI,EAASppD,KAAKgoD,eAAe,GACnC,IAAK,IAAIz4C,EAAI,EAAGA,EAAI65C,EAAOplD,OAAQuL,IAAK,CACtC65C,EAAO75C,GAAGtK,aAAa,SAAU,S,EAKrC+jD,kBAAkBpoD,GAChB,MAAM2C,EAAS3C,EACfZ,KAAKyoD,oBAAsB,MAC3B1B,GAAehlD,OAAO0D,YAAW,KAC/B1D,OAAOqnB,aAAa29B,IACpB/mD,KAAKyoD,oBAAsB,KAC3B,MAAMY,EAAUlnD,SAASmnD,cACzB,GAAI/lD,IAAW8lD,EAAS,CACtBrpD,KAAKkoD,YAAY3kD,EAAQ,M,IAE1B,I,CAGL1D,SACE,MAAM0pD,EAA2B,CAAC,qBAAsB,uBAAuBvpD,KAAK6B,eAAetB,KAAK,KACxG,MAAMR,EAAKC,KAAKwpD,MAAMtpD,cAAcC,QAAQ,MAAO,KAEnD,GAAI4B,OAAOC,SAASC,KAAM,CACxB,MAAMwnD,EAAU1nD,OAAOC,SAASC,KAAKgI,UAAU,GAC/C,MAAMy/C,EAAc1pD,KAAKknD,gBAAgB1hC,MAAM5kB,GAAQA,EAAI,QAAU6oD,IAErE,GAAIC,EAAa,CACf,MAAMC,EAAcxnD,SAAS6H,eAAey/C,GAE5C,GAAIE,EAAa,CACf3pD,KAAKkoD,YAAYyB,EAAa,MAC9B,MAAMC,EAAkBD,EAAY/jD,wBACpC7D,OAAO8D,SAAS,CAACC,IAAK/D,OAAOgE,QAAU6jD,EAAgB9jD,IAAM,IAAKE,SAAU,U,GAKlF,MAAO,CACL5F,EAAA,UAAQqL,GAAG,yBACXrL,EAAA,OAAKL,GAAIA,EAAIO,MAAOipD,GAClBnpD,EAAA,OAAKE,MAAM,wBACTF,EAAA,UAAQ6G,SAAS,KAAK3G,MAAM,8CAA6C,cAAa,QACpFF,EAAA,YACEA,EAAA,WAAS8G,KAAM,qBAAsBC,KAAM,OAG/C/G,EAAA,OAAKgH,KAAK,UAAS,aAAapH,KAAK6pD,cAClC7pD,KAAKknD,iBACJlnD,KAAKknD,gBAAgBj/C,KAAKC,IACxB,MAAM4C,EAAQ8lB,OAAO/E,OAAO3jB,GAAM,GAClC,MAAMnI,EAAK+K,EAAM5K,cAAcC,QAAQ,MAAO,KAE9C,MAAMuG,EAAYoE,EAAM5K,cAAcC,QAAQ,MAAO,KACrD,MAAM2pD,EAAc,IAAMpjD,EAE1B,OACEtG,EAAA,KAAG4G,KAAM8iD,EAAa7iD,SAAS,MAC7B7G,EAAA,0BACgB,QAAO,gBACN,GAAGL,QAClBO,MAAON,KAAK6B,YACZuF,KAAK,MACLrH,GAAIA,GAEJK,EAAA,YAAO0K,IAEP,KAIZ1K,EAAA,UAAQ6G,SAAS,KAAK3G,MAAM,qCAAoC,cAAa,QAC3EF,EAAA,YACEA,EAAA,WAAS8G,KAAM,sBAAuBC,KAAM,QAIlD/G,EAAA,cAEFA,EAAA,UAAQI,GAAG,uB,uCCtXjB,MAAMupD,GAAgB,srC,MCOTC,GAAU,M,iDAGrBnqD,SACE,MAAME,EAAKC,KAAKiqD,SAAS/pD,cAAcC,QAAQ,MAAO,KAEtD,OACEC,EAAA,OAAK6G,SAAS,IAAIG,KAAK,WAAWrH,GAAI,GAAGA,QAAQ,kBAAmBA,EAAImqD,OAAM,MAC5E9pD,EAAA,a,eCfR,MAAM+pD,GAAW,y7C,MCOJC,GAAK,M,yBAChBvqD,SACE,MAAMC,EAAkB,CAAC,UAAUS,KAAK,KAExC,OACEH,EAACC,EAAI,KACHD,EAAA,OAAKE,MAAOR,GACVM,EAAA,YACEA,EAAA,e,eCfZ,MAAMiqD,GAAmB,66U,MCOZC,GAAa,M,sKAOxBzqD,SACE,MAAM0qD,EAAezpC,KAAKC,MAAM/gB,KAAKwqD,QACrC,MAAM5d,EAAiB5sC,KAAK6sC,eAAe3sC,cAE3C,GAAIF,KAAKyqD,YAAc,WAAazqD,KAAK0qD,mBAAmB76C,OAAO,KAAO,IAAK,CAC7E7P,KAAK0qD,mBAAqB1qD,KAAK0qD,mBAAmBzgD,UAAU,E,CAG9D,OACE7J,EAAA,WAASE,MAAM,mBACbF,EAAA,OAAKE,MAAM,2BACTF,EAACwsC,EAAc,CAACtsC,MAAM,0BAA0BN,KAAK2qD,gBAAkB,WACvEvqD,EAAA,KAAGE,MAAM,4BACPF,EAAA,WAAS8G,KAAM,uBAAwBC,KAAM,KAC5CnH,KAAKyqD,YAAc,UAAY,IAAIzqD,KAAK0qD,qBAAuB,IAAI1qD,KAAK0qD,sBAE1E1qD,KAAKyqD,YAAc,YAClBrqD,EAAA,KAAG4G,KAAM,uBAAuBhH,KAAK0qD,qBAAsBnnD,OAAO,UAChEnD,EAAA,WAAS8G,KAAM,eAAgBC,KAAM,KAAM,WAKjD/G,EAAA,MAAIE,MAAM,2BACPiqD,EAAatiD,KACZ,EACE2iD,aACAC,gBACAC,qBACAC,mBACAC,sBACAC,YACAC,gBACAC,6BAEA,MAAMC,EAAgB,IAAIC,KAAKC,eAAe,SAASC,OAAO,IAAIr/B,KAAK2+B,IAEvE,OACEzqD,EAAA,MAAIE,MAAM,yBACRF,EAAA,WAASE,MAAM,oBACbF,EAAA,UAAQE,MAAM,4BACZF,EAAA,UAAQE,MAAM,kCAAkC8G,KAAK,iBACnDhH,EAAA,OAAKgI,IAAK+iD,EAAwBziD,IAAI,MAExCtI,EAAA,OAAKE,MAAM,oCACTF,EAAA,QAAMorD,SAAUX,GAAgBO,GAChChrD,EAAA,SAAI6qD,GACJ7qD,EAAA,KACEE,MAAM,8BACN0G,KAAM,uBAAuBkkD,IAC7B3nD,OAAO,UAAQ,IAEb2nD,KAIR9qD,EAAA,OAAKE,MAAM,qCACTF,EAAA,OAAKE,MAAM,6BACTF,EAAA,SAAIwqD,EAAW5mD,OAAS,IAAM,GAAG4mD,EAAWllD,OAAO,EAAG,UAAYklD,GAClExqD,EAAA,KAAGE,MAAM,+BAA+B0G,KAAM8jD,EAAoBvnD,OAAO,UACvEnD,EAAA,sBAAkB,SACjB,GAAG0qD,EAAmBplD,OAAO,EAAG,WAGrCtF,EAAA,OAAKE,MAAM,+BAA+B8G,KAAK,iBAC7ChH,EAAA,SACEA,EAAA,QAAME,MAAM,mBAAiB,sBAC7BF,EAAA,WAAS8G,KAAM,4BAA6BC,KAAM,KACjD4jD,GAEH3qD,EAAA,SACEA,EAAA,QAAME,MAAM,mBAAiB,yBAC7BF,EAAA,WAAS8G,KAAM,+BAAgCC,KAAM,KACpD6jD,MAKN,K,eC5FrB,MAAMS,GAAkB,02G,MCOXC,GAAY,M,uCACK,K,CAE5B7rD,SACE,MAAMC,EAAkB,CAAC,iBAAkBE,KAAKupC,SAAW,2BAA6B,IAAIhpC,KAAK,KAEjG,OACEH,EAACC,EAAI,KACHD,EAAA,OAAKE,MAAOR,GACVM,EAAA,OAAKE,MAAM,mDACTF,EAAA,QAAM6T,KAAK,UAEb7T,EAAA,OAAKE,MAAM,mDACTF,EAAA,QAAM6T,KAAK,W,eCpBvB,MAAM03C,GAAqB,w5D,MCQdC,GAAe,M,yEAI1B/rD,SACE,MAAMC,EAAkB,qBAExB,MAAMqjD,EAAWt5B,EAAamN,MAC9B,MAAM7M,EAAYlC,EAAawL,MAE/B,OACErzB,EAAA,OAAKE,MAAOR,GACVM,EAAA,OAAKE,MAAO,kCACVF,EAAA,gBAAc+G,KAAMg8C,EAAU54B,MAAOJ,EAAWjhB,IAAKlJ,KAAKwqB,QAASrF,MAAOnlB,KAAKyqB,aAGjFrqB,EAAA,a,eCxBR,MAAMyrD,GAAa,qsO,MCQNC,GAAO,M,yBAiElB9rD,KAAA+rD,sBAAwB,IACf/rD,KAAKgsD,YACV5rD,EAAA,KAAG0K,MAAO9K,KAAKisD,WAAYjlD,KAAMhH,KAAKgsD,YAAa1rD,MAAM,2BACvDF,EAAA,OACEoI,QAASxI,KAAKyI,YAAc,QAAU,OACtCnI,MAAM,0BACN8H,IAAKpI,KAAKksD,gBACVxjD,IAAK1I,KAAKisD,cAId7rD,EAAA,OACEoI,QAASxI,KAAKyI,YAAc,QAAU,OACtCnI,MAAM,0BACN8H,IAAKpI,KAAKksD,gBACVxjD,IAAK1I,KAAKisD,aAKhBjsD,KAAAmsD,iBAAmB,KACjB,GAAInsD,KAAKosD,iBAAkB,CACzB,OACEhsD,EAAA,QAAME,MAAM,0BACVF,EAAA,UAAQkI,KAAK,UACXlI,EAAA,WAAS8G,KAAM,gBAAiB5G,MAAO,sBAAuB6G,KAAM,M,KAIrE,CACL,OACE/G,EAAA,QAAME,MAAM,kBACVF,EAAA,UAAQkI,KAAK,UACXlI,EAAA,WAAS8G,KAAM,gBAAiB5G,MAAO,sBAAuB6G,KAAM,KACpE/G,EAAA,QAAME,MAAM,0BAA0BN,KAAKqsD,kB,GAOrDrsD,KAAA80B,SAAW,CAACxgB,EAAK9F,IACR8F,EAAItQ,OAASwK,EAAI8F,EAAI5O,OAAO,EAAG8I,EAAI,GAAK,MAAQ8F,E,+GAjGlB,M,gHAQF,M,iBAEP,iB,iBAEA,K,2KAcA,M,iBAEC,M,iBAED,U,mBAEE,Y,mBAEA,Y,sBAEI,M,eAEP,M,mBAEK,K,CAElChT,mBACE,IAAIE,EAAYxB,KAAKyB,GAAGC,QAAQ,YAChC,GAAIF,EAAW,CACb,IAAKA,EAAUG,UAAUC,SAAS,gBAAiB,CACjD5B,KAAK6B,YAAc,O,EAIvB,GAAI7B,KAAKssD,kBAAoBtsD,KAAKssD,iBAAiBn0C,MAAM,OAAOnU,OAAS,IAAK,CAC5EhE,KAAKusD,cAAgB,I,EAiDzB1sD,SACE,MAAMC,EAAkB,CACtB,WACAE,KAAKwsD,WAAa,uBAAyB,IAC1CxsD,KAAKysD,UAAY,aAAazsD,KAAK6B,cAAgB,GACpD7B,KAAKysD,UAAY,iBAAmB,IACpClsD,KAAK,KAEP,MAAMmsD,EAAW,IACjB,MAAMC,EAAY3sD,KAAKssD,iBAAmBtsD,KAAKssD,iBAAiBn0C,MAAM,OAAOnU,OAAS,EAEtF,GAAIhE,KAAKgsD,aAAehsD,KAAKysD,UAAW,CACtC,MAAO,CACLrsD,EAAA,KAAG4G,KAAMhH,KAAKgsD,YAAa1rD,MAAOR,GAC/BE,KAAKisD,aAAejsD,KAAKwsD,aAAexsD,KAAKysD,WAC5CrsD,EAAA,cAAYE,MAAM,wBAAwBqzB,QAASC,EAAeC,IAC/D7zB,KAAKisD,YAGV7rD,EAAA,OAAKE,MAAM,6BACRN,KAAKksD,gBACJ9rD,EAAA,WACGJ,KAAK+rD,wBACN3rD,EAAA,QAAM6T,KAAK,WAGb7T,EAAA,QAAM6T,KAAK,UAEZjU,KAAK4sD,mBAAqB5sD,KAAKmsD,oBAElC/rD,EAAA,OAAKE,MAAM,kBACPN,KAAKisD,YAAcjsD,KAAKwsD,YACvBxsD,KAAKysD,WACJrsD,EAAA,cAAYE,MAAM,wBAAwBqzB,QAASC,EAAea,IAC/Dz0B,KAAKisD,YAGXjsD,KAAK6sD,qBAAuBzsD,EAAA,QAAME,MAAM,mBAAmBN,KAAK8sD,eAC/D9sD,KAAK+sD,UAAY/sD,KAAKgtD,OAAShtD,KAAKitD,WAAajtD,KAAKktD,cACtD9sD,EAAA,OAAKE,MAAM,2BACRN,KAAK+sD,UACJ3sD,EAAA,OAAKE,MAAM,iCACTF,EAAA,QAAME,MAAM,yBAAyBN,KAAKmtD,eAC1C/sD,EAAA,QAAME,MAAM,2BAA2BN,KAAK+sD,WAG/C/sD,KAAKgtD,OACJ5sD,EAAA,OAAKE,MAAM,iCACTF,EAAA,QAAME,MAAM,yBAAyBN,KAAKotD,YAC1ChtD,EAAA,QAAME,MAAM,2BAA2BN,KAAKgtD,QAG/ChtD,KAAKitD,WACJ7sD,EAAA,OAAKE,MAAM,iCACTF,EAAA,QAAME,MAAM,yBAAyBN,KAAKqtD,gBAC1CjtD,EAAA,QAAME,MAAM,2BAA2BN,KAAKitD,aAG9CjtD,KAAKgtD,OAAShtD,KAAKktD,aACnB9sD,EAAA,OAAKE,MAAM,iCACTF,EAAA,QAAME,MAAM,yBAAyBN,KAAKstD,aAC1CltD,EAAA,QAAME,MAAM,2BAA2BN,KAAKktD,eAKnDltD,KAAKssD,kBACJlsD,EAAA,OAAKE,MAAM,8BAA6B,gBAAgBN,KAAKusD,cAAgB,QAAU,QACrFnsD,EAAA,OAAKE,MAAM,wCACRN,KAAKusD,cAAgBvsD,KAAK80B,SAAS90B,KAAKssD,iBAAkB,KAAOtsD,KAAKssD,kBAExEK,EAAYD,GACXtsD,EAAA,QACEE,MAAM,2CACN8G,KAAK,SACLH,SAAS,IAAG,gBACGjH,KAAKusD,cAAgB,QAAU,OAC9C7hD,QAAS,IAAO1K,KAAKusD,eAAiBvsD,KAAKusD,cAC3CgB,UAAY1jD,IACV,GAAIA,EAAErG,KAAO,IAAK,OAClBqG,EAAE1F,iBACFnE,KAAKusD,eAAiBvsD,KAAKusD,aAAa,GAGzCvsD,KAAKusD,cAAgBvsD,KAAKwtD,cAAgBxtD,KAAKytD,kB,KAQzD,CACL,MAAO,CACLrtD,EAAA,OAAKE,MAAOR,GACTE,KAAKisD,aAAejsD,KAAKwsD,aAAexsD,KAAKysD,WAC5CrsD,EAAA,cAAYE,MAAM,wBAAwBqzB,QAASC,EAAeC,IAC/D7zB,KAAKisD,YAGV7rD,EAAA,OAAKE,MAAM,6BACRN,KAAKksD,gBACJ9rD,EAAA,WACGJ,KAAK+rD,wBACN3rD,EAAA,QAAM6T,KAAK,WAGb7T,EAAA,QAAM6T,KAAK,UAEZjU,KAAK4sD,mBAAqB5sD,KAAKmsD,oBAElC/rD,EAAA,OAAKE,MAAM,kBACPN,KAAKisD,YAAcjsD,KAAKwsD,YACvBxsD,KAAKysD,WACJrsD,EAAA,cAAYE,MAAM,wBAAwBqzB,QAASC,EAAeC,IAC/D7zB,KAAKisD,YAGXjsD,KAAK6sD,qBAAuBzsD,EAAA,QAAME,MAAM,mBAAmBN,KAAK8sD,eAC/D9sD,KAAK+sD,UAAY/sD,KAAKgtD,OAAShtD,KAAKitD,YACpC7sD,EAAA,OAAKE,MAAM,2BACRN,KAAK+sD,UACJ3sD,EAAA,OAAKE,MAAM,iCACTF,EAAA,QAAME,MAAM,yBAAyBN,KAAKmtD,eAC1C/sD,EAAA,QAAME,MAAM,2BAA2BN,KAAK+sD,WAG/C/sD,KAAKgtD,OACJ5sD,EAAA,OAAKE,MAAM,iCACTF,EAAA,QAAME,MAAM,yBAAyBN,KAAKotD,YAC1ChtD,EAAA,QAAME,MAAM,2BAA2BN,KAAKgtD,QAG/ChtD,KAAKitD,WACJ7sD,EAAA,OAAKE,MAAM,iCACTF,EAAA,QAAME,MAAM,yBAAyBN,KAAKqtD,gBAC1CjtD,EAAA,QAAME,MAAM,2BAA2BN,KAAKitD,aAKnDjtD,KAAKssD,kBACJlsD,EAAA,OAAKE,MAAM,8BAA6B,gBAAgBN,KAAKusD,cAAgB,QAAU,QACrFnsD,EAAA,OAAKE,MAAM,wCACRN,KAAKusD,cAAgBvsD,KAAK80B,SAAS90B,KAAKssD,iBAAkB,KAAOtsD,KAAKssD,kBAExEK,EAAYD,GACXtsD,EAAA,QACEE,MAAM,2CACN8G,KAAK,SACLH,SAAS,IAAG,gBACGjH,KAAKusD,cAAgB,QAAU,OAC9C7hD,QAAS,IAAO1K,KAAKusD,eAAiBvsD,KAAKusD,cAC3CgB,UAAY1jD,IACV,GAAIA,EAAErG,KAAO,IAAK,OAClBqG,EAAE1F,iBACFnE,KAAKusD,eAAiBvsD,KAAKusD,aAAa,GAGzCvsD,KAAKusD,cAAgBvsD,KAAKwtD,cAAgBxtD,KAAKytD,kBAO5DrtD,EAAA,UAAQI,GAAG,uB"}