@gouvfr/dsfr 1.5.0 → 1.5.1

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 (754) hide show
  1. package/.config/config.js +1 -1
  2. package/.config/config.json +43 -38
  3. package/.config/icon.json +1 -1
  4. package/.config/icon.scss +2 -4
  5. package/dist/component/accordion/accordion.css +1 -1
  6. package/dist/component/accordion/accordion.legacy.css +1 -1
  7. package/dist/component/accordion/accordion.legacy.min.css +1 -1
  8. package/dist/component/accordion/accordion.main.css +1 -1
  9. package/dist/component/accordion/accordion.main.min.css +1 -1
  10. package/dist/component/accordion/accordion.min.css +1 -1
  11. package/dist/component/accordion/accordion.module.js +2 -2
  12. package/dist/component/accordion/accordion.module.js.map +1 -1
  13. package/dist/component/accordion/accordion.module.min.js +1 -1
  14. package/dist/component/accordion/accordion.module.min.js.map +1 -1
  15. package/dist/component/accordion/accordion.nomodule.js +2 -2
  16. package/dist/component/accordion/accordion.nomodule.js.map +1 -1
  17. package/dist/component/accordion/accordion.nomodule.min.js +1 -1
  18. package/dist/component/accordion/accordion.nomodule.min.js.map +1 -1
  19. package/dist/component/alert/alert.css +1 -1
  20. package/dist/component/alert/alert.legacy.css +1 -1
  21. package/dist/component/alert/alert.legacy.min.css +1 -1
  22. package/dist/component/alert/alert.main.css +1 -1
  23. package/dist/component/alert/alert.main.min.css +1 -1
  24. package/dist/component/alert/alert.min.css +1 -1
  25. package/dist/component/badge/badge.css +1 -1
  26. package/dist/component/badge/badge.legacy.css +1 -1
  27. package/dist/component/badge/badge.legacy.min.css +1 -1
  28. package/dist/component/badge/badge.main.css +1 -1
  29. package/dist/component/badge/badge.main.min.css +1 -1
  30. package/dist/component/badge/badge.min.css +1 -1
  31. package/dist/component/breadcrumb/breadcrumb.css +1 -1
  32. package/dist/component/breadcrumb/breadcrumb.legacy.css +1 -1
  33. package/dist/component/breadcrumb/breadcrumb.legacy.min.css +1 -1
  34. package/dist/component/breadcrumb/breadcrumb.main.css +1 -1
  35. package/dist/component/breadcrumb/breadcrumb.main.min.css +1 -1
  36. package/dist/component/breadcrumb/breadcrumb.min.css +1 -1
  37. package/dist/component/breadcrumb/breadcrumb.module.js +2 -2
  38. package/dist/component/breadcrumb/breadcrumb.module.js.map +1 -1
  39. package/dist/component/breadcrumb/breadcrumb.module.min.js +1 -1
  40. package/dist/component/breadcrumb/breadcrumb.module.min.js.map +1 -1
  41. package/dist/component/breadcrumb/breadcrumb.nomodule.js +2 -2
  42. package/dist/component/breadcrumb/breadcrumb.nomodule.js.map +1 -1
  43. package/dist/component/breadcrumb/breadcrumb.nomodule.min.js +1 -1
  44. package/dist/component/breadcrumb/breadcrumb.nomodule.min.js.map +1 -1
  45. package/dist/component/button/button.css +1 -1
  46. package/dist/component/button/button.legacy.css +1 -1
  47. package/dist/component/button/button.legacy.min.css +1 -1
  48. package/dist/component/button/button.main.css +1 -1
  49. package/dist/component/button/button.main.min.css +1 -1
  50. package/dist/component/button/button.min.css +1 -1
  51. package/dist/component/button/button.module.js +2 -2
  52. package/dist/component/button/button.module.js.map +1 -1
  53. package/dist/component/button/button.module.min.js +1 -1
  54. package/dist/component/button/button.module.min.js.map +1 -1
  55. package/dist/component/button/button.nomodule.js +2 -2
  56. package/dist/component/button/button.nomodule.js.map +1 -1
  57. package/dist/component/button/button.nomodule.min.js +1 -1
  58. package/dist/component/button/button.nomodule.min.js.map +1 -1
  59. package/dist/component/callout/callout.css +1 -1
  60. package/dist/component/callout/callout.legacy.css +1 -1
  61. package/dist/component/callout/callout.legacy.min.css +1 -1
  62. package/dist/component/callout/callout.main.css +1 -1
  63. package/dist/component/callout/callout.main.min.css +1 -1
  64. package/dist/component/callout/callout.min.css +1 -1
  65. package/dist/component/card/card.css +1 -1
  66. package/dist/component/card/card.legacy.css +1 -1
  67. package/dist/component/card/card.legacy.min.css +1 -1
  68. package/dist/component/card/card.main.css +1 -1
  69. package/dist/component/card/card.main.min.css +1 -1
  70. package/dist/component/card/card.min.css +1 -1
  71. package/dist/component/checkbox/checkbox.css +1 -1
  72. package/dist/component/checkbox/checkbox.legacy.css +1 -1
  73. package/dist/component/checkbox/checkbox.legacy.min.css +1 -1
  74. package/dist/component/checkbox/checkbox.main.css +1 -1
  75. package/dist/component/checkbox/checkbox.main.min.css +1 -1
  76. package/dist/component/checkbox/checkbox.min.css +1 -1
  77. package/dist/component/component.css +1 -1
  78. package/dist/component/component.legacy.css +1 -1
  79. package/dist/component/component.legacy.min.css +1 -1
  80. package/dist/component/component.main.css +1 -1
  81. package/dist/component/component.main.min.css +1 -1
  82. package/dist/component/component.min.css +1 -1
  83. package/dist/component/component.module.js +11 -8
  84. package/dist/component/component.module.js.map +1 -1
  85. package/dist/component/component.module.min.js +2 -2
  86. package/dist/component/component.module.min.js.map +1 -1
  87. package/dist/component/component.nomodule.js +11 -8
  88. package/dist/component/component.nomodule.js.map +1 -1
  89. package/dist/component/component.nomodule.min.js +2 -2
  90. package/dist/component/component.nomodule.min.js.map +1 -1
  91. package/dist/component/connect/connect.css +1 -1
  92. package/dist/component/connect/connect.legacy.css +1 -1
  93. package/dist/component/connect/connect.legacy.min.css +1 -1
  94. package/dist/component/connect/connect.main.css +1 -1
  95. package/dist/component/connect/connect.main.min.css +1 -1
  96. package/dist/component/connect/connect.min.css +1 -1
  97. package/dist/component/consent/consent.css +1 -1
  98. package/dist/component/consent/consent.legacy.css +1 -1
  99. package/dist/component/consent/consent.legacy.min.css +1 -1
  100. package/dist/component/consent/consent.main.css +1 -1
  101. package/dist/component/consent/consent.main.min.css +1 -1
  102. package/dist/component/consent/consent.min.css +1 -1
  103. package/dist/component/content/content.css +1 -1
  104. package/dist/component/content/content.legacy.css +1 -1
  105. package/dist/component/content/content.legacy.min.css +1 -1
  106. package/dist/component/content/content.main.css +1 -1
  107. package/dist/component/content/content.main.min.css +1 -1
  108. package/dist/component/content/content.min.css +1 -1
  109. package/dist/component/display/display.module.js +2 -2
  110. package/dist/component/display/display.module.js.map +1 -1
  111. package/dist/component/display/display.module.min.js +1 -1
  112. package/dist/component/display/display.module.min.js.map +1 -1
  113. package/dist/component/display/display.nomodule.js +2 -2
  114. package/dist/component/display/display.nomodule.js.map +1 -1
  115. package/dist/component/display/display.nomodule.min.js +1 -1
  116. package/dist/component/display/display.nomodule.min.js.map +1 -1
  117. package/dist/component/download/download.css +1 -1
  118. package/dist/component/download/download.min.css +1 -1
  119. package/dist/component/download/download.module.js +11 -8
  120. package/dist/component/download/download.module.js.map +1 -1
  121. package/dist/component/download/download.module.min.js +2 -2
  122. package/dist/component/download/download.module.min.js.map +1 -1
  123. package/dist/component/download/download.nomodule.js +11 -8
  124. package/dist/component/download/download.nomodule.js.map +1 -1
  125. package/dist/component/download/download.nomodule.min.js +2 -2
  126. package/dist/component/download/download.nomodule.min.js.map +1 -1
  127. package/dist/component/follow/follow.css +1 -1
  128. package/dist/component/follow/follow.legacy.css +1 -1
  129. package/dist/component/follow/follow.legacy.min.css +1 -1
  130. package/dist/component/follow/follow.main.css +1 -1
  131. package/dist/component/follow/follow.main.min.css +1 -1
  132. package/dist/component/follow/follow.min.css +1 -1
  133. package/dist/component/footer/footer.css +1 -1
  134. package/dist/component/footer/footer.legacy.css +1 -1
  135. package/dist/component/footer/footer.legacy.min.css +1 -1
  136. package/dist/component/footer/footer.main.css +1 -1
  137. package/dist/component/footer/footer.main.min.css +1 -1
  138. package/dist/component/footer/footer.min.css +1 -1
  139. package/dist/component/form/form.css +1 -1
  140. package/dist/component/form/form.legacy.css +1 -1
  141. package/dist/component/form/form.legacy.min.css +1 -1
  142. package/dist/component/form/form.main.css +1 -1
  143. package/dist/component/form/form.main.min.css +1 -1
  144. package/dist/component/form/form.min.css +1 -1
  145. package/dist/component/header/header.css +1 -1
  146. package/dist/component/header/header.legacy.css +1 -1
  147. package/dist/component/header/header.legacy.min.css +1 -1
  148. package/dist/component/header/header.main.css +1 -1
  149. package/dist/component/header/header.main.min.css +1 -1
  150. package/dist/component/header/header.min.css +1 -1
  151. package/dist/component/header/header.module.js +2 -2
  152. package/dist/component/header/header.module.js.map +1 -1
  153. package/dist/component/header/header.module.min.js +1 -1
  154. package/dist/component/header/header.module.min.js.map +1 -1
  155. package/dist/component/header/header.nomodule.js +2 -2
  156. package/dist/component/header/header.nomodule.js.map +1 -1
  157. package/dist/component/header/header.nomodule.min.js +1 -1
  158. package/dist/component/header/header.nomodule.min.js.map +1 -1
  159. package/dist/component/highlight/highlight.css +1 -1
  160. package/dist/component/highlight/highlight.legacy.css +1 -1
  161. package/dist/component/highlight/highlight.legacy.min.css +1 -1
  162. package/dist/component/highlight/highlight.main.css +1 -1
  163. package/dist/component/highlight/highlight.main.min.css +1 -1
  164. package/dist/component/highlight/highlight.min.css +1 -1
  165. package/dist/component/input/input.css +1 -1
  166. package/dist/component/input/input.legacy.css +1 -1
  167. package/dist/component/input/input.legacy.min.css +1 -1
  168. package/dist/component/input/input.main.css +1 -1
  169. package/dist/component/input/input.main.min.css +1 -1
  170. package/dist/component/input/input.min.css +1 -1
  171. package/dist/component/link/link.css +1 -1
  172. package/dist/component/link/link.legacy.css +1 -1
  173. package/dist/component/link/link.legacy.min.css +1 -1
  174. package/dist/component/link/link.main.css +1 -1
  175. package/dist/component/link/link.main.min.css +1 -1
  176. package/dist/component/link/link.min.css +1 -1
  177. package/dist/component/logo/logo.css +1 -1
  178. package/dist/component/logo/logo.legacy.css +1 -1
  179. package/dist/component/logo/logo.legacy.min.css +1 -1
  180. package/dist/component/logo/logo.main.css +1 -1
  181. package/dist/component/logo/logo.main.min.css +1 -1
  182. package/dist/component/logo/logo.min.css +1 -1
  183. package/dist/component/modal/modal.css +1 -1
  184. package/dist/component/modal/modal.legacy.css +1 -1
  185. package/dist/component/modal/modal.legacy.min.css +1 -1
  186. package/dist/component/modal/modal.main.css +1 -1
  187. package/dist/component/modal/modal.main.min.css +1 -1
  188. package/dist/component/modal/modal.min.css +1 -1
  189. package/dist/component/modal/modal.module.js +2 -2
  190. package/dist/component/modal/modal.module.js.map +1 -1
  191. package/dist/component/modal/modal.module.min.js +1 -1
  192. package/dist/component/modal/modal.module.min.js.map +1 -1
  193. package/dist/component/modal/modal.nomodule.js +2 -2
  194. package/dist/component/modal/modal.nomodule.js.map +1 -1
  195. package/dist/component/modal/modal.nomodule.min.js +1 -1
  196. package/dist/component/modal/modal.nomodule.min.js.map +1 -1
  197. package/dist/component/navigation/navigation.css +1 -1
  198. package/dist/component/navigation/navigation.legacy.css +1 -1
  199. package/dist/component/navigation/navigation.legacy.min.css +1 -1
  200. package/dist/component/navigation/navigation.main.css +1 -1
  201. package/dist/component/navigation/navigation.main.min.css +1 -1
  202. package/dist/component/navigation/navigation.min.css +1 -1
  203. package/dist/component/navigation/navigation.module.js +2 -2
  204. package/dist/component/navigation/navigation.module.js.map +1 -1
  205. package/dist/component/navigation/navigation.module.min.js +1 -1
  206. package/dist/component/navigation/navigation.module.min.js.map +1 -1
  207. package/dist/component/navigation/navigation.nomodule.js +2 -2
  208. package/dist/component/navigation/navigation.nomodule.js.map +1 -1
  209. package/dist/component/navigation/navigation.nomodule.min.js +1 -1
  210. package/dist/component/navigation/navigation.nomodule.min.js.map +1 -1
  211. package/dist/component/pagination/pagination.css +1 -1
  212. package/dist/component/pagination/pagination.legacy.css +1 -1
  213. package/dist/component/pagination/pagination.legacy.min.css +1 -1
  214. package/dist/component/pagination/pagination.main.css +1 -1
  215. package/dist/component/pagination/pagination.main.min.css +1 -1
  216. package/dist/component/pagination/pagination.min.css +1 -1
  217. package/dist/component/quote/quote.css +1 -1
  218. package/dist/component/quote/quote.legacy.css +1 -1
  219. package/dist/component/quote/quote.legacy.min.css +1 -1
  220. package/dist/component/quote/quote.main.css +1 -1
  221. package/dist/component/quote/quote.main.min.css +1 -1
  222. package/dist/component/quote/quote.min.css +1 -1
  223. package/dist/component/radio/radio.css +1 -1
  224. package/dist/component/radio/radio.legacy.css +1 -1
  225. package/dist/component/radio/radio.legacy.min.css +1 -1
  226. package/dist/component/radio/radio.main.css +1 -1
  227. package/dist/component/radio/radio.main.min.css +1 -1
  228. package/dist/component/radio/radio.min.css +1 -1
  229. package/dist/component/search/search.css +1 -1
  230. package/dist/component/search/search.legacy.css +1 -1
  231. package/dist/component/search/search.legacy.min.css +1 -1
  232. package/dist/component/search/search.main.css +1 -1
  233. package/dist/component/search/search.main.min.css +1 -1
  234. package/dist/component/search/search.min.css +1 -1
  235. package/dist/component/select/select.css +1 -1
  236. package/dist/component/select/select.legacy.css +1 -1
  237. package/dist/component/select/select.legacy.min.css +1 -1
  238. package/dist/component/select/select.main.css +1 -1
  239. package/dist/component/select/select.main.min.css +1 -1
  240. package/dist/component/select/select.min.css +1 -1
  241. package/dist/component/share/share.css +1 -1
  242. package/dist/component/share/share.legacy.css +1 -1
  243. package/dist/component/share/share.legacy.min.css +1 -1
  244. package/dist/component/share/share.main.css +1 -1
  245. package/dist/component/share/share.main.min.css +1 -1
  246. package/dist/component/share/share.min.css +1 -1
  247. package/dist/component/sidemenu/sidemenu.css +1 -1
  248. package/dist/component/sidemenu/sidemenu.legacy.css +1 -1
  249. package/dist/component/sidemenu/sidemenu.legacy.min.css +1 -1
  250. package/dist/component/sidemenu/sidemenu.main.css +1 -1
  251. package/dist/component/sidemenu/sidemenu.main.min.css +1 -1
  252. package/dist/component/sidemenu/sidemenu.min.css +1 -1
  253. package/dist/component/sidemenu/sidemenu.module.js +2 -2
  254. package/dist/component/sidemenu/sidemenu.module.js.map +1 -1
  255. package/dist/component/sidemenu/sidemenu.module.min.js +1 -1
  256. package/dist/component/sidemenu/sidemenu.module.min.js.map +1 -1
  257. package/dist/component/sidemenu/sidemenu.nomodule.js +2 -2
  258. package/dist/component/sidemenu/sidemenu.nomodule.js.map +1 -1
  259. package/dist/component/sidemenu/sidemenu.nomodule.min.js +1 -1
  260. package/dist/component/sidemenu/sidemenu.nomodule.min.js.map +1 -1
  261. package/dist/component/skiplink/skiplink.css +1 -1
  262. package/dist/component/skiplink/skiplink.legacy.css +1 -1
  263. package/dist/component/skiplink/skiplink.legacy.min.css +1 -1
  264. package/dist/component/skiplink/skiplink.main.css +1 -1
  265. package/dist/component/skiplink/skiplink.main.min.css +1 -1
  266. package/dist/component/skiplink/skiplink.min.css +1 -1
  267. package/dist/component/summary/summary.css +1 -1
  268. package/dist/component/summary/summary.legacy.css +1 -1
  269. package/dist/component/summary/summary.legacy.min.css +1 -1
  270. package/dist/component/summary/summary.main.css +1 -1
  271. package/dist/component/summary/summary.main.min.css +1 -1
  272. package/dist/component/summary/summary.min.css +1 -1
  273. package/dist/component/tab/tab.css +1 -1
  274. package/dist/component/tab/tab.legacy.css +1 -1
  275. package/dist/component/tab/tab.legacy.min.css +1 -1
  276. package/dist/component/tab/tab.main.css +1 -1
  277. package/dist/component/tab/tab.main.min.css +1 -1
  278. package/dist/component/tab/tab.min.css +1 -1
  279. package/dist/component/tab/tab.module.js +2 -2
  280. package/dist/component/tab/tab.module.js.map +1 -1
  281. package/dist/component/tab/tab.module.min.js +1 -1
  282. package/dist/component/tab/tab.module.min.js.map +1 -1
  283. package/dist/component/tab/tab.nomodule.js +2 -2
  284. package/dist/component/tab/tab.nomodule.js.map +1 -1
  285. package/dist/component/tab/tab.nomodule.min.js +1 -1
  286. package/dist/component/tab/tab.nomodule.min.js.map +1 -1
  287. package/dist/component/table/table.css +1 -1
  288. package/dist/component/table/table.legacy.css +1 -1
  289. package/dist/component/table/table.legacy.min.css +1 -1
  290. package/dist/component/table/table.main.css +1 -1
  291. package/dist/component/table/table.main.min.css +1 -1
  292. package/dist/component/table/table.min.css +1 -1
  293. package/dist/component/table/table.module.js +2 -2
  294. package/dist/component/table/table.module.js.map +1 -1
  295. package/dist/component/table/table.module.min.js +1 -1
  296. package/dist/component/table/table.module.min.js.map +1 -1
  297. package/dist/component/table/table.nomodule.js +2 -2
  298. package/dist/component/table/table.nomodule.js.map +1 -1
  299. package/dist/component/table/table.nomodule.min.js +1 -1
  300. package/dist/component/table/table.nomodule.min.js.map +1 -1
  301. package/dist/component/tag/tag.css +1 -1
  302. package/dist/component/tag/tag.legacy.css +1 -1
  303. package/dist/component/tag/tag.legacy.min.css +1 -1
  304. package/dist/component/tag/tag.main.css +1 -1
  305. package/dist/component/tag/tag.main.min.css +1 -1
  306. package/dist/component/tag/tag.min.css +1 -1
  307. package/dist/component/tag/tag.module.js +2 -2
  308. package/dist/component/tag/tag.module.js.map +1 -1
  309. package/dist/component/tag/tag.module.min.js +1 -1
  310. package/dist/component/tag/tag.module.min.js.map +1 -1
  311. package/dist/component/tag/tag.nomodule.js +2 -2
  312. package/dist/component/tag/tag.nomodule.js.map +1 -1
  313. package/dist/component/tag/tag.nomodule.min.js +1 -1
  314. package/dist/component/tag/tag.nomodule.min.js.map +1 -1
  315. package/dist/component/tile/tile.css +1 -1
  316. package/dist/component/tile/tile.legacy.css +1 -1
  317. package/dist/component/tile/tile.legacy.min.css +1 -1
  318. package/dist/component/tile/tile.main.css +1 -1
  319. package/dist/component/tile/tile.main.min.css +1 -1
  320. package/dist/component/tile/tile.min.css +1 -1
  321. package/dist/component/toggle/toggle.css +1 -1
  322. package/dist/component/toggle/toggle.legacy.css +1 -1
  323. package/dist/component/toggle/toggle.legacy.min.css +1 -1
  324. package/dist/component/toggle/toggle.main.css +1 -1
  325. package/dist/component/toggle/toggle.main.min.css +1 -1
  326. package/dist/component/toggle/toggle.min.css +1 -1
  327. package/dist/component/toggle/toggle.module.js +2 -2
  328. package/dist/component/toggle/toggle.module.js.map +1 -1
  329. package/dist/component/toggle/toggle.module.min.js +1 -1
  330. package/dist/component/toggle/toggle.module.min.js.map +1 -1
  331. package/dist/component/toggle/toggle.nomodule.js +2 -2
  332. package/dist/component/toggle/toggle.nomodule.js.map +1 -1
  333. package/dist/component/toggle/toggle.nomodule.min.js +1 -1
  334. package/dist/component/toggle/toggle.nomodule.min.js.map +1 -1
  335. package/dist/component/upload/upload.css +1 -1
  336. package/dist/component/upload/upload.min.css +1 -1
  337. package/dist/core/core.css +1 -1
  338. package/dist/core/core.legacy.css +1 -1
  339. package/dist/core/core.legacy.min.css +1 -1
  340. package/dist/core/core.main.css +1 -1
  341. package/dist/core/core.main.min.css +1 -1
  342. package/dist/core/core.min.css +1 -1
  343. package/dist/core/core.module.js +2 -2
  344. package/dist/core/core.module.js.map +1 -1
  345. package/dist/core/core.module.min.js +2 -2
  346. package/dist/core/core.module.min.js.map +1 -1
  347. package/dist/core/core.nomodule.js +2 -2
  348. package/dist/core/core.nomodule.js.map +1 -1
  349. package/dist/core/core.nomodule.min.js +2 -2
  350. package/dist/core/core.nomodule.min.js.map +1 -1
  351. package/dist/dsfr/dsfr.css +1 -1
  352. package/dist/dsfr/dsfr.legacy.css +1 -1
  353. package/dist/dsfr/dsfr.legacy.min.css +1 -1
  354. package/dist/dsfr/dsfr.main.css +1 -1
  355. package/dist/dsfr/dsfr.main.min.css +1 -1
  356. package/dist/dsfr/dsfr.min.css +1 -1
  357. package/dist/dsfr/dsfr.module.js +11 -8
  358. package/dist/dsfr/dsfr.module.js.map +1 -1
  359. package/dist/dsfr/dsfr.module.min.js +2 -2
  360. package/dist/dsfr/dsfr.module.min.js.map +1 -1
  361. package/dist/dsfr/{dsfr-deprecated.nomodule.js → dsfr.nomodule.js} +12 -9
  362. package/dist/dsfr/dsfr.nomodule.js.map +1 -0
  363. package/dist/dsfr/{dsfr-deprecated.nomodule.min.js → dsfr.nomodule.min.js} +3 -3
  364. package/dist/dsfr/dsfr.nomodule.min.js.map +1 -0
  365. package/dist/dsfr.css +1 -1
  366. package/dist/dsfr.legacy.css +1 -1
  367. package/dist/dsfr.legacy.min.css +1 -1
  368. package/dist/dsfr.main.css +1 -1
  369. package/dist/dsfr.main.min.css +1 -1
  370. package/dist/dsfr.min.css +1 -1
  371. package/dist/dsfr.module.js +11 -8
  372. package/dist/dsfr.module.js.map +1 -1
  373. package/dist/dsfr.module.min.js +2 -2
  374. package/dist/dsfr.module.min.js.map +1 -1
  375. package/dist/dsfr.nomodule.js +11 -8
  376. package/dist/dsfr.nomodule.js.map +1 -1
  377. package/dist/dsfr.nomodule.min.js +2 -2
  378. package/dist/dsfr.nomodule.min.js.map +1 -1
  379. package/dist/icons/system/{delete-line.svg → delete-bin-fill.svg} +0 -0
  380. package/dist/icons/system/{delete-fill.svg → delete-bin-line.svg} +0 -0
  381. package/dist/legacy/legacy.nomodule.js +1 -1
  382. package/dist/legacy/legacy.nomodule.min.js +1 -1
  383. package/dist/scheme/scheme.css +1 -1
  384. package/dist/scheme/scheme.min.css +1 -1
  385. package/dist/scheme/scheme.module.js +2 -2
  386. package/dist/scheme/scheme.module.js.map +1 -1
  387. package/dist/scheme/scheme.module.min.js +1 -1
  388. package/dist/scheme/scheme.module.min.js.map +1 -1
  389. package/dist/utility/README.md +12 -1
  390. package/dist/utility/icons/README.md +7 -1
  391. package/dist/utility/icons/icons-buildings/README.md +7 -1
  392. package/dist/utility/icons/icons-buildings/icons-buildings.css +19 -1
  393. package/dist/utility/icons/icons-buildings/icons-buildings.css.map +1 -1
  394. package/dist/utility/icons/icons-buildings/icons-buildings.legacy.css +9 -1
  395. package/dist/utility/icons/icons-buildings/icons-buildings.legacy.css.map +1 -1
  396. package/dist/utility/icons/icons-buildings/icons-buildings.legacy.min.css +2 -2
  397. package/dist/utility/icons/icons-buildings/icons-buildings.legacy.min.css.map +1 -1
  398. package/dist/utility/icons/icons-buildings/icons-buildings.main.css +11 -1
  399. package/dist/utility/icons/icons-buildings/icons-buildings.main.css.map +1 -1
  400. package/dist/utility/icons/icons-buildings/icons-buildings.main.min.css +2 -2
  401. package/dist/utility/icons/icons-buildings/icons-buildings.main.min.css.map +1 -1
  402. package/dist/utility/icons/icons-buildings/icons-buildings.min.css +3 -3
  403. package/dist/utility/icons/icons-buildings/icons-buildings.min.css.map +1 -1
  404. package/dist/utility/icons/icons-business/README.md +7 -1
  405. package/dist/utility/icons/icons-business/icons-business.css +100 -1
  406. package/dist/utility/icons/icons-business/icons-business.css.map +1 -1
  407. package/dist/utility/icons/icons-business/icons-business.legacy.css +45 -1
  408. package/dist/utility/icons/icons-business/icons-business.legacy.css.map +1 -1
  409. package/dist/utility/icons/icons-business/icons-business.legacy.min.css +2 -2
  410. package/dist/utility/icons/icons-business/icons-business.legacy.min.css.map +1 -1
  411. package/dist/utility/icons/icons-business/icons-business.main.css +56 -1
  412. package/dist/utility/icons/icons-business/icons-business.main.css.map +1 -1
  413. package/dist/utility/icons/icons-business/icons-business.main.min.css +2 -2
  414. package/dist/utility/icons/icons-business/icons-business.main.min.css.map +1 -1
  415. package/dist/utility/icons/icons-business/icons-business.min.css +3 -3
  416. package/dist/utility/icons/icons-business/icons-business.min.css.map +1 -1
  417. package/dist/utility/icons/icons-communication/README.md +7 -1
  418. package/dist/utility/icons/icons-communication/icons-communication.css +1 -1
  419. package/dist/utility/icons/icons-communication/icons-communication.css.map +1 -1
  420. package/dist/utility/icons/icons-communication/icons-communication.legacy.css +1 -1
  421. package/dist/utility/icons/icons-communication/icons-communication.legacy.min.css +1 -1
  422. package/dist/utility/icons/icons-communication/icons-communication.main.css +1 -1
  423. package/dist/utility/icons/icons-communication/icons-communication.main.css.map +1 -1
  424. package/dist/utility/icons/icons-communication/icons-communication.main.min.css +1 -1
  425. package/dist/utility/icons/icons-communication/icons-communication.min.css +1 -1
  426. package/dist/utility/icons/icons-design/README.md +7 -1
  427. package/dist/utility/icons/icons-design/icons-design.css +19 -1
  428. package/dist/utility/icons/icons-design/icons-design.css.map +1 -1
  429. package/dist/utility/icons/icons-design/icons-design.legacy.css +9 -1
  430. package/dist/utility/icons/icons-design/icons-design.legacy.css.map +1 -1
  431. package/dist/utility/icons/icons-design/icons-design.legacy.min.css +2 -2
  432. package/dist/utility/icons/icons-design/icons-design.legacy.min.css.map +1 -1
  433. package/dist/utility/icons/icons-design/icons-design.main.css +11 -1
  434. package/dist/utility/icons/icons-design/icons-design.main.css.map +1 -1
  435. package/dist/utility/icons/icons-design/icons-design.main.min.css +2 -2
  436. package/dist/utility/icons/icons-design/icons-design.main.min.css.map +1 -1
  437. package/dist/utility/icons/icons-design/icons-design.min.css +3 -3
  438. package/dist/utility/icons/icons-design/icons-design.min.css.map +1 -1
  439. package/dist/utility/icons/icons-development/README.md +7 -1
  440. package/dist/utility/icons/icons-development/icons-development.css +1 -1
  441. package/dist/utility/icons/icons-development/icons-development.css.map +1 -1
  442. package/dist/utility/icons/icons-development/icons-development.legacy.css +1 -1
  443. package/dist/utility/icons/icons-development/icons-development.legacy.min.css +1 -1
  444. package/dist/utility/icons/icons-development/icons-development.main.css +1 -1
  445. package/dist/utility/icons/icons-development/icons-development.main.css.map +1 -1
  446. package/dist/utility/icons/icons-development/icons-development.main.min.css +1 -1
  447. package/dist/utility/icons/icons-development/icons-development.min.css +1 -1
  448. package/dist/utility/icons/icons-device/README.md +7 -1
  449. package/dist/utility/icons/icons-device/icons-device.css +55 -1
  450. package/dist/utility/icons/icons-device/icons-device.css.map +1 -1
  451. package/dist/utility/icons/icons-device/icons-device.legacy.css +25 -1
  452. package/dist/utility/icons/icons-device/icons-device.legacy.css.map +1 -1
  453. package/dist/utility/icons/icons-device/icons-device.legacy.min.css +2 -2
  454. package/dist/utility/icons/icons-device/icons-device.legacy.min.css.map +1 -1
  455. package/dist/utility/icons/icons-device/icons-device.main.css +31 -1
  456. package/dist/utility/icons/icons-device/icons-device.main.css.map +1 -1
  457. package/dist/utility/icons/icons-device/icons-device.main.min.css +2 -2
  458. package/dist/utility/icons/icons-device/icons-device.main.min.css.map +1 -1
  459. package/dist/utility/icons/icons-device/icons-device.min.css +3 -3
  460. package/dist/utility/icons/icons-device/icons-device.min.css.map +1 -1
  461. package/dist/utility/icons/icons-document/README.md +7 -1
  462. package/dist/utility/icons/icons-document/icons-document.css +55 -1
  463. package/dist/utility/icons/icons-document/icons-document.css.map +1 -1
  464. package/dist/utility/icons/icons-document/icons-document.legacy.css +25 -1
  465. package/dist/utility/icons/icons-document/icons-document.legacy.css.map +1 -1
  466. package/dist/utility/icons/icons-document/icons-document.legacy.min.css +2 -2
  467. package/dist/utility/icons/icons-document/icons-document.legacy.min.css.map +1 -1
  468. package/dist/utility/icons/icons-document/icons-document.main.css +31 -1
  469. package/dist/utility/icons/icons-document/icons-document.main.css.map +1 -1
  470. package/dist/utility/icons/icons-document/icons-document.main.min.css +2 -2
  471. package/dist/utility/icons/icons-document/icons-document.main.min.css.map +1 -1
  472. package/dist/utility/icons/icons-document/icons-document.min.css +3 -3
  473. package/dist/utility/icons/icons-document/icons-document.min.css.map +1 -1
  474. package/dist/utility/icons/icons-editor/README.md +7 -1
  475. package/dist/utility/icons/icons-editor/icons-editor.css +64 -1
  476. package/dist/utility/icons/icons-editor/icons-editor.css.map +1 -1
  477. package/dist/utility/icons/icons-editor/icons-editor.legacy.css +29 -1
  478. package/dist/utility/icons/icons-editor/icons-editor.legacy.css.map +1 -1
  479. package/dist/utility/icons/icons-editor/icons-editor.legacy.min.css +2 -2
  480. package/dist/utility/icons/icons-editor/icons-editor.legacy.min.css.map +1 -1
  481. package/dist/utility/icons/icons-editor/icons-editor.main.css +36 -1
  482. package/dist/utility/icons/icons-editor/icons-editor.main.css.map +1 -1
  483. package/dist/utility/icons/icons-editor/icons-editor.main.min.css +2 -2
  484. package/dist/utility/icons/icons-editor/icons-editor.main.min.css.map +1 -1
  485. package/dist/utility/icons/icons-editor/icons-editor.min.css +3 -3
  486. package/dist/utility/icons/icons-editor/icons-editor.min.css.map +1 -1
  487. package/dist/utility/icons/icons-finance/README.md +7 -1
  488. package/dist/utility/icons/icons-finance/icons-finance.css +1 -1
  489. package/dist/utility/icons/icons-finance/icons-finance.css.map +1 -1
  490. package/dist/utility/icons/icons-finance/icons-finance.legacy.css +1 -1
  491. package/dist/utility/icons/icons-finance/icons-finance.legacy.min.css +1 -1
  492. package/dist/utility/icons/icons-finance/icons-finance.main.css +1 -1
  493. package/dist/utility/icons/icons-finance/icons-finance.main.css.map +1 -1
  494. package/dist/utility/icons/icons-finance/icons-finance.main.min.css +1 -1
  495. package/dist/utility/icons/icons-finance/icons-finance.min.css +1 -1
  496. package/dist/utility/icons/icons-health/README.md +7 -1
  497. package/dist/utility/icons/icons-health/icons-health.css +1 -1
  498. package/dist/utility/icons/icons-health/icons-health.css.map +1 -1
  499. package/dist/utility/icons/icons-health/icons-health.legacy.css +1 -1
  500. package/dist/utility/icons/icons-health/icons-health.legacy.min.css +1 -1
  501. package/dist/utility/icons/icons-health/icons-health.main.css +1 -1
  502. package/dist/utility/icons/icons-health/icons-health.main.css.map +1 -1
  503. package/dist/utility/icons/icons-health/icons-health.main.min.css +1 -1
  504. package/dist/utility/icons/icons-health/icons-health.min.css +1 -1
  505. package/dist/utility/icons/icons-logo/README.md +7 -1
  506. package/dist/utility/icons/icons-logo/icons-logo.css +253 -1
  507. package/dist/utility/icons/icons-logo/icons-logo.css.map +1 -1
  508. package/dist/utility/icons/icons-logo/icons-logo.legacy.css +113 -1
  509. package/dist/utility/icons/icons-logo/icons-logo.legacy.css.map +1 -1
  510. package/dist/utility/icons/icons-logo/icons-logo.legacy.min.css +2 -2
  511. package/dist/utility/icons/icons-logo/icons-logo.legacy.min.css.map +1 -1
  512. package/dist/utility/icons/icons-logo/icons-logo.main.css +141 -1
  513. package/dist/utility/icons/icons-logo/icons-logo.main.css.map +1 -1
  514. package/dist/utility/icons/icons-logo/icons-logo.main.min.css +2 -2
  515. package/dist/utility/icons/icons-logo/icons-logo.main.min.css.map +1 -1
  516. package/dist/utility/icons/icons-logo/icons-logo.min.css +3 -3
  517. package/dist/utility/icons/icons-logo/icons-logo.min.css.map +1 -1
  518. package/dist/utility/icons/icons-map/README.md +7 -1
  519. package/dist/utility/icons/icons-map/icons-map.css +37 -1
  520. package/dist/utility/icons/icons-map/icons-map.css.map +1 -1
  521. package/dist/utility/icons/icons-map/icons-map.legacy.css +17 -1
  522. package/dist/utility/icons/icons-map/icons-map.legacy.css.map +1 -1
  523. package/dist/utility/icons/icons-map/icons-map.legacy.min.css +2 -2
  524. package/dist/utility/icons/icons-map/icons-map.legacy.min.css.map +1 -1
  525. package/dist/utility/icons/icons-map/icons-map.main.css +21 -1
  526. package/dist/utility/icons/icons-map/icons-map.main.css.map +1 -1
  527. package/dist/utility/icons/icons-map/icons-map.main.min.css +2 -2
  528. package/dist/utility/icons/icons-map/icons-map.main.min.css.map +1 -1
  529. package/dist/utility/icons/icons-map/icons-map.min.css +3 -3
  530. package/dist/utility/icons/icons-map/icons-map.min.css.map +1 -1
  531. package/dist/utility/icons/icons-media/README.md +7 -1
  532. package/dist/utility/icons/icons-media/icons-media.css +145 -1
  533. package/dist/utility/icons/icons-media/icons-media.css.map +1 -1
  534. package/dist/utility/icons/icons-media/icons-media.legacy.css +65 -1
  535. package/dist/utility/icons/icons-media/icons-media.legacy.css.map +1 -1
  536. package/dist/utility/icons/icons-media/icons-media.legacy.min.css +2 -2
  537. package/dist/utility/icons/icons-media/icons-media.legacy.min.css.map +1 -1
  538. package/dist/utility/icons/icons-media/icons-media.main.css +81 -1
  539. package/dist/utility/icons/icons-media/icons-media.main.css.map +1 -1
  540. package/dist/utility/icons/icons-media/icons-media.main.min.css +2 -2
  541. package/dist/utility/icons/icons-media/icons-media.main.min.css.map +1 -1
  542. package/dist/utility/icons/icons-media/icons-media.min.css +3 -3
  543. package/dist/utility/icons/icons-media/icons-media.min.css.map +1 -1
  544. package/dist/utility/icons/icons-others/README.md +7 -1
  545. package/dist/utility/icons/icons-others/icons-others.css +1 -1
  546. package/dist/utility/icons/icons-others/icons-others.css.map +1 -1
  547. package/dist/utility/icons/icons-others/icons-others.legacy.css +1 -1
  548. package/dist/utility/icons/icons-others/icons-others.legacy.min.css +1 -1
  549. package/dist/utility/icons/icons-others/icons-others.main.css +1 -1
  550. package/dist/utility/icons/icons-others/icons-others.main.css.map +1 -1
  551. package/dist/utility/icons/icons-others/icons-others.main.min.css +1 -1
  552. package/dist/utility/icons/icons-others/icons-others.min.css +1 -1
  553. package/dist/utility/icons/icons-system/README.md +7 -1
  554. package/dist/utility/icons/icons-system/icons-system.css +49 -29
  555. package/dist/utility/icons/icons-system/icons-system.css.map +1 -1
  556. package/dist/utility/icons/icons-system/icons-system.legacy.css +23 -13
  557. package/dist/utility/icons/icons-system/icons-system.legacy.css.map +1 -1
  558. package/dist/utility/icons/icons-system/icons-system.legacy.min.css +2 -2
  559. package/dist/utility/icons/icons-system/icons-system.legacy.min.css.map +1 -1
  560. package/dist/utility/icons/icons-system/icons-system.main.css +27 -17
  561. package/dist/utility/icons/icons-system/icons-system.main.css.map +1 -1
  562. package/dist/utility/icons/icons-system/icons-system.main.min.css +2 -2
  563. package/dist/utility/icons/icons-system/icons-system.main.min.css.map +1 -1
  564. package/dist/utility/icons/icons-system/icons-system.min.css +3 -3
  565. package/dist/utility/icons/icons-system/icons-system.min.css.map +1 -1
  566. package/dist/utility/icons/icons-user/README.md +7 -1
  567. package/dist/utility/icons/icons-user/icons-user.css +55 -19
  568. package/dist/utility/icons/icons-user/icons-user.css.map +1 -1
  569. package/dist/utility/icons/icons-user/icons-user.legacy.css +25 -9
  570. package/dist/utility/icons/icons-user/icons-user.legacy.css.map +1 -1
  571. package/dist/utility/icons/icons-user/icons-user.legacy.min.css +2 -2
  572. package/dist/utility/icons/icons-user/icons-user.legacy.min.css.map +1 -1
  573. package/dist/utility/icons/icons-user/icons-user.main.css +31 -11
  574. package/dist/utility/icons/icons-user/icons-user.main.css.map +1 -1
  575. package/dist/utility/icons/icons-user/icons-user.main.min.css +2 -2
  576. package/dist/utility/icons/icons-user/icons-user.main.min.css.map +1 -1
  577. package/dist/utility/icons/icons-user/icons-user.min.css +3 -3
  578. package/dist/utility/icons/icons-user/icons-user.min.css.map +1 -1
  579. package/dist/utility/icons/icons-weather/README.md +7 -1
  580. package/dist/utility/icons/icons-weather/icons-weather.css +19 -1
  581. package/dist/utility/icons/icons-weather/icons-weather.css.map +1 -1
  582. package/dist/utility/icons/icons-weather/icons-weather.legacy.css +9 -1
  583. package/dist/utility/icons/icons-weather/icons-weather.legacy.css.map +1 -1
  584. package/dist/utility/icons/icons-weather/icons-weather.legacy.min.css +2 -2
  585. package/dist/utility/icons/icons-weather/icons-weather.legacy.min.css.map +1 -1
  586. package/dist/utility/icons/icons-weather/icons-weather.main.css +11 -1
  587. package/dist/utility/icons/icons-weather/icons-weather.main.css.map +1 -1
  588. package/dist/utility/icons/icons-weather/icons-weather.main.min.css +2 -2
  589. package/dist/utility/icons/icons-weather/icons-weather.main.min.css.map +1 -1
  590. package/dist/utility/icons/icons-weather/icons-weather.min.css +3 -3
  591. package/dist/utility/icons/icons-weather/icons-weather.min.css.map +1 -1
  592. package/dist/utility/icons/icons.css +861 -49
  593. package/dist/utility/icons/icons.css.map +1 -1
  594. package/dist/utility/icons/icons.legacy.css +383 -21
  595. package/dist/utility/icons/icons.legacy.css.map +1 -1
  596. package/dist/utility/icons/icons.legacy.min.css +2 -2
  597. package/dist/utility/icons/icons.legacy.min.css.map +1 -1
  598. package/dist/utility/icons/icons.main.css +477 -27
  599. package/dist/utility/icons/icons.main.css.map +1 -1
  600. package/dist/utility/icons/icons.main.min.css +2 -2
  601. package/dist/utility/icons/icons.main.min.css.map +1 -1
  602. package/dist/utility/icons/icons.min.css +3 -3
  603. package/dist/utility/icons/icons.min.css.map +1 -1
  604. package/dist/utility/utility.css +861 -49
  605. package/dist/utility/utility.css.map +1 -1
  606. package/dist/utility/utility.legacy.css +383 -21
  607. package/dist/utility/utility.legacy.css.map +1 -1
  608. package/dist/utility/utility.legacy.min.css +2 -2
  609. package/dist/utility/utility.legacy.min.css.map +1 -1
  610. package/dist/utility/utility.main.css +477 -27
  611. package/dist/utility/utility.main.css.map +1 -1
  612. package/dist/utility/utility.main.min.css +2 -2
  613. package/dist/utility/utility.main.min.css.map +1 -1
  614. package/dist/utility/utility.min.css +3 -3
  615. package/dist/utility/utility.min.css.map +1 -1
  616. package/example/component/accordion/index.html +111 -141
  617. package/example/component/tab/index.html +100 -105
  618. package/example/component/table/index.html +98 -98
  619. package/example/utility/icons/icons-buildings/index.html +2 -0
  620. package/example/utility/icons/icons-business/index.html +2 -0
  621. package/example/utility/icons/icons-communication/index.html +2 -0
  622. package/example/utility/icons/icons-design/index.html +2 -0
  623. package/example/utility/icons/icons-development/index.html +2 -0
  624. package/example/utility/icons/icons-device/index.html +2 -0
  625. package/example/utility/icons/icons-document/index.html +2 -0
  626. package/example/utility/icons/icons-editor/index.html +2 -0
  627. package/example/utility/icons/icons-finance/index.html +2 -0
  628. package/example/utility/icons/icons-health/index.html +2 -0
  629. package/example/utility/icons/icons-logo/index.html +2 -0
  630. package/example/utility/icons/icons-map/index.html +2 -0
  631. package/example/utility/icons/icons-media/index.html +2 -0
  632. package/example/utility/icons/icons-others/index.html +2 -0
  633. package/example/utility/icons/icons-system/index.html +8 -6
  634. package/example/utility/icons/icons-user/index.html +46 -74
  635. package/example/utility/icons/icons-weather/index.html +18 -16
  636. package/example/utility/icons/index.html +2 -0
  637. package/example/utility/index.html +13 -0
  638. package/package.json +1 -1
  639. package/src/component/download/script/download/assess-file.js +9 -5
  640. package/src/component/download/script/download/download-selector.js +0 -1
  641. package/src/core/icon/system/{delete-line.svg → delete-bin-fill.svg} +0 -0
  642. package/src/core/icon/system/{delete-fill.svg → delete-bin-line.svg} +0 -0
  643. package/src/utility/.folder.yml +8 -1
  644. package/src/utility/icons/.folder.yml +2 -2
  645. package/src/utility/icons/deprecated/style/_setting.scss +1 -0
  646. package/src/utility/icons/icons-buildings/.package.yml +2 -2
  647. package/src/utility/icons/icons-buildings/deprecated/style/_legacy.scss +8 -0
  648. package/src/utility/icons/icons-buildings/deprecated/style/_module.scss +6 -0
  649. package/src/utility/icons/icons-buildings/deprecated/style/_setting.scss +1 -0
  650. package/src/utility/icons/icons-buildings/legacy.scss +4 -0
  651. package/src/utility/icons/icons-buildings/main.scss +4 -0
  652. package/src/utility/icons/icons-business/.package.yml +2 -2
  653. package/src/utility/icons/icons-business/deprecated/style/_legacy.scss +8 -0
  654. package/src/utility/icons/icons-business/deprecated/style/_module.scss +6 -0
  655. package/src/utility/icons/icons-business/deprecated/style/_setting.scss +1 -0
  656. package/src/utility/icons/icons-business/legacy.scss +4 -0
  657. package/src/utility/icons/icons-business/main.scss +4 -0
  658. package/src/utility/icons/icons-communication/.package.yml +2 -2
  659. package/src/utility/icons/icons-communication/deprecated/style/_legacy.scss +8 -0
  660. package/src/utility/icons/icons-communication/deprecated/style/_module.scss +6 -0
  661. package/src/utility/icons/icons-communication/deprecated/style/_setting.scss +1 -0
  662. package/src/utility/icons/icons-communication/legacy.scss +4 -0
  663. package/src/utility/icons/icons-communication/main.scss +4 -0
  664. package/src/utility/icons/icons-design/.package.yml +2 -2
  665. package/src/utility/icons/icons-design/deprecated/style/_legacy.scss +8 -0
  666. package/src/utility/icons/icons-design/deprecated/style/_module.scss +6 -0
  667. package/src/utility/icons/icons-design/deprecated/style/_setting.scss +1 -0
  668. package/src/utility/icons/icons-design/legacy.scss +4 -0
  669. package/src/utility/icons/icons-design/main.scss +4 -0
  670. package/src/utility/icons/icons-development/.package.yml +2 -2
  671. package/src/utility/icons/icons-development/deprecated/style/_legacy.scss +8 -0
  672. package/src/utility/icons/icons-development/deprecated/style/_module.scss +6 -0
  673. package/src/utility/icons/icons-development/deprecated/style/_setting.scss +1 -0
  674. package/src/utility/icons/icons-development/legacy.scss +4 -0
  675. package/src/utility/icons/icons-development/main.scss +4 -0
  676. package/src/utility/icons/icons-device/.package.yml +2 -2
  677. package/src/utility/icons/icons-device/deprecated/style/_legacy.scss +8 -0
  678. package/src/utility/icons/icons-device/deprecated/style/_module.scss +6 -0
  679. package/src/utility/icons/icons-device/deprecated/style/_setting.scss +1 -0
  680. package/src/utility/icons/icons-device/legacy.scss +4 -0
  681. package/src/utility/icons/icons-device/main.scss +4 -0
  682. package/src/utility/icons/icons-document/.package.yml +2 -2
  683. package/src/utility/icons/icons-document/deprecated/style/_legacy.scss +8 -0
  684. package/src/utility/icons/icons-document/deprecated/style/_module.scss +6 -0
  685. package/src/utility/icons/icons-document/deprecated/style/_setting.scss +1 -0
  686. package/src/utility/icons/icons-document/legacy.scss +4 -0
  687. package/src/utility/icons/icons-document/main.scss +4 -0
  688. package/src/utility/icons/icons-editor/.package.yml +2 -2
  689. package/src/utility/icons/icons-editor/deprecated/style/_legacy.scss +8 -0
  690. package/src/utility/icons/icons-editor/deprecated/style/_module.scss +6 -0
  691. package/src/utility/icons/icons-editor/deprecated/style/_setting.scss +1 -0
  692. package/src/utility/icons/icons-editor/legacy.scss +4 -0
  693. package/src/utility/icons/icons-editor/main.scss +4 -0
  694. package/src/utility/icons/icons-finance/.package.yml +2 -2
  695. package/src/utility/icons/icons-finance/deprecated/style/_legacy.scss +8 -0
  696. package/src/utility/icons/icons-finance/deprecated/style/_module.scss +6 -0
  697. package/src/utility/icons/icons-finance/deprecated/style/_setting.scss +1 -0
  698. package/src/utility/icons/icons-finance/legacy.scss +4 -0
  699. package/src/utility/icons/icons-finance/main.scss +4 -0
  700. package/src/utility/icons/icons-health/.package.yml +2 -2
  701. package/src/utility/icons/icons-health/deprecated/style/_legacy.scss +8 -0
  702. package/src/utility/icons/icons-health/deprecated/style/_module.scss +6 -0
  703. package/src/utility/icons/icons-health/deprecated/style/_setting.scss +1 -0
  704. package/src/utility/icons/icons-health/legacy.scss +4 -0
  705. package/src/utility/icons/icons-health/main.scss +4 -0
  706. package/src/utility/icons/icons-logo/.package.yml +2 -2
  707. package/src/utility/icons/icons-logo/deprecated/style/_legacy.scss +8 -0
  708. package/src/utility/icons/icons-logo/deprecated/style/_module.scss +6 -0
  709. package/src/utility/icons/icons-logo/deprecated/style/_setting.scss +1 -0
  710. package/src/utility/icons/icons-logo/legacy.scss +4 -0
  711. package/src/utility/icons/icons-logo/main.scss +4 -0
  712. package/src/utility/icons/icons-map/.package.yml +2 -2
  713. package/src/utility/icons/icons-map/deprecated/style/_legacy.scss +8 -0
  714. package/src/utility/icons/icons-map/deprecated/style/_module.scss +6 -0
  715. package/src/utility/icons/icons-map/deprecated/style/_setting.scss +1 -0
  716. package/src/utility/icons/icons-map/legacy.scss +4 -0
  717. package/src/utility/icons/icons-map/main.scss +4 -0
  718. package/src/utility/icons/icons-media/.package.yml +2 -2
  719. package/src/utility/icons/icons-media/deprecated/style/_legacy.scss +24 -0
  720. package/src/utility/icons/icons-media/deprecated/style/_module.scss +22 -0
  721. package/src/utility/icons/icons-media/deprecated/style/_setting.scss +1 -0
  722. package/src/utility/icons/icons-media/legacy.scss +4 -0
  723. package/src/utility/icons/icons-media/main.scss +4 -0
  724. package/src/utility/icons/icons-others/.package.yml +2 -2
  725. package/src/utility/icons/icons-others/deprecated/style/_legacy.scss +8 -0
  726. package/src/utility/icons/icons-others/deprecated/style/_module.scss +6 -0
  727. package/src/utility/icons/icons-others/deprecated/style/_setting.scss +1 -0
  728. package/src/utility/icons/icons-others/legacy.scss +4 -0
  729. package/src/utility/icons/icons-others/main.scss +4 -0
  730. package/src/utility/icons/icons-system/.package.yml +2 -2
  731. package/src/utility/icons/icons-system/deprecated/style/_legacy.scss +16 -0
  732. package/src/utility/icons/icons-system/deprecated/style/_module.scss +16 -0
  733. package/src/utility/icons/icons-system/deprecated/style/_setting.scss +1 -0
  734. package/src/utility/icons/icons-system/legacy.scss +1 -1
  735. package/src/utility/icons/icons-system/main.scss +1 -1
  736. package/src/utility/icons/icons-user/.package.yml +2 -2
  737. package/src/utility/icons/icons-user/deprecated/style/_legacy.scss +24 -0
  738. package/src/utility/icons/icons-user/deprecated/style/_module.scss +22 -0
  739. package/src/utility/icons/icons-user/deprecated/style/_setting.scss +1 -0
  740. package/src/utility/icons/icons-user/legacy.scss +4 -0
  741. package/src/utility/icons/icons-user/main.scss +4 -0
  742. package/src/utility/icons/icons-weather/.package.yml +2 -2
  743. package/src/utility/icons/icons-weather/deprecated/style/_legacy.scss +8 -0
  744. package/src/utility/icons/icons-weather/deprecated/style/_module.scss +6 -0
  745. package/src/utility/icons/icons-weather/deprecated/style/_setting.scss +1 -0
  746. package/src/utility/icons/icons-weather/legacy.scss +4 -0
  747. package/src/utility/icons/icons-weather/main.scss +4 -0
  748. package/dist/dsfr/dsfr-deprecated.nomodule.js.map +0 -1
  749. package/dist/dsfr/dsfr-deprecated.nomodule.min.js.map +0 -1
  750. package/dist/icons/user/account-fill.svg +0 -1
  751. package/dist/icons/user/account-line.svg +0 -1
  752. package/src/core/icon/user/account-fill.svg +0 -1
  753. package/src/core/icon/user/account-line.svg +0 -1
  754. package/src/utility/icons/icons-system/deprecated/style/_settings.scss +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"core.module.js","sources":["../../src/core/script/api/state.js","../../.config/config.js","../../src/core/script/api/inspect/inspector.js","../../src/core/script/api/options/starters.js","../../src/core/script/api/options/options.js","../../src/core/script/api/utilities/collection.js","../../src/core/script/api/modules/module.js","../../src/core/script/api/utilities/namespace.js","../../src/core/script/api/utilities/dom/query-selector.js","../../src/core/script/api/modules/register/registration.js","../../src/core/script/api/modules/register/register.js","../../src/core/script/api/modules/stage/element.js","../../src/core/script/api/modules/stage/root.js","../../src/core/script/api/modules/stage/stage.js","../../src/core/script/api/modules/render/renderer.js","../../src/core/script/api/modules/resize/resizer.js","../../src/core/script/api/modules/scroll/scroll-locker.js","../../src/core/script/api/modules/load/load.js","../../src/core/script/api/modules/font-swap/font-swap.js","../../src/core/script/api/modules/mouse-move/mouse-move.js","../../src/core/script/api/engine.js","../../src/core/script/api/utilities/dom/classes.js","../../src/core/script/api/utilities/dom/index.js","../../src/core/script/api/utilities/support/browser-support.js","../../src/core/script/api/utilities/support/index.js","../../src/core/script/api/utilities/motion/transition-selector.js","../../src/core/script/api/utilities/motion/index.js","../../src/core/script/api/utilities/property/complete-assign.js","../../src/core/script/api/utilities/property/index.js","../../src/core/script/api/internals.js","../../src/core/script/api/api.js","../../src/core/script/api/utilities/emitter.js","../../src/core/script/api/modules/register/breakpoints.js","../../src/core/script/api/modules/register/instance.js","../../src/core/script/api/modules/register/key-codes.js","../../src/core/script/disclosure/disclosure-event.js","../../src/core/script/disclosure/disclosure-emission.js","../../src/core/script/disclosure/disclosure.js","../../src/core/script/disclosure/disclosure-button.js","../../src/core/script/disclosure/disclosures-group.js","../../src/core/script/disclosure/disclosure-type.js","../../src/core/script/collapse/collapse-button.js","../../src/core/script/collapse/collapse-selector.js","../../src/core/script/collapse/collapse.js","../../src/core/script/collapse/collapses-group.js","../../src/core/script/equisized/equisized-emission.js","../../src/core/script/equisized/equisized.js","../../src/core/script/equisized/equisizeds-group.js","../../src/core/script/action/toggle/toggle-event.js","../../src/core/script/action/toggle/toggle.js","../../src/core/script/api/utilities/attribute.js","../../src/core/script/inject/inject-svg.js","../../src/core/script/inject/inject-svg-selector.js","../../src/core/index.js","../../src/core/main.js"],"sourcesContent":["class State {\n constructor () {\n this.modules = {};\n }\n\n create (ModuleClass) {\n const module = new ModuleClass();\n this.modules[module.type] = module;\n }\n\n getModule (type) {\n return this.modules[type];\n }\n\n add (type, item) {\n this.modules[type].add(item);\n }\n\n remove (type, item) {\n this.modules[type].remove(item);\n }\n\n get isActive () {\n return this._isActive;\n }\n\n set isActive (value) {\n if (value === this._isActive) return;\n this._isActive = value;\n const values = Object.keys(this.modules).map((e) => {\n return this.modules[e];\n });\n if (value) {\n for (const module of values) {\n module.activate();\n }\n } else {\n for (const module of values) {\n module.deactivate();\n }\n }\n }\n\n get isLegacy () {\n return this._isLegacy;\n }\n\n set isLegacy (value) {\n if (value === this._isLegacy) return;\n this._isLegacy = value;\n }\n}\n\nconst state = new State();\n\nexport default state;\n","const config = {\r\n prefix: 'fr',\r\n namespace: 'dsfr',\r\n organisation: '@gouvfr',\r\n version: '1.5.0'\r\n};\r\n\r\nexport default config;\r\n","import state from '../state.js';\nimport config from '../../../config.js';\n\nclass LogLevel {\n constructor (level, light, dark, logger) {\n this.level = level;\n this.light = light;\n this.dark = dark;\n\n switch (logger) {\n case 'warn':\n this.logger = console.warn;\n break;\n\n case 'error':\n this.logger = console.error;\n break;\n\n default:\n this.logger = console.log;\n }\n }\n\n log (...values) {\n const message = new Message(config.namespace);\n for (const value of values) message.add(value);\n this.print(message);\n }\n\n print (message) {\n message.setColor(this.color);\n this.logger.apply(console, message.getMessage());\n }\n\n get color () {\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? this.dark : this.light;\n }\n}\n\nclass Message {\n constructor (domain) {\n this.inputs = ['%c'];\n this.styles = ['font-family:Marianne', 'line-height: 1.5'];\n this.objects = [];\n\n if (domain) this.add(`${domain} :`);\n }\n\n add (value) {\n switch (typeof value) {\n case 'object':\n case 'function':\n this.inputs.push('%o ');\n this.objects.push(value);\n break;\n\n default:\n this.inputs.push(`${value} `);\n }\n }\n\n setColor (color) {\n this.styles.push(`color:${color}`);\n }\n\n getMessage () {\n return [this.inputs.join(''), this.styles.join(';'), ...this.objects];\n }\n}\n\nconst LEVELS = {\n trace: new LogLevel(0, '#616161', '#989898'),\n debug: new LogLevel(1, '#000091', '#8B8BFF'),\n info: new LogLevel(2, '#007c3b', '#00ed70'),\n warn: new LogLevel(3, '#ba4500', '#fa5c00', 'warn'),\n error: new LogLevel(4, '#D80600', '#FF4641', 'error')\n};\n\nclass Inspector {\n constructor () {\n this.level = 2;\n\n for (const id in LEVELS) {\n const level = LEVELS[id];\n this[id] = (...msgs) => {\n if (this.level <= level.level) level.log.apply(level, msgs);\n };\n this[id].print = level.print.bind(level);\n }\n }\n\n state () {\n const message = new Message();\n message.add(state);\n this.trace.print(message);\n }\n\n tree () {\n const stage = state.getModule('stage');\n if (!stage) return;\n const message = new Message();\n this._branch(stage.root, 0, message);\n this.trace.print(message);\n }\n\n _branch (element, space, message) {\n let branch = '';\n if (space > 0) {\n let indent = '';\n for (let i = 0; i < space; i++) indent += ' ';\n // branch += indent + '|\\n';\n branch += indent + '└─ ';\n }\n branch += `[${element.id}] ${element.html}`;\n message.add(branch);\n message.add({ '@': element });\n message.add('\\n');\n for (const child of element.children) branch += this._branch(child, space + 1, message);\n }\n}\n\nconst inspector = new Inspector();\n\nexport default inspector;\n","export const startAtDomContentLoaded = (callback) => {\n if (document.readyState !== 'loading') window.requestAnimationFrame(callback);\n else document.addEventListener('DOMContentLoaded', callback);\n};\n\nexport const startAuto = (callback) => {\n // detect\n startAtDomContentLoaded(callback);\n};\n","import inspector from '../inspect/inspector.js';\nimport { startAtDomContentLoaded, startAuto } from './starters.js';\n\nexport const Modes = {\n AUTO: 'auto',\n MANUAL: 'manual',\n RUNTIME: 'runtime',\n LOADED: 'loaded',\n VUE: 'vue',\n ANGULAR: 'angular',\n REACT: 'react'\n};\n\nclass Options {\n constructor () {\n this._mode = Modes.AUTO;\n this.isStarted = false;\n this.starting = this.start.bind(this);\n this.preventManipulation = false;\n }\n\n configure (settings = {}, start) {\n this.startCallback = start;\n if (settings.verbose === true) inspector.level = 0;\n this.mode = settings.mode || Modes.AUTO;\n }\n\n set mode (value) {\n switch (value) {\n case Modes.AUTO:\n this.preventManipulation = false;\n startAuto(this.starting);\n break;\n\n case Modes.LOADED:\n this.preventManipulation = false;\n startAtDomContentLoaded(this.starting);\n break;\n\n case Modes.RUNTIME:\n this.preventManipulation = false;\n this.start();\n break;\n\n case Modes.MANUAL:\n this.preventManipulation = false;\n break;\n\n case Modes.VUE:\n this.preventManipulation = true;\n break;\n\n case Modes.ANGULAR:\n this.preventManipulation = true;\n break;\n\n case Modes.REACT:\n this.preventManipulation = true;\n break;\n\n default:\n inspector.error('Illegal mode');\n return;\n }\n\n this._mode = value;\n inspector.info(`mode set to ${value}`);\n }\n\n get mode () {\n return this._mode;\n }\n\n start () {\n inspector.info('start');\n this.startCallback();\n }\n}\n\nconst options = new Options();\nexport default options;\n","class Collection {\n constructor () {\n this._collection = [];\n }\n\n forEach (callback) {\n this._collection.forEach(callback);\n }\n\n map (callback) {\n return this._collection.map(callback);\n }\n\n get length () {\n return this._collection.length;\n }\n\n add (collectable) {\n if (this._collection.indexOf(collectable) > -1) return false;\n this._collection.push(collectable);\n if (this.onAdd) this.onAdd();\n if (this.onPopulate && this._collection.length === 1) this.onPopulate();\n return true;\n }\n\n remove (collectable) {\n const index = this._collection.indexOf(collectable);\n if (index === -1) return false;\n this._collection.splice(index, 1);\n if (this.onRemove) this.onRemove();\n if (this.onEmpty && this._collection.length === 0) this.onEmpty();\n }\n\n execute (...args) {\n for (const collectable of this._collection) if (collectable) collectable.apply(null, args);\n }\n\n clear () {\n this._collection.length = 0;\n }\n\n clone () {\n const clone = new Collection();\n clone._collection = this._collection.slice();\n return clone;\n }\n\n get collection () {\n return this._collection;\n }\n}\n\nexport { Collection };\n","import { Collection } from '../utilities/collection.js';\n\nclass Module extends Collection {\n constructor (type) {\n super();\n this.type = type;\n this.isActive = false;\n }\n\n activate () {}\n deactivate () {}\n}\n\nexport { Module };\n","import config from '../../../config.js';\n\nconst ns = name => `${config.prefix}-${name}`;\n\nns.selector = (name, notation) => {\n if (notation === undefined) notation = '.';\n return `${notation}${ns(name)}`;\n};\n\nns.attr = (name) => `data-${ns(name)}`;\n\nns.attr.selector = (name, value) => {\n let result = ns.attr(name);\n if (value !== undefined) result += `=\"${value}\"`;\n return `[${result}]`;\n};\n\nns.event = (type) => `${config.namespace}.${type}`;\n\nns.emission = (domain, type) => `emission:${domain}.${type}`;\n\nexport default ns;\n","export const querySelectorAllArray = (element, selectors) => Array.prototype.slice.call(element.querySelectorAll(selectors));\n\nexport const queryParentSelector = (element, selectors) => {\n const parent = element.parentElement;\n if (parent.matches(selectors)) return parent;\n if (parent === document.documentElement) return null;\n return queryParentSelector(parent, selectors);\n};\n","import { Collection } from '../../utilities/collection.js';\nimport state from '../../state.js';\nimport ns from '../../utilities/namespace.js';\nimport { querySelectorAllArray } from '../../utilities/dom/query-selector';\n\nclass Registration {\n constructor (selector, InstanceClass, creator) {\n this.selector = selector;\n this.InstanceClass = InstanceClass;\n this.creator = creator;\n this.instances = new Collection();\n this.isIntroduced = false;\n this._instanceClassName = this.InstanceClass.instanceClassName;\n this._instanceClassNames = this.getInstanceClassNames(this.InstanceClass);\n this._property = this._instanceClassName.substring(0, 1).toLowerCase() + this._instanceClassName.substring(1);\n const dashed = this._instanceClassName\n .replace(/[^a-zA-Z0-9]+/g, '-')\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1-$2')\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/([0-9])([^0-9])/g, '$1-$2')\n .replace(/([^0-9])([0-9])/g, '$1-$2')\n .toLowerCase();\n this._attribute = ns.attr(`js-${dashed}`);\n }\n\n getInstanceClassNames (InstanceClass) {\n const prototype = Object.getPrototypeOf(InstanceClass);\n if (!prototype || prototype.instanceClassName === 'Instance') return [InstanceClass.instanceClassName];\n return [...this.getInstanceClassNames(prototype), InstanceClass.instanceClassName];\n }\n\n hasInstanceClassName (instanceClassName) {\n return this._instanceClassNames.indexOf(instanceClassName) > -1;\n }\n\n introduce () {\n if (this.isIntroduced) return;\n this.isIntroduced = true;\n state.getModule('stage').parse(document.documentElement, this);\n }\n\n parse (node, nonRecursive) {\n const nodes = [];\n if (node.matches && node.matches(this.selector)) nodes.push(node);\n // eslint-disable-next-line no-useless-call\n if (!nonRecursive && node.querySelectorAll && node.querySelector(this.selector)) nodes.push.apply(nodes, querySelectorAllArray(node, this.selector));\n return nodes;\n }\n\n create (element) {\n if (!element.node.matches(this.selector)) return;\n const instance = new this.InstanceClass();\n this.instances.add(instance);\n return instance;\n }\n\n remove (instance) {\n this.instances.remove(instance);\n }\n\n dispose () {\n const instances = this.instances.collection;\n for (let i = instances.length - 1; i > -1; i--) instances[i]._dispose();\n this.creator = null;\n }\n\n get instanceClassName () {\n return this._instanceClassName;\n }\n\n get instanceClassNames () {\n return this._instanceClassNames;\n }\n\n get property () {\n return this._property;\n }\n\n get attribute () {\n return this._attribute;\n }\n}\n\nexport { Registration };\n","import { Module } from '../module.js';\nimport { Registration } from './registration.js';\nimport state from '../../state.js';\n\nclass Register extends Module {\n constructor () {\n super('register');\n }\n\n register (selector, InstanceClass, creator) {\n const registration = new Registration(selector, InstanceClass, creator);\n this.add(registration);\n if (state.isActive) registration.introduce();\n return registration;\n }\n\n activate () {\n for (const registration of this.collection) registration.introduce();\n }\n\n remove (registration) {\n registration.dispose();\n super.remove(registration);\n }\n}\n\nexport { Register };\n","import state from '../../state.js';\nimport inspector from '../../inspect/inspector.js';\n\nlet count = 0;\n\nclass Element {\n constructor (node, id) {\n if (!id) {\n count++;\n this.id = count;\n } else this.id = id;\n this.node = node;\n this.attributeNames = [];\n this.instances = [];\n this._children = [];\n this._parent = null;\n this._projects = [];\n }\n\n get proxy () {\n const scope = this;\n if (!this._proxy) {\n this._proxy = {\n id: this.id,\n get parent () {\n return scope.parent ? scope.parent.proxy : null;\n },\n get children () {\n return scope.children.map((child) => child.proxy);\n }\n };\n\n for (const instance of this.instances) this._proxy[instance.registration.property] = instance.proxy;\n }\n return this._proxy;\n }\n\n get html () {\n const end = this.node.outerHTML.indexOf('>');\n return this.node.outerHTML.substring(0, end + 1);\n }\n\n project (registration) {\n if (this._projects.indexOf(registration) === -1) this._projects.push(registration);\n }\n\n populate () {\n const projects = this._projects.slice();\n this._projects.length = 0;\n for (const registration of projects) this.create(registration);\n }\n\n create (registration) {\n if (this.hasInstance(registration.instanceClassName)) {\n // inspector.debug(`failed creation, instance of ${registration.instanceClassName} already exists on element [${this.id}]`);\n return;\n }\n inspector.debug(`create instance of ${registration.instanceClassName} on element [${this.id}]`);\n const instance = registration.create(this);\n this.instances.push(instance);\n instance._config(this, registration);\n if (this._proxy) this._proxy[registration.property] = instance.proxy;\n }\n\n remove (instance) {\n const index = this.instances.indexOf(instance);\n if (index > -1) this.instances.splice(index, 1);\n if (this._proxy) delete this._proxy[instance.registration.property];\n }\n\n get parent () {\n return this._parent;\n }\n\n get ascendants () {\n return [this.parent, ...this.parent.ascendants];\n }\n\n get children () {\n return this._children;\n }\n\n get descendants () {\n const descendants = [...this._children];\n this._children.forEach(child => descendants.push(...child.descendants));\n return descendants;\n }\n\n // TODO : emit ascendant et descendant de changement ?\n\n addChild (child, index) {\n if (this._children.indexOf(child) > -1) return null;\n child._parent = this;\n if (!isNaN(index) && index > -1 && index < this._children.length) this._children.splice(index, 0, child);\n else this._children.push(child);\n return child;\n }\n\n removeChild (child) {\n const index = this._children.indexOf(child);\n if (index === -1) return null;\n child._parent = null;\n this._children.splice(index, 1);\n }\n\n emit (type, data) {\n const elements = state.getModule('stage').collection;\n const response = [];\n for (const element of elements) response.push(...element._emit(type, data));\n return response;\n }\n\n _emit (type, data) {\n const response = [];\n for (const instance of this.instances) response.push(...instance._emitter.emit(type, data));\n return response;\n }\n\n ascend (type, data) {\n if (this._parent) return this._parent._ascend(type, data);\n return [];\n }\n\n _ascend (type, data) {\n const response = [];\n for (const instance of this.instances) response.push(...instance._ascent.emit(type, data));\n if (this._parent) response.push(...this._parent._ascend(type, data));\n return response;\n }\n\n descend (type, data) {\n const response = [];\n for (const child of this._children) response.push(...child._descend(type, data));\n return response;\n }\n\n _descend (type, data) {\n const response = [];\n for (const instance of this.instances) response.push(...instance._descent.emit(type, data));\n for (const child of this._children) response.push(...child._descend(type, data));\n return response;\n }\n\n getInstance (instanceClassName) {\n for (const instance of this.instances) if (instance.registration.hasInstanceClassName(instanceClassName)) return instance;\n return null;\n }\n\n hasInstance (instanceClassName) {\n return this.getInstance(instanceClassName) !== null;\n }\n\n getDescendantInstances (instanceClassName, stopAtInstanceClassName, stopAtFirstInstance) {\n if (!instanceClassName) return [];\n const instances = [];\n for (const child of this._children) {\n const instance = child.getInstance(instanceClassName);\n if (instance) {\n instances.push(instance);\n if (stopAtFirstInstance) continue;\n }\n if ((!stopAtInstanceClassName || !child.hasInstance(stopAtInstanceClassName)) && child.children.length) instances.push.apply(instances, child.getDescendantInstances(instanceClassName, stopAtInstanceClassName, stopAtFirstInstance));\n }\n return instances;\n }\n\n getAscendantInstance (instanceClassName, stopAtInstanceClassName) {\n if (!instanceClassName || !this._parent) return null;\n const instance = this._parent.getInstance(instanceClassName);\n if (instance) return instance;\n if (stopAtInstanceClassName && this._parent.hasInstance(stopAtInstanceClassName)) return null;\n return this._parent.getAscendantInstance(instanceClassName, stopAtInstanceClassName);\n }\n\n dispose () {\n for (const instance of this.instances) instance._dispose();\n this.instances.length = 0;\n state.remove('stage', this);\n this.parent.removeChild(this);\n this._children.length = 0;\n inspector.debug(`remove element [${this.id}] ${this.html}`);\n }\n\n prepare (attributeName) {\n if (this.attributeNames.indexOf(attributeName) === -1) this.attributeNames.push(attributeName);\n }\n\n examine () {\n const attributeNames = this.attributeNames.slice();\n this.attributeNames.length = 0;\n for (let i = this.instances.length - 1; i > -1; i--) this.instances[i].examine(attributeNames);\n }\n}\n\nexport { Element };\n","import { Element } from './element.js';\nimport ns from '../../utilities/namespace.js';\n\nclass Root extends Element {\n constructor () {\n super(document.documentElement, 'root');\n this.node.setAttribute(ns.attr('js'), true);\n }\n}\n\nconst RootSelector = {\n ROOT: ':root'\n};\n\nexport { Root, RootSelector };\n","import state from '../../state.js';\nimport { Element } from './element.js';\nimport { Module } from '../module.js';\nimport { Root } from './root.js';\nimport inspector from '../../inspect/inspector.js';\n\nclass Stage extends Module {\n constructor () {\n super('stage');\n this.root = new Root();\n super.add(this.root);\n this.observer = new MutationObserver(this.mutate.bind(this));\n this.modifications = [];\n this.willModify = false;\n this.modifying = this.modify.bind(this);\n }\n\n hasElement (node) {\n for (const element of this.collection) if (element.node === node) return true;\n return false;\n }\n\n getElement (node) {\n for (const element of this.collection) if (element.node === node) return element;\n const element = new Element(node);\n this.add(element);\n inspector.debug(`add element [${element.id}] ${element.html}`);\n return element;\n }\n\n getProxy (node) {\n if (!this.hasElement(node)) return null;\n const element = this.getElement(node);\n return element.proxy;\n }\n\n add (element) {\n super.add(element);\n this.put(element, this.root);\n }\n\n put (element, branch) {\n let index = 0;\n for (let i = branch.children.length - 1; i > -1; i--) {\n const child = branch.children[i];\n const position = element.node.compareDocumentPosition(child.node);\n if (position & Node.DOCUMENT_POSITION_CONTAINS) {\n this.put(element, child);\n return;\n } else if (position & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n branch.removeChild(child);\n element.addChild(child, 0);\n } else if (position & Node.DOCUMENT_POSITION_PRECEDING) {\n index = i + 1;\n break;\n }\n }\n\n branch.addChild(element, index);\n }\n\n activate () {\n this.observer.observe(document.documentElement, { childList: true, subtree: true, attributes: true });\n }\n\n deactivate () {\n this.observer.disconnect();\n }\n\n mutate (mutations) {\n const examinations = [];\n mutations.forEach((mutation) => {\n switch (mutation.type) {\n case 'childList':\n mutation.removedNodes.forEach((node) => this.dispose(node));\n mutation.addedNodes.forEach((node) => this.parse(node));\n break;\n\n case 'attributes':\n if (this.hasElement(mutation.target)) {\n const element = this.getElement(mutation.target);\n element.prepare(mutation.attributeName);\n if (examinations.indexOf(element) === -1) examinations.push(element);\n for (const descendant of element.descendants) if (examinations.indexOf(descendant) === -1) examinations.push(descendant);\n }\n if (this.modifications.indexOf(mutation.target) === -1) this.modifications.push(mutation.target);\n break;\n }\n });\n\n examinations.forEach(element => element.examine());\n if (this.modifications.length && !this.willModify) {\n this.willModify = true;\n window.requestAnimationFrame(this.modifying);\n }\n }\n\n modify () {\n this.willModify = false;\n const targets = this.modifications.slice();\n this.modifications.length = 0;\n for (const target of targets) if (document.documentElement.contains(target)) this.parse(target);\n }\n\n dispose (node) {\n const disposables = [];\n this.forEach((element) => {\n if (node.contains(element.node)) disposables.push(element);\n });\n\n for (const disposable of disposables) {\n disposable.dispose();\n this.remove(disposable);\n }\n }\n\n parse (node, registration, nonRecursive) {\n const registrations = registration ? [registration] : state.getModule('register').collection;\n const creations = [];\n\n for (const registration of registrations) {\n const nodes = registration.parse(node, nonRecursive);\n\n for (const n of nodes) {\n const element = this.getElement(n);\n element.project(registration);\n if (creations.indexOf(element) === -1) creations.push(element);\n }\n }\n\n for (const element of creations) element.populate();\n }\n}\n\nexport { Stage };\n","import state from '../../state.js';\nimport { Module } from '../module.js';\nimport { Collection } from '../../utilities/collection.js';\n\nclass Renderer extends Module {\n constructor () {\n super('render');\n this.rendering = this.render.bind(this);\n this.nexts = new Collection();\n }\n\n activate () {\n window.requestAnimationFrame(this.rendering);\n }\n\n request (instance) {\n this.nexts.add(instance);\n }\n\n render () {\n if (!state.isActive) return;\n window.requestAnimationFrame(this.rendering);\n this.forEach((instance) => instance.render());\n if (!this.nexts.length) return;\n const nexts = this.nexts.clone();\n this.nexts.clear();\n nexts.forEach((instance) => instance.next());\n }\n}\n\nexport { Renderer };\n","import { Module } from '../module.js';\n\nclass Resizer extends Module {\n constructor () {\n super('resize');\n this.requireResize = false;\n this.resizing = this.resize.bind(this);\n const requesting = this.request.bind(this);\n if (document.fonts) {\n document.fonts.ready.then(requesting);\n }\n window.addEventListener('resize', requesting);\n window.addEventListener('orientationchange', requesting);\n }\n\n activate () {\n this.request();\n }\n\n request () {\n if (this.requireResize) return;\n this.requireResize = true;\n window.requestAnimationFrame(this.resizing);\n }\n\n resize () {\n if (!this.requireResize) return;\n this.forEach((instance) => instance.resize());\n this.requireResize = false;\n }\n}\n\nexport { Resizer };\n","import ns from '../../utilities/namespace.js';\nimport { Module } from '../module.js';\n\nclass ScrollLocker extends Module {\n constructor () {\n super('lock');\n this._isLocked = false;\n this._scrollY = 0;\n this.onPopulate = this.lock.bind(this);\n this.onEmpty = this.unlock.bind(this);\n }\n\n get isLocked () {\n return this._isLocked;\n }\n\n lock () {\n if (!this._isLocked) {\n this._isLocked = true;\n this._scrollY = window.scrollY;\n if (this.isLegacy) document.body.style.top = this._scrollY * -1 + 'px';\n else document.body.style.setProperty('--scroll-top', this._scrollY * -1 + 'px');\n document.documentElement.setAttribute(ns.attr('scrolling'), 'false');\n }\n }\n\n unlock () {\n if (this._isLocked) {\n this._isLocked = false;\n document.documentElement.removeAttribute(ns.attr('scrolling'));\n if (this.isLegacy) document.body.style.top = '';\n else document.body.style.removeProperty('--scroll-top');\n window.scroll(0, this._scrollY);\n }\n }\n}\n\nexport { ScrollLocker };\n","import { Module } from '../module.js';\n\nclass Load extends Module {\n constructor () {\n super('load');\n this.loading = this.load.bind(this);\n }\n\n activate () {\n window.addEventListener('load', this.loading);\n }\n\n load () {\n this.forEach((instance) => instance.load());\n }\n}\n\nexport { Load };\n","import { Module } from '../module.js';\n\nconst FONT_FAMILIES = ['Marianne', 'Spectral'];\n\nclass FontSwap extends Module {\n constructor () {\n super('font-swap');\n this.swapping = this.swap.bind(this);\n }\n\n activate () {\n if (document.fonts) {\n document.fonts.addEventListener('loadingdone', this.swapping);\n }\n }\n\n swap () {\n const families = FONT_FAMILIES.filter(family => document.fonts.check(`16px ${family}`));\n\n this.forEach((instance) => instance.swapFont(families));\n }\n}\n\nexport { FontSwap };\n","import { Module } from '../module.js';\n\nclass MouseMove extends Module {\n constructor () {\n super('mouse-move');\n this.requireMove = false;\n this._isMoving = false;\n this.moving = this.move.bind(this);\n this.requesting = this.request.bind(this);\n this.onPopulate = this.listen.bind(this);\n this.onEmpty = this.unlisten.bind(this);\n }\n\n listen () {\n if (this._isMoving) return;\n this._isMoving = true;\n this.requireMove = false;\n document.documentElement.addEventListener('mousemove', this.requesting);\n }\n\n unlisten () {\n if (!this._isMoving) return;\n this._isMoving = false;\n this.requireMove = false;\n document.documentElement.removeEventListener('mousemove', this.requesting);\n }\n\n request (e) {\n if (!this._isMoving) return;\n this.point = { x: e.clientX, y: e.clientY };\n if (this.requireMove) return;\n this.requireMove = true;\n window.requestAnimationFrame(this.moving);\n }\n\n move () {\n if (!this.requireMove) return;\n this.forEach((instance) => instance.mouseMove(this.point));\n this.requireMove = false;\n }\n}\n\nexport { MouseMove };\n","import { Register } from './modules/register/register.js';\nimport { Stage } from './modules/stage/stage.js';\nimport { Renderer } from './modules/render/renderer.js';\nimport { Resizer } from './modules/resize/resizer.js';\nimport { ScrollLocker } from './modules/scroll/scroll-locker.js';\nimport { Load } from './modules/load/load.js';\nimport { FontSwap } from './modules/font-swap/font-swap';\nimport { MouseMove } from './modules/mouse-move/mouse-move';\nimport inspector from './inspect/inspector.js';\nimport state from './state.js';\n\nclass Engine {\n constructor () {\n state.create(Register);\n state.create(Stage);\n state.create(Renderer);\n state.create(Resizer);\n state.create(ScrollLocker);\n state.create(Load);\n state.create(FontSwap);\n state.create(MouseMove);\n\n const registerModule = state.getModule('register');\n this.register = registerModule.register.bind(registerModule);\n }\n\n get isActive () {\n return state.isActive;\n }\n\n start () {\n inspector.debug('START');\n state.isActive = true;\n }\n\n stop () {\n inspector.debug('STOP');\n state.isActive = false;\n }\n}\n\nconst engine = new Engine();\nexport default engine;\n","const sanitize = (className) => className.charAt(0) === '.' ? className.substr(1) : className;\n\nconst getClassNames = (element) => element.className ? element.className.split(' ') : [];\n\nconst modifyClass = (element, className, remove) => {\n className = sanitize(className);\n const classNames = getClassNames(element);\n const index = classNames.indexOf(className);\n if (remove === true) {\n if (index > -1) classNames.splice(index, 1);\n } else if (index === -1) classNames.push(className);\n element.className = classNames.join(' ');\n};\n\nconst addClass = (element, className) => modifyClass(element, className);\n\nexport { addClass };\n\nconst removeClass = (element, className) => modifyClass(element, className, true);\n\nexport { removeClass };\n\nconst hasClass = (element, className) => getClassNames(element).indexOf(sanitize(className)) > -1;\n\nexport { hasClass };\n","import { addClass, hasClass, removeClass } from './classes.js';\nimport { queryParentSelector, querySelectorAllArray } from './query-selector.js';\n\nconst dom = {};\n\ndom.addClass = addClass;\ndom.hasClass = hasClass;\ndom.removeClass = removeClass;\ndom.queryParentSelector = queryParentSelector;\ndom.querySelectorAllArray = querySelectorAllArray;\n\nexport default dom;\n","const supportLocalStorage = () => {\n try {\n return 'localStorage' in window && window.localStorage !== null;\n } catch (e) {\n return false;\n }\n};\n\nexport { supportLocalStorage };\n","import { supportLocalStorage } from './browser-support.js';\n\nconst support = {};\n\nsupport.supportLocalStorage = supportLocalStorage;\n\nexport default support;\n","import ns from '../namespace.js';\n\nexport const TransitionSelector = {\n NONE: ns.selector('transition-none')\n};\n","import { TransitionSelector } from './transition-selector';\n\nconst selector = {};\n\nselector.TransitionSelector = TransitionSelector;\n\nexport default selector;\n","/**\n * Copy properties from multiple sources including accessors.\n * source : https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#copier_des_accesseurs\n *\n * @param {object} [target] - Target object to copy into\n * @param {...objects} [sources] - Multiple objects\n * @return {object} A new object\n *\n * @example\n *\n * const obj1 = {\n * key: 'value'\n * };\n * const obj2 = {\n * get function01 () {\n * return a-value;\n * }\n * set function01 () {\n * return a-value;\n * }\n * };\n * completeAssign(obj1, obj2)\n */\nconst completeAssign = (target, ...sources) => {\n sources.forEach(source => {\n const descriptors = Object.keys(source).reduce((descriptors, key) => {\n descriptors[key] = Object.getOwnPropertyDescriptor(source, key);\n return descriptors;\n }, {});\n\n Object.getOwnPropertySymbols(source).forEach(sym => {\n const descriptor = Object.getOwnPropertyDescriptor(source, sym);\n if (descriptor.enumerable) {\n descriptors[sym] = descriptor;\n }\n });\n Object.defineProperties(target, descriptors);\n });\n return target;\n};\n\nexport { completeAssign };\n","import { completeAssign } from './complete-assign';\n\nconst property = {};\n\nproperty.completeAssign = completeAssign;\n\nexport default property;\n","import state from './state.js';\nimport engine from './engine.js';\nimport options from './options/options.js';\nimport dom from './utilities/dom/index';\nimport ns from './utilities/namespace.js';\nimport support from './utilities/support/index';\nimport motion from './utilities/motion/index';\nimport property from './utilities/property/index';\n\nconst internals = {};\nconst legacy = {};\n\nObject.defineProperty(legacy, 'isLegacy', {\n get: () => state.isLegacy\n});\n\nlegacy.setLegacy = () => {\n state.isLegacy = true;\n};\n\ninternals.legacy = legacy;\ninternals.dom = dom;\ninternals.support = support;\ninternals.motion = motion;\ninternals.property = property;\ninternals.ns = ns;\ninternals.register = engine.register;\n\nObject.defineProperty(internals, 'preventManipulation', {\n get: () => options.preventManipulation\n});\n\nexport default internals;\n","import state from './state.js';\nimport options, { Modes } from './options/options.js';\nimport config from '../../config.js';\nimport engine from './engine.js';\nimport inspector from './inspect/inspector.js';\nimport internals from './internals.js';\n\ninspector.info(`version ${config.version}`);\n\nconst api = (node) => {\n const stage = state.getModule('stage');\n return stage.getProxy(node);\n};\n\napi.Modes = Modes;\n\nObject.defineProperty(api, 'mode', {\n set: (value) => { options.mode = value; },\n get: () => options.mode\n});\n\napi.internals = internals;\n\napi.start = engine.start;\napi.stop = engine.stop;\n\napi.inspector = inspector;\n\noptions.configure(window[config.namespace], api.start);\n\nwindow[config.namespace] = api;\nexport default api;\n","class Emitter {\n constructor () {\n this.emissions = {};\n }\n\n add (type, closure) {\n if (typeof closure !== 'function') throw new Error('closure must be a function');\n if (!this.emissions[type]) this.emissions[type] = [];\n this.emissions[type].push(closure);\n }\n\n remove (type, closure) {\n if (!this.emissions[type]) return;\n if (!closure) delete this.emissions[type];\n else {\n const index = this.emissions[type].indexOf(closure);\n if (index > -1) this.emissions[type].splice(index);\n }\n }\n\n emit (type, data) {\n if (!this.emissions[type]) return [];\n const response = [];\n for (const closure of this.emissions[type]) if (closure) response.push(closure(data));\n return response;\n }\n\n dispose () {\n this.emissions = null;\n }\n}\n\nexport { Emitter };\n","class Breakpoint {\n constructor (id, minWidth) {\n this.id = id;\n this.minWidth = minWidth;\n }\n\n test () {\n return window.matchMedia(`(min-width: ${this.minWidth}em)`).matches;\n }\n}\n\nexport const Breakpoints = {\n XS: new Breakpoint('xs', 0),\n SM: new Breakpoint('sm', 36),\n MD: new Breakpoint('md', 48),\n LG: new Breakpoint('lg', 62),\n XL: new Breakpoint('xl', 78)\n};\n","import { Emitter } from '../../utilities/emitter.js';\nimport state from '../../state.js';\nimport inspector from '../../inspect/inspector.js';\nimport { Breakpoints } from './breakpoints.js';\nimport { addClass, removeClass, hasClass } from '../../utilities/dom/classes.js';\nimport { queryParentSelector, querySelectorAllArray } from '../../utilities/dom/query-selector.js';\n\nclass Instance {\n constructor (jsAttribute = true) {\n this.jsAttribute = jsAttribute;\n this._isRendering = false;\n this._isResizing = false;\n this._isScrollLocked = false;\n this._isLoading = false;\n this._isSwappingFont = false;\n this._listeners = {};\n this._keyListenerTypes = [];\n this._keys = [];\n this.handlingKey = this.handleKey.bind(this);\n this._emitter = new Emitter();\n this._ascent = new Emitter();\n this._descent = new Emitter();\n this._registrations = [];\n this._nexts = [];\n }\n\n static get instanceClassName () {\n return 'Instance';\n }\n\n _config (element, registration) {\n this.element = element;\n this.registration = registration;\n this.node = element.node;\n this.id = element.node.id;\n if (this.jsAttribute) this.setAttribute(registration.attribute, true);\n this.init();\n }\n\n init () {}\n\n get proxy () {\n const scope = this;\n return {\n render: () => scope.render(),\n resize: () => scope.resize()\n };\n }\n\n register (selector, InstanceClass) {\n const registration = state.getModule('register').register(selector, InstanceClass, this);\n this._registrations.push(registration);\n }\n\n getRegisteredInstances (instanceClassName) {\n for (const registration of this._registrations) if (registration.hasInstanceClassName(instanceClassName)) return registration.instances.collection;\n return [];\n }\n\n dispatch (type, detail, bubbles, cancelable) {\n const event = new CustomEvent(type, { detail: detail, bubble: bubbles === true, cancelable: cancelable === true });\n this.node.dispatchEvent(event);\n }\n\n listen (type, closure, options) {\n if (!this._listeners[type]) this._listeners[type] = [];\n if (this._listeners[type].indexOf(closure) > -1) return;\n this._listeners[type].push(closure);\n this.node.addEventListener(type, closure, options);\n }\n\n unlisten (type, closure) {\n if (!type) {\n for (const type in this._listeners) this.unlisten(type);\n } else if (!closure) {\n if (!this._listeners[type]) return;\n for (const closure of this._listeners[type]) this.node.removeEventListener(type, closure);\n this._listeners[type].length = 0;\n } else {\n if (!this._listeners[type]) return;\n const index = this._listeners[type].indexOf(closure);\n if (index > -1) this._listeners[type].splice(index, 1);\n this.node.removeEventListener(type, closure);\n }\n }\n\n listenKey (code, closure, preventDefault = false, stopPropagation = false, type = 'down') {\n if (this._keyListenerTypes.indexOf(type) === -1) {\n this.listen(`key${type}`, this.handlingKey);\n this._keyListenerTypes.push(type);\n }\n\n this._keys.push(new KeyAction(type, code, closure, preventDefault, stopPropagation));\n }\n\n unlistenKey (code, closure) {\n this._keys = this._keys.filter((key) => key.code !== code || key.closure !== closure);\n\n this._keyListenerTypes.forEach(type => {\n if (!this._keys.some(key => key.type === type)) this.unlisten(`key${type}`, this.handlingKey);\n });\n }\n\n handleKey (e) {\n for (const key of this._keys) key.handle(e);\n }\n\n get isRendering () { return this._isRendering; }\n\n set isRendering (value) {\n if (this._isRendering === value) return;\n if (value) state.add('render', this);\n else state.remove('render', this);\n this._isRendering = value;\n }\n\n render () {}\n\n request (closure) {\n this._nexts.push(closure);\n state.getModule('render').request(this);\n }\n\n next () {\n const nexts = this._nexts.slice();\n this._nexts.length = 0;\n for (const closure of nexts) if (closure) closure();\n }\n\n get isResizing () { return this._isResizing; }\n\n set isResizing (value) {\n if (this._isResizing === value) return;\n if (value) {\n state.add('resize', this);\n this.resize();\n } else state.remove('resize', this);\n this._isResizing = value;\n }\n\n resize () {}\n\n isBreakpoint (breakpoint) {\n switch (true) {\n case typeof breakpoint === 'string':\n return Breakpoints[breakpoint.toUpperCase()].test();\n\n default:\n return breakpoint.test();\n }\n }\n\n get isScrollLocked () {\n return this._isScrollLocked;\n }\n\n set isScrollLocked (value) {\n if (this._isScrollLocked === value) return;\n if (value) state.add('lock', this);\n else state.remove('lock', this);\n this._isScrollLocked = value;\n }\n\n get isLoading () {\n return this._isLoading;\n }\n\n set isLoading (value) {\n if (this._isLoading === value) return;\n if (value) state.add('load', this);\n else state.remove('load', this);\n this._isLoading = value;\n }\n\n load () {}\n\n get isSwappingFont () {\n return this._isSwappingFont;\n }\n\n set isSwappingFont (value) {\n if (this._isSwappingFont === value) return;\n if (value) state.add('font-swap', this);\n else state.remove('font-swap', this);\n this._isSwappingFont = value;\n }\n\n swapFont () {}\n\n get isMouseMoving () { return this._isMouseMoving; }\n\n set isMouseMoving (value) {\n if (this._isMouseMoving === value) return;\n if (value) {\n state.add('mouse-move', this);\n } else {\n state.remove('mouse-move', this);\n }\n this._isMouseMoving = value;\n }\n\n mouseMove (point) {}\n\n examine (attributeNames) {\n if (!this.node.matches(this.registration.selector)) {\n this._dispose();\n return;\n }\n\n this.mutate(attributeNames);\n }\n\n mutate (attributeNames) {}\n\n _dispose () {\n inspector.debug(`dispose instance of ${this.registration.instanceClassName} on element [${this.element.id}]`);\n this.removeAttribute(this.registration.attribute);\n this.unlisten();\n this._keys = null;\n this.isRendering = false;\n this.isResizing = false;\n this._nexts = null;\n state.getModule('render').nexts.remove(this);\n this.isScrollLocked = false;\n this.isLoading = false;\n this.isSwappingFont = false;\n this._emitter.dispose();\n this._emitter = null;\n this._ascent.dispose();\n this._ascent = null;\n this._descent.dispose();\n this._descent = null;\n this.element.remove(this);\n for (const registration of this._registrations) state.remove('register', registration);\n this._registrations = null;\n this.registration.remove(this);\n this.dispose();\n }\n\n dispose () {}\n\n emit (type, data) {\n return this.element.emit(type, data);\n }\n\n addEmission (type, closure) {\n this._emitter.add(type, closure);\n }\n\n removeEmission (type, closure) {\n this._emitter.remove(type, closure);\n }\n\n ascend (type, data) {\n return this.element.ascend(type, data);\n }\n\n addAscent (type, closure) {\n this._ascent.add(type, closure);\n }\n\n removeAscent (type, closure) {\n this._ascent.remove(type, closure);\n }\n\n descend (type, data) {\n return this.element.descend(type, data);\n }\n\n addDescent (type, closure) {\n this._descent.add(type, closure);\n }\n\n removeDescent (type, closure) {\n this._descent.remove(type, closure);\n }\n\n get style () {\n return this.node.style;\n }\n\n addClass (className) {\n addClass(this.node, className);\n }\n\n removeClass (className) {\n removeClass(this.node, className);\n }\n\n hasClass (className) {\n return hasClass(this.node, className);\n }\n\n setAttribute (attributeName, value) {\n this.node.setAttribute(attributeName, value);\n }\n\n getAttribute (attributeName) {\n return this.node.getAttribute(attributeName);\n }\n\n hasAttribute (attributeName) {\n return this.node.hasAttribute(attributeName);\n }\n\n removeAttribute (attributeName) {\n this.node.removeAttribute(attributeName);\n }\n\n setProperty (propertyName, value) {\n this.node.style.setProperty(propertyName, value);\n }\n\n removeProperty (propertyName) {\n this.node.style.removeProperty(propertyName);\n }\n\n focus () {\n this.node.focus();\n }\n\n get hasFocus () {\n return this.node === document.activeElement;\n }\n\n matches (selectors) {\n return this.node.matches(selectors);\n }\n\n querySelector (selectors) {\n return this.node.querySelector(selectors);\n }\n\n querySelectorAll (selectors) {\n return querySelectorAllArray(this.node, selectors);\n }\n\n queryParentSelector (selectors) {\n return queryParentSelector(this.node, selectors);\n }\n\n getRect () {\n return this.node.getBoundingClientRect();\n }\n\n get isLegacy () {\n return state.isLegacy;\n }\n}\n\nclass KeyAction {\n constructor (type, code, closure, preventDefault, stopPropagation) {\n this.type = type;\n this.eventType = `key${type}`;\n this.code = code;\n this.closure = closure;\n this.preventDefault = preventDefault === true;\n this.stopPropagation = stopPropagation === true;\n }\n\n handle (e) {\n if (e.type !== this.eventType) return;\n if (e.keyCode === this.code) {\n this.closure(e);\n if (this.preventDefault) {\n e.preventDefault();\n }\n if (this.stopPropagation) {\n e.stopPropagation();\n }\n }\n }\n}\n\nexport { Instance };\n","export const KeyCodes = {\n TAB: 9,\n ESCAPE: 27,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40\n};\n","import ns from '../api/utilities/namespace.js';\n\nconst DisclosureEvent = {\n DISCLOSE: ns.event('disclose'),\n CONCEAL: ns.event('conceal')\n};\n\nexport { DisclosureEvent };\n","import ns from '../api/utilities/namespace.js';\n\nconst DisclosureEmission = {\n RESET: ns.emission('disclosure', 'reset'),\n ADDED: ns.emission('disclosure', 'added'),\n REMOVED: ns.emission('disclosure', 'removed'),\n GROUP: ns.emission('disclosure', 'group'),\n UNGROUP: ns.emission('disclosure', 'ungroup')\n};\n\nexport { DisclosureEmission };\n","import { Instance } from '../api/modules/register/instance.js';\nimport { DisclosureEvent } from './disclosure-event.js';\nimport { DisclosureEmission } from './disclosure-emission.js';\nimport { completeAssign } from '../api/utilities/property/complete-assign.js';\n\nclass Disclosure extends Instance {\n constructor (type, selector, DisclosureButtonInstanceClass, disclosuresGroupInstanceClassName) {\n super();\n this.type = type;\n this._selector = selector;\n this.DisclosureButtonInstanceClass = DisclosureButtonInstanceClass;\n this.disclosuresGroupInstanceClassName = disclosuresGroupInstanceClassName;\n this.modifier = this._selector + '--' + this.type.id;\n this.pristine = true;\n }\n\n static get instanceClassName () {\n return 'Disclosure';\n }\n\n init () {\n this.addDescent(DisclosureEmission.RESET, this.reset.bind(this));\n this.addDescent(DisclosureEmission.GROUP, this.update.bind(this));\n this.addDescent(DisclosureEmission.UNGROUP, this.update.bind(this));\n this.register(`[aria-controls=\"${this.id}\"]`, this.DisclosureButtonInstanceClass);\n this.ascend(DisclosureEmission.ADDED);\n this.update();\n }\n\n get proxy () {\n const scope = this;\n const proxy = Object.assign(super.proxy, {\n disclose: scope.disclose.bind(scope),\n focus: scope.focus.bind(scope)\n });\n\n if (this.type.canConceal) proxy.conceal = scope.conceal.bind(scope);\n\n const proxyAccessors = {\n get buttons () {\n return scope.buttons.map((button) => button.proxy);\n },\n get group () {\n const group = scope.group;\n return group ? group.proxy : null;\n }\n };\n\n return completeAssign(proxy, proxyAccessors);\n }\n\n get buttons () {\n return this.getRegisteredInstances(this.DisclosureButtonInstanceClass.instanceClassName);\n }\n\n update () {\n this.getGroup();\n }\n\n getGroup () {\n if (!this.disclosuresGroupInstanceClassName) {\n this._group = null;\n return;\n }\n\n const group = this.element.getAscendantInstance(this.disclosuresGroupInstanceClassName, this.constructor.instanceClassName);\n if (!group || !group.validate(this)) {\n this._group = null;\n return;\n }\n\n this._group = group;\n }\n\n get group () {\n return this._group;\n }\n\n disclose (withhold) {\n if (this.disclosed) return false;\n this.pristine = false;\n this.disclosed = true;\n if (!withhold && this.group) this.group.current = this;\n return true;\n }\n\n conceal (withhold, preventFocus) {\n if (!this.disclosed) return false;\n if (!this.type.canConceal && this.group && this.group.current === this) return false;\n this.pristine = false;\n this.disclosed = false;\n if (!withhold && this.group && this.group.current === this) this.group.current = null;\n if (!preventFocus) this.focus();\n this.descend(DisclosureEmission.RESET);\n return true;\n }\n\n get disclosed () {\n return this._disclosed;\n }\n\n set disclosed (value) {\n if (this._disclosed === value) return;\n this.dispatch(value ? DisclosureEvent.DISCLOSE : DisclosureEvent.CONCEAL, this.type);\n this._disclosed = value;\n if (value) this.addClass(this.modifier);\n else this.removeClass(this.modifier);\n for (let i = 0; i < this.buttons.length; i++) this.buttons[i].apply(value);\n }\n\n reset () {}\n\n toggle (isPrimary) {\n if (!this.type.canConceal) this.disclose();\n else {\n switch (true) {\n case !isPrimary:\n case this.disclosed:\n this.conceal();\n break;\n\n default:\n this.disclose();\n }\n }\n }\n\n get buttonHasFocus () {\n if (this.buttons.some((button) => { return button.hasFocus; })) return true;\n return false;\n }\n\n get hasFocus () {\n if (super.hasFocus) return true;\n if (this.buttonHasFocus) return true;\n return this.querySelectorAll(':focus').length > 0;\n }\n\n focus () {\n for (let i = 0; i < this.buttons.length; i++) {\n const button = this.buttons[i];\n if (button.isPrimary) {\n button.focus();\n return;\n }\n }\n }\n\n dispose () {\n this._group = null;\n super.dispose();\n this.ascend(DisclosureEmission.REMOVED);\n }\n}\n\nexport { Disclosure };\n","import { Instance } from '../api/modules/register/instance';\nimport ns from '../api/utilities/namespace.js';\n\nclass DisclosureButton extends Instance {\n constructor (type) {\n super();\n this.type = type;\n this.attributeName = type.ariaState ? 'aria-' + type.id : ns.attr(type.id);\n }\n\n static get instanceClassName () {\n return 'DisclosureButton';\n }\n\n init () {\n this.controlsId = this.getAttribute('aria-controls');\n this.isPrimary = this.hasAttribute(this.attributeName);\n if (this.isPrimary && this.disclosed && this.registration.creator.pristine) this.registration.creator.disclose();\n this.listen('click', this.click.bind(this));\n }\n\n get proxy () {\n const scope = this;\n return Object.assign(super.proxy, {\n focus: scope.focus.bind(scope)\n });\n }\n\n click (e) {\n if (this.registration.creator) this.registration.creator.toggle(this.isPrimary);\n }\n\n mutate (attributeNames) {\n if (this.isPrimary && attributeNames.indexOf(this.attributeName) > -1 && this.registration.creator) {\n if (this.disclosed) this.registration.creator.disclose();\n else if (this.type.canConceal) this.registration.creator.conceal();\n }\n }\n\n apply (value) {\n if (!this.isPrimary) return;\n this.setAttribute(this.attributeName, value);\n }\n\n get disclosed () {\n return this.getAttribute(this.attributeName) === 'true';\n }\n}\n\nexport { DisclosureButton };\n","import { Instance } from '../api/modules/register/instance.js';\nimport { DisclosureEmission } from './disclosure-emission.js';\nimport { completeAssign } from '../api/utilities/property/complete-assign.js';\n\nclass DisclosuresGroup extends Instance {\n constructor (disclosureInstanceClassName, jsAttribute) {\n super(jsAttribute);\n this.disclosureInstanceClassName = disclosureInstanceClassName;\n this._index = -1;\n }\n\n static get instanceClassName () {\n return 'DisclosuresGroup';\n }\n\n init () {\n this.addAscent(DisclosureEmission.ADDED, this.update.bind(this));\n this.addAscent(DisclosureEmission.REMOVED, this.update.bind(this));\n this.descend(DisclosureEmission.GROUP);\n this.update();\n }\n\n get proxy () {\n const scope = this;\n\n const proxyAccessors = {\n set index (value) {\n scope.index = value;\n },\n get index () {\n return scope.index;\n },\n get length () {\n return scope.length;\n },\n get current () {\n const current = scope.current;\n return current ? current.proxy : null;\n },\n get members () {\n return scope.members.map((member) => member.proxy);\n },\n get hasFocus () {\n return scope.hasFocus;\n }\n };\n\n return completeAssign(super.proxy, proxyAccessors);\n }\n\n validate (member) {\n return true;\n }\n\n getMembers () {\n const members = this.element.getDescendantInstances(this.disclosureInstanceClassName, this.constructor.instanceClassName, true);\n this._members = members.filter(this.validate.bind(this));\n }\n\n update () {\n this.getMembers();\n this.getIndex();\n }\n\n get members () {\n return this._members;\n }\n\n get length () {\n return this.members ? this.members.length : 0;\n }\n\n getIndex () {\n this._index = -1;\n for (let i = 0; i < this.length; i++) {\n if (this.index > -1) this.members[i].conceal(true, true);\n else if (this.members[i].disclosed) {\n this.index = i;\n }\n }\n }\n\n get index () {\n return this._index;\n }\n\n set index (value) {\n if (value < -1 || value >= this.length || value === this._index) return;\n this._index = value;\n for (let i = 0; i < this.length; i++) {\n const member = this.members[i];\n if (value === i) {\n member.disclose(true);\n } else {\n member.conceal(true, true);\n }\n }\n this.apply();\n }\n\n get current () {\n return this._index === -1 ? null : this.members[this._index];\n }\n\n set current (member) {\n this.index = this.members.indexOf(member);\n }\n\n get hasFocus () {\n const current = this.current;\n if (current) return current.hasFocus;\n return false;\n }\n\n apply () {}\n\n dispose () {\n super.dispose();\n this.descend(DisclosureEmission.UNGROUP);\n this._members = null;\n }\n}\n\nexport { DisclosuresGroup };\n","export const DisclosureType = {\n EXPAND: {\n id: 'expanded',\n ariaState: true,\n ariaControls: true,\n canConceal: true\n },\n SELECT: {\n id: 'selected',\n ariaState: true,\n ariaControls: true,\n canConceal: false\n },\n OPENED: {\n id: 'opened',\n ariaState: false,\n ariaControls: true,\n canConceal: true\n }\n};\n","import { DisclosureType } from '../disclosure/disclosure-type.js';\nimport { DisclosureButton } from '../disclosure/disclosure-button.js';\n\nclass CollapseButton extends DisclosureButton {\n constructor () {\n super(DisclosureType.EXPAND);\n }\n\n static get instanceClassName () {\n return 'CollapseButton';\n }\n}\n\nexport { CollapseButton };\n","import ns from '../api/utilities/namespace.js';\n\nexport const CollapseSelector = {\n COLLAPSE: ns.selector('collapse')\n};\n","import { Disclosure } from '../disclosure/disclosure.js';\nimport { CollapseSelector } from './collapse-selector.js';\nimport { DisclosureType } from '../disclosure/disclosure-type.js';\nimport { CollapseButton } from './collapse-button.js';\n\n/**\n * Tab coorespond au panel d'un élement Tabs (tab panel)\n * Tab étend disclosure qui ajoute/enleve le modifier --selected,\n * et ajoute/eleve l'attribut hidden, sur le panel\n */\nclass Collapse extends Disclosure {\n constructor () {\n super(DisclosureType.EXPAND, CollapseSelector.COLLAPSE, CollapseButton, 'CollapsesGroup');\n }\n\n static get instanceClassName () {\n return 'Collapse';\n }\n\n init () {\n super.init();\n this.listen('transitionend', this.transitionend.bind(this));\n }\n\n transitionend (e) {\n if (!this.disclosed) {\n if (this.isLegacy) this.style.maxHeight = '';\n else this.style.removeProperty('--collapse-max-height');\n }\n }\n\n unbound () {\n if (this.isLegacy) this.style.maxHeight = 'none';\n else this.style.setProperty('--collapse-max-height', 'none');\n }\n\n disclose (withhold) {\n if (this.disclosed) return;\n this.unbound();\n this.request(() => {\n this.adjust();\n this.request(() => {\n super.disclose(withhold);\n });\n });\n }\n\n conceal (withhold, preventFocus) {\n if (!this.disclosed) return;\n this.request(() => {\n this.adjust();\n this.request(() => {\n super.conceal(withhold, preventFocus);\n });\n });\n }\n\n adjust () {\n this.setProperty('--collapser', 'none');\n const height = this.node.offsetHeight;\n this.setProperty('--collapse', -height + 'px');\n this.setProperty('--collapser', '');\n }\n\n reset () {\n if (!this.pristine) this.disclosed = false;\n }\n}\n\nexport { Collapse };\n","import { DisclosuresGroup } from '../disclosure/disclosures-group.js';\n\nclass CollapsesGroup extends DisclosuresGroup {\n constructor () {\n super('Collapse');\n }\n\n static get instanceClassName () {\n return 'CollapsesGroup';\n }\n}\n\nexport { CollapsesGroup };\n","import ns from '../api/utilities/namespace.js';\n\nexport const EquisizedEmission = {\n CHANGE: ns('equisized', 'change')\n};\n","import { Instance } from '../api/modules/register/instance.js';\nimport { EquisizedEmission } from './equisized-emission.js';\n\nclass Equisized extends Instance {\n static get instanceClassName () {\n return 'Equisized';\n }\n\n init () {\n this.ascend(EquisizedEmission.CHANGE);\n }\n\n measure () {\n if (this.isLegacy) this.style.width = 'auto';\n return this.getRect().width;\n }\n\n adjust (width) {\n if (this.isLegacy) this.style.width = `${width}px`;\n }\n\n dispose () {\n this.ascend(EquisizedEmission.CHANGE);\n }\n}\n\nexport { Equisized };\n","import { Instance } from '../api/modules/register/instance.js';\nimport { EquisizedEmission } from './equisized-emission.js';\n\nclass EquisizedsGroup extends Instance {\n static get instanceClassName () {\n return 'EquisizedsGroup';\n }\n\n init () {\n this.isResizing = true;\n this.isLoading = true;\n this.addAscent(EquisizedEmission.CHANGE, this.resize.bind(this));\n }\n\n load () {\n this.resize();\n }\n\n resize () {\n const equisizeds = this.element.getDescendantInstances('Equisized');\n if (!this.isLegacy) this.style.setProperty('--equisized-width', 'auto');\n\n const width = Math.max(...equisizeds.map(equisized => equisized.measure()));\n if (this.isLegacy) equisizeds.forEach(equisized => equisized.adjust(width));\n else this.style.setProperty('--equisized-width', `${width}px`);\n }\n}\n\nexport { EquisizedsGroup };\n","import ns from '../../api/utilities/namespace.js';\n\nconst ToggleEvent = {\n TOGGLE: ns.event('toggle')\n};\n\nexport { ToggleEvent };\n","import { Instance } from '../../api/modules/register/instance.js';\nimport { completeAssign } from '../../api/utilities/property/complete-assign.js';\nimport { ToggleEvent } from './toggle-event.js';\n\nclass Toggle extends Instance {\n static get instanceClassName () {\n return 'Toggle';\n }\n\n init () {\n this.pressed = this.pressed === 'true';\n this.listen('click', this.toggle.bind(this));\n }\n\n toggle () {\n this.pressed = this.pressed !== 'true';\n }\n\n get pressed () {\n return this.getAttribute('aria-pressed');\n }\n\n set pressed (value) {\n this.setAttribute('aria-pressed', value ? 'true' : 'false');\n this.dispatch(ToggleEvent.TOGGLE, value);\n }\n\n get proxy () {\n const scope = this;\n const proxy = Object.assign(super.proxy, {\n toggle: scope.toggle.bind(scope)\n });\n\n const proxyAccessors = {\n get pressed () {\n return scope.pressed;\n },\n set pressed (value) {\n scope.pressed = value;\n }\n };\n\n return completeAssign(proxy, proxyAccessors);\n }\n}\n\nexport { Toggle };\n","const setAttributes = (el, attrs) => {\n Object.keys(attrs).forEach(key => el.setAttribute(key, attrs[key]));\n};\n\nexport { setAttributes };\n","import { Instance } from '../api/modules/register/instance.js';\nimport { setAttributes } from '../api/utilities/attribute';\n\nclass InjectSvg extends Instance {\n static get instanceClassName () {\n return 'InjectSvg';\n }\n\n init () {\n if (this.node) {\n this.img = this.node.querySelector('img');\n }\n\n if (!this.isLegacy) {\n this.replace();\n }\n }\n\n get proxy () {\n const scope = this;\n return Object.assign(super.proxy, {\n replace: scope.replace.bind(scope),\n restore: scope.restore.bind(scope)\n });\n }\n\n fetch () {\n if (this.img) {\n this.imgID = this.img.getAttribute('id');\n this.imgClass = this.img.getAttribute('class');\n this.imgURL = this.img.getAttribute('src');\n\n fetch(this.imgURL)\n .then(data => data.text())\n .then(response => {\n const parser = new DOMParser();\n const xmlDoc = parser.parseFromString(response, 'text/html');\n this.svg = xmlDoc.querySelector('svg');\n\n if (this.svg) {\n this.replace();\n }\n });\n }\n }\n\n replace () {\n if (!this.svg) {\n this.fetch();\n return;\n }\n\n if (this.imgID && typeof this.imgID !== 'undefined') {\n this.svg.setAttribute('id', this.imgID);\n }\n\n if (this.imgClass && typeof this.imgClass !== 'undefined') {\n this.svg.setAttribute('class', this.imgClass);\n }\n\n if (this.svg.hasAttribute('xmlns:a')) {\n this.svg.removeAttribute('xmlns:a');\n }\n\n this.node.setAttribute('data-fr-inject-svg', true);\n const svgAttributes = {\n 'aria-hidden': true,\n focusable: false\n };\n setAttributes(this.svg, svgAttributes);\n this.node.replaceChild(this.svg, this.img);\n }\n\n restore () {\n if (this.img && this.svg) {\n this.node.setAttribute('data-fr-inject-svg', false);\n this.node.replaceChild(this.img, this.svg);\n }\n }\n}\n\nexport { InjectSvg };\n","import ns from '../api/utilities/namespace.js';\n\nexport const InjectSvgSelector = {\n INJECT_SVG: `[${ns.attr('inject-svg')}]`\n};\n","import api from './script/api/api';\n\nimport { Instance } from './script/api/modules/register/instance.js';\nimport { KeyCodes } from './script/api/modules/register/key-codes.js';\nimport { Breakpoints } from './script/api/modules/register/breakpoints';\nimport { Disclosure } from './script/disclosure/disclosure.js';\nimport { DisclosureButton } from './script/disclosure/disclosure-button.js';\nimport { DisclosuresGroup } from './script/disclosure/disclosures-group.js';\nimport { DisclosureType } from './script/disclosure/disclosure-type.js';\nimport { DisclosureEvent } from './script/disclosure/disclosure-event.js';\nimport { DisclosureEmission } from './script/disclosure/disclosure-emission.js';\nimport { CollapseButton } from './script/collapse/collapse-button.js';\nimport { Collapse } from './script/collapse/collapse.js';\nimport { CollapsesGroup } from './script/collapse/collapses-group.js';\nimport { CollapseSelector } from './script/collapse/collapse-selector.js';\nimport { Equisized } from './script/equisized/equisized.js';\nimport { EquisizedsGroup } from './script/equisized/equisizeds-group.js';\nimport { EquisizedEmission } from './script/equisized/equisized-emission.js';\nimport { Toggle } from './script/action/toggle/toggle';\nimport { RootSelector } from './script/api/modules/stage/root.js';\nimport { InjectSvg } from './script/inject/inject-svg';\nimport { InjectSvgSelector } from './script/inject/inject-svg-selector';\n\napi.core = {\n Instance: Instance,\n Breakpoints: Breakpoints,\n KeyCodes: KeyCodes,\n Disclosure: Disclosure,\n DisclosureButton: DisclosureButton,\n DisclosuresGroup: DisclosuresGroup,\n DisclosureType: DisclosureType,\n DisclosureEvent: DisclosureEvent,\n DisclosureEmission: DisclosureEmission,\n Collapse: Collapse,\n CollapseButton: CollapseButton,\n CollapsesGroup: CollapsesGroup,\n CollapseSelector: CollapseSelector,\n RootSelector: RootSelector,\n Equisized: Equisized,\n EquisizedEmission: EquisizedEmission,\n Toggle: Toggle,\n EquisizedsGroup: EquisizedsGroup,\n InjectSvg: InjectSvg,\n InjectSvgSelector: InjectSvgSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.core.CollapseSelector.COLLAPSE, api.core.Collapse);\napi.internals.register(api.core.InjectSvgSelector.INJECT_SVG, api.core.InjectSvg);\n\nexport default api;\n"],"names":["motion"],"mappings":";;AAAA,MAAM,KAAK,CAAC;AACZ,EAAE,WAAW,CAAC,GAAG;AACjB,IAAI,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AACtB,GAAG;AACH;AACA,EAAE,MAAM,CAAC,CAAC,WAAW,EAAE;AACvB,IAAI,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;AACrC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACvC,GAAG;AACH;AACA,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE;AACnB,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9B,GAAG;AACH;AACA,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE;AACnB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjC,GAAG;AACH;AACA,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE;AACtB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACpC,GAAG;AACH;AACA,EAAE,IAAI,QAAQ,CAAC,GAAG;AAClB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC;AAC1B,GAAG;AACH;AACA,EAAE,IAAI,QAAQ,CAAC,CAAC,KAAK,EAAE;AACvB,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE,OAAO;AACzC,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC3B,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;AACxD,MAAM,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7B,KAAK,CAAC,CAAC;AACP,IAAI,IAAI,KAAK,EAAE;AACf,MAAM,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE;AACnC,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC1B,OAAO;AACP,KAAK,MAAM;AACX,MAAM,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE;AACnC,QAAQ,MAAM,CAAC,UAAU,EAAE,CAAC;AAC5B,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA,EAAE,IAAI,QAAQ,CAAC,GAAG;AAClB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC;AAC1B,GAAG;AACH;AACA,EAAE,IAAI,QAAQ,CAAC,CAAC,KAAK,EAAE;AACvB,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE,OAAO;AACzC,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC3B,GAAG;AACH,CAAC;AACD;AACA,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE;;ACrDzB,MAAM,MAAM,GAAG;AACf,EAAE,MAAM,EAAE,IAAI;AACd,EAAE,SAAS,EAAE,MAAM;AACnB,EAAE,YAAY,EAAE,SAAS;AACzB,EAAE,OAAO,EAAE,OAAO;AAClB,CAAC;;ACFD,MAAM,QAAQ,CAAC;AACf,EAAE,WAAW,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE;AAC3C,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB;AACA,IAAI,QAAQ,MAAM;AAClB,MAAM,KAAK,MAAM;AACjB,QAAQ,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;AACnC,QAAQ,MAAM;AACd;AACA,MAAM,KAAK,OAAO;AAClB,QAAQ,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;AACpC,QAAQ,MAAM;AACd;AACA,MAAM;AACN,QAAQ,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;AAClC,KAAK;AACL,GAAG;AACH;AACA,EAAE,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE;AAClB,IAAI,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAClD,IAAI,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACnD,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACxB,GAAG;AACH;AACA,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE;AAClB,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;AACrD,GAAG;AACH;AACA,EAAE,IAAI,KAAK,CAAC,GAAG;AACf,IAAI,OAAO,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;AAC9F,GAAG;AACH,CAAC;AACD;AACA,MAAM,OAAO,CAAC;AACd,EAAE,WAAW,CAAC,CAAC,MAAM,EAAE;AACvB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,CAAC;AAC/D,IAAI,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AACtB;AACA,IAAI,IAAI,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AACxC,GAAG;AACH;AACA,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE;AACd,IAAI,QAAQ,OAAO,KAAK;AACxB,MAAM,KAAK,QAAQ,CAAC;AACpB,MAAM,KAAK,UAAU;AACrB,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,QAAQ,MAAM;AACd;AACA,MAAM;AACN,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,KAAK;AACL,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,CAAC,KAAK,EAAE;AACnB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACvC,GAAG;AACH;AACA,EAAE,UAAU,CAAC,GAAG;AAChB,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;AAC1E,GAAG;AACH,CAAC;AACD;AACA,MAAM,MAAM,GAAG;AACf,EAAE,KAAK,EAAE,IAAI,QAAQ,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC;AAC9C,EAAE,KAAK,EAAE,IAAI,QAAQ,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC;AAC9C,EAAE,IAAI,EAAE,IAAI,QAAQ,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC;AAC7C,EAAE,IAAI,EAAE,IAAI,QAAQ,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC;AACrD,EAAE,KAAK,EAAE,IAAI,QAAQ,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC;AACvD,CAAC,CAAC;AACF;AACA,MAAM,SAAS,CAAC;AAChB,EAAE,WAAW,CAAC,GAAG;AACjB,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACnB;AACA,IAAI,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE;AAC7B,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;AAC/B,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK;AAC9B,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACpE,OAAO,CAAC;AACR,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/C,KAAK;AACL,GAAG;AACH;AACA,EAAE,KAAK,CAAC,GAAG;AACX,IAAI,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAClC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACvB,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC9B,GAAG;AACH;AACA,EAAE,IAAI,CAAC,GAAG;AACV,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAC3C,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO;AACvB,IAAI,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAClC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;AACzC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC9B,GAAG;AACH;AACA,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;AACpC,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;AACpB,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE;AACnB,MAAM,IAAI,MAAM,GAAG,EAAE,CAAC;AACtB,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,MAAM,CAAC;AACvD;AACA,MAAM,MAAM,IAAI,MAAM,GAAG,KAAK,CAAC;AAC/B,KAAK;AACL,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAChD,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACxB,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;AAClC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACtB,IAAI,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,EAAE,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;AAC5F,GAAG;AACH,CAAC;AACD;AACA,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE;;ACzH1B,MAAM,uBAAuB,GAAG,CAAC,QAAQ,KAAK;AACrD,EAAE,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,MAAM,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;AAChF,OAAO,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;AAC/D,CAAC,CAAC;AACF;AACO,MAAM,SAAS,GAAG,CAAC,QAAQ,KAAK;AACvC;AACA,EAAE,uBAAuB,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC;;ACLM,MAAM,KAAK,GAAG;AACrB,EAAE,IAAI,EAAE,MAAM;AACd,EAAE,MAAM,EAAE,QAAQ;AAClB,EAAE,OAAO,EAAE,SAAS;AACpB,EAAE,MAAM,EAAE,QAAQ;AAClB,EAAE,GAAG,EAAE,KAAK;AACZ,EAAE,OAAO,EAAE,SAAS;AACpB,EAAE,KAAK,EAAE,OAAO;AAChB,CAAC,CAAC;AACF;AACA,MAAM,OAAO,CAAC;AACd,EAAE,WAAW,CAAC,GAAG;AACjB,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;AAC5B,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC3B,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACrC,GAAG;AACH;AACA,EAAE,SAAS,CAAC,CAAC,QAAQ,GAAG,EAAE,EAAE,KAAK,EAAE;AACnC,IAAI,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC/B,IAAI,IAAI,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;AACvD,IAAI,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC;AAC5C,GAAG;AACH;AACA,EAAE,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE;AACnB,IAAI,QAAQ,KAAK;AACjB,MAAM,KAAK,KAAK,CAAC,IAAI;AACrB,QAAQ,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACzC,QAAQ,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjC,QAAQ,MAAM;AACd;AACA,MAAM,KAAK,KAAK,CAAC,MAAM;AACvB,QAAQ,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACzC,QAAQ,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/C,QAAQ,MAAM;AACd;AACA,MAAM,KAAK,KAAK,CAAC,OAAO;AACxB,QAAQ,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACzC,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;AACrB,QAAQ,MAAM;AACd;AACA,MAAM,KAAK,KAAK,CAAC,MAAM;AACvB,QAAQ,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACzC,QAAQ,MAAM;AACd;AACA,MAAM,KAAK,KAAK,CAAC,GAAG;AACpB,QAAQ,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AACxC,QAAQ,MAAM;AACd;AACA,MAAM,KAAK,KAAK,CAAC,OAAO;AACxB,QAAQ,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AACxC,QAAQ,MAAM;AACd;AACA,MAAM,KAAK,KAAK,CAAC,KAAK;AACtB,QAAQ,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AACxC,QAAQ,MAAM;AACd;AACA,MAAM;AACN,QAAQ,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AACxC,QAAQ,OAAO;AACf,KAAK;AACL;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3C,GAAG;AACH;AACA,EAAE,IAAI,IAAI,CAAC,GAAG;AACd,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC;AACtB,GAAG;AACH;AACA,EAAE,KAAK,CAAC,GAAG;AACX,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5B,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;AACzB,GAAG;AACH,CAAC;AACD;AACA,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE;;AC/E7B,MAAM,UAAU,CAAC;AACjB,EAAE,WAAW,CAAC,GAAG;AACjB,IAAI,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AAC1B,GAAG;AACH;AACA,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE;AACrB,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACvC,GAAG;AACH;AACA,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE;AACjB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC1C,GAAG;AACH;AACA,EAAE,IAAI,MAAM,CAAC,GAAG;AAChB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AACnC,GAAG;AACH;AACA,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE;AACpB,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC;AACjE,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACvC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;AACjC,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;AAC5E,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA,EAAE,MAAM,CAAC,CAAC,WAAW,EAAE;AACvB,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AACxD,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC;AACnC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACtC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AACvC,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AACtE,GAAG;AACH;AACA,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,EAAE;AACpB,IAAI,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC/F,GAAG;AACH;AACA,EAAE,KAAK,CAAC,GAAG;AACX,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;AAChC,GAAG;AACH;AACA,EAAE,KAAK,CAAC,GAAG;AACX,IAAI,MAAM,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;AACnC,IAAI,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;AACjD,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH;AACA,EAAE,IAAI,UAAU,CAAC,GAAG;AACpB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC;AAC5B,GAAG;AACH;;AChDA,MAAM,MAAM,SAAS,UAAU,CAAC;AAChC,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE;AACrB,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC1B,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,GAAG,EAAE;AAChB,EAAE,UAAU,CAAC,GAAG,EAAE;AAClB;;ACTA,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9C;AACA,EAAE,CAAC,QAAQ,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK;AAClC,EAAE,IAAI,QAAQ,KAAK,SAAS,EAAE,QAAQ,GAAG,GAAG,CAAC;AAC7C,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC,CAAC;AACF;AACA,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvC;AACA,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,EAAE,KAAK,KAAK;AACpC,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,EAAE,IAAI,KAAK,KAAK,SAAS,EAAE,MAAM,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACnD,EAAE,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC,CAAC;AACF;AACA,EAAE,CAAC,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;AACnD;AACA,EAAE,CAAC,QAAQ,GAAG,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;;ACnBrD,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,SAAS,KAAK,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;AAC7H;AACO,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,SAAS,KAAK;AAC3D,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;AACvC,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,OAAO,MAAM,CAAC;AAC/C,EAAE,IAAI,MAAM,KAAK,QAAQ,CAAC,eAAe,EAAE,OAAO,IAAI,CAAC;AACvD,EAAE,OAAO,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAChD,CAAC;;ACFD,MAAM,YAAY,CAAC;AACnB,EAAE,WAAW,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE;AACjD,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,IAAI,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;AACvC,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC3B,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,UAAU,EAAE,CAAC;AACtC,IAAI,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC9B,IAAI,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC;AACnE,IAAI,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC9E,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAClH,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB;AAC1C,OAAO,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;AACrC,OAAO,OAAO,CAAC,uBAAuB,EAAE,OAAO,CAAC;AAChD,OAAO,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;AAC1C,OAAO,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC;AAC3C,OAAO,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC;AAC3C,OAAO,WAAW,EAAE,CAAC;AACrB,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9C,GAAG;AACH;AACA,EAAE,qBAAqB,CAAC,CAAC,aAAa,EAAE;AACxC,IAAI,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;AAC3D,IAAI,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,iBAAiB,KAAK,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;AAC3G,IAAI,OAAO,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;AACvF,GAAG;AACH;AACA,EAAE,oBAAoB,CAAC,CAAC,iBAAiB,EAAE;AAC3C,IAAI,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;AACpE,GAAG;AACH;AACA,EAAE,SAAS,CAAC,GAAG;AACf,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,OAAO;AAClC,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC7B,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;AACnE,GAAG;AACH;AACA,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE;AAC7B,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;AACrB,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtE;AACA,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AACzJ,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH;AACA,EAAE,MAAM,CAAC,CAAC,OAAO,EAAE;AACnB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO;AACrD,IAAI,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;AAC9C,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACjC,IAAI,OAAO,QAAQ,CAAC;AACpB,GAAG;AACH;AACA,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE;AACpB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,GAAG;AACH;AACA,EAAE,OAAO,CAAC,GAAG;AACb,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;AAChD,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC5E,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,GAAG;AACH;AACA,EAAE,IAAI,iBAAiB,CAAC,GAAG;AAC3B,IAAI,OAAO,IAAI,CAAC,kBAAkB,CAAC;AACnC,GAAG;AACH;AACA,EAAE,IAAI,kBAAkB,CAAC,GAAG;AAC5B,IAAI,OAAO,IAAI,CAAC,mBAAmB,CAAC;AACpC,GAAG;AACH;AACA,EAAE,IAAI,QAAQ,CAAC,GAAG;AAClB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC;AAC1B,GAAG;AACH;AACA,EAAE,IAAI,SAAS,CAAC,GAAG;AACnB,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC;AAC3B,GAAG;AACH;;AC7EA,MAAM,QAAQ,SAAS,MAAM,CAAC;AAC9B,EAAE,WAAW,CAAC,GAAG;AACjB,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;AACtB,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE;AAC9C,IAAI,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;AAC5E,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAC3B,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,SAAS,EAAE,CAAC;AACjD,IAAI,OAAO,YAAY,CAAC;AACxB,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,GAAG;AACd,IAAI,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,SAAS,EAAE,CAAC;AACzE,GAAG;AACH;AACA,EAAE,MAAM,CAAC,CAAC,YAAY,EAAE;AACxB,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;AAC3B,IAAI,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAC/B,GAAG;AACH;;ACrBA,IAAI,KAAK,GAAG,CAAC,CAAC;AACd;AACA,MAAM,OAAO,CAAC;AACd,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE;AACzB,IAAI,IAAI,CAAC,EAAE,EAAE;AACb,MAAM,KAAK,EAAE,CAAC;AACd,MAAM,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC;AACtB,KAAK,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACxB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AAC7B,IAAI,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACxB,IAAI,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACxB,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACxB,GAAG;AACH;AACA,EAAE,IAAI,KAAK,CAAC,GAAG;AACf,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC;AACvB,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACtB,MAAM,IAAI,CAAC,MAAM,GAAG;AACpB,QAAQ,EAAE,EAAE,IAAI,CAAC,EAAE;AACnB,QAAQ,IAAI,MAAM,CAAC,GAAG;AACtB,UAAU,OAAO,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;AAC1D,SAAS;AACT,QAAQ,IAAI,QAAQ,CAAC,GAAG;AACxB,UAAU,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC;AAC5D,SAAS;AACT,OAAO,CAAC;AACR;AACA,MAAM,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AAC1G,KAAK;AACL,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC;AACvB,GAAG;AACH;AACA,EAAE,IAAI,IAAI,CAAC,GAAG;AACd,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACjD,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;AACrD,GAAG;AACH;AACA,EAAE,OAAO,CAAC,CAAC,YAAY,EAAE;AACzB,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACvF,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,GAAG;AACd,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;AAC5C,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9B,IAAI,KAAK,MAAM,YAAY,IAAI,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AACnE,GAAG;AACH;AACA,EAAE,MAAM,CAAC,CAAC,YAAY,EAAE;AACxB,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,iBAAiB,CAAC,EAAE;AAC1D;AACA,MAAM,OAAO;AACb,KAAK;AACL,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,mBAAmB,EAAE,YAAY,CAAC,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACpG,IAAI,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/C,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAClC,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AACzC,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AACzE,GAAG;AACH;AACA,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE;AACpB,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACnD,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACpD,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AACxE,GAAG;AACH;AACA,EAAE,IAAI,MAAM,CAAC,GAAG;AAChB,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC;AACxB,GAAG;AACH;AACA,EAAE,IAAI,UAAU,CAAC,GAAG;AACpB,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACpD,GAAG;AACH;AACA,EAAE,IAAI,QAAQ,CAAC,GAAG;AAClB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC;AAC1B,GAAG;AACH;AACA,EAAE,IAAI,WAAW,CAAC,GAAG;AACrB,IAAI,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;AAC5C,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AAC5E,IAAI,OAAO,WAAW,CAAC;AACvB,GAAG;AACH;AACA;AACA;AACA,EAAE,QAAQ,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE;AAC1B,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC;AACxD,IAAI,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC7G,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpC,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH;AACA,EAAE,WAAW,CAAC,CAAC,KAAK,EAAE;AACtB,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChD,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC;AAClC,IAAI,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACpC,GAAG;AACH;AACA,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE;AACpB,IAAI,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;AACzD,IAAI,MAAM,QAAQ,GAAG,EAAE,CAAC;AACxB,IAAI,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAChF,IAAI,OAAO,QAAQ,CAAC;AACpB,GAAG;AACH;AACA,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE;AACrB,IAAI,MAAM,QAAQ,GAAG,EAAE,CAAC;AACxB,IAAI,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAChG,IAAI,OAAO,QAAQ,CAAC;AACpB,GAAG;AACH;AACA,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE;AACtB,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC9D,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH;AACA,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE;AACvB,IAAI,MAAM,QAAQ,GAAG,EAAE,CAAC;AACxB,IAAI,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAC/F,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACzE,IAAI,OAAO,QAAQ,CAAC;AACpB,GAAG;AACH;AACA,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE;AACvB,IAAI,MAAM,QAAQ,GAAG,EAAE,CAAC;AACxB,IAAI,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACrF,IAAI,OAAO,QAAQ,CAAC;AACpB,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE;AACxB,IAAI,MAAM,QAAQ,GAAG,EAAE,CAAC;AACxB,IAAI,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAChG,IAAI,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACrF,IAAI,OAAO,QAAQ,CAAC;AACpB,GAAG;AACH;AACA,EAAE,WAAW,CAAC,CAAC,iBAAiB,EAAE;AAClC,IAAI,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,QAAQ,CAAC,YAAY,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,OAAO,QAAQ,CAAC;AAC9H,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA,EAAE,WAAW,CAAC,CAAC,iBAAiB,EAAE;AAClC,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;AACxD,GAAG;AACH;AACA,EAAE,sBAAsB,CAAC,CAAC,iBAAiB,EAAE,uBAAuB,EAAE,mBAAmB,EAAE;AAC3F,IAAI,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,CAAC;AACtC,IAAI,MAAM,SAAS,GAAG,EAAE,CAAC;AACzB,IAAI,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE;AACxC,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;AAC5D,MAAM,IAAI,QAAQ,EAAE;AACpB,QAAQ,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjC,QAAQ,IAAI,mBAAmB,EAAE,SAAS;AAC1C,OAAO;AACP,MAAM,IAAI,CAAC,CAAC,uBAAuB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,uBAAuB,CAAC,KAAK,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,uBAAuB,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAC7O,KAAK;AACL,IAAI,OAAO,SAAS,CAAC;AACrB,GAAG;AACH;AACA,EAAE,oBAAoB,CAAC,CAAC,iBAAiB,EAAE,uBAAuB,EAAE;AACpE,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,CAAC;AACzD,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;AACjE,IAAI,IAAI,QAAQ,EAAE,OAAO,QAAQ,CAAC;AAClC,IAAI,IAAI,uBAAuB,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,uBAAuB,CAAC,EAAE,OAAO,IAAI,CAAC;AAClG,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,iBAAiB,EAAE,uBAAuB,CAAC,CAAC;AACzF,GAAG;AACH;AACA,EAAE,OAAO,CAAC,GAAG;AACb,IAAI,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAC/D,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9B,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAChC,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAClC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9B,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,gBAAgB,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChE,GAAG;AACH;AACA,EAAE,OAAO,CAAC,CAAC,aAAa,EAAE;AAC1B,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACnG,GAAG;AACH;AACA,EAAE,OAAO,CAAC,GAAG;AACb,IAAI,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;AACvD,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;AACnC,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AACnG,GAAG;AACH;;AC7LA,MAAM,IAAI,SAAS,OAAO,CAAC;AAC3B,EAAE,WAAW,CAAC,GAAG;AACjB,IAAI,KAAK,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AAC5C,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;AAChD,GAAG;AACH,CAAC;AACD;AACA,MAAM,YAAY,GAAG;AACrB,EAAE,IAAI,EAAE,OAAO;AACf,CAAC;;ACND,MAAM,KAAK,SAAS,MAAM,CAAC;AAC3B,EAAE,WAAW,CAAC,GAAG;AACjB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AACnB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;AAC3B,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACjE,IAAI,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AAC5B,IAAI,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC5B,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5C,GAAG;AACH;AACA,EAAE,UAAU,CAAC,CAAC,IAAI,EAAE;AACpB,IAAI,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,OAAO,IAAI,CAAC;AAClF,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH;AACA,EAAE,UAAU,CAAC,CAAC,IAAI,EAAE;AACpB,IAAI,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,OAAO,OAAO,CAAC;AACrF,IAAI,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;AACtC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACtB,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnE,IAAI,OAAO,OAAO,CAAC;AACnB,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE;AAClB,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,IAAI,CAAC;AAC5C,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC;AACzB,GAAG;AACH;AACA,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE;AAChB,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACvB,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AACjC,GAAG;AACH;AACA,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE;AACxB,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;AAClB,IAAI,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;AAC1D,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvC,MAAM,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACxE,MAAM,IAAI,QAAQ,GAAG,IAAI,CAAC,0BAA0B,EAAE;AACtD,QAAQ,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACjC,QAAQ,OAAO;AACf,OAAO,MAAM,IAAI,QAAQ,GAAG,IAAI,CAAC,8BAA8B,EAAE;AACjE,QAAQ,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAClC,QAAQ,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACnC,OAAO,MAAM,IAAI,QAAQ,GAAG,IAAI,CAAC,2BAA2B,EAAE;AAC9D,QAAQ,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;AACtB,QAAQ,MAAM;AACd,OAAO;AACP,KAAK;AACL;AACA,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACpC,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,GAAG;AACd,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;AAC1G,GAAG;AACH;AACA,EAAE,UAAU,CAAC,GAAG;AAChB,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;AAC/B,GAAG;AACH;AACA,EAAE,MAAM,CAAC,CAAC,SAAS,EAAE;AACrB,IAAI,MAAM,YAAY,GAAG,EAAE,CAAC;AAC5B,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK;AACpC,MAAM,QAAQ,QAAQ,CAAC,IAAI;AAC3B,QAAQ,KAAK,WAAW;AACxB,UAAU,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACtE,UAAU,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAClE,UAAU,MAAM;AAChB;AACA,QAAQ,KAAK,YAAY;AACzB,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAChD,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC7D,YAAY,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACpD,YAAY,IAAI,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACjF,YAAY,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,WAAW,EAAE,IAAI,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACrI,WAAW;AACX,UAAU,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC3G,UAAU,MAAM;AAChB,OAAO;AACP,KAAK,CAAC,CAAC;AACP;AACA,IAAI,YAAY,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AACvD,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACvD,MAAM,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC7B,MAAM,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACnD,KAAK;AACL,GAAG;AACH;AACA,EAAE,MAAM,CAAC,GAAG;AACZ,IAAI,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC5B,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AAC/C,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;AAClC,IAAI,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,IAAI,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACpG,GAAG;AACH;AACA,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE;AACjB,IAAI,MAAM,WAAW,GAAG,EAAE,CAAC;AAC3B,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK;AAC9B,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACjE,KAAK,CAAC,CAAC;AACP;AACA,IAAI,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;AAC1C,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;AAC3B,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAC9B,KAAK;AACL,GAAG;AACH;AACA,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE;AAC3C,IAAI,MAAM,aAAa,GAAG,YAAY,GAAG,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC;AACjG,IAAI,MAAM,SAAS,GAAG,EAAE,CAAC;AACzB;AACA,IAAI,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE;AAC9C,MAAM,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AAC3D;AACA,MAAM,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;AAC7B,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC3C,QAAQ,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AACtC,QAAQ,IAAI,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACvE,OAAO;AACP,KAAK;AACL;AACA,IAAI,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;AACxD,GAAG;AACH;;AChIA,MAAM,QAAQ,SAAS,MAAM,CAAC;AAC9B,EAAE,WAAW,CAAC,GAAG;AACjB,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;AACpB,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5C,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;AAClC,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,GAAG;AACd,IAAI,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACjD,GAAG;AACH;AACA,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE;AACrB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC7B,GAAG;AACH;AACA,EAAE,MAAM,CAAC,GAAG;AACZ,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO;AAChC,IAAI,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACjD,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;AAClD,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO;AACnC,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AACrC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AACvB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AACjD,GAAG;AACH;;AC1BA,MAAM,OAAO,SAAS,MAAM,CAAC;AAC7B,EAAE,WAAW,CAAC,GAAG;AACjB,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;AACpB,IAAI,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC/B,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3C,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/C,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE;AACxB,MAAM,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC5C,KAAK;AACL,IAAI,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAClD,IAAI,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;AAC7D,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,GAAG;AACd,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;AACnB,GAAG;AACH;AACA,EAAE,OAAO,CAAC,GAAG;AACb,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE,OAAO;AACnC,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC9B,IAAI,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAChD,GAAG;AACH;AACA,EAAE,MAAM,CAAC,GAAG;AACZ,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO;AACpC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;AAClD,IAAI,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC/B,GAAG;AACH;;AC3BA,MAAM,YAAY,SAAS,MAAM,CAAC;AAClC,EAAE,WAAW,CAAC,GAAG;AACjB,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;AAClB,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC3B,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3C,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1C,GAAG;AACH;AACA,EAAE,IAAI,QAAQ,CAAC,GAAG;AAClB,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC;AAC1B,GAAG;AACH;AACA,EAAE,IAAI,CAAC,GAAG;AACV,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACzB,MAAM,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC5B,MAAM,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;AACrC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;AAC7E,WAAW,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACtF,MAAM,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;AAC3E,KAAK;AACL,GAAG;AACH;AACA,EAAE,MAAM,CAAC,GAAG;AACZ,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE;AACxB,MAAM,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC7B,MAAM,QAAQ,CAAC,eAAe,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AACrE,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC;AACtD,WAAW,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;AAC9D,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AACtC,KAAK;AACL,GAAG;AACH;;ACjCA,MAAM,IAAI,SAAS,MAAM,CAAC;AAC1B,EAAE,WAAW,CAAC,GAAG;AACjB,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;AAClB,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxC,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,GAAG;AACd,IAAI,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAClD,GAAG;AACH;AACA,EAAE,IAAI,CAAC,GAAG;AACV,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAChD,GAAG;AACH;;ACbA,MAAM,aAAa,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AAC/C;AACA,MAAM,QAAQ,SAAS,MAAM,CAAC;AAC9B,EAAE,WAAW,CAAC,GAAG;AACjB,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;AACvB,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzC,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,GAAG;AACd,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE;AACxB,MAAM,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AACpE,KAAK;AACL,GAAG;AACH;AACA,EAAE,IAAI,CAAC,GAAG;AACV,IAAI,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5F;AACA,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC5D,GAAG;AACH;;ACnBA,MAAM,SAAS,SAAS,MAAM,CAAC;AAC/B,EAAE,WAAW,CAAC,GAAG;AACjB,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;AACxB,IAAI,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC7B,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC3B,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvC,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9C,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7C,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5C,GAAG;AACH;AACA,EAAE,MAAM,CAAC,GAAG;AACZ,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,OAAO;AAC/B,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1B,IAAI,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC7B,IAAI,QAAQ,CAAC,eAAe,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAC5E,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,GAAG;AACd,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO;AAChC,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC3B,IAAI,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC7B,IAAI,QAAQ,CAAC,eAAe,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAC/E,GAAG;AACH;AACA,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE;AACd,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO;AAChC,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;AAChD,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,OAAO;AACjC,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC5B,IAAI,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9C,GAAG;AACH;AACA,EAAE,IAAI,CAAC,GAAG;AACV,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO;AAClC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/D,IAAI,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC7B,GAAG;AACH;;AC7BA,MAAM,MAAM,CAAC;AACb,EAAE,WAAW,CAAC,GAAG;AACjB,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC3B,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACxB,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC3B,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC1B,IAAI,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAC/B,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACvB,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC3B,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAC5B;AACA,IAAI,MAAM,cAAc,GAAG,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AACvD,IAAI,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACjE,GAAG;AACH;AACA,EAAE,IAAI,QAAQ,CAAC,GAAG;AAClB,IAAI,OAAO,KAAK,CAAC,QAAQ,CAAC;AAC1B,GAAG;AACH;AACA,EAAE,KAAK,CAAC,GAAG;AACX,IAAI,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC7B,IAAI,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC1B,GAAG;AACH;AACA,EAAE,IAAI,CAAC,GAAG;AACV,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5B,IAAI,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC3B,GAAG;AACH,CAAC;AACD;AACA,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE;;ACzC3B,MAAM,QAAQ,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AAC9F;AACA,MAAM,aAAa,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACzF;AACA,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK;AACpD,EAAE,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;AAClC,EAAE,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;AAC5C,EAAE,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC9C,EAAE,IAAI,MAAM,KAAK,IAAI,EAAE;AACvB,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAChD,GAAG,MAAM,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACtD,EAAE,OAAO,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3C,CAAC,CAAC;AACF;AACA,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,SAAS,KAAK,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAGzE;AACA,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,SAAS,KAAK,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AAGlF;AACA,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,SAAS,KAAK,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;;ACnBjG,MAAM,GAAG,GAAG,EAAE,CAAC;AACf;AACA,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACxB,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACxB,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;AAC9B,GAAG,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;AAC9C,GAAG,CAAC,qBAAqB,GAAG,qBAAqB;;ACTjD,MAAM,mBAAmB,GAAG,MAAM;AAClC,EAAE,IAAI;AACN,IAAI,OAAO,cAAc,IAAI,MAAM,IAAI,MAAM,CAAC,YAAY,KAAK,IAAI,CAAC;AACpE,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,CAAC;;ACJD,MAAM,OAAO,GAAG,EAAE,CAAC;AACnB;AACA,OAAO,CAAC,mBAAmB,GAAG,mBAAmB;;ACF1C,MAAM,kBAAkB,GAAG;AAClC,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;AACtC,CAAC;;ACFD,MAAM,QAAQ,GAAG,EAAE,CAAC;AACpB;AACA,QAAQ,CAAC,kBAAkB,GAAG,kBAAkB;;ACJhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,GAAG,OAAO,KAAK;AAC/C,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI;AAC5B,IAAI,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK;AACzE,MAAM,WAAW,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACtE,MAAM,OAAO,WAAW,CAAC;AACzB,KAAK,EAAE,EAAE,CAAC,CAAC;AACX;AACA,IAAI,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI;AACxD,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACtE,MAAM,IAAI,UAAU,CAAC,UAAU,EAAE;AACjC,QAAQ,WAAW,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;AACtC,OAAO;AACP,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACjD,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;;ACrCD,MAAM,QAAQ,GAAG,EAAE,CAAC;AACpB;AACA,QAAQ,CAAC,cAAc,GAAG,cAAc;;ACKxC,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB;AACA,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE;AAC1C,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC,QAAQ;AAC3B,CAAC,CAAC,CAAC;AACH;AACA,MAAM,CAAC,SAAS,GAAG,MAAM;AACzB,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;AACxB,CAAC,CAAC;AACF;AACA,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC;AAC1B,SAAS,CAAC,GAAG,GAAG,GAAG,CAAC;AACpB,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;AAC5B,SAAS,CAAC,MAAM,GAAGA,QAAM,CAAC;AAC1B,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC9B,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;AAClB,SAAS,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACrC;AACA,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,qBAAqB,EAAE;AACxD,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,mBAAmB;AACxC,CAAC,CAAC;;ACvBF,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC5C;AACA,MAAM,GAAG,GAAG,CAAC,IAAI,KAAK;AACtB,EAAE,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACzC,EAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC,CAAC;AACF;AACA,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;AAClB;AACA,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE;AACnC,EAAE,GAAG,EAAE,CAAC,KAAK,KAAK,EAAE,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE;AAC3C,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,IAAI;AACzB,CAAC,CAAC,CAAC;AACH;AACA,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;AAC1B;AACA,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AACzB,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACvB;AACA,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;AAC1B;AACA,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;AACvD;AACA,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,GAAG;;AC9B9B,MAAM,OAAO,CAAC;AACd,EAAE,WAAW,CAAC,GAAG;AACjB,IAAI,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACxB,GAAG;AACH;AACA,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE;AACtB,IAAI,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;AACrF,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AACzD,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACvC,GAAG;AACH;AACA,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE;AACzB,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO;AACtC,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC9C,SAAS;AACT,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC1D,MAAM,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzD,KAAK;AACL,GAAG;AACH;AACA,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE;AACpB,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;AACzC,IAAI,MAAM,QAAQ,GAAG,EAAE,CAAC;AACxB,IAAI,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1F,IAAI,OAAO,QAAQ,CAAC;AACpB,GAAG;AACH;AACA,EAAE,OAAO,CAAC,GAAG;AACb,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1B,GAAG;AACH;;AC9BA,MAAM,UAAU,CAAC;AACjB,EAAE,WAAW,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE;AAC7B,IAAI,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACjB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,GAAG;AACH;AACA,EAAE,IAAI,CAAC,GAAG;AACV,IAAI,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;AACxE,GAAG;AACH,CAAC;AACD;AACO,MAAM,WAAW,GAAG;AAC3B,EAAE,EAAE,EAAE,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;AAC7B,EAAE,EAAE,EAAE,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;AAC9B,EAAE,EAAE,EAAE,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;AAC9B,EAAE,EAAE,EAAE,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;AAC9B,EAAE,EAAE,EAAE,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;AAC9B,CAAC;;ACVD,MAAM,QAAQ,CAAC;AACf,EAAE,WAAW,CAAC,CAAC,WAAW,GAAG,IAAI,EAAE;AACnC,IAAI,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AACnC,IAAI,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC9B,IAAI,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC7B,IAAI,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AACjC,IAAI,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC5B,IAAI,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AACjC,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACzB,IAAI,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AACpB,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjD,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;AAClC,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AACjC,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;AAClC,IAAI,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;AAC7B,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AACrB,GAAG;AACH;AACA,EAAE,WAAW,iBAAiB,CAAC,GAAG;AAClC,IAAI,OAAO,UAAU,CAAC;AACtB,GAAG;AACH;AACA,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE;AAClC,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC3B,IAAI,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;AACrC,IAAI,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAC7B,IAAI,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AAC9B,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAC1E,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;AAChB,GAAG;AACH;AACA,EAAE,IAAI,CAAC,GAAG,EAAE;AACZ;AACA,EAAE,IAAI,KAAK,CAAC,GAAG;AACf,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC;AACvB,IAAI,OAAO;AACX,MAAM,MAAM,EAAE,MAAM,KAAK,CAAC,MAAM,EAAE;AAClC,MAAM,MAAM,EAAE,MAAM,KAAK,CAAC,MAAM,EAAE;AAClC,KAAK,CAAC;AACN,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE;AACrC,IAAI,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;AAC7F,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC3C,GAAG;AACH;AACA,EAAE,sBAAsB,CAAC,CAAC,iBAAiB,EAAE;AAC7C,IAAI,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,YAAY,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,OAAO,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC;AACvJ,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;AAC/C,IAAI,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,EAAE,UAAU,EAAE,UAAU,KAAK,IAAI,EAAE,CAAC,CAAC;AACvH,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACnC,GAAG;AACH;AACA,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE;AAClC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AAC3D,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO;AAC5D,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACxC,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACvD,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE;AAC3B,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,MAAM,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC9D,KAAK,MAAM,IAAI,CAAC,OAAO,EAAE;AACzB,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO;AACzC,MAAM,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAChG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AACvC,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO;AACzC,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3D,MAAM,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC7D,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnD,KAAK;AACL,GAAG;AACH;AACA,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,GAAG,KAAK,EAAE,eAAe,GAAG,KAAK,EAAE,IAAI,GAAG,MAAM,EAAE;AAC5F,IAAI,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;AACrD,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAClD,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxC,KAAK;AACL;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC;AACzF,GAAG;AACH;AACA,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE;AAC9B,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;AAC1F;AACA,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,IAAI;AAC3C,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACpG,KAAK,CAAC,CAAC;AACP,GAAG;AACH;AACA,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE;AAChB,IAAI,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAChD,GAAG;AACH;AACA,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE;AAClD;AACA,EAAE,IAAI,WAAW,CAAC,CAAC,KAAK,EAAE;AAC1B,IAAI,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE,OAAO;AAC5C,IAAI,IAAI,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACzC,SAAS,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACtC,IAAI,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC9B,GAAG;AACH;AACA,EAAE,MAAM,CAAC,GAAG,EAAE;AACd;AACA,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE;AACpB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9B,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC5C,GAAG;AACH;AACA,EAAE,IAAI,CAAC,GAAG;AACV,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;AACtC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3B,IAAI,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;AACxD,GAAG;AACH;AACA,EAAE,IAAI,UAAU,CAAC,GAAG,EAAE,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE;AAChD;AACA,EAAE,IAAI,UAAU,CAAC,CAAC,KAAK,EAAE;AACzB,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE,OAAO;AAC3C,IAAI,IAAI,KAAK,EAAE;AACf,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAChC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;AACpB,KAAK,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACxC,IAAI,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC7B,GAAG;AACH;AACA,EAAE,MAAM,CAAC,GAAG,EAAE;AACd;AACA,EAAE,YAAY,CAAC,CAAC,UAAU,EAAE;AAC5B,IAAI,QAAQ,IAAI;AAChB,MAAM,KAAK,OAAO,UAAU,KAAK,QAAQ;AACzC,QAAQ,OAAO,WAAW,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAC5D;AACA,MAAM;AACN,QAAQ,OAAO,UAAU,CAAC,IAAI,EAAE,CAAC;AACjC,KAAK;AACL,GAAG;AACH;AACA,EAAE,IAAI,cAAc,CAAC,GAAG;AACxB,IAAI,OAAO,IAAI,CAAC,eAAe,CAAC;AAChC,GAAG;AACH;AACA,EAAE,IAAI,cAAc,CAAC,CAAC,KAAK,EAAE;AAC7B,IAAI,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE,OAAO;AAC/C,IAAI,IAAI,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACvC,SAAS,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACpC,IAAI,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AACjC,GAAG;AACH;AACA,EAAE,IAAI,SAAS,CAAC,GAAG;AACnB,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC;AAC3B,GAAG;AACH;AACA,EAAE,IAAI,SAAS,CAAC,CAAC,KAAK,EAAE;AACxB,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE,OAAO;AAC1C,IAAI,IAAI,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACvC,SAAS,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACpC,IAAI,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC5B,GAAG;AACH;AACA,EAAE,IAAI,CAAC,GAAG,EAAE;AACZ;AACA,EAAE,IAAI,cAAc,CAAC,GAAG;AACxB,IAAI,OAAO,IAAI,CAAC,eAAe,CAAC;AAChC,GAAG;AACH;AACA,EAAE,IAAI,cAAc,CAAC,CAAC,KAAK,EAAE;AAC7B,IAAI,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE,OAAO;AAC/C,IAAI,IAAI,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAC5C,SAAS,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AACzC,IAAI,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AACjC,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,GAAG,EAAE;AAChB;AACA,EAAE,IAAI,aAAa,CAAC,GAAG,EAAE,OAAO,IAAI,CAAC,cAAc,CAAC,EAAE;AACtD;AACA,EAAE,IAAI,aAAa,CAAC,CAAC,KAAK,EAAE;AAC5B,IAAI,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,OAAO;AAC9C,IAAI,IAAI,KAAK,EAAE;AACf,MAAM,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AACpC,KAAK,MAAM;AACX,MAAM,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AACvC,KAAK;AACL,IAAI,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAChC,GAAG;AACH;AACA,EAAE,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;AACtB;AACA,EAAE,OAAO,CAAC,CAAC,cAAc,EAAE;AAC3B,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE;AACxD,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;AACtB,MAAM,OAAO;AACb,KAAK;AACL;AACA,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAChC,GAAG;AACH;AACA,EAAE,MAAM,CAAC,CAAC,cAAc,EAAE,EAAE;AAC5B;AACA,EAAE,QAAQ,CAAC,GAAG;AACd,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,oBAAoB,EAAE,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAClH,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;AACtD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpB,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACtB,IAAI,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC7B,IAAI,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC5B,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACjD,IAAI,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAChC,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC3B,IAAI,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;AAC5B,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AAC3B,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;AAC5B,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9B,IAAI,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AAC3F,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC/B,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;AACnB,GAAG;AACH;AACA,EAAE,OAAO,CAAC,GAAG,EAAE;AACf;AACA,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE;AACpB,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACzC,GAAG;AACH;AACA,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE;AAC9B,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACrC,GAAG;AACH;AACA,EAAE,cAAc,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE;AACjC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACxC,GAAG;AACH;AACA,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE;AACtB,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC3C,GAAG;AACH;AACA,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE;AAC5B,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACpC,GAAG;AACH;AACA,EAAE,YAAY,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE;AAC/B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACvC,GAAG;AACH;AACA,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE;AACvB,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC5C,GAAG;AACH;AACA,EAAE,UAAU,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE;AAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACrC,GAAG;AACH;AACA,EAAE,aAAa,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE;AAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACxC,GAAG;AACH;AACA,EAAE,IAAI,KAAK,CAAC,GAAG;AACf,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAC3B,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,CAAC,SAAS,EAAE;AACvB,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACnC,GAAG;AACH;AACA,EAAE,WAAW,CAAC,CAAC,SAAS,EAAE;AAC1B,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACtC,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,CAAC,SAAS,EAAE;AACvB,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC1C,GAAG;AACH;AACA,EAAE,YAAY,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE;AACtC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AACjD,GAAG;AACH;AACA,EAAE,YAAY,CAAC,CAAC,aAAa,EAAE;AAC/B,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;AACjD,GAAG;AACH;AACA,EAAE,YAAY,CAAC,CAAC,aAAa,EAAE;AAC/B,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;AACjD,GAAG;AACH;AACA,EAAE,eAAe,CAAC,CAAC,aAAa,EAAE;AAClC,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;AAC7C,GAAG;AACH;AACA,EAAE,WAAW,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE;AACpC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AACrD,GAAG;AACH;AACA,EAAE,cAAc,CAAC,CAAC,YAAY,EAAE;AAChC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;AACjD,GAAG;AACH;AACA,EAAE,KAAK,CAAC,GAAG;AACX,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;AACtB,GAAG;AACH;AACA,EAAE,IAAI,QAAQ,CAAC,GAAG;AAClB,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,aAAa,CAAC;AAChD,GAAG;AACH;AACA,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE;AACtB,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACxC,GAAG;AACH;AACA,EAAE,aAAa,CAAC,CAAC,SAAS,EAAE;AAC5B,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;AAC9C,GAAG;AACH;AACA,EAAE,gBAAgB,CAAC,CAAC,SAAS,EAAE;AAC/B,IAAI,OAAO,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACvD,GAAG;AACH;AACA,EAAE,mBAAmB,CAAC,CAAC,SAAS,EAAE;AAClC,IAAI,OAAO,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACrD,GAAG;AACH;AACA,EAAE,OAAO,CAAC,GAAG;AACb,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC7C,GAAG;AACH;AACA,EAAE,IAAI,QAAQ,CAAC,GAAG;AAClB,IAAI,OAAO,KAAK,CAAC,QAAQ,CAAC;AAC1B,GAAG;AACH,CAAC;AACD;AACA,MAAM,SAAS,CAAC;AAChB,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE;AACrE,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AAClC,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC3B,IAAI,IAAI,CAAC,cAAc,GAAG,cAAc,KAAK,IAAI,CAAC;AAClD,IAAI,IAAI,CAAC,eAAe,GAAG,eAAe,KAAK,IAAI,CAAC;AACpD,GAAG;AACH;AACA,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE;AACb,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,EAAE,OAAO;AAC1C,IAAI,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,EAAE;AACjC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACtB,MAAM,IAAI,IAAI,CAAC,cAAc,EAAE;AAC/B,QAAQ,CAAC,CAAC,cAAc,EAAE,CAAC;AAC3B,OAAO;AACP,MAAM,IAAI,IAAI,CAAC,eAAe,EAAE;AAChC,QAAQ,CAAC,CAAC,eAAe,EAAE,CAAC;AAC5B,OAAO;AACP,KAAK;AACL,GAAG;AACH;;ACpXO,MAAM,QAAQ,GAAG;AACxB,EAAE,GAAG,EAAE,CAAC;AACR,EAAE,MAAM,EAAE,EAAE;AACZ,EAAE,GAAG,EAAE,EAAE;AACT,EAAE,IAAI,EAAE,EAAE;AACV,EAAE,IAAI,EAAE,EAAE;AACV,EAAE,EAAE,EAAE,EAAE;AACR,EAAE,KAAK,EAAE,EAAE;AACX,EAAE,IAAI,EAAE,EAAE;AACV,CAAC;;ACPD,MAAM,eAAe,GAAG;AACxB,EAAE,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC;AAChC,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;AAC9B,CAAC;;ACHD,MAAM,kBAAkB,GAAG;AAC3B,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;AAC3C,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;AAC3C,EAAE,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC;AAC/C,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;AAC3C,EAAE,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC;AAC/C,CAAC;;ACHD,MAAM,UAAU,SAAS,QAAQ,CAAC;AAClC,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,6BAA6B,EAAE,iCAAiC,EAAE;AACjG,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC9B,IAAI,IAAI,CAAC,6BAA6B,GAAG,6BAA6B,CAAC;AACvE,IAAI,IAAI,CAAC,iCAAiC,GAAG,iCAAiC,CAAC;AAC/E,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACzD,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,GAAG;AACH;AACA,EAAE,WAAW,iBAAiB,CAAC,GAAG;AAClC,IAAI,OAAO,YAAY,CAAC;AACxB,GAAG;AACH;AACA,EAAE,IAAI,CAAC,GAAG;AACV,IAAI,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACrE,IAAI,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACtE,IAAI,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACxE,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,6BAA6B,CAAC,CAAC;AACtF,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAC1C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;AAClB,GAAG;AACH;AACA,EAAE,IAAI,KAAK,CAAC,GAAG;AACf,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC;AACvB,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE;AAC7C,MAAM,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1C,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AACpC,KAAK,CAAC,CAAC;AACP;AACA,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxE;AACA,IAAI,MAAM,cAAc,GAAG;AAC3B,MAAM,IAAI,OAAO,CAAC,GAAG;AACrB,QAAQ,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3D,OAAO;AACP,MAAM,IAAI,KAAK,CAAC,GAAG;AACnB,QAAQ,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AAClC,QAAQ,OAAO,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;AAC1C,OAAO;AACP,KAAK,CAAC;AACN;AACA,IAAI,OAAO,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AACjD,GAAG;AACH;AACA,EAAE,IAAI,OAAO,CAAC,GAAG;AACjB,IAAI,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,6BAA6B,CAAC,iBAAiB,CAAC,CAAC;AAC7F,GAAG;AACH;AACA,EAAE,MAAM,CAAC,GAAG;AACZ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpB,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,GAAG;AACd,IAAI,IAAI,CAAC,IAAI,CAAC,iCAAiC,EAAE;AACjD,MAAM,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACzB,MAAM,OAAO;AACb,KAAK;AACL;AACA,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,iCAAiC,EAAE,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;AAChI,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACzC,MAAM,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACzB,MAAM,OAAO;AACb,KAAK;AACL;AACA,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACxB,GAAG;AACH;AACA,EAAE,IAAI,KAAK,CAAC,GAAG;AACf,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC;AACvB,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE;AACtB,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,OAAO,KAAK,CAAC;AACrC,IAAI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC1B,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;AAC3D,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE;AACnC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,KAAK,CAAC;AACtC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE,OAAO,KAAK,CAAC;AACzF,IAAI,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC1B,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC3B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;AAC1F,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;AACpC,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAC3C,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA,EAAE,IAAI,SAAS,CAAC,GAAG;AACnB,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC;AAC3B,GAAG;AACH;AACA,EAAE,IAAI,SAAS,CAAC,CAAC,KAAK,EAAE;AACxB,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE,OAAO;AAC1C,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,eAAe,CAAC,QAAQ,GAAG,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AACzF,IAAI,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC5B,IAAI,IAAI,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC5C,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC/E,GAAG;AACH;AACA,EAAE,KAAK,CAAC,GAAG,EAAE;AACb;AACA,EAAE,MAAM,CAAC,CAAC,SAAS,EAAE;AACrB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC/C,SAAS;AACT,MAAM,QAAQ,IAAI;AAClB,QAAQ,KAAK,CAAC,SAAS,CAAC;AACxB,QAAQ,KAAK,IAAI,CAAC,SAAS;AAC3B,UAAU,IAAI,CAAC,OAAO,EAAE,CAAC;AACzB,UAAU,MAAM;AAChB;AACA,QAAQ;AACR,UAAU,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC1B,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA,EAAE,IAAI,cAAc,CAAC,GAAG;AACxB,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,EAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,OAAO,IAAI,CAAC;AAChF,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH;AACA,EAAE,IAAI,QAAQ,CAAC,GAAG;AAClB,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,OAAO,IAAI,CAAC;AACpC,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE,OAAO,IAAI,CAAC;AACzC,IAAI,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AACtD,GAAG;AACH;AACA,EAAE,KAAK,CAAC,GAAG;AACX,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClD,MAAM,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACrC,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE;AAC5B,QAAQ,MAAM,CAAC,KAAK,EAAE,CAAC;AACvB,QAAQ,OAAO;AACf,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,CAAC,GAAG;AACb,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AACpB,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5C,GAAG;AACH;;ACtJA,MAAM,gBAAgB,SAAS,QAAQ,CAAC;AACxC,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE;AACrB,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,GAAG,OAAO,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC/E,GAAG;AACH;AACA,EAAE,WAAW,iBAAiB,CAAC,GAAG;AAClC,IAAI,OAAO,kBAAkB,CAAC;AAC9B,GAAG;AACH;AACA,EAAE,IAAI,CAAC,GAAG;AACV,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;AACzD,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC3D,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;AACrH,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAChD,GAAG;AACH;AACA,EAAE,IAAI,KAAK,CAAC,GAAG;AACf,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC;AACvB,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE;AACtC,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AACpC,KAAK,CAAC,CAAC;AACP,GAAG;AACH;AACA,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE;AACZ,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACpF,GAAG;AACH;AACA,EAAE,MAAM,CAAC,CAAC,cAAc,EAAE;AAC1B,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AACxG,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;AAC/D,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AACzE,KAAK;AACL,GAAG;AACH;AACA,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;AAChB,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO;AAChC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AACjD,GAAG;AACH;AACA,EAAE,IAAI,SAAS,CAAC,GAAG;AACnB,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,MAAM,CAAC;AAC5D,GAAG;AACH;;AC3CA,MAAM,gBAAgB,SAAS,QAAQ,CAAC;AACxC,EAAE,WAAW,CAAC,CAAC,2BAA2B,EAAE,WAAW,EAAE;AACzD,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;AACvB,IAAI,IAAI,CAAC,2BAA2B,GAAG,2BAA2B,CAAC;AACnE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACrB,GAAG;AACH;AACA,EAAE,WAAW,iBAAiB,CAAC,GAAG;AAClC,IAAI,OAAO,kBAAkB,CAAC;AAC9B,GAAG;AACH;AACA,EAAE,IAAI,CAAC,GAAG;AACV,IAAI,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACrE,IAAI,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACvE,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAC3C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;AAClB,GAAG;AACH;AACA,EAAE,IAAI,KAAK,CAAC,GAAG;AACf,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC;AACvB;AACA,IAAI,MAAM,cAAc,GAAG;AAC3B,MAAM,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE;AACxB,QAAQ,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;AAC5B,OAAO;AACP,MAAM,IAAI,KAAK,CAAC,GAAG;AACnB,QAAQ,OAAO,KAAK,CAAC,KAAK,CAAC;AAC3B,OAAO;AACP,MAAM,IAAI,MAAM,CAAC,GAAG;AACpB,QAAQ,OAAO,KAAK,CAAC,MAAM,CAAC;AAC5B,OAAO;AACP,MAAM,IAAI,OAAO,CAAC,GAAG;AACrB,QAAQ,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AACtC,QAAQ,OAAO,OAAO,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;AAC9C,OAAO;AACP,MAAM,IAAI,OAAO,CAAC,GAAG;AACrB,QAAQ,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC;AAC3D,OAAO;AACP,MAAM,IAAI,QAAQ,CAAC,GAAG;AACtB,QAAQ,OAAO,KAAK,CAAC,QAAQ,CAAC;AAC9B,OAAO;AACP,KAAK,CAAC;AACN;AACA,IAAI,OAAO,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AACvD,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE;AACpB,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA,EAAE,UAAU,CAAC,GAAG;AAChB,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,2BAA2B,EAAE,IAAI,CAAC,WAAW,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;AACpI,IAAI,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D,GAAG;AACH;AACA,EAAE,MAAM,CAAC,GAAG;AACZ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;AACtB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpB,GAAG;AACH;AACA,EAAE,IAAI,OAAO,CAAC,GAAG;AACjB,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC;AACzB,GAAG;AACH;AACA,EAAE,IAAI,MAAM,CAAC,GAAG;AAChB,IAAI,OAAO,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AAClD,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,GAAG;AACd,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACrB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,MAAM,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC/D,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE;AAC1C,QAAQ,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACvB,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA,EAAE,IAAI,KAAK,CAAC,GAAG;AACf,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC;AACvB,GAAG;AACH;AACA,EAAE,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE;AACpB,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE,OAAO;AAC5E,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AACxB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,MAAM,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACrC,MAAM,IAAI,KAAK,KAAK,CAAC,EAAE;AACvB,QAAQ,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC9B,OAAO,MAAM;AACb,QAAQ,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACnC,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;AACjB,GAAG;AACH;AACA,EAAE,IAAI,OAAO,CAAC,GAAG;AACjB,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjE,GAAG;AACH;AACA,EAAE,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE;AACvB,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC9C,GAAG;AACH;AACA,EAAE,IAAI,QAAQ,CAAC,GAAG;AAClB,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AACjC,IAAI,IAAI,OAAO,EAAE,OAAO,OAAO,CAAC,QAAQ,CAAC;AACzC,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH;AACA,EAAE,KAAK,CAAC,GAAG,EAAE;AACb;AACA,EAAE,OAAO,CAAC,GAAG;AACb,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;AACpB,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC7C,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACzB,GAAG;AACH;;ACzHO,MAAM,cAAc,GAAG;AAC9B,EAAE,MAAM,EAAE;AACV,IAAI,EAAE,EAAE,UAAU;AAClB,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,YAAY,EAAE,IAAI;AACtB,IAAI,UAAU,EAAE,IAAI;AACpB,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,EAAE,EAAE,UAAU;AAClB,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,YAAY,EAAE,IAAI;AACtB,IAAI,UAAU,EAAE,KAAK;AACrB,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,EAAE,EAAE,QAAQ;AAChB,IAAI,SAAS,EAAE,KAAK;AACpB,IAAI,YAAY,EAAE,IAAI;AACtB,IAAI,UAAU,EAAE,IAAI;AACpB,GAAG;AACH,CAAC;;AChBD,MAAM,cAAc,SAAS,gBAAgB,CAAC;AAC9C,EAAE,WAAW,CAAC,GAAG;AACjB,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AACjC,GAAG;AACH;AACA,EAAE,WAAW,iBAAiB,CAAC,GAAG;AAClC,IAAI,OAAO,gBAAgB,CAAC;AAC5B,GAAG;AACH;;ACTO,MAAM,gBAAgB,GAAG;AAChC,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;AACnC,CAAC;;ACCD;AACA;AACA;AACA;AACA;AACA,MAAM,QAAQ,SAAS,UAAU,CAAC;AAClC,EAAE,WAAW,CAAC,GAAG;AACjB,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;AAC9F,GAAG;AACH;AACA,EAAE,WAAW,iBAAiB,CAAC,GAAG;AAClC,IAAI,OAAO,UAAU,CAAC;AACtB,GAAG;AACH;AACA,EAAE,IAAI,CAAC,GAAG;AACV,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;AACjB,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAChE,GAAG;AACH;AACA,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE;AACpB,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACzB,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC;AACnD,WAAW,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;AAC9D,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,CAAC,GAAG;AACb,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;AACrD,SAAS,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;AACjE,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE;AACtB,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,OAAO;AAC/B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;AACnB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM;AACvB,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;AACpB,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM;AACzB,QAAQ,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACjC,OAAO,CAAC,CAAC;AACT,KAAK,CAAC,CAAC;AACP,GAAG;AACH;AACA,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,YAAY,EAAE;AACnC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO;AAChC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM;AACvB,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;AACpB,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM;AACzB,QAAQ,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;AAC9C,OAAO,CAAC,CAAC;AACT,KAAK,CAAC,CAAC;AACP,GAAG;AACH;AACA,EAAE,MAAM,CAAC,GAAG;AACZ,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AAC5C,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;AAC1C,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AACnD,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AACxC,GAAG;AACH;AACA,EAAE,KAAK,CAAC,GAAG;AACX,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC/C,GAAG;AACH;;ACjEA,MAAM,cAAc,SAAS,gBAAgB,CAAC;AAC9C,EAAE,WAAW,CAAC,GAAG;AACjB,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;AACtB,GAAG;AACH;AACA,EAAE,WAAW,iBAAiB,CAAC,GAAG;AAClC,IAAI,OAAO,gBAAgB,CAAC;AAC5B,GAAG;AACH;;ACRO,MAAM,iBAAiB,GAAG;AACjC,EAAE,MAAM,EAAE,EAAE,CAAC,WAAqB,CAAC;AACnC,CAAC;;ACDD,MAAM,SAAS,SAAS,QAAQ,CAAC;AACjC,EAAE,WAAW,iBAAiB,CAAC,GAAG;AAClC,IAAI,OAAO,WAAW,CAAC;AACvB,GAAG;AACH;AACA,EAAE,IAAI,CAAC,GAAG;AACV,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAC1C,GAAG;AACH;AACA,EAAE,OAAO,CAAC,GAAG;AACb,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;AACjD,IAAI,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC;AAChC,GAAG;AACH;AACA,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE;AACjB,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;AACvD,GAAG;AACH;AACA,EAAE,OAAO,CAAC,GAAG;AACb,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAC1C,GAAG;AACH;;ACrBA,MAAM,eAAe,SAAS,QAAQ,CAAC;AACvC,EAAE,WAAW,iBAAiB,CAAC,GAAG;AAClC,IAAI,OAAO,iBAAiB,CAAC;AAC7B,GAAG;AACH;AACA,EAAE,IAAI,CAAC,GAAG;AACV,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC3B,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1B,IAAI,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACrE,GAAG;AACH;AACA,EAAE,IAAI,CAAC,GAAG;AACV,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;AAClB,GAAG;AACH;AACA,EAAE,MAAM,CAAC,GAAG;AACZ,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;AACxE,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;AAC5E;AACA,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAChF,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAChF,SAAS,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AACnE,GAAG;AACH;;ACxBA,MAAM,WAAW,GAAG;AACpB,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC5B,CAAC;;ACAD,MAAM,MAAM,SAAS,QAAQ,CAAC;AAC9B,EAAE,WAAW,iBAAiB,CAAC,GAAG;AAClC,IAAI,OAAO,QAAQ,CAAC;AACpB,GAAG;AACH;AACA,EAAE,IAAI,CAAC,GAAG;AACV,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC;AAC3C,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACjD,GAAG;AACH;AACA,EAAE,MAAM,CAAC,GAAG;AACZ,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC;AAC3C,GAAG;AACH;AACA,EAAE,IAAI,OAAO,CAAC,GAAG;AACjB,IAAI,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;AAC7C,GAAG;AACH;AACA,EAAE,IAAI,OAAO,CAAC,CAAC,KAAK,EAAE;AACtB,IAAI,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAChE,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC7C,GAAG;AACH;AACA,EAAE,IAAI,KAAK,CAAC,GAAG;AACf,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC;AACvB,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE;AAC7C,MAAM,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AACtC,KAAK,CAAC,CAAC;AACP;AACA,IAAI,MAAM,cAAc,GAAG;AAC3B,MAAM,IAAI,OAAO,CAAC,GAAG;AACrB,QAAQ,OAAO,KAAK,CAAC,OAAO,CAAC;AAC7B,OAAO;AACP,MAAM,IAAI,OAAO,CAAC,CAAC,KAAK,EAAE;AAC1B,QAAQ,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;AAC9B,OAAO;AACP,KAAK,CAAC;AACN;AACA,IAAI,OAAO,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;AACjD,GAAG;AACH;;AC5CA,MAAM,aAAa,GAAG,CAAC,EAAE,EAAE,KAAK,KAAK;AACrC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;;ACCD,MAAM,SAAS,SAAS,QAAQ,CAAC;AACjC,EAAE,WAAW,iBAAiB,CAAC,GAAG;AAClC,IAAI,OAAO,WAAW,CAAC;AACvB,GAAG;AACH;AACA,EAAE,IAAI,CAAC,GAAG;AACV,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;AACnB,MAAM,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAChD,KAAK;AACL;AACA,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACxB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;AACrB,KAAK;AACL,GAAG;AACH;AACA,EAAE,IAAI,KAAK,CAAC,GAAG;AACf,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC;AACvB,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE;AACtC,MAAM,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AACxC,MAAM,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AACxC,KAAK,CAAC,CAAC;AACP,GAAG;AACH;AACA,EAAE,KAAK,CAAC,GAAG;AACX,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE;AAClB,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAC/C,MAAM,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AACrD,MAAM,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACjD;AACA,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;AACxB,SAAS,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;AAClC,SAAS,IAAI,CAAC,QAAQ,IAAI;AAC1B,UAAU,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;AACzC,UAAU,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AACvE,UAAU,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACjD;AACA,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE;AACxB,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC;AAC3B,WAAW;AACX,SAAS,CAAC,CAAC;AACX,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,CAAC,GAAG;AACb,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACnB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;AACnB,MAAM,OAAO;AACb,KAAK;AACL;AACA,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE;AACzD,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9C,KAAK;AACL;AACA,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE;AAC/D,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AACpD,KAAK;AACL;AACA,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE;AAC1C,MAAM,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;AAC1C,KAAK;AACL;AACA,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;AACvD,IAAI,MAAM,aAAa,GAAG;AAC1B,MAAM,aAAa,EAAE,IAAI;AACzB,MAAM,SAAS,EAAE,KAAK;AACtB,KAAK,CAAC;AACN,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;AAC3C,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,GAAG;AACH;AACA,EAAE,OAAO,CAAC,GAAG;AACb,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE;AAC9B,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;AAC1D,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACjD,KAAK;AACL,GAAG;AACH;;AC7EO,MAAM,iBAAiB,GAAG;AACjC,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC;;ACmBD,GAAG,CAAC,IAAI,GAAG;AACX,EAAE,QAAQ,EAAE,QAAQ;AACpB,EAAE,WAAW,EAAE,WAAW;AAC1B,EAAE,QAAQ,EAAE,QAAQ;AACpB,EAAE,UAAU,EAAE,UAAU;AACxB,EAAE,gBAAgB,EAAE,gBAAgB;AACpC,EAAE,gBAAgB,EAAE,gBAAgB;AACpC,EAAE,cAAc,EAAE,cAAc;AAChC,EAAE,eAAe,EAAE,eAAe;AAClC,EAAE,kBAAkB,EAAE,kBAAkB;AACxC,EAAE,QAAQ,EAAE,QAAQ;AACpB,EAAE,cAAc,EAAE,cAAc;AAChC,EAAE,cAAc,EAAE,cAAc;AAChC,EAAE,gBAAgB,EAAE,gBAAgB;AACpC,EAAE,YAAY,EAAE,YAAY;AAC5B,EAAE,SAAS,EAAE,SAAS;AACtB,EAAE,iBAAiB,EAAE,iBAAiB;AACtC,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,eAAe,EAAE,eAAe;AAClC,EAAE,SAAS,EAAE,SAAS;AACtB,EAAE,iBAAiB,EAAE,iBAAiB;AACtC,CAAC;;AC1CD,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9E,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC"}
1
+ {"version":3,"file":"core.module.js","sources":["../../src/core/script/api/state.js","../../.config/config.js","../../src/core/script/api/inspect/inspector.js","../../src/core/script/api/options/starters.js","../../src/core/script/api/options/options.js","../../src/core/script/api/utilities/collection.js","../../src/core/script/api/modules/module.js","../../src/core/script/api/utilities/namespace.js","../../src/core/script/api/utilities/dom/query-selector.js","../../src/core/script/api/modules/register/registration.js","../../src/core/script/api/modules/register/register.js","../../src/core/script/api/modules/stage/element.js","../../src/core/script/api/modules/stage/root.js","../../src/core/script/api/modules/stage/stage.js","../../src/core/script/api/modules/render/renderer.js","../../src/core/script/api/modules/resize/resizer.js","../../src/core/script/api/modules/scroll/scroll-locker.js","../../src/core/script/api/modules/load/load.js","../../src/core/script/api/modules/font-swap/font-swap.js","../../src/core/script/api/modules/mouse-move/mouse-move.js","../../src/core/script/api/engine.js","../../src/core/script/api/utilities/dom/classes.js","../../src/core/script/api/utilities/dom/index.js","../../src/core/script/api/utilities/support/browser-support.js","../../src/core/script/api/utilities/support/index.js","../../src/core/script/api/utilities/motion/transition-selector.js","../../src/core/script/api/utilities/motion/index.js","../../src/core/script/api/utilities/property/complete-assign.js","../../src/core/script/api/utilities/property/index.js","../../src/core/script/api/internals.js","../../src/core/script/api/api.js","../../src/core/script/api/utilities/emitter.js","../../src/core/script/api/modules/register/breakpoints.js","../../src/core/script/api/modules/register/instance.js","../../src/core/script/api/modules/register/key-codes.js","../../src/core/script/disclosure/disclosure-event.js","../../src/core/script/disclosure/disclosure-emission.js","../../src/core/script/disclosure/disclosure.js","../../src/core/script/disclosure/disclosure-button.js","../../src/core/script/disclosure/disclosures-group.js","../../src/core/script/disclosure/disclosure-type.js","../../src/core/script/collapse/collapse-button.js","../../src/core/script/collapse/collapse-selector.js","../../src/core/script/collapse/collapse.js","../../src/core/script/collapse/collapses-group.js","../../src/core/script/equisized/equisized-emission.js","../../src/core/script/equisized/equisized.js","../../src/core/script/equisized/equisizeds-group.js","../../src/core/script/action/toggle/toggle-event.js","../../src/core/script/action/toggle/toggle.js","../../src/core/script/api/utilities/attribute.js","../../src/core/script/inject/inject-svg.js","../../src/core/script/inject/inject-svg-selector.js","../../src/core/index.js","../../src/core/main.js"],"sourcesContent":["class State {\n constructor () {\n this.modules = {};\n }\n\n create (ModuleClass) {\n const module = new ModuleClass();\n this.modules[module.type] = module;\n }\n\n getModule (type) {\n return this.modules[type];\n }\n\n add (type, item) {\n this.modules[type].add(item);\n }\n\n remove (type, item) {\n this.modules[type].remove(item);\n }\n\n get isActive () {\n return this._isActive;\n }\n\n set isActive (value) {\n if (value === this._isActive) return;\n this._isActive = value;\n const values = Object.keys(this.modules).map((e) => {\n return this.modules[e];\n });\n if (value) {\n for (const module of values) {\n module.activate();\n }\n } else {\n for (const module of values) {\n module.deactivate();\n }\n }\n }\n\n get isLegacy () {\n return this._isLegacy;\n }\n\n set isLegacy (value) {\n if (value === this._isLegacy) return;\n this._isLegacy = value;\n }\n}\n\nconst state = new State();\n\nexport default state;\n","const config = {\r\n prefix: 'fr',\r\n namespace: 'dsfr',\r\n organisation: '@gouvfr',\r\n version: '1.5.1'\r\n};\r\n\r\nexport default config;\r\n","import state from '../state.js';\nimport config from '../../../config.js';\n\nclass LogLevel {\n constructor (level, light, dark, logger) {\n this.level = level;\n this.light = light;\n this.dark = dark;\n\n switch (logger) {\n case 'warn':\n this.logger = console.warn;\n break;\n\n case 'error':\n this.logger = console.error;\n break;\n\n default:\n this.logger = console.log;\n }\n }\n\n log (...values) {\n const message = new Message(config.namespace);\n for (const value of values) message.add(value);\n this.print(message);\n }\n\n print (message) {\n message.setColor(this.color);\n this.logger.apply(console, message.getMessage());\n }\n\n get color () {\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? this.dark : this.light;\n }\n}\n\nclass Message {\n constructor (domain) {\n this.inputs = ['%c'];\n this.styles = ['font-family:Marianne', 'line-height: 1.5'];\n this.objects = [];\n\n if (domain) this.add(`${domain} :`);\n }\n\n add (value) {\n switch (typeof value) {\n case 'object':\n case 'function':\n this.inputs.push('%o ');\n this.objects.push(value);\n break;\n\n default:\n this.inputs.push(`${value} `);\n }\n }\n\n setColor (color) {\n this.styles.push(`color:${color}`);\n }\n\n getMessage () {\n return [this.inputs.join(''), this.styles.join(';'), ...this.objects];\n }\n}\n\nconst LEVELS = {\n trace: new LogLevel(0, '#616161', '#989898'),\n debug: new LogLevel(1, '#000091', '#8B8BFF'),\n info: new LogLevel(2, '#007c3b', '#00ed70'),\n warn: new LogLevel(3, '#ba4500', '#fa5c00', 'warn'),\n error: new LogLevel(4, '#D80600', '#FF4641', 'error')\n};\n\nclass Inspector {\n constructor () {\n this.level = 2;\n\n for (const id in LEVELS) {\n const level = LEVELS[id];\n this[id] = (...msgs) => {\n if (this.level <= level.level) level.log.apply(level, msgs);\n };\n this[id].print = level.print.bind(level);\n }\n }\n\n state () {\n const message = new Message();\n message.add(state);\n this.trace.print(message);\n }\n\n tree () {\n const stage = state.getModule('stage');\n if (!stage) return;\n const message = new Message();\n this._branch(stage.root, 0, message);\n this.trace.print(message);\n }\n\n _branch (element, space, message) {\n let branch = '';\n if (space > 0) {\n let indent = '';\n for (let i = 0; i < space; i++) indent += ' ';\n // branch += indent + '|\\n';\n branch += indent + '└─ ';\n }\n branch += `[${element.id}] ${element.html}`;\n message.add(branch);\n message.add({ '@': element });\n message.add('\\n');\n for (const child of element.children) branch += this._branch(child, space + 1, message);\n }\n}\n\nconst inspector = new Inspector();\n\nexport default inspector;\n","export const startAtDomContentLoaded = (callback) => {\n if (document.readyState !== 'loading') window.requestAnimationFrame(callback);\n else document.addEventListener('DOMContentLoaded', callback);\n};\n\nexport const startAuto = (callback) => {\n // detect\n startAtDomContentLoaded(callback);\n};\n","import inspector from '../inspect/inspector.js';\nimport { startAtDomContentLoaded, startAuto } from './starters.js';\n\nexport const Modes = {\n AUTO: 'auto',\n MANUAL: 'manual',\n RUNTIME: 'runtime',\n LOADED: 'loaded',\n VUE: 'vue',\n ANGULAR: 'angular',\n REACT: 'react'\n};\n\nclass Options {\n constructor () {\n this._mode = Modes.AUTO;\n this.isStarted = false;\n this.starting = this.start.bind(this);\n this.preventManipulation = false;\n }\n\n configure (settings = {}, start) {\n this.startCallback = start;\n if (settings.verbose === true) inspector.level = 0;\n this.mode = settings.mode || Modes.AUTO;\n }\n\n set mode (value) {\n switch (value) {\n case Modes.AUTO:\n this.preventManipulation = false;\n startAuto(this.starting);\n break;\n\n case Modes.LOADED:\n this.preventManipulation = false;\n startAtDomContentLoaded(this.starting);\n break;\n\n case Modes.RUNTIME:\n this.preventManipulation = false;\n this.start();\n break;\n\n case Modes.MANUAL:\n this.preventManipulation = false;\n break;\n\n case Modes.VUE:\n this.preventManipulation = true;\n break;\n\n case Modes.ANGULAR:\n this.preventManipulation = true;\n break;\n\n case Modes.REACT:\n this.preventManipulation = true;\n break;\n\n default:\n inspector.error('Illegal mode');\n return;\n }\n\n this._mode = value;\n inspector.info(`mode set to ${value}`);\n }\n\n get mode () {\n return this._mode;\n }\n\n start () {\n inspector.info('start');\n this.startCallback();\n }\n}\n\nconst options = new Options();\nexport default options;\n","class Collection {\n constructor () {\n this._collection = [];\n }\n\n forEach (callback) {\n this._collection.forEach(callback);\n }\n\n map (callback) {\n return this._collection.map(callback);\n }\n\n get length () {\n return this._collection.length;\n }\n\n add (collectable) {\n if (this._collection.indexOf(collectable) > -1) return false;\n this._collection.push(collectable);\n if (this.onAdd) this.onAdd();\n if (this.onPopulate && this._collection.length === 1) this.onPopulate();\n return true;\n }\n\n remove (collectable) {\n const index = this._collection.indexOf(collectable);\n if (index === -1) return false;\n this._collection.splice(index, 1);\n if (this.onRemove) this.onRemove();\n if (this.onEmpty && this._collection.length === 0) this.onEmpty();\n }\n\n execute (...args) {\n for (const collectable of this._collection) if (collectable) collectable.apply(null, args);\n }\n\n clear () {\n this._collection.length = 0;\n }\n\n clone () {\n const clone = new Collection();\n clone._collection = this._collection.slice();\n return clone;\n }\n\n get collection () {\n return this._collection;\n }\n}\n\nexport { Collection };\n","import { Collection } from '../utilities/collection.js';\n\nclass Module extends Collection {\n constructor (type) {\n super();\n this.type = type;\n this.isActive = false;\n }\n\n activate () {}\n deactivate () {}\n}\n\nexport { Module };\n","import config from '../../../config.js';\n\nconst ns = name => `${config.prefix}-${name}`;\n\nns.selector = (name, notation) => {\n if (notation === undefined) notation = '.';\n return `${notation}${ns(name)}`;\n};\n\nns.attr = (name) => `data-${ns(name)}`;\n\nns.attr.selector = (name, value) => {\n let result = ns.attr(name);\n if (value !== undefined) result += `=\"${value}\"`;\n return `[${result}]`;\n};\n\nns.event = (type) => `${config.namespace}.${type}`;\n\nns.emission = (domain, type) => `emission:${domain}.${type}`;\n\nexport default ns;\n","export const querySelectorAllArray = (element, selectors) => Array.prototype.slice.call(element.querySelectorAll(selectors));\n\nexport const queryParentSelector = (element, selectors) => {\n const parent = element.parentElement;\n if (parent.matches(selectors)) return parent;\n if (parent === document.documentElement) return null;\n return queryParentSelector(parent, selectors);\n};\n","import { Collection } from '../../utilities/collection.js';\nimport state from '../../state.js';\nimport ns from '../../utilities/namespace.js';\nimport { querySelectorAllArray } from '../../utilities/dom/query-selector';\n\nclass Registration {\n constructor (selector, InstanceClass, creator) {\n this.selector = selector;\n this.InstanceClass = InstanceClass;\n this.creator = creator;\n this.instances = new Collection();\n this.isIntroduced = false;\n this._instanceClassName = this.InstanceClass.instanceClassName;\n this._instanceClassNames = this.getInstanceClassNames(this.InstanceClass);\n this._property = this._instanceClassName.substring(0, 1).toLowerCase() + this._instanceClassName.substring(1);\n const dashed = this._instanceClassName\n .replace(/[^a-zA-Z0-9]+/g, '-')\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1-$2')\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/([0-9])([^0-9])/g, '$1-$2')\n .replace(/([^0-9])([0-9])/g, '$1-$2')\n .toLowerCase();\n this._attribute = ns.attr(`js-${dashed}`);\n }\n\n getInstanceClassNames (InstanceClass) {\n const prototype = Object.getPrototypeOf(InstanceClass);\n if (!prototype || prototype.instanceClassName === 'Instance') return [InstanceClass.instanceClassName];\n return [...this.getInstanceClassNames(prototype), InstanceClass.instanceClassName];\n }\n\n hasInstanceClassName (instanceClassName) {\n return this._instanceClassNames.indexOf(instanceClassName) > -1;\n }\n\n introduce () {\n if (this.isIntroduced) return;\n this.isIntroduced = true;\n state.getModule('stage').parse(document.documentElement, this);\n }\n\n parse (node, nonRecursive) {\n const nodes = [];\n if (node.matches && node.matches(this.selector)) nodes.push(node);\n // eslint-disable-next-line no-useless-call\n if (!nonRecursive && node.querySelectorAll && node.querySelector(this.selector)) nodes.push.apply(nodes, querySelectorAllArray(node, this.selector));\n return nodes;\n }\n\n create (element) {\n if (!element.node.matches(this.selector)) return;\n const instance = new this.InstanceClass();\n this.instances.add(instance);\n return instance;\n }\n\n remove (instance) {\n this.instances.remove(instance);\n }\n\n dispose () {\n const instances = this.instances.collection;\n for (let i = instances.length - 1; i > -1; i--) instances[i]._dispose();\n this.creator = null;\n }\n\n get instanceClassName () {\n return this._instanceClassName;\n }\n\n get instanceClassNames () {\n return this._instanceClassNames;\n }\n\n get property () {\n return this._property;\n }\n\n get attribute () {\n return this._attribute;\n }\n}\n\nexport { Registration };\n","import { Module } from '../module.js';\nimport { Registration } from './registration.js';\nimport state from '../../state.js';\n\nclass Register extends Module {\n constructor () {\n super('register');\n }\n\n register (selector, InstanceClass, creator) {\n const registration = new Registration(selector, InstanceClass, creator);\n this.add(registration);\n if (state.isActive) registration.introduce();\n return registration;\n }\n\n activate () {\n for (const registration of this.collection) registration.introduce();\n }\n\n remove (registration) {\n registration.dispose();\n super.remove(registration);\n }\n}\n\nexport { Register };\n","import state from '../../state.js';\nimport inspector from '../../inspect/inspector.js';\n\nlet count = 0;\n\nclass Element {\n constructor (node, id) {\n if (!id) {\n count++;\n this.id = count;\n } else this.id = id;\n this.node = node;\n this.attributeNames = [];\n this.instances = [];\n this._children = [];\n this._parent = null;\n this._projects = [];\n }\n\n get proxy () {\n const scope = this;\n if (!this._proxy) {\n this._proxy = {\n id: this.id,\n get parent () {\n return scope.parent ? scope.parent.proxy : null;\n },\n get children () {\n return scope.children.map((child) => child.proxy);\n }\n };\n\n for (const instance of this.instances) this._proxy[instance.registration.property] = instance.proxy;\n }\n return this._proxy;\n }\n\n get html () {\n const end = this.node.outerHTML.indexOf('>');\n return this.node.outerHTML.substring(0, end + 1);\n }\n\n project (registration) {\n if (this._projects.indexOf(registration) === -1) this._projects.push(registration);\n }\n\n populate () {\n const projects = this._projects.slice();\n this._projects.length = 0;\n for (const registration of projects) this.create(registration);\n }\n\n create (registration) {\n if (this.hasInstance(registration.instanceClassName)) {\n // inspector.debug(`failed creation, instance of ${registration.instanceClassName} already exists on element [${this.id}]`);\n return;\n }\n inspector.debug(`create instance of ${registration.instanceClassName} on element [${this.id}]`);\n const instance = registration.create(this);\n this.instances.push(instance);\n instance._config(this, registration);\n if (this._proxy) this._proxy[registration.property] = instance.proxy;\n }\n\n remove (instance) {\n const index = this.instances.indexOf(instance);\n if (index > -1) this.instances.splice(index, 1);\n if (this._proxy) delete this._proxy[instance.registration.property];\n }\n\n get parent () {\n return this._parent;\n }\n\n get ascendants () {\n return [this.parent, ...this.parent.ascendants];\n }\n\n get children () {\n return this._children;\n }\n\n get descendants () {\n const descendants = [...this._children];\n this._children.forEach(child => descendants.push(...child.descendants));\n return descendants;\n }\n\n // TODO : emit ascendant et descendant de changement ?\n\n addChild (child, index) {\n if (this._children.indexOf(child) > -1) return null;\n child._parent = this;\n if (!isNaN(index) && index > -1 && index < this._children.length) this._children.splice(index, 0, child);\n else this._children.push(child);\n return child;\n }\n\n removeChild (child) {\n const index = this._children.indexOf(child);\n if (index === -1) return null;\n child._parent = null;\n this._children.splice(index, 1);\n }\n\n emit (type, data) {\n const elements = state.getModule('stage').collection;\n const response = [];\n for (const element of elements) response.push(...element._emit(type, data));\n return response;\n }\n\n _emit (type, data) {\n const response = [];\n for (const instance of this.instances) response.push(...instance._emitter.emit(type, data));\n return response;\n }\n\n ascend (type, data) {\n if (this._parent) return this._parent._ascend(type, data);\n return [];\n }\n\n _ascend (type, data) {\n const response = [];\n for (const instance of this.instances) response.push(...instance._ascent.emit(type, data));\n if (this._parent) response.push(...this._parent._ascend(type, data));\n return response;\n }\n\n descend (type, data) {\n const response = [];\n for (const child of this._children) response.push(...child._descend(type, data));\n return response;\n }\n\n _descend (type, data) {\n const response = [];\n for (const instance of this.instances) response.push(...instance._descent.emit(type, data));\n for (const child of this._children) response.push(...child._descend(type, data));\n return response;\n }\n\n getInstance (instanceClassName) {\n for (const instance of this.instances) if (instance.registration.hasInstanceClassName(instanceClassName)) return instance;\n return null;\n }\n\n hasInstance (instanceClassName) {\n return this.getInstance(instanceClassName) !== null;\n }\n\n getDescendantInstances (instanceClassName, stopAtInstanceClassName, stopAtFirstInstance) {\n if (!instanceClassName) return [];\n const instances = [];\n for (const child of this._children) {\n const instance = child.getInstance(instanceClassName);\n if (instance) {\n instances.push(instance);\n if (stopAtFirstInstance) continue;\n }\n if ((!stopAtInstanceClassName || !child.hasInstance(stopAtInstanceClassName)) && child.children.length) instances.push.apply(instances, child.getDescendantInstances(instanceClassName, stopAtInstanceClassName, stopAtFirstInstance));\n }\n return instances;\n }\n\n getAscendantInstance (instanceClassName, stopAtInstanceClassName) {\n if (!instanceClassName || !this._parent) return null;\n const instance = this._parent.getInstance(instanceClassName);\n if (instance) return instance;\n if (stopAtInstanceClassName && this._parent.hasInstance(stopAtInstanceClassName)) return null;\n return this._parent.getAscendantInstance(instanceClassName, stopAtInstanceClassName);\n }\n\n dispose () {\n for (const instance of this.instances) instance._dispose();\n this.instances.length = 0;\n state.remove('stage', this);\n this.parent.removeChild(this);\n this._children.length = 0;\n inspector.debug(`remove element [${this.id}] ${this.html}`);\n }\n\n prepare (attributeName) {\n if (this.attributeNames.indexOf(attributeName) === -1) this.attributeNames.push(attributeName);\n }\n\n examine () {\n const attributeNames = this.attributeNames.slice();\n this.attributeNames.length = 0;\n for (let i = this.instances.length - 1; i > -1; i--) this.instances[i].examine(attributeNames);\n }\n}\n\nexport { Element };\n","import { Element } from './element.js';\nimport ns from '../../utilities/namespace.js';\n\nclass Root extends Element {\n constructor () {\n super(document.documentElement, 'root');\n this.node.setAttribute(ns.attr('js'), true);\n }\n}\n\nconst RootSelector = {\n ROOT: ':root'\n};\n\nexport { Root, RootSelector };\n","import state from '../../state.js';\nimport { Element } from './element.js';\nimport { Module } from '../module.js';\nimport { Root } from './root.js';\nimport inspector from '../../inspect/inspector.js';\n\nclass Stage extends Module {\n constructor () {\n super('stage');\n this.root = new Root();\n super.add(this.root);\n this.observer = new MutationObserver(this.mutate.bind(this));\n this.modifications = [];\n this.willModify = false;\n this.modifying = this.modify.bind(this);\n }\n\n hasElement (node) {\n for (const element of this.collection) if (element.node === node) return true;\n return false;\n }\n\n getElement (node) {\n for (const element of this.collection) if (element.node === node) return element;\n const element = new Element(node);\n this.add(element);\n inspector.debug(`add element [${element.id}] ${element.html}`);\n return element;\n }\n\n getProxy (node) {\n if (!this.hasElement(node)) return null;\n const element = this.getElement(node);\n return element.proxy;\n }\n\n add (element) {\n super.add(element);\n this.put(element, this.root);\n }\n\n put (element, branch) {\n let index = 0;\n for (let i = branch.children.length - 1; i > -1; i--) {\n const child = branch.children[i];\n const position = element.node.compareDocumentPosition(child.node);\n if (position & Node.DOCUMENT_POSITION_CONTAINS) {\n this.put(element, child);\n return;\n } else if (position & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n branch.removeChild(child);\n element.addChild(child, 0);\n } else if (position & Node.DOCUMENT_POSITION_PRECEDING) {\n index = i + 1;\n break;\n }\n }\n\n branch.addChild(element, index);\n }\n\n activate () {\n this.observer.observe(document.documentElement, { childList: true, subtree: true, attributes: true });\n }\n\n deactivate () {\n this.observer.disconnect();\n }\n\n mutate (mutations) {\n const examinations = [];\n mutations.forEach((mutation) => {\n switch (mutation.type) {\n case 'childList':\n mutation.removedNodes.forEach((node) => this.dispose(node));\n mutation.addedNodes.forEach((node) => this.parse(node));\n break;\n\n case 'attributes':\n if (this.hasElement(mutation.target)) {\n const element = this.getElement(mutation.target);\n element.prepare(mutation.attributeName);\n if (examinations.indexOf(element) === -1) examinations.push(element);\n for (const descendant of element.descendants) if (examinations.indexOf(descendant) === -1) examinations.push(descendant);\n }\n if (this.modifications.indexOf(mutation.target) === -1) this.modifications.push(mutation.target);\n break;\n }\n });\n\n examinations.forEach(element => element.examine());\n if (this.modifications.length && !this.willModify) {\n this.willModify = true;\n window.requestAnimationFrame(this.modifying);\n }\n }\n\n modify () {\n this.willModify = false;\n const targets = this.modifications.slice();\n this.modifications.length = 0;\n for (const target of targets) if (document.documentElement.contains(target)) this.parse(target);\n }\n\n dispose (node) {\n const disposables = [];\n this.forEach((element) => {\n if (node.contains(element.node)) disposables.push(element);\n });\n\n for (const disposable of disposables) {\n disposable.dispose();\n this.remove(disposable);\n }\n }\n\n parse (node, registration, nonRecursive) {\n const registrations = registration ? [registration] : state.getModule('register').collection;\n const creations = [];\n\n for (const registration of registrations) {\n const nodes = registration.parse(node, nonRecursive);\n\n for (const n of nodes) {\n const element = this.getElement(n);\n element.project(registration);\n if (creations.indexOf(element) === -1) creations.push(element);\n }\n }\n\n for (const element of creations) element.populate();\n }\n}\n\nexport { Stage };\n","import state from '../../state.js';\nimport { Module } from '../module.js';\nimport { Collection } from '../../utilities/collection.js';\n\nclass Renderer extends Module {\n constructor () {\n super('render');\n this.rendering = this.render.bind(this);\n this.nexts = new Collection();\n }\n\n activate () {\n window.requestAnimationFrame(this.rendering);\n }\n\n request (instance) {\n this.nexts.add(instance);\n }\n\n render () {\n if (!state.isActive) return;\n window.requestAnimationFrame(this.rendering);\n this.forEach((instance) => instance.render());\n if (!this.nexts.length) return;\n const nexts = this.nexts.clone();\n this.nexts.clear();\n nexts.forEach((instance) => instance.next());\n }\n}\n\nexport { Renderer };\n","import { Module } from '../module.js';\n\nclass Resizer extends Module {\n constructor () {\n super('resize');\n this.requireResize = false;\n this.resizing = this.resize.bind(this);\n const requesting = this.request.bind(this);\n if (document.fonts) {\n document.fonts.ready.then(requesting);\n }\n window.addEventListener('resize', requesting);\n window.addEventListener('orientationchange', requesting);\n }\n\n activate () {\n this.request();\n }\n\n request () {\n if (this.requireResize) return;\n this.requireResize = true;\n window.requestAnimationFrame(this.resizing);\n }\n\n resize () {\n if (!this.requireResize) return;\n this.forEach((instance) => instance.resize());\n this.requireResize = false;\n }\n}\n\nexport { Resizer };\n","import ns from '../../utilities/namespace.js';\nimport { Module } from '../module.js';\n\nclass ScrollLocker extends Module {\n constructor () {\n super('lock');\n this._isLocked = false;\n this._scrollY = 0;\n this.onPopulate = this.lock.bind(this);\n this.onEmpty = this.unlock.bind(this);\n }\n\n get isLocked () {\n return this._isLocked;\n }\n\n lock () {\n if (!this._isLocked) {\n this._isLocked = true;\n this._scrollY = window.scrollY;\n if (this.isLegacy) document.body.style.top = this._scrollY * -1 + 'px';\n else document.body.style.setProperty('--scroll-top', this._scrollY * -1 + 'px');\n document.documentElement.setAttribute(ns.attr('scrolling'), 'false');\n }\n }\n\n unlock () {\n if (this._isLocked) {\n this._isLocked = false;\n document.documentElement.removeAttribute(ns.attr('scrolling'));\n if (this.isLegacy) document.body.style.top = '';\n else document.body.style.removeProperty('--scroll-top');\n window.scroll(0, this._scrollY);\n }\n }\n}\n\nexport { ScrollLocker };\n","import { Module } from '../module.js';\n\nclass Load extends Module {\n constructor () {\n super('load');\n this.loading = this.load.bind(this);\n }\n\n activate () {\n window.addEventListener('load', this.loading);\n }\n\n load () {\n this.forEach((instance) => instance.load());\n }\n}\n\nexport { Load };\n","import { Module } from '../module.js';\n\nconst FONT_FAMILIES = ['Marianne', 'Spectral'];\n\nclass FontSwap extends Module {\n constructor () {\n super('font-swap');\n this.swapping = this.swap.bind(this);\n }\n\n activate () {\n if (document.fonts) {\n document.fonts.addEventListener('loadingdone', this.swapping);\n }\n }\n\n swap () {\n const families = FONT_FAMILIES.filter(family => document.fonts.check(`16px ${family}`));\n\n this.forEach((instance) => instance.swapFont(families));\n }\n}\n\nexport { FontSwap };\n","import { Module } from '../module.js';\n\nclass MouseMove extends Module {\n constructor () {\n super('mouse-move');\n this.requireMove = false;\n this._isMoving = false;\n this.moving = this.move.bind(this);\n this.requesting = this.request.bind(this);\n this.onPopulate = this.listen.bind(this);\n this.onEmpty = this.unlisten.bind(this);\n }\n\n listen () {\n if (this._isMoving) return;\n this._isMoving = true;\n this.requireMove = false;\n document.documentElement.addEventListener('mousemove', this.requesting);\n }\n\n unlisten () {\n if (!this._isMoving) return;\n this._isMoving = false;\n this.requireMove = false;\n document.documentElement.removeEventListener('mousemove', this.requesting);\n }\n\n request (e) {\n if (!this._isMoving) return;\n this.point = { x: e.clientX, y: e.clientY };\n if (this.requireMove) return;\n this.requireMove = true;\n window.requestAnimationFrame(this.moving);\n }\n\n move () {\n if (!this.requireMove) return;\n this.forEach((instance) => instance.mouseMove(this.point));\n this.requireMove = false;\n }\n}\n\nexport { MouseMove };\n","import { Register } from './modules/register/register.js';\nimport { Stage } from './modules/stage/stage.js';\nimport { Renderer } from './modules/render/renderer.js';\nimport { Resizer } from './modules/resize/resizer.js';\nimport { ScrollLocker } from './modules/scroll/scroll-locker.js';\nimport { Load } from './modules/load/load.js';\nimport { FontSwap } from './modules/font-swap/font-swap';\nimport { MouseMove } from './modules/mouse-move/mouse-move';\nimport inspector from './inspect/inspector.js';\nimport state from './state.js';\n\nclass Engine {\n constructor () {\n state.create(Register);\n state.create(Stage);\n state.create(Renderer);\n state.create(Resizer);\n state.create(ScrollLocker);\n state.create(Load);\n state.create(FontSwap);\n state.create(MouseMove);\n\n const registerModule = state.getModule('register');\n this.register = registerModule.register.bind(registerModule);\n }\n\n get isActive () {\n return state.isActive;\n }\n\n start () {\n inspector.debug('START');\n state.isActive = true;\n }\n\n stop () {\n inspector.debug('STOP');\n state.isActive = false;\n }\n}\n\nconst engine = new Engine();\nexport default engine;\n","const sanitize = (className) => className.charAt(0) === '.' ? className.substr(1) : className;\n\nconst getClassNames = (element) => element.className ? element.className.split(' ') : [];\n\nconst modifyClass = (element, className, remove) => {\n className = sanitize(className);\n const classNames = getClassNames(element);\n const index = classNames.indexOf(className);\n if (remove === true) {\n if (index > -1) classNames.splice(index, 1);\n } else if (index === -1) classNames.push(className);\n element.className = classNames.join(' ');\n};\n\nconst addClass = (element, className) => modifyClass(element, className);\n\nexport { addClass };\n\nconst removeClass = (element, className) => modifyClass(element, className, true);\n\nexport { removeClass };\n\nconst hasClass = (element, className) => getClassNames(element).indexOf(sanitize(className)) > -1;\n\nexport { hasClass };\n","import { addClass, hasClass, removeClass } from './classes.js';\nimport { queryParentSelector, querySelectorAllArray } from './query-selector.js';\n\nconst dom = {};\n\ndom.addClass = addClass;\ndom.hasClass = hasClass;\ndom.removeClass = removeClass;\ndom.queryParentSelector = queryParentSelector;\ndom.querySelectorAllArray = querySelectorAllArray;\n\nexport default dom;\n","const supportLocalStorage = () => {\n try {\n return 'localStorage' in window && window.localStorage !== null;\n } catch (e) {\n return false;\n }\n};\n\nexport { supportLocalStorage };\n","import { supportLocalStorage } from './browser-support.js';\n\nconst support = {};\n\nsupport.supportLocalStorage = supportLocalStorage;\n\nexport default support;\n","import ns from '../namespace.js';\n\nexport const TransitionSelector = {\n NONE: ns.selector('transition-none')\n};\n","import { TransitionSelector } from './transition-selector';\n\nconst selector = {};\n\nselector.TransitionSelector = TransitionSelector;\n\nexport default selector;\n","/**\n * Copy properties from multiple sources including accessors.\n * source : https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#copier_des_accesseurs\n *\n * @param {object} [target] - Target object to copy into\n * @param {...objects} [sources] - Multiple objects\n * @return {object} A new object\n *\n * @example\n *\n * const obj1 = {\n * key: 'value'\n * };\n * const obj2 = {\n * get function01 () {\n * return a-value;\n * }\n * set function01 () {\n * return a-value;\n * }\n * };\n * completeAssign(obj1, obj2)\n */\nconst completeAssign = (target, ...sources) => {\n sources.forEach(source => {\n const descriptors = Object.keys(source).reduce((descriptors, key) => {\n descriptors[key] = Object.getOwnPropertyDescriptor(source, key);\n return descriptors;\n }, {});\n\n Object.getOwnPropertySymbols(source).forEach(sym => {\n const descriptor = Object.getOwnPropertyDescriptor(source, sym);\n if (descriptor.enumerable) {\n descriptors[sym] = descriptor;\n }\n });\n Object.defineProperties(target, descriptors);\n });\n return target;\n};\n\nexport { completeAssign };\n","import { completeAssign } from './complete-assign';\n\nconst property = {};\n\nproperty.completeAssign = completeAssign;\n\nexport default property;\n","import state from './state.js';\nimport engine from './engine.js';\nimport options from './options/options.js';\nimport dom from './utilities/dom/index';\nimport ns from './utilities/namespace.js';\nimport support from './utilities/support/index';\nimport motion from './utilities/motion/index';\nimport property from './utilities/property/index';\n\nconst internals = {};\nconst legacy = {};\n\nObject.defineProperty(legacy, 'isLegacy', {\n get: () => state.isLegacy\n});\n\nlegacy.setLegacy = () => {\n state.isLegacy = true;\n};\n\ninternals.legacy = legacy;\ninternals.dom = dom;\ninternals.support = support;\ninternals.motion = motion;\ninternals.property = property;\ninternals.ns = ns;\ninternals.register = engine.register;\n\nObject.defineProperty(internals, 'preventManipulation', {\n get: () => options.preventManipulation\n});\n\nexport default internals;\n","import state from './state.js';\nimport options, { Modes } from './options/options.js';\nimport config from '../../config.js';\nimport engine from './engine.js';\nimport inspector from './inspect/inspector.js';\nimport internals from './internals.js';\n\ninspector.info(`version ${config.version}`);\n\nconst api = (node) => {\n const stage = state.getModule('stage');\n return stage.getProxy(node);\n};\n\napi.Modes = Modes;\n\nObject.defineProperty(api, 'mode', {\n set: (value) => { options.mode = value; },\n get: () => options.mode\n});\n\napi.internals = internals;\n\napi.start = engine.start;\napi.stop = engine.stop;\n\napi.inspector = inspector;\n\noptions.configure(window[config.namespace], api.start);\n\nwindow[config.namespace] = api;\nexport default api;\n","class Emitter {\n constructor () {\n this.emissions = {};\n }\n\n add (type, closure) {\n if (typeof closure !== 'function') throw new Error('closure must be a function');\n if (!this.emissions[type]) this.emissions[type] = [];\n this.emissions[type].push(closure);\n }\n\n remove (type, closure) {\n if (!this.emissions[type]) return;\n if (!closure) delete this.emissions[type];\n else {\n const index = this.emissions[type].indexOf(closure);\n if (index > -1) this.emissions[type].splice(index);\n }\n }\n\n emit (type, data) {\n if (!this.emissions[type]) return [];\n const response = [];\n for (const closure of this.emissions[type]) if (closure) response.push(closure(data));\n return response;\n }\n\n dispose () {\n this.emissions = null;\n }\n}\n\nexport { Emitter };\n","class Breakpoint {\n constructor (id, minWidth) {\n this.id = id;\n this.minWidth = minWidth;\n }\n\n test () {\n return window.matchMedia(`(min-width: ${this.minWidth}em)`).matches;\n }\n}\n\nexport const Breakpoints = {\n XS: new Breakpoint('xs', 0),\n SM: new Breakpoint('sm', 36),\n MD: new Breakpoint('md', 48),\n LG: new Breakpoint('lg', 62),\n XL: new Breakpoint('xl', 78)\n};\n","import { Emitter } from '../../utilities/emitter.js';\nimport state from '../../state.js';\nimport inspector from '../../inspect/inspector.js';\nimport { Breakpoints } from './breakpoints.js';\nimport { addClass, removeClass, hasClass } from '../../utilities/dom/classes.js';\nimport { queryParentSelector, querySelectorAllArray } from '../../utilities/dom/query-selector.js';\n\nclass Instance {\n constructor (jsAttribute = true) {\n this.jsAttribute = jsAttribute;\n this._isRendering = false;\n this._isResizing = false;\n this._isScrollLocked = false;\n this._isLoading = false;\n this._isSwappingFont = false;\n this._listeners = {};\n this._keyListenerTypes = [];\n this._keys = [];\n this.handlingKey = this.handleKey.bind(this);\n this._emitter = new Emitter();\n this._ascent = new Emitter();\n this._descent = new Emitter();\n this._registrations = [];\n this._nexts = [];\n }\n\n static get instanceClassName () {\n return 'Instance';\n }\n\n _config (element, registration) {\n this.element = element;\n this.registration = registration;\n this.node = element.node;\n this.id = element.node.id;\n if (this.jsAttribute) this.setAttribute(registration.attribute, true);\n this.init();\n }\n\n init () {}\n\n get proxy () {\n const scope = this;\n return {\n render: () => scope.render(),\n resize: () => scope.resize()\n };\n }\n\n register (selector, InstanceClass) {\n const registration = state.getModule('register').register(selector, InstanceClass, this);\n this._registrations.push(registration);\n }\n\n getRegisteredInstances (instanceClassName) {\n for (const registration of this._registrations) if (registration.hasInstanceClassName(instanceClassName)) return registration.instances.collection;\n return [];\n }\n\n dispatch (type, detail, bubbles, cancelable) {\n const event = new CustomEvent(type, { detail: detail, bubble: bubbles === true, cancelable: cancelable === true });\n this.node.dispatchEvent(event);\n }\n\n listen (type, closure, options) {\n if (!this._listeners[type]) this._listeners[type] = [];\n if (this._listeners[type].indexOf(closure) > -1) return;\n this._listeners[type].push(closure);\n this.node.addEventListener(type, closure, options);\n }\n\n unlisten (type, closure) {\n if (!type) {\n for (const type in this._listeners) this.unlisten(type);\n } else if (!closure) {\n if (!this._listeners[type]) return;\n for (const closure of this._listeners[type]) this.node.removeEventListener(type, closure);\n this._listeners[type].length = 0;\n } else {\n if (!this._listeners[type]) return;\n const index = this._listeners[type].indexOf(closure);\n if (index > -1) this._listeners[type].splice(index, 1);\n this.node.removeEventListener(type, closure);\n }\n }\n\n listenKey (code, closure, preventDefault = false, stopPropagation = false, type = 'down') {\n if (this._keyListenerTypes.indexOf(type) === -1) {\n this.listen(`key${type}`, this.handlingKey);\n this._keyListenerTypes.push(type);\n }\n\n this._keys.push(new KeyAction(type, code, closure, preventDefault, stopPropagation));\n }\n\n unlistenKey (code, closure) {\n this._keys = this._keys.filter((key) => key.code !== code || key.closure !== closure);\n\n this._keyListenerTypes.forEach(type => {\n if (!this._keys.some(key => key.type === type)) this.unlisten(`key${type}`, this.handlingKey);\n });\n }\n\n handleKey (e) {\n for (const key of this._keys) key.handle(e);\n }\n\n get isRendering () { return this._isRendering; }\n\n set isRendering (value) {\n if (this._isRendering === value) return;\n if (value) state.add('render', this);\n else state.remove('render', this);\n this._isRendering = value;\n }\n\n render () {}\n\n request (closure) {\n this._nexts.push(closure);\n state.getModule('render').request(this);\n }\n\n next () {\n const nexts = this._nexts.slice();\n this._nexts.length = 0;\n for (const closure of nexts) if (closure) closure();\n }\n\n get isResizing () { return this._isResizing; }\n\n set isResizing (value) {\n if (this._isResizing === value) return;\n if (value) {\n state.add('resize', this);\n this.resize();\n } else state.remove('resize', this);\n this._isResizing = value;\n }\n\n resize () {}\n\n isBreakpoint (breakpoint) {\n switch (true) {\n case typeof breakpoint === 'string':\n return Breakpoints[breakpoint.toUpperCase()].test();\n\n default:\n return breakpoint.test();\n }\n }\n\n get isScrollLocked () {\n return this._isScrollLocked;\n }\n\n set isScrollLocked (value) {\n if (this._isScrollLocked === value) return;\n if (value) state.add('lock', this);\n else state.remove('lock', this);\n this._isScrollLocked = value;\n }\n\n get isLoading () {\n return this._isLoading;\n }\n\n set isLoading (value) {\n if (this._isLoading === value) return;\n if (value) state.add('load', this);\n else state.remove('load', this);\n this._isLoading = value;\n }\n\n load () {}\n\n get isSwappingFont () {\n return this._isSwappingFont;\n }\n\n set isSwappingFont (value) {\n if (this._isSwappingFont === value) return;\n if (value) state.add('font-swap', this);\n else state.remove('font-swap', this);\n this._isSwappingFont = value;\n }\n\n swapFont () {}\n\n get isMouseMoving () { return this._isMouseMoving; }\n\n set isMouseMoving (value) {\n if (this._isMouseMoving === value) return;\n if (value) {\n state.add('mouse-move', this);\n } else {\n state.remove('mouse-move', this);\n }\n this._isMouseMoving = value;\n }\n\n mouseMove (point) {}\n\n examine (attributeNames) {\n if (!this.node.matches(this.registration.selector)) {\n this._dispose();\n return;\n }\n\n this.mutate(attributeNames);\n }\n\n mutate (attributeNames) {}\n\n _dispose () {\n inspector.debug(`dispose instance of ${this.registration.instanceClassName} on element [${this.element.id}]`);\n this.removeAttribute(this.registration.attribute);\n this.unlisten();\n this._keys = null;\n this.isRendering = false;\n this.isResizing = false;\n this._nexts = null;\n state.getModule('render').nexts.remove(this);\n this.isScrollLocked = false;\n this.isLoading = false;\n this.isSwappingFont = false;\n this._emitter.dispose();\n this._emitter = null;\n this._ascent.dispose();\n this._ascent = null;\n this._descent.dispose();\n this._descent = null;\n this.element.remove(this);\n for (const registration of this._registrations) state.remove('register', registration);\n this._registrations = null;\n this.registration.remove(this);\n this.dispose();\n }\n\n dispose () {}\n\n emit (type, data) {\n return this.element.emit(type, data);\n }\n\n addEmission (type, closure) {\n this._emitter.add(type, closure);\n }\n\n removeEmission (type, closure) {\n this._emitter.remove(type, closure);\n }\n\n ascend (type, data) {\n return this.element.ascend(type, data);\n }\n\n addAscent (type, closure) {\n this._ascent.add(type, closure);\n }\n\n removeAscent (type, closure) {\n this._ascent.remove(type, closure);\n }\n\n descend (type, data) {\n return this.element.descend(type, data);\n }\n\n addDescent (type, closure) {\n this._descent.add(type, closure);\n }\n\n removeDescent (type, closure) {\n this._descent.remove(type, closure);\n }\n\n get style () {\n return this.node.style;\n }\n\n addClass (className) {\n addClass(this.node, className);\n }\n\n removeClass (className) {\n removeClass(this.node, className);\n }\n\n hasClass (className) {\n return hasClass(this.node, className);\n }\n\n setAttribute (attributeName, value) {\n this.node.setAttribute(attributeName, value);\n }\n\n getAttribute (attributeName) {\n return this.node.getAttribute(attributeName);\n }\n\n hasAttribute (attributeName) {\n return this.node.hasAttribute(attributeName);\n }\n\n removeAttribute (attributeName) {\n this.node.removeAttribute(attributeName);\n }\n\n setProperty (propertyName, value) {\n this.node.style.setProperty(propertyName, value);\n }\n\n removeProperty (propertyName) {\n this.node.style.removeProperty(propertyName);\n }\n\n focus () {\n this.node.focus();\n }\n\n get hasFocus () {\n return this.node === document.activeElement;\n }\n\n matches (selectors) {\n return this.node.matches(selectors);\n }\n\n querySelector (selectors) {\n return this.node.querySelector(selectors);\n }\n\n querySelectorAll (selectors) {\n return querySelectorAllArray(this.node, selectors);\n }\n\n queryParentSelector (selectors) {\n return queryParentSelector(this.node, selectors);\n }\n\n getRect () {\n return this.node.getBoundingClientRect();\n }\n\n get isLegacy () {\n return state.isLegacy;\n }\n}\n\nclass KeyAction {\n constructor (type, code, closure, preventDefault, stopPropagation) {\n this.type = type;\n this.eventType = `key${type}`;\n this.code = code;\n this.closure = closure;\n this.preventDefault = preventDefault === true;\n this.stopPropagation = stopPropagation === true;\n }\n\n handle (e) {\n if (e.type !== this.eventType) return;\n if (e.keyCode === this.code) {\n this.closure(e);\n if (this.preventDefault) {\n e.preventDefault();\n }\n if (this.stopPropagation) {\n e.stopPropagation();\n }\n }\n }\n}\n\nexport { Instance };\n","export const KeyCodes = {\n TAB: 9,\n ESCAPE: 27,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40\n};\n","import ns from '../api/utilities/namespace.js';\n\nconst DisclosureEvent = {\n DISCLOSE: ns.event('disclose'),\n CONCEAL: ns.event('conceal')\n};\n\nexport { DisclosureEvent };\n","import ns from '../api/utilities/namespace.js';\n\nconst DisclosureEmission = {\n RESET: ns.emission('disclosure', 'reset'),\n ADDED: ns.emission('disclosure', 'added'),\n REMOVED: ns.emission('disclosure', 'removed'),\n GROUP: ns.emission('disclosure', 'group'),\n UNGROUP: ns.emission('disclosure', 'ungroup')\n};\n\nexport { DisclosureEmission };\n","import { Instance } from '../api/modules/register/instance.js';\nimport { DisclosureEvent } from './disclosure-event.js';\nimport { DisclosureEmission } from './disclosure-emission.js';\nimport { completeAssign } from '../api/utilities/property/complete-assign.js';\n\nclass Disclosure extends Instance {\n constructor (type, selector, DisclosureButtonInstanceClass, disclosuresGroupInstanceClassName) {\n super();\n this.type = type;\n this._selector = selector;\n this.DisclosureButtonInstanceClass = DisclosureButtonInstanceClass;\n this.disclosuresGroupInstanceClassName = disclosuresGroupInstanceClassName;\n this.modifier = this._selector + '--' + this.type.id;\n this.pristine = true;\n }\n\n static get instanceClassName () {\n return 'Disclosure';\n }\n\n init () {\n this.addDescent(DisclosureEmission.RESET, this.reset.bind(this));\n this.addDescent(DisclosureEmission.GROUP, this.update.bind(this));\n this.addDescent(DisclosureEmission.UNGROUP, this.update.bind(this));\n this.register(`[aria-controls=\"${this.id}\"]`, this.DisclosureButtonInstanceClass);\n this.ascend(DisclosureEmission.ADDED);\n this.update();\n }\n\n get proxy () {\n const scope = this;\n const proxy = Object.assign(super.proxy, {\n disclose: scope.disclose.bind(scope),\n focus: scope.focus.bind(scope)\n });\n\n if (this.type.canConceal) proxy.conceal = scope.conceal.bind(scope);\n\n const proxyAccessors = {\n get buttons () {\n return scope.buttons.map((button) => button.proxy);\n },\n get group () {\n const group = scope.group;\n return group ? group.proxy : null;\n }\n };\n\n return completeAssign(proxy, proxyAccessors);\n }\n\n get buttons () {\n return this.getRegisteredInstances(this.DisclosureButtonInstanceClass.instanceClassName);\n }\n\n update () {\n this.getGroup();\n }\n\n getGroup () {\n if (!this.disclosuresGroupInstanceClassName) {\n this._group = null;\n return;\n }\n\n const group = this.element.getAscendantInstance(this.disclosuresGroupInstanceClassName, this.constructor.instanceClassName);\n if (!group || !group.validate(this)) {\n this._group = null;\n return;\n }\n\n this._group = group;\n }\n\n get group () {\n return this._group;\n }\n\n disclose (withhold) {\n if (this.disclosed) return false;\n this.pristine = false;\n this.disclosed = true;\n if (!withhold && this.group) this.group.current = this;\n return true;\n }\n\n conceal (withhold, preventFocus) {\n if (!this.disclosed) return false;\n if (!this.type.canConceal && this.group && this.group.current === this) return false;\n this.pristine = false;\n this.disclosed = false;\n if (!withhold && this.group && this.group.current === this) this.group.current = null;\n if (!preventFocus) this.focus();\n this.descend(DisclosureEmission.RESET);\n return true;\n }\n\n get disclosed () {\n return this._disclosed;\n }\n\n set disclosed (value) {\n if (this._disclosed === value) return;\n this.dispatch(value ? DisclosureEvent.DISCLOSE : DisclosureEvent.CONCEAL, this.type);\n this._disclosed = value;\n if (value) this.addClass(this.modifier);\n else this.removeClass(this.modifier);\n for (let i = 0; i < this.buttons.length; i++) this.buttons[i].apply(value);\n }\n\n reset () {}\n\n toggle (isPrimary) {\n if (!this.type.canConceal) this.disclose();\n else {\n switch (true) {\n case !isPrimary:\n case this.disclosed:\n this.conceal();\n break;\n\n default:\n this.disclose();\n }\n }\n }\n\n get buttonHasFocus () {\n if (this.buttons.some((button) => { return button.hasFocus; })) return true;\n return false;\n }\n\n get hasFocus () {\n if (super.hasFocus) return true;\n if (this.buttonHasFocus) return true;\n return this.querySelectorAll(':focus').length > 0;\n }\n\n focus () {\n for (let i = 0; i < this.buttons.length; i++) {\n const button = this.buttons[i];\n if (button.isPrimary) {\n button.focus();\n return;\n }\n }\n }\n\n dispose () {\n this._group = null;\n super.dispose();\n this.ascend(DisclosureEmission.REMOVED);\n }\n}\n\nexport { Disclosure };\n","import { Instance } from '../api/modules/register/instance';\nimport ns from '../api/utilities/namespace.js';\n\nclass DisclosureButton extends Instance {\n constructor (type) {\n super();\n this.type = type;\n this.attributeName = type.ariaState ? 'aria-' + type.id : ns.attr(type.id);\n }\n\n static get instanceClassName () {\n return 'DisclosureButton';\n }\n\n init () {\n this.controlsId = this.getAttribute('aria-controls');\n this.isPrimary = this.hasAttribute(this.attributeName);\n if (this.isPrimary && this.disclosed && this.registration.creator.pristine) this.registration.creator.disclose();\n this.listen('click', this.click.bind(this));\n }\n\n get proxy () {\n const scope = this;\n return Object.assign(super.proxy, {\n focus: scope.focus.bind(scope)\n });\n }\n\n click (e) {\n if (this.registration.creator) this.registration.creator.toggle(this.isPrimary);\n }\n\n mutate (attributeNames) {\n if (this.isPrimary && attributeNames.indexOf(this.attributeName) > -1 && this.registration.creator) {\n if (this.disclosed) this.registration.creator.disclose();\n else if (this.type.canConceal) this.registration.creator.conceal();\n }\n }\n\n apply (value) {\n if (!this.isPrimary) return;\n this.setAttribute(this.attributeName, value);\n }\n\n get disclosed () {\n return this.getAttribute(this.attributeName) === 'true';\n }\n}\n\nexport { DisclosureButton };\n","import { Instance } from '../api/modules/register/instance.js';\nimport { DisclosureEmission } from './disclosure-emission.js';\nimport { completeAssign } from '../api/utilities/property/complete-assign.js';\n\nclass DisclosuresGroup extends Instance {\n constructor (disclosureInstanceClassName, jsAttribute) {\n super(jsAttribute);\n this.disclosureInstanceClassName = disclosureInstanceClassName;\n this._index = -1;\n }\n\n static get instanceClassName () {\n return 'DisclosuresGroup';\n }\n\n init () {\n this.addAscent(DisclosureEmission.ADDED, this.update.bind(this));\n this.addAscent(DisclosureEmission.REMOVED, this.update.bind(this));\n this.descend(DisclosureEmission.GROUP);\n this.update();\n }\n\n get proxy () {\n const scope = this;\n\n const proxyAccessors = {\n set index (value) {\n scope.index = value;\n },\n get index () {\n return scope.index;\n },\n get length () {\n return scope.length;\n },\n get current () {\n const current = scope.current;\n return current ? current.proxy : null;\n },\n get members () {\n return scope.members.map((member) => member.proxy);\n },\n get hasFocus () {\n return scope.hasFocus;\n }\n };\n\n return completeAssign(super.proxy, proxyAccessors);\n }\n\n validate (member) {\n return true;\n }\n\n getMembers () {\n const members = this.element.getDescendantInstances(this.disclosureInstanceClassName, this.constructor.instanceClassName, true);\n this._members = members.filter(this.validate.bind(this));\n }\n\n update () {\n this.getMembers();\n this.getIndex();\n }\n\n get members () {\n return this._members;\n }\n\n get length () {\n return this.members ? this.members.length : 0;\n }\n\n getIndex () {\n this._index = -1;\n for (let i = 0; i < this.length; i++) {\n if (this.index > -1) this.members[i].conceal(true, true);\n else if (this.members[i].disclosed) {\n this.index = i;\n }\n }\n }\n\n get index () {\n return this._index;\n }\n\n set index (value) {\n if (value < -1 || value >= this.length || value === this._index) return;\n this._index = value;\n for (let i = 0; i < this.length; i++) {\n const member = this.members[i];\n if (value === i) {\n member.disclose(true);\n } else {\n member.conceal(true, true);\n }\n }\n this.apply();\n }\n\n get current () {\n return this._index === -1 ? null : this.members[this._index];\n }\n\n set current (member) {\n this.index = this.members.indexOf(member);\n }\n\n get hasFocus () {\n const current = this.current;\n if (current) return current.hasFocus;\n return false;\n }\n\n apply () {}\n\n dispose () {\n super.dispose();\n this.descend(DisclosureEmission.UNGROUP);\n this._members = null;\n }\n}\n\nexport { DisclosuresGroup };\n","export const DisclosureType = {\n EXPAND: {\n id: 'expanded',\n ariaState: true,\n ariaControls: true,\n canConceal: true\n },\n SELECT: {\n id: 'selected',\n ariaState: true,\n ariaControls: true,\n canConceal: false\n },\n OPENED: {\n id: 'opened',\n ariaState: false,\n ariaControls: true,\n canConceal: true\n }\n};\n","import { DisclosureType } from '../disclosure/disclosure-type.js';\nimport { DisclosureButton } from '../disclosure/disclosure-button.js';\n\nclass CollapseButton extends DisclosureButton {\n constructor () {\n super(DisclosureType.EXPAND);\n }\n\n static get instanceClassName () {\n return 'CollapseButton';\n }\n}\n\nexport { CollapseButton };\n","import ns from '../api/utilities/namespace.js';\n\nexport const CollapseSelector = {\n COLLAPSE: ns.selector('collapse')\n};\n","import { Disclosure } from '../disclosure/disclosure.js';\nimport { CollapseSelector } from './collapse-selector.js';\nimport { DisclosureType } from '../disclosure/disclosure-type.js';\nimport { CollapseButton } from './collapse-button.js';\n\n/**\n * Tab coorespond au panel d'un élement Tabs (tab panel)\n * Tab étend disclosure qui ajoute/enleve le modifier --selected,\n * et ajoute/eleve l'attribut hidden, sur le panel\n */\nclass Collapse extends Disclosure {\n constructor () {\n super(DisclosureType.EXPAND, CollapseSelector.COLLAPSE, CollapseButton, 'CollapsesGroup');\n }\n\n static get instanceClassName () {\n return 'Collapse';\n }\n\n init () {\n super.init();\n this.listen('transitionend', this.transitionend.bind(this));\n }\n\n transitionend (e) {\n if (!this.disclosed) {\n if (this.isLegacy) this.style.maxHeight = '';\n else this.style.removeProperty('--collapse-max-height');\n }\n }\n\n unbound () {\n if (this.isLegacy) this.style.maxHeight = 'none';\n else this.style.setProperty('--collapse-max-height', 'none');\n }\n\n disclose (withhold) {\n if (this.disclosed) return;\n this.unbound();\n this.request(() => {\n this.adjust();\n this.request(() => {\n super.disclose(withhold);\n });\n });\n }\n\n conceal (withhold, preventFocus) {\n if (!this.disclosed) return;\n this.request(() => {\n this.adjust();\n this.request(() => {\n super.conceal(withhold, preventFocus);\n });\n });\n }\n\n adjust () {\n this.setProperty('--collapser', 'none');\n const height = this.node.offsetHeight;\n this.setProperty('--collapse', -height + 'px');\n this.setProperty('--collapser', '');\n }\n\n reset () {\n if (!this.pristine) this.disclosed = false;\n }\n}\n\nexport { Collapse };\n","import { DisclosuresGroup } from '../disclosure/disclosures-group.js';\n\nclass CollapsesGroup extends DisclosuresGroup {\n constructor () {\n super('Collapse');\n }\n\n static get instanceClassName () {\n return 'CollapsesGroup';\n }\n}\n\nexport { CollapsesGroup };\n","import ns from '../api/utilities/namespace.js';\n\nexport const EquisizedEmission = {\n CHANGE: ns('equisized', 'change')\n};\n","import { Instance } from '../api/modules/register/instance.js';\nimport { EquisizedEmission } from './equisized-emission.js';\n\nclass Equisized extends Instance {\n static get instanceClassName () {\n return 'Equisized';\n }\n\n init () {\n this.ascend(EquisizedEmission.CHANGE);\n }\n\n measure () {\n if (this.isLegacy) this.style.width = 'auto';\n return this.getRect().width;\n }\n\n adjust (width) {\n if (this.isLegacy) this.style.width = `${width}px`;\n }\n\n dispose () {\n this.ascend(EquisizedEmission.CHANGE);\n }\n}\n\nexport { Equisized };\n","import { Instance } from '../api/modules/register/instance.js';\nimport { EquisizedEmission } from './equisized-emission.js';\n\nclass EquisizedsGroup extends Instance {\n static get instanceClassName () {\n return 'EquisizedsGroup';\n }\n\n init () {\n this.isResizing = true;\n this.isLoading = true;\n this.addAscent(EquisizedEmission.CHANGE, this.resize.bind(this));\n }\n\n load () {\n this.resize();\n }\n\n resize () {\n const equisizeds = this.element.getDescendantInstances('Equisized');\n if (!this.isLegacy) this.style.setProperty('--equisized-width', 'auto');\n\n const width = Math.max(...equisizeds.map(equisized => equisized.measure()));\n if (this.isLegacy) equisizeds.forEach(equisized => equisized.adjust(width));\n else this.style.setProperty('--equisized-width', `${width}px`);\n }\n}\n\nexport { EquisizedsGroup };\n","import ns from '../../api/utilities/namespace.js';\n\nconst ToggleEvent = {\n TOGGLE: ns.event('toggle')\n};\n\nexport { ToggleEvent };\n","import { Instance } from '../../api/modules/register/instance.js';\nimport { completeAssign } from '../../api/utilities/property/complete-assign.js';\nimport { ToggleEvent } from './toggle-event.js';\n\nclass Toggle extends Instance {\n static get instanceClassName () {\n return 'Toggle';\n }\n\n init () {\n this.pressed = this.pressed === 'true';\n this.listen('click', this.toggle.bind(this));\n }\n\n toggle () {\n this.pressed = this.pressed !== 'true';\n }\n\n get pressed () {\n return this.getAttribute('aria-pressed');\n }\n\n set pressed (value) {\n this.setAttribute('aria-pressed', value ? 'true' : 'false');\n this.dispatch(ToggleEvent.TOGGLE, value);\n }\n\n get proxy () {\n const scope = this;\n const proxy = Object.assign(super.proxy, {\n toggle: scope.toggle.bind(scope)\n });\n\n const proxyAccessors = {\n get pressed () {\n return scope.pressed;\n },\n set pressed (value) {\n scope.pressed = value;\n }\n };\n\n return completeAssign(proxy, proxyAccessors);\n }\n}\n\nexport { Toggle };\n","const setAttributes = (el, attrs) => {\n Object.keys(attrs).forEach(key => el.setAttribute(key, attrs[key]));\n};\n\nexport { setAttributes };\n","import { Instance } from '../api/modules/register/instance.js';\nimport { setAttributes } from '../api/utilities/attribute';\n\nclass InjectSvg extends Instance {\n static get instanceClassName () {\n return 'InjectSvg';\n }\n\n init () {\n if (this.node) {\n this.img = this.node.querySelector('img');\n }\n\n if (!this.isLegacy) {\n this.replace();\n }\n }\n\n get proxy () {\n const scope = this;\n return Object.assign(super.proxy, {\n replace: scope.replace.bind(scope),\n restore: scope.restore.bind(scope)\n });\n }\n\n fetch () {\n if (this.img) {\n this.imgID = this.img.getAttribute('id');\n this.imgClass = this.img.getAttribute('class');\n this.imgURL = this.img.getAttribute('src');\n\n fetch(this.imgURL)\n .then(data => data.text())\n .then(response => {\n const parser = new DOMParser();\n const xmlDoc = parser.parseFromString(response, 'text/html');\n this.svg = xmlDoc.querySelector('svg');\n\n if (this.svg) {\n this.replace();\n }\n });\n }\n }\n\n replace () {\n if (!this.svg) {\n this.fetch();\n return;\n }\n\n if (this.imgID && typeof this.imgID !== 'undefined') {\n this.svg.setAttribute('id', this.imgID);\n }\n\n if (this.imgClass && typeof this.imgClass !== 'undefined') {\n this.svg.setAttribute('class', this.imgClass);\n }\n\n if (this.svg.hasAttribute('xmlns:a')) {\n this.svg.removeAttribute('xmlns:a');\n }\n\n this.node.setAttribute('data-fr-inject-svg', true);\n const svgAttributes = {\n 'aria-hidden': true,\n focusable: false\n };\n setAttributes(this.svg, svgAttributes);\n this.node.replaceChild(this.svg, this.img);\n }\n\n restore () {\n if (this.img && this.svg) {\n this.node.setAttribute('data-fr-inject-svg', false);\n this.node.replaceChild(this.img, this.svg);\n }\n }\n}\n\nexport { InjectSvg };\n","import ns from '../api/utilities/namespace.js';\n\nexport const InjectSvgSelector = {\n INJECT_SVG: `[${ns.attr('inject-svg')}]`\n};\n","import api from './script/api/api';\n\nimport { Instance } from './script/api/modules/register/instance.js';\nimport { KeyCodes } from './script/api/modules/register/key-codes.js';\nimport { Breakpoints } from './script/api/modules/register/breakpoints';\nimport { Disclosure } from './script/disclosure/disclosure.js';\nimport { DisclosureButton } from './script/disclosure/disclosure-button.js';\nimport { DisclosuresGroup } from './script/disclosure/disclosures-group.js';\nimport { DisclosureType } from './script/disclosure/disclosure-type.js';\nimport { DisclosureEvent } from './script/disclosure/disclosure-event.js';\nimport { DisclosureEmission } from './script/disclosure/disclosure-emission.js';\nimport { CollapseButton } from './script/collapse/collapse-button.js';\nimport { Collapse } from './script/collapse/collapse.js';\nimport { CollapsesGroup } from './script/collapse/collapses-group.js';\nimport { CollapseSelector } from './script/collapse/collapse-selector.js';\nimport { Equisized } from './script/equisized/equisized.js';\nimport { EquisizedsGroup } from './script/equisized/equisizeds-group.js';\nimport { EquisizedEmission } from './script/equisized/equisized-emission.js';\nimport { Toggle } from './script/action/toggle/toggle';\nimport { RootSelector } from './script/api/modules/stage/root.js';\nimport { InjectSvg } from './script/inject/inject-svg';\nimport { InjectSvgSelector } from './script/inject/inject-svg-selector';\n\napi.core = {\n Instance: Instance,\n Breakpoints: Breakpoints,\n KeyCodes: KeyCodes,\n Disclosure: Disclosure,\n DisclosureButton: DisclosureButton,\n DisclosuresGroup: DisclosuresGroup,\n DisclosureType: DisclosureType,\n DisclosureEvent: DisclosureEvent,\n DisclosureEmission: DisclosureEmission,\n Collapse: Collapse,\n CollapseButton: CollapseButton,\n CollapsesGroup: CollapsesGroup,\n CollapseSelector: CollapseSelector,\n RootSelector: RootSelector,\n Equisized: Equisized,\n EquisizedEmission: EquisizedEmission,\n Toggle: Toggle,\n EquisizedsGroup: EquisizedsGroup,\n InjectSvg: InjectSvg,\n InjectSvgSelector: InjectSvgSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.core.CollapseSelector.COLLAPSE, api.core.Collapse);\napi.internals.register(api.core.InjectSvgSelector.INJECT_SVG, api.core.InjectSvg);\n\nexport default api;\n"],"names":["motion"],"mappings":"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"}