@nanoporetech-digital/components 3.7.1 → 3.8.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 (781) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/dist/cjs/{algolia-data-9152d0ef.js → algolia-data-fb13160a.js} +2 -2
  3. package/dist/cjs/{algolia-data-9152d0ef.js.map → algolia-data-fb13160a.js.map} +1 -1
  4. package/dist/cjs/{algoliasearch.umd-7ee60729.js → algoliasearch.umd-689c1560.js} +3 -3
  5. package/dist/cjs/{algoliasearch.umd-7ee60729.js.map → algoliasearch.umd-689c1560.js.map} +1 -1
  6. package/dist/cjs/{component-store-d7c8c326.js → component-store-b80bdb26.js} +25 -12
  7. package/dist/cjs/component-store-b80bdb26.js.map +1 -0
  8. package/dist/cjs/{dom-d7c33f11.js → dom-7acf7afd.js} +15 -15
  9. package/dist/cjs/dom-7acf7afd.js.map +1 -0
  10. package/dist/cjs/{form-control-57c71246.js → form-control-845951ac.js} +4 -4
  11. package/dist/cjs/form-control-845951ac.js.map +1 -0
  12. package/dist/{esm/global-8047b4ff.js → cjs/global-3a6a7873.js} +5 -14
  13. package/dist/cjs/global-3a6a7873.js.map +1 -0
  14. package/dist/cjs/{index-bb2a6ab8.js → index-5e11be36.js} +2 -2
  15. package/dist/cjs/{index-bb2a6ab8.js.map → index-5e11be36.js.map} +1 -1
  16. package/dist/cjs/{index-ece1cb9e.js → index-72ee0363.js} +2 -10
  17. package/dist/cjs/index-72ee0363.js.map +1 -0
  18. package/dist/cjs/{index-41582c2a.js → index-e1b5c3ea.js} +1438 -516
  19. package/dist/cjs/index-e1b5c3ea.js.map +1 -0
  20. package/dist/cjs/index.cjs.js +18 -35
  21. package/dist/cjs/index.cjs.js.map +1 -1
  22. package/dist/cjs/loader.cjs.js +5 -4
  23. package/dist/cjs/loader.cjs.js.map +1 -1
  24. package/dist/cjs/{modal-e4defcc3.js → modal-5884a6de.js} +3 -2
  25. package/dist/cjs/modal-5884a6de.js.map +1 -0
  26. package/dist/cjs/nano-accordion.cjs.entry.js +4 -7
  27. package/dist/cjs/nano-accordion.cjs.entry.js.map +1 -1
  28. package/dist/cjs/nano-alert.cjs.entry.js +25 -19
  29. package/dist/cjs/nano-alert.cjs.entry.js.map +1 -1
  30. package/dist/cjs/nano-algolia-filter.cjs.entry.js +5 -5
  31. package/dist/cjs/nano-algolia-filter.cjs.entry.js.map +1 -1
  32. package/dist/cjs/nano-algolia-input.cjs.entry.js +4 -4
  33. package/dist/cjs/nano-algolia-input.cjs.entry.js.map +1 -1
  34. package/dist/cjs/nano-algolia-pagination.cjs.entry.js +2 -2
  35. package/dist/cjs/nano-algolia-results.cjs.entry.js +2 -2
  36. package/dist/cjs/nano-algolia.cjs.entry.js +8 -8
  37. package/dist/cjs/nano-algolia.cjs.entry.js.map +1 -1
  38. package/dist/cjs/nano-aspect-ratio.cjs.entry.js +1 -1
  39. package/dist/cjs/nano-checkbox-group.cjs.entry.js +52 -9
  40. package/dist/cjs/nano-checkbox-group.cjs.entry.js.map +1 -1
  41. package/dist/cjs/nano-checkbox.cjs.entry.js +8 -8
  42. package/dist/cjs/nano-checkbox.cjs.entry.js.map +1 -1
  43. package/dist/cjs/nano-components.cjs.js +8 -4
  44. package/dist/cjs/nano-components.cjs.js.map +1 -1
  45. package/dist/cjs/nano-datalist_3.cjs.entry.js +46 -36
  46. package/dist/cjs/nano-datalist_3.cjs.entry.js.map +1 -1
  47. package/dist/cjs/nano-date-input.cjs.entry.js +6 -6
  48. package/dist/cjs/nano-date-input.cjs.entry.js.map +1 -1
  49. package/dist/cjs/nano-date-picker.cjs.entry.js +4 -4
  50. package/dist/cjs/nano-date-picker.cjs.entry.js.map +1 -1
  51. package/dist/cjs/nano-demo.cjs.entry.js +13 -9
  52. package/dist/cjs/nano-demo.cjs.entry.js.map +1 -1
  53. package/dist/cjs/nano-details.cjs.entry.js +4 -4
  54. package/dist/cjs/nano-details.cjs.entry.js.map +1 -1
  55. package/dist/cjs/nano-dialog.cjs.entry.js +6 -6
  56. package/dist/cjs/nano-dialog.cjs.entry.js.map +1 -1
  57. package/dist/cjs/nano-drawer.cjs.entry.js +5 -5
  58. package/dist/cjs/nano-drawer.cjs.entry.js.map +1 -1
  59. package/dist/cjs/nano-dropdown.cjs.entry.js +9 -4
  60. package/dist/cjs/nano-dropdown.cjs.entry.js.map +1 -1
  61. package/dist/cjs/nano-field-validator.cjs.entry.js +4 -3
  62. package/dist/cjs/nano-field-validator.cjs.entry.js.map +1 -1
  63. package/dist/cjs/nano-file-upload.cjs.entry.js +5 -5
  64. package/dist/cjs/nano-file-upload.cjs.entry.js.map +1 -1
  65. package/dist/cjs/nano-global-nav-user-profile_3.cjs.entry.js +54 -67
  66. package/dist/cjs/nano-global-nav-user-profile_3.cjs.entry.js.map +1 -1
  67. package/dist/cjs/nano-global-nav.cjs.entry.js +54 -26
  68. package/dist/cjs/nano-global-nav.cjs.entry.js.map +1 -1
  69. package/dist/cjs/nano-global-search-results.cjs.entry.js +6 -4
  70. package/dist/cjs/nano-global-search-results.cjs.entry.js.map +1 -1
  71. package/dist/cjs/nano-grid_3.cjs.entry.js +8 -7
  72. package/dist/cjs/nano-grid_3.cjs.entry.js.map +1 -1
  73. package/dist/cjs/nano-hero.cjs.entry.js +4 -2
  74. package/dist/cjs/nano-hero.cjs.entry.js.map +1 -1
  75. package/dist/cjs/nano-icon-button.cjs.entry.js +2 -2
  76. package/dist/cjs/nano-icon-button.cjs.entry.js.map +1 -1
  77. package/dist/cjs/nano-icon.cjs.entry.js +7 -14
  78. package/dist/cjs/nano-icon.cjs.entry.js.map +1 -1
  79. package/dist/cjs/nano-input.cjs.entry.js +19 -33
  80. package/dist/cjs/nano-input.cjs.entry.js.map +1 -1
  81. package/dist/cjs/nano-menu-drawer.cjs.entry.js +3 -3
  82. package/dist/cjs/nano-menu-drawer.cjs.entry.js.map +1 -1
  83. package/dist/cjs/nano-progress-bar_2.cjs.entry.js +4 -4
  84. package/dist/cjs/nano-progress-bar_2.cjs.entry.js.map +1 -1
  85. package/dist/cjs/nano-range.cjs.entry.js +4 -4
  86. package/dist/cjs/nano-range.cjs.entry.js.map +1 -1
  87. package/dist/cjs/nano-rating.cjs.entry.js +2 -2
  88. package/dist/cjs/nano-rating.cjs.entry.js.map +1 -1
  89. package/dist/cjs/nano-resize-observe_2.cjs.entry.js +18 -10
  90. package/dist/cjs/nano-resize-observe_2.cjs.entry.js.map +1 -1
  91. package/dist/cjs/nano-slide.cjs.entry.js +1 -1
  92. package/dist/cjs/nano-slides.cjs.entry.js +11 -21
  93. package/dist/cjs/nano-slides.cjs.entry.js.map +1 -1
  94. package/dist/cjs/nano-spinner.cjs.entry.js +3 -3
  95. package/dist/cjs/nano-spinner.cjs.entry.js.map +1 -1
  96. package/dist/cjs/nano-split-pane.cjs.entry.js +15 -13
  97. package/dist/cjs/nano-split-pane.cjs.entry.js.map +1 -1
  98. package/dist/cjs/nano-sticker.cjs.entry.js +6 -4
  99. package/dist/cjs/nano-sticker.cjs.entry.js.map +1 -1
  100. package/dist/cjs/nano-tab-content.cjs.entry.js +9 -3
  101. package/dist/cjs/nano-tab-content.cjs.entry.js.map +1 -1
  102. package/dist/cjs/nano-tab-group.cjs.entry.js +18 -12
  103. package/dist/cjs/nano-tab-group.cjs.entry.js.map +1 -1
  104. package/dist/cjs/nano-tab.cjs.entry.js +2 -2
  105. package/dist/cjs/nano-tab.cjs.entry.js.map +1 -1
  106. package/dist/cjs/{nano-table-820b04d5.js → nano-table-e76a8dde.js} +115 -150
  107. package/dist/cjs/nano-table-e76a8dde.js.map +1 -0
  108. package/dist/cjs/nano-table.cjs.entry.js +3 -3
  109. package/dist/cjs/{popover-508bcedb.js → popover-088646b2.js} +61 -50
  110. package/dist/cjs/popover-088646b2.js.map +1 -0
  111. package/dist/cjs/{scroll-9bb5e060.js → scroll-a197d9c4.js} +2 -2
  112. package/dist/cjs/{scroll-9bb5e060.js.map → scroll-a197d9c4.js.map} +1 -1
  113. package/dist/cjs/{table.worker-9e238d16.js → table.worker-988d87da.js} +4 -4
  114. package/dist/cjs/table.worker-988d87da.js.map +1 -0
  115. package/dist/cjs/{theme-50275e1a.js → theme-9cbe28c5.js} +2 -7
  116. package/dist/cjs/theme-9cbe28c5.js.map +1 -0
  117. package/dist/collection/collection-manifest.json +2 -2
  118. package/dist/collection/components/accordion/accordion.js +1 -4
  119. package/dist/collection/components/accordion/accordion.js.map +1 -1
  120. package/dist/collection/components/alert/alert.css +4 -3
  121. package/dist/collection/components/alert/alert.helpers.js +6 -24
  122. package/dist/collection/components/alert/alert.helpers.js.map +1 -1
  123. package/dist/collection/components/alert/alert.js +19 -13
  124. package/dist/collection/components/alert/alert.js.map +1 -1
  125. package/dist/collection/components/algolia/algolia-filter.js +2 -2
  126. package/dist/collection/components/algolia/algolia-filter.js.map +1 -1
  127. package/dist/collection/components/algolia/algolia-input.js.map +1 -1
  128. package/dist/collection/components/algolia/algolia.css +2 -1
  129. package/dist/collection/components/algolia/algolia.js +3 -3
  130. package/dist/collection/components/algolia/algolia.js.map +1 -1
  131. package/dist/collection/components/checkbox/checkbox-group.css +16 -10
  132. package/dist/collection/components/checkbox/checkbox-group.js +91 -7
  133. package/dist/collection/components/checkbox/checkbox-group.js.map +1 -1
  134. package/dist/collection/components/checkbox/checkbox.css +14 -12
  135. package/dist/collection/components/checkbox/checkbox.js +5 -5
  136. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  137. package/dist/collection/components/datalist/datalist.js +39 -31
  138. package/dist/collection/components/datalist/datalist.js.map +1 -1
  139. package/dist/collection/components/date-input/date-input.css +3 -3
  140. package/dist/collection/components/date-input/date-input.js +3 -3
  141. package/dist/collection/components/date-input/date-input.js.map +1 -1
  142. package/dist/collection/components/date-picker/date-picker.css +15 -11
  143. package/dist/collection/components/date-picker/date-picker.js +1 -1
  144. package/dist/collection/components/date-picker/date-picker.js.map +1 -1
  145. package/dist/collection/components/demo/demo.js +12 -8
  146. package/dist/collection/components/demo/demo.js.map +1 -1
  147. package/dist/collection/components/details/details.css +2 -1
  148. package/dist/collection/components/details/details.js +1 -1
  149. package/dist/collection/components/details/details.js.map +1 -1
  150. package/dist/collection/components/dialog/dialog.css +8 -5
  151. package/dist/collection/components/dialog/dialog.helpers.js +3 -11
  152. package/dist/collection/components/dialog/dialog.helpers.js.map +1 -1
  153. package/dist/collection/components/drawer/drawer.css +2 -2
  154. package/dist/collection/components/dropdown/dropdown.css +1 -1
  155. package/dist/collection/components/dropdown/dropdown.js +6 -1
  156. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  157. package/dist/collection/components/field-validator/field-validator.js +2 -1
  158. package/dist/collection/components/field-validator/field-validator.js.map +1 -1
  159. package/dist/collection/components/file-upload/file-upload.css +35 -25
  160. package/dist/collection/components/file-upload/file-upload.js +4 -4
  161. package/dist/collection/components/file-upload/file-upload.js.map +1 -1
  162. package/dist/collection/components/form-control/form-control.js +2 -2
  163. package/dist/collection/components/form-control/form-control.js.map +1 -1
  164. package/dist/collection/components/global-nav/global-nav-user-profile.js +6 -7
  165. package/dist/collection/components/global-nav/global-nav-user-profile.js.map +1 -1
  166. package/dist/collection/components/global-nav/global-nav.js +61 -11
  167. package/dist/collection/components/global-nav/global-nav.js.map +1 -1
  168. package/dist/collection/components/global-nav/style/global-nav.css +92 -48
  169. package/dist/collection/components/global-search-results/global-search-results.css +83 -44
  170. package/dist/collection/components/global-search-results/global-search-results.js +4 -2
  171. package/dist/collection/components/global-search-results/global-search-results.js.map +1 -1
  172. package/dist/collection/components/grid/grid-item.css +1 -1
  173. package/dist/collection/components/grid/grid.css +1 -0
  174. package/dist/collection/components/grid/grid.js +2 -0
  175. package/dist/collection/components/grid/grid.js.map +1 -1
  176. package/dist/collection/components/hero/hero.css +110 -18
  177. package/dist/collection/components/hero/hero.js +2 -0
  178. package/dist/collection/components/hero/hero.js.map +1 -1
  179. package/dist/collection/components/icon/icon.css +2 -2
  180. package/dist/collection/components/icon/icon.js +3 -10
  181. package/dist/collection/components/icon/icon.js.map +1 -1
  182. package/dist/collection/components/icon-button/icon-button.css +1 -1
  183. package/dist/collection/components/img/img.css +0 -1
  184. package/dist/collection/components/img/img.js +3 -4
  185. package/dist/collection/components/img/img.js.map +1 -1
  186. package/dist/collection/components/input/input.css +54 -32
  187. package/dist/collection/components/input/input.js +14 -28
  188. package/dist/collection/components/input/input.js.map +1 -1
  189. package/dist/collection/components/menu/menu.js +4 -2
  190. package/dist/collection/components/menu/menu.js.map +1 -1
  191. package/dist/collection/components/menu-drawer/menu-drawer.css +20 -13
  192. package/dist/collection/components/menu-drawer/menu-drawer.js +1 -1
  193. package/dist/collection/components/menu-drawer/menu-drawer.js.map +1 -1
  194. package/dist/collection/components/nav-item/nav-item.css +31 -16
  195. package/dist/collection/components/nav-item/nav-item.js +4 -4
  196. package/dist/collection/components/nav-item/nav-item.js.map +1 -1
  197. package/dist/collection/components/option/option.css +4 -2
  198. package/dist/collection/components/progress-bar/progress-bar.css +4 -4
  199. package/dist/collection/components/range/range.css +11 -9
  200. package/dist/collection/components/rating/rating.css +9 -5
  201. package/dist/collection/components/resize-observe/resize-observe.js +17 -6
  202. package/dist/collection/components/resize-observe/resize-observe.js.map +1 -1
  203. package/dist/collection/components/select/select.css +59 -34
  204. package/dist/collection/components/select/select.js +42 -55
  205. package/dist/collection/components/select/select.js.map +1 -1
  206. package/dist/collection/components/skeleton/skeleton.css +5 -5
  207. package/dist/collection/components/slides/slides.css +4 -2
  208. package/dist/collection/components/slides/slides.js +9 -19
  209. package/dist/collection/components/slides/slides.js.map +1 -1
  210. package/dist/collection/components/spinner/spinner.css +13 -8
  211. package/dist/collection/components/spinner/spinner.js +1 -1
  212. package/dist/collection/components/spinner/spinner.js.map +1 -1
  213. package/dist/collection/components/split-pane/split-pane.css +1 -1
  214. package/dist/collection/components/split-pane/split-pane.js +13 -11
  215. package/dist/collection/components/split-pane/split-pane.js.map +1 -1
  216. package/dist/collection/components/sticker/sticker.js +4 -2
  217. package/dist/collection/components/sticker/sticker.js.map +1 -1
  218. package/dist/collection/components/table/table.cell.js +8 -8
  219. package/dist/collection/components/table/table.cell.js.map +1 -1
  220. package/dist/collection/components/table/table.css +46 -25
  221. package/dist/collection/components/table/table.header.js +6 -19
  222. package/dist/collection/components/table/table.header.js.map +1 -1
  223. package/dist/collection/components/table/table.js +85 -93
  224. package/dist/collection/components/table/table.js.map +1 -1
  225. package/dist/collection/components/table/table.row.js +8 -8
  226. package/dist/collection/components/table/table.row.js.map +1 -1
  227. package/dist/collection/components/table/table.store.js +2 -1
  228. package/dist/collection/components/table/table.store.js.map +1 -1
  229. package/dist/collection/components/table/table.utils.js +8 -7
  230. package/dist/collection/components/table/table.utils.js.map +1 -1
  231. package/dist/collection/components/tabs/tab-content.css +7 -2
  232. package/dist/collection/components/tabs/tab-content.js +12 -1
  233. package/dist/collection/components/tabs/tab-content.js.map +1 -1
  234. package/dist/collection/components/tabs/tab-group.css +13 -10
  235. package/dist/collection/components/tabs/tab-group.js +17 -7
  236. package/dist/collection/components/tabs/tab-group.js.map +1 -1
  237. package/dist/collection/components/tabs/tab.css +21 -12
  238. package/dist/collection/components/tooltip/tooltip.css +25 -16
  239. package/dist/collection/global/script/global.js +2 -13
  240. package/dist/collection/global/script/global.js.map +1 -1
  241. package/dist/collection/index.js +17 -0
  242. package/dist/collection/index.js.map +1 -1
  243. package/dist/collection/utils/dom.js +16 -15
  244. package/dist/collection/utils/dom.js.map +1 -1
  245. package/dist/collection/utils/fetch.js +15 -12
  246. package/dist/collection/utils/fetch.js.map +1 -1
  247. package/dist/collection/utils/gesture/index.js +1 -9
  248. package/dist/collection/utils/gesture/index.js.map +1 -1
  249. package/dist/collection/utils/modal.js +2 -1
  250. package/dist/collection/utils/modal.js.map +1 -1
  251. package/dist/collection/utils/store/get-set.js +1 -1
  252. package/dist/collection/utils/store/get-set.js.map +1 -1
  253. package/dist/collection/utils/testing/index.js +1 -0
  254. package/dist/collection/utils/testing/index.js.map +1 -1
  255. package/dist/collection/utils/theme.js +1 -6
  256. package/dist/collection/utils/theme.js.map +1 -1
  257. package/dist/components/algolia.js +3 -3
  258. package/dist/components/algolia.js.map +1 -1
  259. package/dist/components/algoliasearch.umd.js +2 -2
  260. package/dist/components/algoliasearch.umd.js.map +1 -1
  261. package/dist/components/component-store.js +23 -10
  262. package/dist/components/component-store.js.map +1 -1
  263. package/dist/components/datalist.js +39 -31
  264. package/dist/components/datalist.js.map +1 -1
  265. package/dist/components/date-picker.js +2 -2
  266. package/dist/components/date-picker.js.map +1 -1
  267. package/dist/components/dom.js +17 -15
  268. package/dist/components/dom.js.map +1 -1
  269. package/dist/components/dropdown.js +7 -2
  270. package/dist/components/dropdown.js.map +1 -1
  271. package/dist/components/form-control.js +2 -2
  272. package/dist/components/form-control.js.map +1 -1
  273. package/dist/components/global-nav-user-profile.js +4 -3
  274. package/dist/components/global-nav-user-profile.js.map +1 -1
  275. package/dist/components/grid-item.js +1 -1
  276. package/dist/components/grid-item.js.map +1 -1
  277. package/dist/components/grid.js +3 -1
  278. package/dist/components/grid.js.map +1 -1
  279. package/dist/components/icon-button.js +1 -1
  280. package/dist/components/icon-button.js.map +1 -1
  281. package/dist/components/icon.js +4 -11
  282. package/dist/components/icon.js.map +1 -1
  283. package/dist/components/img.js +4 -5
  284. package/dist/components/img.js.map +1 -1
  285. package/dist/components/index.d.ts +9 -0
  286. package/dist/components/index.js +23 -52
  287. package/dist/components/index.js.map +1 -1
  288. package/dist/components/index3.js +635 -1069
  289. package/dist/components/index3.js.map +1 -1
  290. package/dist/components/input.js +15 -29
  291. package/dist/components/input.js.map +1 -1
  292. package/dist/components/menu.js +4 -2
  293. package/dist/components/menu.js.map +1 -1
  294. package/dist/components/modal.js +2 -1
  295. package/dist/components/modal.js.map +1 -1
  296. package/dist/components/nano-accordion.js +1 -4
  297. package/dist/components/nano-accordion.js.map +1 -1
  298. package/dist/components/nano-alert.js +20 -14
  299. package/dist/components/nano-alert.js.map +1 -1
  300. package/dist/components/nano-algolia-filter.js +2 -2
  301. package/dist/components/nano-algolia-filter.js.map +1 -1
  302. package/dist/components/nano-algolia-input.js.map +1 -1
  303. package/dist/components/nano-checkbox-group.js +53 -9
  304. package/dist/components/nano-checkbox-group.js.map +1 -1
  305. package/dist/components/nano-checkbox.js +6 -6
  306. package/dist/components/nano-checkbox.js.map +1 -1
  307. package/dist/components/nano-date-input.js +4 -4
  308. package/dist/components/nano-date-input.js.map +1 -1
  309. package/dist/components/nano-demo.js +12 -8
  310. package/dist/components/nano-demo.js.map +1 -1
  311. package/dist/components/nano-details.js +2 -2
  312. package/dist/components/nano-details.js.map +1 -1
  313. package/dist/components/nano-dialog.js +1 -1
  314. package/dist/components/nano-dialog.js.map +1 -1
  315. package/dist/components/nano-drawer.js +1 -1
  316. package/dist/components/nano-drawer.js.map +1 -1
  317. package/dist/components/nano-field-validator.js +2 -1
  318. package/dist/components/nano-field-validator.js.map +1 -1
  319. package/dist/components/nano-file-upload.js +4 -4
  320. package/dist/components/nano-file-upload.js.map +1 -1
  321. package/dist/components/nano-global-nav.js +51 -22
  322. package/dist/components/nano-global-nav.js.map +1 -1
  323. package/dist/components/nano-global-search-results.js +5 -3
  324. package/dist/components/nano-global-search-results.js.map +1 -1
  325. package/dist/components/nano-hero.js +3 -1
  326. package/dist/components/nano-hero.js.map +1 -1
  327. package/dist/components/nano-menu-drawer.js +2 -2
  328. package/dist/components/nano-menu-drawer.js.map +1 -1
  329. package/dist/components/nano-range.js +2 -2
  330. package/dist/components/nano-range.js.map +1 -1
  331. package/dist/components/nano-rating.js +1 -1
  332. package/dist/components/nano-rating.js.map +1 -1
  333. package/dist/components/nano-slides.js +10 -20
  334. package/dist/components/nano-slides.js.map +1 -1
  335. package/dist/components/nano-split-pane.js +14 -12
  336. package/dist/components/nano-split-pane.js.map +1 -1
  337. package/dist/components/nano-tab-content.js +10 -3
  338. package/dist/components/nano-tab-content.js.map +1 -1
  339. package/dist/components/nano-tab-group.js +18 -8
  340. package/dist/components/nano-tab-group.js.map +1 -1
  341. package/dist/components/nano-tab.js +1 -1
  342. package/dist/components/nano-tab.js.map +1 -1
  343. package/dist/components/nav-item.js +5 -5
  344. package/dist/components/nav-item.js.map +1 -1
  345. package/dist/components/option.js +1 -1
  346. package/dist/components/option.js.map +1 -1
  347. package/dist/components/popover.js +60 -49
  348. package/dist/components/popover.js.map +1 -1
  349. package/dist/components/progress-bar.js +1 -1
  350. package/dist/components/progress-bar.js.map +1 -1
  351. package/dist/components/resize-observe.js +16 -8
  352. package/dist/components/resize-observe.js.map +1 -1
  353. package/dist/components/select.js +43 -56
  354. package/dist/components/select.js.map +1 -1
  355. package/dist/components/skeleton.js +1 -1
  356. package/dist/components/skeleton.js.map +1 -1
  357. package/dist/components/spinner.js +2 -2
  358. package/dist/components/spinner.js.map +1 -1
  359. package/dist/components/sticker.js +4 -2
  360. package/dist/components/sticker.js.map +1 -1
  361. package/dist/components/table.js +117 -152
  362. package/dist/components/table.js.map +1 -1
  363. package/dist/components/theme.js +1 -6
  364. package/dist/components/theme.js.map +1 -1
  365. package/dist/components/tooltip.js +1 -1
  366. package/dist/components/tooltip.js.map +1 -1
  367. package/dist/esm/{algolia-data-b5cd0c58.js → algolia-data-c4ed188c.js} +2 -2
  368. package/dist/esm/{algolia-data-b5cd0c58.js.map → algolia-data-c4ed188c.js.map} +1 -1
  369. package/dist/esm/{algoliasearch.umd-86359963.js → algoliasearch.umd-4f7efa84.js} +3 -3
  370. package/dist/esm/{algoliasearch.umd-86359963.js.map → algoliasearch.umd-4f7efa84.js.map} +1 -1
  371. package/dist/esm/{component-store-ec512820.js → component-store-6eccd724.js} +25 -12
  372. package/dist/esm/component-store-6eccd724.js.map +1 -0
  373. package/dist/esm/{dom-d3ad49e2.js → dom-311c9e1e.js} +15 -15
  374. package/dist/esm/dom-311c9e1e.js.map +1 -0
  375. package/dist/esm/{form-control-84bac7a2.js → form-control-3284c2c9.js} +4 -4
  376. package/dist/esm/form-control-3284c2c9.js.map +1 -0
  377. package/dist/{cjs/global-989678ec.js → esm/global-f6e05656.js} +3 -16
  378. package/dist/esm/global-f6e05656.js.map +1 -0
  379. package/dist/esm/{index-c752dae1.js → index-38484737.js} +2 -2
  380. package/dist/esm/{index-c752dae1.js.map → index-38484737.js.map} +1 -1
  381. package/dist/esm/{index-3c280603.js → index-b4e277ad.js} +1438 -517
  382. package/dist/esm/index-b4e277ad.js.map +1 -0
  383. package/dist/{components/index4.js → esm/index-f626f476.js} +2 -10
  384. package/dist/esm/index-f626f476.js.map +1 -0
  385. package/dist/esm/index.js +18 -36
  386. package/dist/esm/index.js.map +1 -1
  387. package/dist/esm/loader.js +5 -4
  388. package/dist/esm/loader.js.map +1 -1
  389. package/dist/esm/{modal-5c9ce466.js → modal-1f3223cd.js} +3 -2
  390. package/dist/esm/modal-1f3223cd.js.map +1 -0
  391. package/dist/esm/nano-accordion.entry.js +4 -7
  392. package/dist/esm/nano-accordion.entry.js.map +1 -1
  393. package/dist/esm/nano-alert.entry.js +25 -19
  394. package/dist/esm/nano-alert.entry.js.map +1 -1
  395. package/dist/esm/nano-algolia-filter.entry.js +5 -5
  396. package/dist/esm/nano-algolia-filter.entry.js.map +1 -1
  397. package/dist/esm/nano-algolia-input.entry.js +4 -4
  398. package/dist/esm/nano-algolia-input.entry.js.map +1 -1
  399. package/dist/esm/nano-algolia-pagination.entry.js +2 -2
  400. package/dist/esm/nano-algolia-results.entry.js +2 -2
  401. package/dist/esm/nano-algolia.entry.js +8 -8
  402. package/dist/esm/nano-algolia.entry.js.map +1 -1
  403. package/dist/esm/nano-aspect-ratio.entry.js +1 -1
  404. package/dist/esm/nano-checkbox-group.entry.js +52 -9
  405. package/dist/esm/nano-checkbox-group.entry.js.map +1 -1
  406. package/dist/esm/nano-checkbox.entry.js +8 -8
  407. package/dist/esm/nano-checkbox.entry.js.map +1 -1
  408. package/dist/esm/nano-components.js +5 -4
  409. package/dist/esm/nano-components.js.map +1 -1
  410. package/dist/esm/nano-datalist_3.entry.js +46 -36
  411. package/dist/esm/nano-datalist_3.entry.js.map +1 -1
  412. package/dist/esm/nano-date-input.entry.js +6 -6
  413. package/dist/esm/nano-date-input.entry.js.map +1 -1
  414. package/dist/esm/nano-date-picker.entry.js +4 -4
  415. package/dist/esm/nano-date-picker.entry.js.map +1 -1
  416. package/dist/esm/nano-demo.entry.js +13 -9
  417. package/dist/esm/nano-demo.entry.js.map +1 -1
  418. package/dist/esm/nano-details.entry.js +4 -4
  419. package/dist/esm/nano-details.entry.js.map +1 -1
  420. package/dist/esm/nano-dialog.entry.js +6 -6
  421. package/dist/esm/nano-dialog.entry.js.map +1 -1
  422. package/dist/esm/nano-drawer.entry.js +5 -5
  423. package/dist/esm/nano-drawer.entry.js.map +1 -1
  424. package/dist/esm/nano-dropdown.entry.js +9 -4
  425. package/dist/esm/nano-dropdown.entry.js.map +1 -1
  426. package/dist/esm/nano-field-validator.entry.js +4 -3
  427. package/dist/esm/nano-field-validator.entry.js.map +1 -1
  428. package/dist/esm/nano-file-upload.entry.js +5 -5
  429. package/dist/esm/nano-file-upload.entry.js.map +1 -1
  430. package/dist/esm/nano-global-nav-user-profile_3.entry.js +54 -67
  431. package/dist/esm/nano-global-nav-user-profile_3.entry.js.map +1 -1
  432. package/dist/esm/nano-global-nav.entry.js +54 -26
  433. package/dist/esm/nano-global-nav.entry.js.map +1 -1
  434. package/dist/esm/nano-global-search-results.entry.js +6 -4
  435. package/dist/esm/nano-global-search-results.entry.js.map +1 -1
  436. package/dist/esm/nano-grid_3.entry.js +8 -7
  437. package/dist/esm/nano-grid_3.entry.js.map +1 -1
  438. package/dist/esm/nano-hero.entry.js +4 -2
  439. package/dist/esm/nano-hero.entry.js.map +1 -1
  440. package/dist/esm/nano-icon-button.entry.js +2 -2
  441. package/dist/esm/nano-icon-button.entry.js.map +1 -1
  442. package/dist/esm/nano-icon.entry.js +7 -14
  443. package/dist/esm/nano-icon.entry.js.map +1 -1
  444. package/dist/esm/nano-input.entry.js +19 -33
  445. package/dist/esm/nano-input.entry.js.map +1 -1
  446. package/dist/esm/nano-menu-drawer.entry.js +3 -3
  447. package/dist/esm/nano-menu-drawer.entry.js.map +1 -1
  448. package/dist/esm/nano-progress-bar_2.entry.js +4 -4
  449. package/dist/esm/nano-progress-bar_2.entry.js.map +1 -1
  450. package/dist/esm/nano-range.entry.js +4 -4
  451. package/dist/esm/nano-range.entry.js.map +1 -1
  452. package/dist/esm/nano-rating.entry.js +2 -2
  453. package/dist/esm/nano-rating.entry.js.map +1 -1
  454. package/dist/esm/nano-resize-observe_2.entry.js +18 -10
  455. package/dist/esm/nano-resize-observe_2.entry.js.map +1 -1
  456. package/dist/esm/nano-slide.entry.js +1 -1
  457. package/dist/esm/nano-slides.entry.js +11 -21
  458. package/dist/esm/nano-slides.entry.js.map +1 -1
  459. package/dist/esm/nano-spinner.entry.js +3 -3
  460. package/dist/esm/nano-spinner.entry.js.map +1 -1
  461. package/dist/esm/nano-split-pane.entry.js +15 -13
  462. package/dist/esm/nano-split-pane.entry.js.map +1 -1
  463. package/dist/esm/nano-sticker.entry.js +6 -4
  464. package/dist/esm/nano-sticker.entry.js.map +1 -1
  465. package/dist/esm/nano-tab-content.entry.js +9 -3
  466. package/dist/esm/nano-tab-content.entry.js.map +1 -1
  467. package/dist/esm/nano-tab-group.entry.js +18 -12
  468. package/dist/esm/nano-tab-group.entry.js.map +1 -1
  469. package/dist/esm/nano-tab.entry.js +2 -2
  470. package/dist/esm/nano-tab.entry.js.map +1 -1
  471. package/dist/esm/{nano-table-1f4fe4ad.js → nano-table-5ff91f0f.js} +115 -150
  472. package/dist/esm/nano-table-5ff91f0f.js.map +1 -0
  473. package/dist/esm/nano-table.entry.js +3 -3
  474. package/dist/esm/polyfills/css-shim.js +1 -1
  475. package/dist/esm/{popover-e748bb61.js → popover-02e6714d.js} +61 -50
  476. package/dist/esm/popover-02e6714d.js.map +1 -0
  477. package/dist/esm/{scroll-a1e59d8c.js → scroll-e5825d8d.js} +2 -2
  478. package/dist/esm/{scroll-a1e59d8c.js.map → scroll-e5825d8d.js.map} +1 -1
  479. package/dist/esm/{table.worker-ddbd23c3.js → table.worker-5c1bb1ce.js} +4 -4
  480. package/dist/esm/table.worker-5c1bb1ce.js.map +1 -0
  481. package/dist/esm/{theme-931bd452.js → theme-82feb8cf.js} +2 -7
  482. package/dist/esm/theme-82feb8cf.js.map +1 -0
  483. package/dist/nano-components/index.esm.js +1 -1
  484. package/dist/nano-components/index.esm.js.map +1 -1
  485. package/dist/nano-components/nano-components.esm.js +1 -1
  486. package/dist/nano-components/nano-components.esm.js.map +1 -1
  487. package/dist/nano-components/{p-1a8e60c4.entry.js → p-0411f019.entry.js} +2 -2
  488. package/dist/nano-components/p-0411f019.entry.js.map +1 -0
  489. package/dist/nano-components/p-13b2d70c.entry.js +5 -0
  490. package/dist/nano-components/p-13b2d70c.entry.js.map +1 -0
  491. package/dist/nano-components/p-167b9165.js.map +1 -1
  492. package/dist/nano-components/p-1d21b2ce.entry.js +5 -0
  493. package/dist/nano-components/p-1d21b2ce.entry.js.map +1 -0
  494. package/dist/nano-components/p-2155fc2c.js.map +1 -1
  495. package/dist/nano-components/p-257432ff.js +5 -0
  496. package/dist/nano-components/p-257432ff.js.map +1 -0
  497. package/dist/nano-components/p-264903b5.entry.js +5 -0
  498. package/dist/nano-components/p-264903b5.entry.js.map +1 -0
  499. package/dist/nano-components/p-320366a2.entry.js +5 -0
  500. package/dist/nano-components/p-320366a2.entry.js.map +1 -0
  501. package/dist/nano-components/p-364434b4.entry.js +5 -0
  502. package/dist/nano-components/p-364434b4.entry.js.map +1 -0
  503. package/dist/nano-components/{p-3f25fc76.entry.js → p-36d5a41d.entry.js} +2 -2
  504. package/dist/nano-components/p-36d5a41d.entry.js.map +1 -0
  505. package/dist/nano-components/{p-1e709f87.entry.js → p-371fe61d.entry.js} +2 -2
  506. package/dist/nano-components/p-371fe61d.entry.js.map +1 -0
  507. package/dist/nano-components/p-3d658ce2.entry.js +5 -0
  508. package/dist/nano-components/p-3d658ce2.entry.js.map +1 -0
  509. package/dist/nano-components/p-3e95778d.entry.js +5 -0
  510. package/dist/nano-components/p-3e95778d.entry.js.map +1 -0
  511. package/dist/nano-components/p-400d698f.entry.js +5 -0
  512. package/dist/nano-components/p-400d698f.entry.js.map +1 -0
  513. package/dist/nano-components/p-411bb8f1.js +5 -0
  514. package/dist/nano-components/p-411bb8f1.js.map +1 -0
  515. package/dist/nano-components/p-41811365.js +5 -0
  516. package/dist/nano-components/p-41811365.js.map +1 -0
  517. package/dist/nano-components/p-45abbbdd.js.map +1 -1
  518. package/dist/nano-components/{p-885b6950.js → p-45b7682a.js} +2 -2
  519. package/dist/nano-components/p-45b7682a.js.map +1 -0
  520. package/dist/nano-components/p-4b1d73e9.entry.js +5 -0
  521. package/dist/nano-components/p-4b1d73e9.entry.js.map +1 -0
  522. package/dist/nano-components/{p-69e5a37d.entry.js → p-4e104cb1.entry.js} +2 -2
  523. package/dist/nano-components/p-4e104cb1.entry.js.map +1 -0
  524. package/dist/nano-components/p-51bc8b59.js +5 -0
  525. package/dist/nano-components/p-51bc8b59.js.map +1 -0
  526. package/dist/nano-components/p-5a466c9f.entry.js +5 -0
  527. package/dist/nano-components/p-5a466c9f.entry.js.map +1 -0
  528. package/dist/nano-components/{p-bd05b3aa.entry.js → p-5f1b94f0.entry.js} +2 -2
  529. package/dist/nano-components/{p-bd05b3aa.entry.js.map → p-5f1b94f0.entry.js.map} +1 -1
  530. package/dist/nano-components/p-60823325.entry.js +5 -0
  531. package/dist/nano-components/p-60823325.entry.js.map +1 -0
  532. package/dist/nano-components/p-6760e54a.entry.js +5 -0
  533. package/dist/nano-components/p-6760e54a.entry.js.map +1 -0
  534. package/dist/nano-components/p-69774e99.entry.js +5 -0
  535. package/dist/nano-components/p-69774e99.entry.js.map +1 -0
  536. package/dist/nano-components/p-69a3e911.js.map +1 -1
  537. package/dist/nano-components/p-6bca2d00.entry.js +5 -0
  538. package/dist/nano-components/p-6bca2d00.entry.js.map +1 -0
  539. package/dist/nano-components/p-74a7fc4f.js.map +1 -1
  540. package/dist/nano-components/{p-dba8a88d.entry.js → p-78169835.entry.js} +2 -2
  541. package/dist/nano-components/p-78169835.entry.js.map +1 -0
  542. package/dist/nano-components/p-817eda34.entry.js +5 -0
  543. package/dist/nano-components/p-817eda34.entry.js.map +1 -0
  544. package/dist/nano-components/p-866c73c0.entry.js +5 -0
  545. package/dist/nano-components/p-866c73c0.entry.js.map +1 -0
  546. package/dist/nano-components/p-87a76a81.entry.js +5 -0
  547. package/dist/nano-components/{p-41addb3a.entry.js.map → p-87a76a81.entry.js.map} +1 -1
  548. package/dist/nano-components/p-8907dd24.entry.js +5 -0
  549. package/dist/nano-components/p-8907dd24.entry.js.map +1 -0
  550. package/dist/nano-components/p-90365d7b.entry.js +5 -0
  551. package/dist/nano-components/p-90365d7b.entry.js.map +1 -0
  552. package/dist/nano-components/p-909a424c.js +5 -0
  553. package/dist/nano-components/p-909a424c.js.map +1 -0
  554. package/dist/nano-components/p-9746b0a5.js.map +1 -1
  555. package/dist/nano-components/p-9cf5fda3.entry.js +5 -0
  556. package/dist/nano-components/p-9cf5fda3.entry.js.map +1 -0
  557. package/dist/nano-components/p-9fcd383f.entry.js +5 -0
  558. package/dist/nano-components/p-9fcd383f.entry.js.map +1 -0
  559. package/dist/nano-components/p-9fda481b.entry.js +5 -0
  560. package/dist/nano-components/p-9fda481b.entry.js.map +1 -0
  561. package/dist/nano-components/p-abd6b774.entry.js +5 -0
  562. package/dist/nano-components/p-abd6b774.entry.js.map +1 -0
  563. package/dist/nano-components/p-b933f3c8.js.map +1 -1
  564. package/dist/nano-components/{p-2828788c.js → p-bb07c3d0.js} +2 -2
  565. package/dist/nano-components/p-bb07c3d0.js.map +1 -0
  566. package/dist/nano-components/p-bb6f7c39.js +5 -0
  567. package/dist/nano-components/p-bb6f7c39.js.map +1 -0
  568. package/dist/nano-components/p-bf91c50e.js +6 -0
  569. package/dist/nano-components/p-bf91c50e.js.map +1 -0
  570. package/dist/nano-components/{p-b40eedcb.entry.js → p-bfbfec85.entry.js} +2 -2
  571. package/dist/nano-components/p-bfbfec85.entry.js.map +1 -0
  572. package/dist/nano-components/{p-447a5910.entry.js → p-c0681b2b.entry.js} +2 -2
  573. package/dist/nano-components/p-c0681b2b.entry.js.map +1 -0
  574. package/dist/nano-components/p-c0ca353b.entry.js +5 -0
  575. package/dist/nano-components/p-c0ca353b.entry.js.map +1 -0
  576. package/dist/nano-components/p-c4e8d584.entry.js +5 -0
  577. package/dist/nano-components/p-c4e8d584.entry.js.map +1 -0
  578. package/dist/nano-components/p-cecb9af1.js.map +1 -1
  579. package/dist/nano-components/p-d4f6ec9f.js +5 -0
  580. package/dist/nano-components/p-d4f6ec9f.js.map +1 -0
  581. package/dist/nano-components/p-d753f35a.entry.js +5 -0
  582. package/dist/nano-components/p-d753f35a.entry.js.map +1 -0
  583. package/dist/nano-components/{p-651b3264.js → p-d7ff8f12.js} +2 -2
  584. package/dist/nano-components/p-d7ff8f12.js.map +1 -0
  585. package/dist/nano-components/{p-0582afcc.js → p-d92b762b.js} +2 -2
  586. package/dist/nano-components/p-d92b762b.js.map +1 -0
  587. package/dist/nano-components/p-de25ba80.entry.js +5 -0
  588. package/dist/nano-components/p-de25ba80.entry.js.map +1 -0
  589. package/dist/nano-components/{p-c9a7c7ea.js → p-e04f2333.js} +2 -2
  590. package/dist/nano-components/p-e04f2333.js.map +1 -0
  591. package/dist/nano-components/p-e19d6a92.entry.js +5 -0
  592. package/dist/nano-components/p-e19d6a92.entry.js.map +1 -0
  593. package/dist/nano-components/{p-63834d50.js → p-ed2e6f32.js} +2 -2
  594. package/dist/nano-components/p-ed2e6f32.js.map +1 -0
  595. package/dist/nano-components/p-ed69b27b.entry.js +5 -0
  596. package/dist/nano-components/p-ed69b27b.entry.js.map +1 -0
  597. package/dist/nano-components/{p-a0b93616.js → p-ed6adde2.js} +3 -3
  598. package/dist/nano-components/p-ed6adde2.js.map +1 -0
  599. package/dist/nano-components/p-ee045579.js.map +1 -1
  600. package/dist/nano-components/{p-151aad1e.entry.js → p-f2875bf0.entry.js} +4 -4
  601. package/dist/nano-components/p-f2875bf0.entry.js.map +1 -0
  602. package/dist/nano-components/p-f28c802d.entry.js +5 -0
  603. package/dist/nano-components/p-f28c802d.entry.js.map +1 -0
  604. package/dist/nano-components/{p-a2d0d7b9.entry.js → p-f47776fd.entry.js} +2 -2
  605. package/dist/nano-components/p-f47776fd.entry.js.map +1 -0
  606. package/dist/nano-components/p-f8f89998.js.map +1 -1
  607. package/dist/nano-components/p-fccd59e4.entry.js +5 -0
  608. package/dist/nano-components/p-fccd59e4.entry.js.map +1 -0
  609. package/dist/nano-components/p-fe1446cd.entry.js +5 -0
  610. package/dist/nano-components/p-fe1446cd.entry.js.map +1 -0
  611. package/dist/themes/london-calling.css +1 -1
  612. package/dist/themes/london-calling.css.map +1 -1
  613. package/dist/themes/nanopore.css +1 -1
  614. package/dist/themes/nanopore.css.map +1 -1
  615. package/dist/types/components/alert/alert-interface.d.ts +1 -1
  616. package/dist/types/components/algolia/algolia-input.d.ts +1 -1
  617. package/dist/types/components/algolia/algolia.d.ts +2 -2
  618. package/dist/types/components/checkbox/checkbox-group.d.ts +11 -0
  619. package/dist/types/components/date-picker/date-picker-interface.d.ts +2 -2
  620. package/dist/types/components/date-picker/duet-date-picker/date-adapter.d.ts +3 -3
  621. package/dist/types/components/date-picker/duet-date-picker/date-localization.d.ts +3 -3
  622. package/dist/types/components/date-picker/duet-date-picker/date-picker-day.d.ts +1 -1
  623. package/dist/types/components/date-picker/duet-date-picker/date-picker-month.d.ts +1 -1
  624. package/dist/types/components/field-validator/field-validator-interface.d.ts +4 -4
  625. package/dist/types/components/file-upload/file-upload.d.ts +1 -1
  626. package/dist/types/components/global-nav/global-nav.d.ts +12 -6
  627. package/dist/types/components/icon/icon.d.ts +3 -3
  628. package/dist/types/components/menu/menu.d.ts +1 -1
  629. package/dist/types/components/nav-item/nav-item.d.ts +1 -1
  630. package/dist/types/components/range/range-interface.d.ts +2 -2
  631. package/dist/types/components/resize-observe/resize-observe.d.ts +1 -0
  632. package/dist/types/components/slides/slides-interface.d.ts +2 -2
  633. package/dist/types/components/slides/slides.d.ts +0 -2
  634. package/dist/types/components/table/table.cell.d.ts +1 -1
  635. package/dist/types/components/table/table.d.ts +9 -14
  636. package/dist/types/components/table/table.header.d.ts +1 -1
  637. package/dist/types/components/table/table.row.d.ts +2 -2
  638. package/dist/types/components/table/table.utils.d.ts +2 -1
  639. package/dist/types/components/tabs/tab-content.d.ts +2 -0
  640. package/dist/types/components.d.ts +829 -9
  641. package/dist/types/index.d.ts +5 -0
  642. package/dist/types/stencil-public-runtime.d.ts +48 -3
  643. package/dist/types/utils/dom.d.ts +9 -0
  644. package/dist/types/utils/gesture/index.d.ts +1 -1
  645. package/dist/types/utils/popover.d.ts +1 -1
  646. package/dist/types/utils/store/component-store.d.ts +2 -2
  647. package/dist/types/utils/testing/index.d.ts +1 -1
  648. package/docs-json.json +89 -50
  649. package/docs-vscode.json +8 -4
  650. package/hydrate/index.d.ts +853 -0
  651. package/{dist/custom-elements → hydrate}/index.js +11476 -7950
  652. package/hydrate/package.json +6 -0
  653. package/loader/index.d.ts +9 -0
  654. package/package.json +24 -16
  655. package/dist/cjs/component-store-d7c8c326.js.map +0 -1
  656. package/dist/cjs/dom-d7c33f11.js.map +0 -1
  657. package/dist/cjs/form-control-57c71246.js.map +0 -1
  658. package/dist/cjs/global-989678ec.js.map +0 -1
  659. package/dist/cjs/index-41582c2a.js.map +0 -1
  660. package/dist/cjs/index-75b61776.js +0 -1077
  661. package/dist/cjs/index-75b61776.js.map +0 -1
  662. package/dist/cjs/index-ece1cb9e.js.map +0 -1
  663. package/dist/cjs/modal-e4defcc3.js.map +0 -1
  664. package/dist/cjs/nano-table-820b04d5.js.map +0 -1
  665. package/dist/cjs/popover-508bcedb.js.map +0 -1
  666. package/dist/cjs/table.worker-9e238d16.js.map +0 -1
  667. package/dist/cjs/theme-50275e1a.js.map +0 -1
  668. package/dist/components/index4.js.map +0 -1
  669. package/dist/custom-elements/index.d.ts +0 -339
  670. package/dist/custom-elements/index.js.map +0 -1
  671. package/dist/esm/component-store-ec512820.js.map +0 -1
  672. package/dist/esm/dom-d3ad49e2.js.map +0 -1
  673. package/dist/esm/form-control-84bac7a2.js.map +0 -1
  674. package/dist/esm/global-8047b4ff.js.map +0 -1
  675. package/dist/esm/index-3bbaffe4.js +0 -1075
  676. package/dist/esm/index-3bbaffe4.js.map +0 -1
  677. package/dist/esm/index-3c280603.js.map +0 -1
  678. package/dist/esm/index-dc076ea6.js +0 -649
  679. package/dist/esm/index-dc076ea6.js.map +0 -1
  680. package/dist/esm/modal-5c9ce466.js.map +0 -1
  681. package/dist/esm/nano-table-1f4fe4ad.js.map +0 -1
  682. package/dist/esm/popover-e748bb61.js.map +0 -1
  683. package/dist/esm/table.worker-ddbd23c3.js.map +0 -1
  684. package/dist/esm/theme-931bd452.js.map +0 -1
  685. package/dist/nano-components/p-0582afcc.js.map +0 -1
  686. package/dist/nano-components/p-135fed16.entry.js +0 -5
  687. package/dist/nano-components/p-135fed16.entry.js.map +0 -1
  688. package/dist/nano-components/p-151aad1e.entry.js.map +0 -1
  689. package/dist/nano-components/p-15543295.entry.js +0 -5
  690. package/dist/nano-components/p-15543295.entry.js.map +0 -1
  691. package/dist/nano-components/p-1a8e60c4.entry.js.map +0 -1
  692. package/dist/nano-components/p-1e709f87.entry.js.map +0 -1
  693. package/dist/nano-components/p-1f347342.entry.js +0 -5
  694. package/dist/nano-components/p-1f347342.entry.js.map +0 -1
  695. package/dist/nano-components/p-1fe12320.js +0 -6
  696. package/dist/nano-components/p-1fe12320.js.map +0 -1
  697. package/dist/nano-components/p-23575705.entry.js +0 -5
  698. package/dist/nano-components/p-23575705.entry.js.map +0 -1
  699. package/dist/nano-components/p-2828788c.js.map +0 -1
  700. package/dist/nano-components/p-284dd9a2.entry.js +0 -5
  701. package/dist/nano-components/p-284dd9a2.entry.js.map +0 -1
  702. package/dist/nano-components/p-2a97ef51.entry.js +0 -5
  703. package/dist/nano-components/p-2a97ef51.entry.js.map +0 -1
  704. package/dist/nano-components/p-36842a50.entry.js +0 -5
  705. package/dist/nano-components/p-36842a50.entry.js.map +0 -1
  706. package/dist/nano-components/p-3a1026d1.entry.js +0 -5
  707. package/dist/nano-components/p-3a1026d1.entry.js.map +0 -1
  708. package/dist/nano-components/p-3f25fc76.entry.js.map +0 -1
  709. package/dist/nano-components/p-41addb3a.entry.js +0 -5
  710. package/dist/nano-components/p-447a5910.entry.js.map +0 -1
  711. package/dist/nano-components/p-4b69178e.entry.js +0 -5
  712. package/dist/nano-components/p-4b69178e.entry.js.map +0 -1
  713. package/dist/nano-components/p-559a6492.entry.js +0 -5
  714. package/dist/nano-components/p-559a6492.entry.js.map +0 -1
  715. package/dist/nano-components/p-5d149792.entry.js +0 -5
  716. package/dist/nano-components/p-5d149792.entry.js.map +0 -1
  717. package/dist/nano-components/p-63834d50.js.map +0 -1
  718. package/dist/nano-components/p-651b3264.js.map +0 -1
  719. package/dist/nano-components/p-69e5a37d.entry.js.map +0 -1
  720. package/dist/nano-components/p-6ad194e4.entry.js +0 -5
  721. package/dist/nano-components/p-6ad194e4.entry.js.map +0 -1
  722. package/dist/nano-components/p-6cb77d5c.entry.js +0 -5
  723. package/dist/nano-components/p-6cb77d5c.entry.js.map +0 -1
  724. package/dist/nano-components/p-73860775.js +0 -5
  725. package/dist/nano-components/p-73860775.js.map +0 -1
  726. package/dist/nano-components/p-77cad8d1.js +0 -5
  727. package/dist/nano-components/p-77cad8d1.js.map +0 -1
  728. package/dist/nano-components/p-793588d1.js +0 -5
  729. package/dist/nano-components/p-793588d1.js.map +0 -1
  730. package/dist/nano-components/p-7b3638b7.js +0 -5
  731. package/dist/nano-components/p-7b3638b7.js.map +0 -1
  732. package/dist/nano-components/p-845ae77e.js +0 -5
  733. package/dist/nano-components/p-845ae77e.js.map +0 -1
  734. package/dist/nano-components/p-885b6950.js.map +0 -1
  735. package/dist/nano-components/p-8d747891.js +0 -5
  736. package/dist/nano-components/p-8d747891.js.map +0 -1
  737. package/dist/nano-components/p-9059c8c1.entry.js +0 -5
  738. package/dist/nano-components/p-9059c8c1.entry.js.map +0 -1
  739. package/dist/nano-components/p-92504f7f.entry.js +0 -5
  740. package/dist/nano-components/p-92504f7f.entry.js.map +0 -1
  741. package/dist/nano-components/p-99fbae74.entry.js +0 -5
  742. package/dist/nano-components/p-99fbae74.entry.js.map +0 -1
  743. package/dist/nano-components/p-9a4297e1.entry.js +0 -5
  744. package/dist/nano-components/p-9a4297e1.entry.js.map +0 -1
  745. package/dist/nano-components/p-9eeed8f5.entry.js +0 -5
  746. package/dist/nano-components/p-9eeed8f5.entry.js.map +0 -1
  747. package/dist/nano-components/p-a0b93616.js.map +0 -1
  748. package/dist/nano-components/p-a183e3c7.entry.js +0 -5
  749. package/dist/nano-components/p-a183e3c7.entry.js.map +0 -1
  750. package/dist/nano-components/p-a2d0d7b9.entry.js.map +0 -1
  751. package/dist/nano-components/p-a5abfed9.entry.js +0 -5
  752. package/dist/nano-components/p-a5abfed9.entry.js.map +0 -1
  753. package/dist/nano-components/p-b25e79b8.entry.js +0 -5
  754. package/dist/nano-components/p-b25e79b8.entry.js.map +0 -1
  755. package/dist/nano-components/p-b40eedcb.entry.js.map +0 -1
  756. package/dist/nano-components/p-b55ffa92.entry.js +0 -5
  757. package/dist/nano-components/p-b55ffa92.entry.js.map +0 -1
  758. package/dist/nano-components/p-b87539f0.entry.js +0 -5
  759. package/dist/nano-components/p-b87539f0.entry.js.map +0 -1
  760. package/dist/nano-components/p-c9a7c7ea.js.map +0 -1
  761. package/dist/nano-components/p-ca567f01.entry.js +0 -5
  762. package/dist/nano-components/p-ca567f01.entry.js.map +0 -1
  763. package/dist/nano-components/p-cc5e7acb.entry.js +0 -5
  764. package/dist/nano-components/p-cc5e7acb.entry.js.map +0 -1
  765. package/dist/nano-components/p-d5303933.entry.js +0 -5
  766. package/dist/nano-components/p-d5303933.entry.js.map +0 -1
  767. package/dist/nano-components/p-d565991d.entry.js +0 -5
  768. package/dist/nano-components/p-d565991d.entry.js.map +0 -1
  769. package/dist/nano-components/p-dba8a88d.entry.js.map +0 -1
  770. package/dist/nano-components/p-dc50b93c.entry.js +0 -5
  771. package/dist/nano-components/p-dc50b93c.entry.js.map +0 -1
  772. package/dist/nano-components/p-e3860f00.js +0 -5
  773. package/dist/nano-components/p-e3860f00.js.map +0 -1
  774. package/dist/nano-components/p-e5408bc8.entry.js +0 -5
  775. package/dist/nano-components/p-e5408bc8.entry.js.map +0 -1
  776. package/dist/nano-components/p-ea2de992.js +0 -19
  777. package/dist/nano-components/p-ea2de992.js.map +0 -1
  778. package/dist/nano-components/p-f7471cca.entry.js +0 -5
  779. package/dist/nano-components/p-f7471cca.entry.js.map +0 -1
  780. package/dist/nano-components/p-fe94eeff.entry.js +0 -5
  781. package/dist/nano-components/p-fe94eeff.entry.js.map +0 -1
@@ -1 +1 @@
1
- {"file":"nano-slides.entry.js","mappings":"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","names":["this","require$$0","proto","Slide","getComputedStyle","console","EvEmitter","animatePrototype","Unidragger","svgURI","Unipointer"],"sources":["./node_modules/ev-emitter/ev-emitter.js","./node_modules/get-size/get-size.js","./node_modules/desandro-matches-selector/matches-selector.js","./node_modules/fizzy-ui-utils/utils.js","./src/components/slides/lib/js/cell.js","./src/components/slides/lib/js/slide.js","./src/components/slides/lib/js/animate.js","./src/components/slides/lib/js/flickity.js","./node_modules/unipointer/unipointer.js","./node_modules/unidragger/unidragger.js","./src/components/slides/lib/js/drag.js","./src/components/slides/lib/js/prev-next-button.js","./src/components/slides/lib/js/page-dots.js","./src/components/slides/lib/js/player.js","./src/components/slides/lib/js/add-remove-cell.js","./src/components/slides/lib/js/lazyload.js","./src/components/slides/lib/js/fullscreen.js","./src/components/slides/lib/js/fade.js","./src/components/slides/lib/js/index.js","./src/components/slides/slides.scss?tag=nano-slides&encapsulation=shadow","./src/components/slides/slides.tsx"],"sourcesContent":["/**\n * EvEmitter v1.1.0\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n\n( function( global, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define, module, window */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory();\n } else {\n // Browser globals\n global.EvEmitter = factory();\n }\n\n}( typeof window != 'undefined' ? window : this, function() {\n\n\"use strict\";\n\nfunction EvEmitter() {}\n\nvar proto = EvEmitter.prototype;\n\nproto.on = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // set events hash\n var events = this._events = this._events || {};\n // set listeners array\n var listeners = events[ eventName ] = events[ eventName ] || [];\n // only add once\n if ( listeners.indexOf( listener ) == -1 ) {\n listeners.push( listener );\n }\n\n return this;\n};\n\nproto.once = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // add event\n this.on( eventName, listener );\n // set once flag\n // set onceEvents hash\n var onceEvents = this._onceEvents = this._onceEvents || {};\n // set onceListeners object\n var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\n // set flag\n onceListeners[ listener ] = true;\n\n return this;\n};\n\nproto.off = function( eventName, listener ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n var index = listeners.indexOf( listener );\n if ( index != -1 ) {\n listeners.splice( index, 1 );\n }\n\n return this;\n};\n\nproto.emitEvent = function( eventName, args ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n // copy over to avoid interference if .off() in listener\n listeners = listeners.slice(0);\n args = args || [];\n // once stuff\n var onceListeners = this._onceEvents && this._onceEvents[ eventName ];\n\n for ( var i=0; i < listeners.length; i++ ) {\n var listener = listeners[i]\n var isOnce = onceListeners && onceListeners[ listener ];\n if ( isOnce ) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off( eventName, listener );\n // unset once flag\n delete onceListeners[ listener ];\n }\n // trigger listener\n listener.apply( this, args );\n }\n\n return this;\n};\n\nproto.allOff = function() {\n delete this._events;\n delete this._onceEvents;\n};\n\nreturn EvEmitter;\n\n}));\n","/*!\n * getSize v2.0.3\n * measure size of elements\n * MIT license\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n/* globals console: false */\n\n( function( window, factory ) {\n /* jshint strict: false */ /* globals define, module */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.getSize = factory();\n }\n\n})( window, function factory() {\n'use strict';\n\n// -------------------------- helpers -------------------------- //\n\n// get a number from a string, not a percentage\nfunction getStyleSize( value ) {\n var num = parseFloat( value );\n // not a percent like '100%', and a number\n var isValid = value.indexOf('%') == -1 && !isNaN( num );\n return isValid && num;\n}\n\nfunction noop() {}\n\nvar logError = typeof console == 'undefined' ? noop :\n function( message ) {\n console.error( message );\n };\n\n// -------------------------- measurements -------------------------- //\n\nvar measurements = [\n 'paddingLeft',\n 'paddingRight',\n 'paddingTop',\n 'paddingBottom',\n 'marginLeft',\n 'marginRight',\n 'marginTop',\n 'marginBottom',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderTopWidth',\n 'borderBottomWidth'\n];\n\nvar measurementsLength = measurements.length;\n\nfunction getZeroSize() {\n var size = {\n width: 0,\n height: 0,\n innerWidth: 0,\n innerHeight: 0,\n outerWidth: 0,\n outerHeight: 0\n };\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n size[ measurement ] = 0;\n }\n return size;\n}\n\n// -------------------------- getStyle -------------------------- //\n\n/**\n * getStyle, get style of element, check for Firefox bug\n * https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n */\nfunction getStyle( elem ) {\n var style = getComputedStyle( elem );\n if ( !style ) {\n logError( 'Style returned ' + style +\n '. Are you running this code in a hidden iframe on Firefox? ' +\n 'See https://bit.ly/getsizebug1' );\n }\n return style;\n}\n\n// -------------------------- setup -------------------------- //\n\nvar isSetup = false;\n\nvar isBoxSizeOuter;\n\n/**\n * setup\n * check isBoxSizerOuter\n * do on first getSize() rather than on page load for Firefox bug\n */\nfunction setup() {\n // setup once\n if ( isSetup ) {\n return;\n }\n isSetup = true;\n\n // -------------------------- box sizing -------------------------- //\n\n /**\n * Chrome & Safari measure the outer-width on style.width on border-box elems\n * IE11 & Firefox<29 measures the inner-width\n */\n var div = document.createElement('div');\n div.style.width = '200px';\n div.style.padding = '1px 2px 3px 4px';\n div.style.borderStyle = 'solid';\n div.style.borderWidth = '1px 2px 3px 4px';\n div.style.boxSizing = 'border-box';\n\n var body = document.body || document.documentElement;\n body.appendChild( div );\n var style = getStyle( div );\n // round value for browser zoom. desandro/masonry#928\n isBoxSizeOuter = Math.round( getStyleSize( style.width ) ) == 200;\n getSize.isBoxSizeOuter = isBoxSizeOuter;\n\n body.removeChild( div );\n}\n\n// -------------------------- getSize -------------------------- //\n\nfunction getSize( elem ) {\n setup();\n\n // use querySeletor if elem is string\n if ( typeof elem == 'string' ) {\n elem = document.querySelector( elem );\n }\n\n // do not proceed on non-objects\n if ( !elem || typeof elem != 'object' || !elem.nodeType ) {\n return;\n }\n\n var style = getStyle( elem );\n\n // if hidden, everything is 0\n if ( style.display == 'none' ) {\n return getZeroSize();\n }\n\n var size = {};\n size.width = elem.offsetWidth;\n size.height = elem.offsetHeight;\n\n var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';\n\n // get all measurements\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n var value = style[ measurement ];\n var num = parseFloat( value );\n // any 'auto', 'medium' value will be 0\n size[ measurement ] = !isNaN( num ) ? num : 0;\n }\n\n var paddingWidth = size.paddingLeft + size.paddingRight;\n var paddingHeight = size.paddingTop + size.paddingBottom;\n var marginWidth = size.marginLeft + size.marginRight;\n var marginHeight = size.marginTop + size.marginBottom;\n var borderWidth = size.borderLeftWidth + size.borderRightWidth;\n var borderHeight = size.borderTopWidth + size.borderBottomWidth;\n\n var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;\n\n // overwrite width and height if we can get it from style\n var styleWidth = getStyleSize( style.width );\n if ( styleWidth !== false ) {\n size.width = styleWidth +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth );\n }\n\n var styleHeight = getStyleSize( style.height );\n if ( styleHeight !== false ) {\n size.height = styleHeight +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight );\n }\n\n size.innerWidth = size.width - ( paddingWidth + borderWidth );\n size.innerHeight = size.height - ( paddingHeight + borderHeight );\n\n size.outerWidth = size.width + marginWidth;\n size.outerHeight = size.height + marginHeight;\n\n return size;\n}\n\nreturn getSize;\n\n});\n","/**\n * matchesSelector v2.0.2\n * matchesSelector( element, '.selector' )\n * MIT license\n */\n\n/*jshint browser: true, strict: true, undef: true, unused: true */\n\n( function( window, factory ) {\n /*global define: false, module: false */\n 'use strict';\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.matchesSelector = factory();\n }\n\n}( window, function factory() {\n 'use strict';\n\n var matchesMethod = ( function() {\n var ElemProto = window.Element.prototype;\n // check for the standard method name first\n if ( ElemProto.matches ) {\n return 'matches';\n }\n // check un-prefixed\n if ( ElemProto.matchesSelector ) {\n return 'matchesSelector';\n }\n // check vendor prefixes\n var prefixes = [ 'webkit', 'moz', 'ms', 'o' ];\n\n for ( var i=0; i < prefixes.length; i++ ) {\n var prefix = prefixes[i];\n var method = prefix + 'MatchesSelector';\n if ( ElemProto[ method ] ) {\n return method;\n }\n }\n })();\n\n return function matchesSelector( elem, selector ) {\n return elem[ matchesMethod ]( selector );\n };\n\n}));\n","/**\n * Fizzy UI utils v2.0.7\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'desandro-matches-selector/matches-selector'\n ], function( matchesSelector ) {\n return factory( window, matchesSelector );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('desandro-matches-selector')\n );\n } else {\n // browser global\n window.fizzyUIUtils = factory(\n window,\n window.matchesSelector\n );\n }\n\n}( window, function factory( window, matchesSelector ) {\n\n'use strict';\n\nvar utils = {};\n\n// ----- extend ----- //\n\n// extends objects\nutils.extend = function( a, b ) {\n for ( var prop in b ) {\n a[ prop ] = b[ prop ];\n }\n return a;\n};\n\n// ----- modulo ----- //\n\nutils.modulo = function( num, div ) {\n return ( ( num % div ) + div ) % div;\n};\n\n// ----- makeArray ----- //\n\nvar arraySlice = Array.prototype.slice;\n\n// turn element or nodeList into an array\nutils.makeArray = function( obj ) {\n if ( Array.isArray( obj ) ) {\n // use object if already an array\n return obj;\n }\n // return empty array if undefined or null. #6\n if ( obj === null || obj === undefined ) {\n return [];\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n if ( isArrayLike ) {\n // convert nodeList to array\n return arraySlice.call( obj );\n }\n\n // array of single index\n return [ obj ];\n};\n\n// ----- removeFrom ----- //\n\nutils.removeFrom = function( ary, obj ) {\n var index = ary.indexOf( obj );\n if ( index != -1 ) {\n ary.splice( index, 1 );\n }\n};\n\n// ----- getParent ----- //\n\nutils.getParent = function( elem, selector ) {\n while ( elem.parentNode && elem != document.body ) {\n elem = elem.parentNode;\n if ( matchesSelector( elem, selector ) ) {\n return elem;\n }\n }\n};\n\n// ----- getQueryElement ----- //\n\n// use element as selector string\nutils.getQueryElement = function( elem ) {\n if ( typeof elem == 'string' ) {\n return document.querySelector( elem );\n }\n return elem;\n};\n\n// ----- handleEvent ----- //\n\n// enable .ontype to trigger from .addEventListener( elem, 'type' )\nutils.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// ----- filterFindElements ----- //\n\nutils.filterFindElements = function( elems, selector ) {\n // make array of elems\n elems = utils.makeArray( elems );\n var ffElems = [];\n\n elems.forEach( function( elem ) {\n // check that elem is an actual element\n if ( !( elem instanceof HTMLElement ) ) {\n return;\n }\n // add elem if no selector\n if ( !selector ) {\n ffElems.push( elem );\n return;\n }\n // filter & find items if we have a selector\n // filter\n if ( matchesSelector( elem, selector ) ) {\n ffElems.push( elem );\n }\n // find children\n var childElems = elem.querySelectorAll( selector );\n // concat childElems to filterFound array\n for ( var i=0; i < childElems.length; i++ ) {\n ffElems.push( childElems[i] );\n }\n });\n\n return ffElems;\n};\n\n// ----- debounceMethod ----- //\n\nutils.debounceMethod = function( _class, methodName, threshold ) {\n threshold = threshold || 100;\n // original method\n var method = _class.prototype[ methodName ];\n var timeoutName = methodName + 'Timeout';\n\n _class.prototype[ methodName ] = function() {\n var timeout = this[ timeoutName ];\n clearTimeout( timeout );\n\n var args = arguments;\n var _this = this;\n this[ timeoutName ] = setTimeout( function() {\n method.apply( _this, args );\n delete _this[ timeoutName ];\n }, threshold );\n };\n};\n\n// ----- docReady ----- //\n\nutils.docReady = function( callback ) {\n var readyState = document.readyState;\n if ( readyState == 'complete' || readyState == 'interactive' ) {\n // do async to allow for other scripts to run. metafizzy/flickity#441\n setTimeout( callback );\n } else {\n document.addEventListener( 'DOMContentLoaded', callback );\n }\n};\n\n// ----- htmlInit ----- //\n\n// http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/\nutils.toDashed = function( str ) {\n return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) {\n return $1 + '-' + $2;\n }).toLowerCase();\n};\n\nvar console = window.console;\n/**\n * allow user to initialize classes via [data-namespace] or .js-namespace class\n * htmlInit( Widget, 'widgetName' )\n * options are parsed from data-namespace-options\n */\nutils.htmlInit = function( WidgetClass, namespace ) {\n utils.docReady( function() {\n var dashedNamespace = utils.toDashed( namespace );\n var dataAttr = 'data-' + dashedNamespace;\n var dataAttrElems = document.querySelectorAll( '[' + dataAttr + ']' );\n var jsDashElems = document.querySelectorAll( '.js-' + dashedNamespace );\n var elems = utils.makeArray( dataAttrElems )\n .concat( utils.makeArray( jsDashElems ) );\n var dataOptionsAttr = dataAttr + '-options';\n var jQuery = window.jQuery;\n\n elems.forEach( function( elem ) {\n var attr = elem.getAttribute( dataAttr ) ||\n elem.getAttribute( dataOptionsAttr );\n var options;\n try {\n options = attr && JSON.parse( attr );\n } catch ( error ) {\n // log error, do not initialize\n if ( console ) {\n console.error( 'Error parsing ' + dataAttr + ' on ' + elem.className +\n ': ' + error );\n }\n return;\n }\n // initialize\n var instance = new WidgetClass( elem, options );\n // make available via $().data('namespace')\n if ( jQuery ) {\n jQuery.data( elem, namespace, instance );\n }\n });\n\n });\n};\n\n// ----- ----- //\n\nreturn utils;\n\n}));\n","import getSize from 'get-size';\n\n('use strict');\n\nexport default function Cell(elem, parent) {\n this.element = elem;\n this.parent = parent;\n\n this.create();\n}\n\nvar proto = Cell.prototype;\n\nproto.create = function () {\n this.element.style.position = 'absolute';\n this.element.setAttribute('aria-hidden', 'true');\n this.x = 0;\n this.shift = 0;\n Array.from(this.element.querySelectorAll('*')).forEach((element) => {\n element.setAttribute('tabindex', '-1');\n });\n};\n\nproto.destroy = function () {\n // reset style\n this.unselect();\n this.element.style.position = '';\n var side = this.parent.originSide;\n this.element.style[side] = '';\n};\n\nproto.getSize = function () {\n this.size = getSize(this.element);\n};\n\nproto.setPosition = function (x) {\n this.x = x;\n this.updateTarget();\n this.renderPosition(x);\n};\n\n// setDefaultTarget v1 method, backwards compatibility, remove in v3\nproto.updateTarget = proto.setDefaultTarget = function () {\n var marginProperty =\n this.parent.originSide == 'left' ? 'marginLeft' : 'marginRight';\n this.target =\n this.x +\n this.size[marginProperty] +\n this.size.width * this.parent.cellAlign;\n};\n\nproto.renderPosition = function (x) {\n // render position of cell with in slider\n var side = this.parent.originSide;\n this.element.style[side] = this.parent.getPositionValue(x);\n};\n\nproto.select = function () {\n this.element.classList.add('is-selected');\n this.element.removeAttribute('aria-hidden');\n Array.from(this.element.querySelectorAll('*')).forEach((element) => {\n element.removeAttribute('tabindex');\n });\n};\n\nproto.unselect = function () {\n this.element.classList.remove('is-selected');\n this.element.setAttribute('aria-hidden', 'true');\n Array.from(this.element.querySelectorAll('*')).forEach((element) => {\n element.setAttribute('tabindex', '-1');\n });\n};\n\n/**\n * @param {Integer} factor - 0, 1, or -1\n **/\nproto.wrapShift = function (shift) {\n this.shift = shift;\n this.renderPosition(this.x + this.parent.slideableWidth * shift);\n};\n\nproto.remove = function () {\n this.element.parentNode.removeChild(this.element);\n};\n","'use strict';\n\nexport default function Slide(parent) {\n this.parent = parent;\n this.isOriginLeft = parent.originSide == 'left';\n this.cells = [];\n this.outerWidth = 0;\n this.height = 0;\n}\n\nvar proto = Slide.prototype;\n\nproto.addCell = function (cell) {\n this.cells.push(cell);\n this.outerWidth += cell.size.outerWidth;\n this.height = Math.max(cell.size.outerHeight, this.height);\n // first cell stuff\n if (this.cells.length == 1) {\n this.x = cell.x; // x comes from first cell\n var beginMargin = this.isOriginLeft ? 'marginLeft' : 'marginRight';\n this.firstMargin = cell.size[beginMargin];\n }\n};\n\nproto.updateTarget = function () {\n var endMargin = this.isOriginLeft ? 'marginRight' : 'marginLeft';\n var lastCell = this.getLastCell();\n var lastMargin = lastCell ? lastCell.size[endMargin] : 0;\n var slideWidth = this.outerWidth - (this.firstMargin + lastMargin);\n this.target = this.x + this.firstMargin + slideWidth * this.parent.cellAlign;\n};\n\nproto.getLastCell = function () {\n return this.cells[this.cells.length - 1];\n};\n\nproto.select = function () {\n this.cells.forEach(function (cell) {\n cell.select();\n });\n};\n\nproto.unselect = function () {\n this.cells.forEach(function (cell) {\n cell.unselect();\n });\n};\n\nproto.getCellElements = function () {\n return this.cells.map(function (cell) {\n return cell.element;\n });\n};\n","import utils from 'fizzy-ui-utils';\n\nconst proto = {};\n\nproto.startAnimation = function () {\n if (this.isAnimating) {\n return;\n }\n\n this.isAnimating = true;\n this.restingFrames = 0;\n this.animate();\n};\n\nproto.animate = function () {\n this.applyDragForce();\n this.applySelectedAttraction();\n\n var previousX = this.x;\n\n this.integratePhysics();\n this.positionSlider();\n this.settle(previousX);\n // animate next frame\n if (this.isAnimating) {\n var _this = this;\n requestAnimationFrame(function animateFrame() {\n _this.animate();\n });\n }\n};\n\nproto.positionSlider = function () {\n var x = this.x;\n // wrap position around\n if (this.options.wrapAround && this.cells.length > 1) {\n x = utils.modulo(x, this.slideableWidth);\n x = x - this.slideableWidth;\n this.shiftWrapCells(x);\n }\n\n this.setTranslateX(x, this.isAnimating);\n this.dispatchScrollEvent();\n};\n\nproto.setTranslateX = function (x, is3d) {\n x += this.cursorPosition;\n // reverse if right-to-left and using transform\n x = this.options.rightToLeft ? -x : x;\n var translateX = this.getPositionValue(x);\n // use 3D tranforms for hardware acceleration on iOS\n // but use 2D when settled, for better font-rendering\n this.slider.style.transform = is3d\n ? 'translate3d(' + translateX + ',0,0)'\n : 'translateX(' + translateX + ')';\n};\n\nproto.dispatchScrollEvent = function () {\n var firstSlide = this.slides[0];\n if (!firstSlide) {\n return;\n }\n var positionX = -this.x - firstSlide.target;\n var progress = positionX / this.slidesWidth;\n this.dispatchEvent('scroll', null, [progress, positionX]);\n};\n\nproto.positionSliderAtSelected = function () {\n if (!this.cells.length) {\n return;\n }\n this.x = -this.selectedSlide.target;\n this.velocity = 0; // stop wobble\n this.positionSlider();\n};\n\nproto.getPositionValue = function (position) {\n if (this.options.percentPosition) {\n // percent position, round to 2 digits, like 12.34%\n return Math.round((position / this.size.innerWidth) * 10000) * 0.01 + '%';\n } else {\n // pixel positioning\n return Math.round(position) + 'px';\n }\n};\n\nproto.settle = function (previousX) {\n // keep track of frames where x hasn't moved\n if (\n !this.isPointerDown &&\n Math.round(this.x * 100) == Math.round(previousX * 100)\n ) {\n this.restingFrames++;\n }\n // stop animating if resting for 3 or more frames\n if (this.restingFrames > 2) {\n this.isAnimating = false;\n delete this.isFreeScrolling;\n // render position with translateX when settled\n this.positionSlider();\n this.dispatchEvent('settle', null, [this.selectedIndex]);\n }\n};\n\nproto.shiftWrapCells = function (x) {\n // shift before cells\n var beforeGap = this.cursorPosition + x;\n this._shiftCells(this.beforeShiftCells, beforeGap, -1);\n // shift after cells\n var afterGap =\n this.size.innerWidth - (x + this.slideableWidth + this.cursorPosition);\n this._shiftCells(this.afterShiftCells, afterGap, 1);\n};\n\nproto._shiftCells = function (cells, gap, shift) {\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n var cellShift = gap > 0 ? shift : 0;\n cell.wrapShift(cellShift);\n gap -= cell.size.outerWidth;\n }\n};\n\nproto._unshiftCells = function (cells) {\n if (!cells || !cells.length) {\n return;\n }\n for (var i = 0; i < cells.length; i++) {\n cells[i].wrapShift(0);\n }\n};\n\n// -------------------------- physics -------------------------- //\n\nproto.integratePhysics = function () {\n this.x += this.velocity;\n this.velocity *= this.getFrictionFactor();\n};\n\nproto.applyForce = function (force) {\n this.velocity += force;\n};\n\nproto.getFrictionFactor = function () {\n return (\n 1 - this.options[this.isFreeScrolling ? 'freeScrollFriction' : 'friction']\n );\n};\n\nproto.getRestingPosition = function () {\n // my thanks to Steven Wittens, who simplified this math greatly\n return this.x + this.velocity / (1 - this.getFrictionFactor());\n};\n\nproto.applyDragForce = function () {\n if (!this.isDraggable || !this.isPointerDown) {\n return;\n }\n // change the position to drag position by applying force\n var dragVelocity = this.dragX - this.x;\n var dragForce = dragVelocity - this.velocity;\n this.applyForce(dragForce);\n};\n\nproto.applySelectedAttraction = function () {\n // do not attract if pointer down or no slides\n var dragDown = this.isDraggable && this.isPointerDown;\n if (dragDown || this.isFreeScrolling || !this.slides.length) {\n return;\n }\n var distance = this.selectedSlide.target * -1 - this.x;\n var force = distance * this.options.selectedAttraction;\n this.applyForce(force);\n};\n\nexport default proto;\n","import EvEmitter from 'ev-emitter';\nimport getSize from 'get-size';\nimport utils from 'fizzy-ui-utils';\nimport Cell from './cell';\nimport Slide from './slide';\nimport animatePrototype from './animate';\n\n('use strict');\n\n// vars\nvar getComputedStyle = window.getComputedStyle;\nvar console = window.console;\n\nfunction moveElements(elems, toElem) {\n elems = utils.makeArray(elems);\n while (elems.length) {\n toElem.appendChild(elems.shift());\n }\n}\n\n// -------------------------- Flickity -------------------------- //\n\n// globally unique identifiers\nvar GUID = 0;\n// internal store of all Flickity intances\nvar instances = {};\n\nexport default function Flickity(element, options) {\n var queryElement = utils.getQueryElement(element);\n if (!queryElement) {\n if (console) {\n console.error('Bad element for Flickity: ' + (queryElement || element));\n }\n return;\n }\n this.element = queryElement;\n // do not initialize twice on same element\n if (this.element.flickityGUID) {\n var instance = instances[this.element.flickityGUID];\n if (!instances[this.element.flickityGUID]) return;\n instance.option(options);\n return instance;\n }\n\n // options\n this.options = utils.extend({}, this.constructor.defaults);\n this.option(options);\n\n // kick things off\n this._create();\n}\n\nFlickity.defaults = {\n accessibility: true,\n // adaptiveHeight: false,\n cellAlign: 'center',\n // cellSelector: undefined,\n // contain: false,\n freeScrollFriction: 0.075, // friction when free-scrolling\n friction: 0.28, // friction when selecting\n namespaceJQueryEvents: true,\n // initialIndex: 0,\n percentPosition: true,\n resize: true,\n selectedAttraction: 0.025,\n setGallerySize: true,\n // watchCSS: false,\n // wrapAround: false\n};\n\n// hash of methods triggered on _create()\nFlickity.createMethods = [];\n\nvar proto = Flickity.prototype;\n// inherit EventEmitter\nutils.extend(proto, EvEmitter.prototype);\n\nproto._create = function () {\n // add id for Flickity.data\n var id = (this.guid = ++GUID);\n this.element.flickityGUID = id; // expando\n instances[id] = this; // associate via id\n // initial properties\n this.selectedIndex = 0;\n // how many frames slider has been in same position\n this.restingFrames = 0;\n // initial physics properties\n this.x = 0;\n this.velocity = 0;\n this.originSide = this.options.rightToLeft ? 'right' : 'left';\n // create viewport & slider\n this.viewport = document.createElement('div');\n this.viewport.className = 'flickity-viewport';\n this._createSlider();\n\n if (this.options.resize || this.options.watchCSS) {\n window.addEventListener('resize', this);\n }\n\n // add listeners from on option\n for (var eventName in this.options.on) {\n var listener = this.options.on[eventName];\n this.on(eventName, listener);\n }\n\n Flickity.createMethods.forEach(function (method) {\n this[method]();\n }, this);\n\n if (this.options.watchCSS) {\n this.watchCSS();\n } else {\n this.activate();\n }\n};\n\n/**\n * set options\n * @param {Object} opts\n */\nproto.option = function (opts) {\n utils.extend(this.options, opts);\n};\n\nproto.activate = function () {\n if (this.isActive) {\n return;\n }\n this.isActive = true;\n this.element.classList.add('flickity-enabled');\n if (this.options.rightToLeft) {\n this.element.classList.add('flickity-rtl');\n }\n\n this.getSize();\n // move initial cell elements so they can be loaded as cells\n var cellElems = this.element.children; //this._filterFindCellElements( this.element.children );\n moveElements(cellElems, this.slider);\n this.viewport.appendChild(this.slider);\n this.element.appendChild(this.viewport);\n // get cells from children\n this.reloadCells();\n\n if (this.options.accessibility) {\n // allow element to focusable\n this.element.tabIndex = 0;\n // listen for key presses\n this.element.addEventListener('keydown', this);\n }\n\n this.emitEvent('activate');\n this.selectInitialIndex();\n // flag for initial activation, for using initialIndex\n this.isInitActivated = true;\n // ready event. #493\n this.dispatchEvent('ready');\n};\n\n// slider positions the cells\nproto._createSlider = function () {\n // slider element does all the positioning\n var slider = document.createElement('div');\n slider.className = 'flickity-slider';\n slider.style[this.originSide] = 0;\n this.slider = slider;\n};\n\nproto._filterFindCellElements = function (elems) {\n return utils.filterFindElements(elems, this.options.cellSelector);\n};\n\n// goes through all children\nproto.reloadCells = function () {\n // collection of item elements\n this.cells = this._makeCells(\n this.slider.getRootNode().host\n ? this.slider.getRootNode().host.children\n : this.slider.children\n );\n this.positionCells();\n this._getWrapShiftCells();\n this.setGallerySize();\n};\n\n/**\n * turn elements into Flickity.Cells\n * @param {Array or NodeList or HTMLElement} elems\n * @returns {Array} items - collection of new Flickity Cells\n */\nproto._makeCells = function (elems) {\n var cellElems = this._filterFindCellElements(elems);\n\n // create new Flickity for collection\n var cells = cellElems.map(function (cellElem) {\n return new Cell(cellElem, this);\n }, this);\n\n return cells;\n};\n\nproto.getLastCell = function () {\n return this.cells[this.cells.length - 1];\n};\n\nproto.getLastSlide = function () {\n return this.slides[this.slides.length - 1];\n};\n\n// positions all cells\nproto.positionCells = function () {\n // size all cells\n this._sizeCells(this.cells);\n // position all cells\n this._positionCells(0);\n};\n\n/**\n * position certain cells\n * @param {Integer} index - which cell to start with\n */\nproto._positionCells = function (index) {\n index = index || 0;\n // also measure maxCellHeight\n // start 0 if positioning all cells\n this.maxCellHeight = index ? this.maxCellHeight || 0 : 0;\n var cellX = 0;\n // get cellX\n if (index > 0) {\n var startCell = this.cells[index - 1];\n cellX = startCell.x + startCell.size.outerWidth;\n }\n var len = this.cells.length;\n for (var i = index; i < len; i++) {\n var cell = this.cells[i];\n cell.setPosition(cellX);\n cellX += cell.size.outerWidth;\n this.maxCellHeight = Math.max(cell.size.outerHeight, this.maxCellHeight);\n }\n // keep track of cellX for wrap-around\n this.slideableWidth = cellX;\n // slides\n this.updateSlides();\n // contain slides target\n this._containSlides();\n // update slidesWidth\n this.slidesWidth = len\n ? this.getLastSlide().target - this.slides[0].target\n : 0;\n};\n\n/**\n * cell.getSize() on multiple cells\n * @param {Array} cells\n */\nproto._sizeCells = function (cells) {\n cells.forEach(function (cell) {\n cell.getSize();\n });\n};\n\n// -------------------------- -------------------------- //\n\nproto.updateSlides = function () {\n this.slides = [];\n if (!this.cells.length) {\n return;\n }\n\n var slide = new Slide(this);\n this.slides.push(slide);\n var isOriginLeft = this.originSide == 'left';\n var nextMargin = isOriginLeft ? 'marginRight' : 'marginLeft';\n\n var canCellFit = this._getCanCellFit();\n\n this.cells.forEach(function (cell, i) {\n // just add cell if first cell in slide\n if (!slide.cells.length) {\n slide.addCell(cell);\n return;\n }\n\n var slideWidth =\n slide.outerWidth -\n slide.firstMargin +\n (cell.size.outerWidth - cell.size[nextMargin]);\n\n if (canCellFit.call(this, i, slideWidth)) {\n slide.addCell(cell);\n } else {\n // doesn't fit, new slide\n slide.updateTarget();\n\n slide = new Slide(this);\n this.slides.push(slide);\n slide.addCell(cell);\n }\n }, this);\n // last slide\n slide.updateTarget();\n // update .selectedSlide\n this.updateSelectedSlide();\n};\n\nproto._getCanCellFit = function () {\n var groupCells = this.options.groupCells;\n if (!groupCells) {\n return function () {\n return false;\n };\n } else if (typeof groupCells == 'number') {\n // group by number. 3 -> [0,1,2], [3,4,5], ...\n var number = parseInt(groupCells, 10);\n return function (i) {\n return i % number !== 0;\n };\n }\n // default, group by width of slide\n // parse '75%\n var percentMatch =\n typeof groupCells == 'string' && groupCells.match(/^(\\d+)%$/);\n var percent = percentMatch ? parseInt(percentMatch[1], 10) / 100 : 1;\n return function (i, slideWidth) {\n return slideWidth <= (this.size.innerWidth + 1) * percent;\n };\n};\n\n// alias _init for jQuery plugin .flickity()\nproto._init = proto.reposition = function () {\n this.positionCells();\n this.positionSliderAtSelected();\n};\n\nproto.getSize = function () {\n this.size = getSize(this.element);\n this.setCellAlign();\n this.cursorPosition = this.size.innerWidth * this.cellAlign;\n};\n\nvar cellAlignShorthands = {\n // cell align, then based on origin side\n center: {\n left: 0.5,\n right: 0.5,\n },\n left: {\n left: 0,\n right: 1,\n },\n right: {\n right: 0,\n left: 1,\n },\n};\n\nproto.setCellAlign = function () {\n var shorthand = cellAlignShorthands[this.options.cellAlign];\n this.cellAlign = shorthand\n ? shorthand[this.originSide]\n : this.options.cellAlign;\n};\n\nproto.setGallerySize = function () {\n if (this.options.setGallerySize) {\n var height =\n this.options.adaptiveHeight && this.selectedSlide\n ? this.selectedSlide.height\n : this.maxCellHeight;\n this.viewport.style.height = height + 'px';\n }\n};\n\nproto._getWrapShiftCells = function () {\n // only for wrap-around\n if (!this.options.wrapAround) {\n return;\n }\n // unshift previous cells\n this._unshiftCells(this.beforeShiftCells);\n this._unshiftCells(this.afterShiftCells);\n // get before cells\n // initial gap\n var gapX = this.cursorPosition;\n var cellIndex = this.cells.length - 1;\n this.beforeShiftCells = this._getGapCells(gapX, cellIndex, -1);\n // get after cells\n // ending gap between last cell and end of gallery viewport\n gapX = this.size.innerWidth - this.cursorPosition;\n // start cloning at first cell, working forwards\n this.afterShiftCells = this._getGapCells(gapX, 0, 1);\n};\n\nproto._getGapCells = function (gapX, cellIndex, increment) {\n // keep adding cells until the cover the initial gap\n var cells = [];\n while (gapX > 0) {\n var cell = this.cells[cellIndex];\n if (!cell) {\n break;\n }\n cells.push(cell);\n cellIndex += increment;\n gapX -= cell.size.outerWidth;\n }\n return cells;\n};\n\n// ----- contain ----- //\n\n// contain cell targets so no excess sliding\nproto._containSlides = function () {\n if (!this.options.contain || this.options.wrapAround || !this.cells.length) {\n return;\n }\n var isRightToLeft = this.options.rightToLeft;\n var beginMargin = isRightToLeft ? 'marginRight' : 'marginLeft';\n var endMargin = isRightToLeft ? 'marginLeft' : 'marginRight';\n var contentWidth = this.slideableWidth - this.getLastCell().size[endMargin];\n // content is less than gallery size\n var isContentSmaller = contentWidth < this.size.innerWidth;\n // bounds\n var beginBound = this.cursorPosition + this.cells[0].size[beginMargin];\n var endBound = contentWidth - this.size.innerWidth * (1 - this.cellAlign);\n // contain each cell target\n this.slides.forEach(function (slide) {\n if (isContentSmaller) {\n // all cells fit inside gallery\n slide.target = contentWidth * this.cellAlign;\n } else {\n // contain to bounds\n slide.target = Math.max(slide.target, beginBound);\n slide.target = Math.min(slide.target, endBound);\n }\n }, this);\n};\n\n// ----- ----- //\n\n/**\n * emits events via eventEmitter and jQuery events\n * @param {String} type - name of event\n * @param {Event} event - original event\n * @param {Array} args - extra arguments\n */\nproto.dispatchEvent = function (type, event, args) {\n var emitArgs = event ? [event].concat(args) : args;\n this.emitEvent(type, emitArgs);\n};\n\n// -------------------------- select -------------------------- //\n\n/**\n * @param {Integer} index - index of the slide\n * @param {Boolean} isWrap - will wrap-around to last/first if at the end\n * @param {Boolean} isInstant - will immediately set position at selected cell\n */\nproto.select = function (index, isWrap, isInstant) {\n if (!this.isActive) {\n return;\n }\n index = parseInt(index, 10);\n this._wrapSelect(index);\n\n if (this.options.wrapAround || isWrap) {\n index = utils.modulo(index, this.slides.length);\n }\n // bail if invalid index\n if (!this.slides[index]) {\n return;\n }\n var prevIndex = this.selectedIndex;\n this.selectedIndex = index;\n this.updateSelectedSlide();\n if (isInstant) {\n this.positionSliderAtSelected();\n } else {\n this.startAnimation();\n }\n if (this.options.adaptiveHeight) {\n this.setGallerySize();\n }\n // events\n this.dispatchEvent('select', null, [index]);\n // change event if new index\n if (index != prevIndex) {\n this.dispatchEvent('change', null, [index]);\n }\n // old v1 event name, remove in v3\n this.dispatchEvent('cellSelect');\n};\n\n// wraps position for wrapAround, to move to closest slide. #113\nproto._wrapSelect = function (index) {\n var len = this.slides.length;\n var isWrapping = this.options.wrapAround && len > 1;\n if (!isWrapping) {\n return index;\n }\n var wrapIndex = utils.modulo(index, len);\n // go to shortest\n var delta = Math.abs(wrapIndex - this.selectedIndex);\n var backWrapDelta = Math.abs(wrapIndex + len - this.selectedIndex);\n var forewardWrapDelta = Math.abs(wrapIndex - len - this.selectedIndex);\n if (!this.isDragSelect && backWrapDelta < delta) {\n index += len;\n } else if (!this.isDragSelect && forewardWrapDelta < delta) {\n index -= len;\n }\n // wrap position so slider is within normal area\n if (index < 0) {\n this.x -= this.slideableWidth;\n } else if (index >= len) {\n this.x += this.slideableWidth;\n }\n};\n\nproto.previous = function (isWrap, isInstant) {\n this.select(this.selectedIndex - 1, isWrap, isInstant);\n};\n\nproto.next = function (isWrap, isInstant) {\n this.select(this.selectedIndex + 1, isWrap, isInstant);\n};\n\nproto.updateSelectedSlide = function () {\n var slide = this.slides[this.selectedIndex];\n // selectedIndex could be outside of slides, if triggered before resize()\n if (!slide) {\n return;\n }\n // unselect previous selected slide\n this.unselectSelectedSlide();\n // update new selected slide\n this.selectedSlide = slide;\n slide.select();\n this.selectedCells = slide.cells;\n this.selectedElements = slide.getCellElements();\n // HACK: selectedCell & selectedElement is first cell in slide, backwards compatibility\n // Remove in v3?\n this.selectedCell = slide.cells[0];\n this.selectedElement = this.selectedElements[0];\n};\n\nproto.unselectSelectedSlide = function () {\n if (this.selectedSlide) {\n this.selectedSlide.unselect();\n }\n};\n\nproto.selectInitialIndex = function () {\n var initialIndex = this.options.initialIndex;\n // already activated, select previous selectedIndex\n if (this.isInitActivated) {\n this.select(this.selectedIndex, false, true);\n return;\n }\n // select with selector string\n if (initialIndex && typeof initialIndex == 'string') {\n var cell = this.queryCell(initialIndex);\n if (cell) {\n this.selectCell(initialIndex, false, true);\n return;\n }\n }\n\n var index = 0;\n // select with number\n if (initialIndex && this.slides[initialIndex]) {\n index = initialIndex;\n }\n // select instantly\n this.select(index, false, true);\n};\n\n/**\n * select slide from number or cell element\n * @param {Element or Number} elem\n */\nproto.selectCell = function (value, isWrap, isInstant) {\n // get cell\n var cell = this.queryCell(value);\n if (!cell) {\n return;\n }\n\n var index = this.getCellSlideIndex(cell);\n this.select(index, isWrap, isInstant);\n};\n\nproto.getCellSlideIndex = function (cell) {\n // get index of slides that has cell\n for (var i = 0; i < this.slides.length; i++) {\n var slide = this.slides[i];\n var index = slide.cells.indexOf(cell);\n if (index != -1) {\n return i;\n }\n }\n};\n\n// -------------------------- get cells -------------------------- //\n\n/**\n * get Flickity.Cell, given an Element\n * @param {Element} elem\n * @returns {Flickity.Cell} item\n */\nproto.getCell = function (elem) {\n // loop through cells to get the one that matches\n for (var i = 0; i < this.cells.length; i++) {\n var cell = this.cells[i];\n if (cell.element == elem) {\n return cell;\n }\n }\n};\n\n/**\n * get collection of Flickity.Cells, given Elements\n * @param {Element, Array, NodeList} elems\n * @returns {Array} cells - Flickity.Cells\n */\nproto.getCells = function (elems) {\n elems = utils.makeArray(elems);\n var cells = [];\n elems.forEach(function (elem) {\n var cell = this.getCell(elem);\n if (cell) {\n cells.push(cell);\n }\n }, this);\n return cells;\n};\n\n/**\n * get cell elements\n * @returns {Array} cellElems\n */\nproto.getCellElements = function () {\n return this.cells.map(function (cell) {\n return cell.element;\n });\n};\n\n/**\n * get parent cell from an element\n * @param {Element} elem\n * @returns {Flickit.Cell} cell\n */\nproto.getParentCell = function (elem) {\n // first check if elem is cell\n var cell = this.getCell(elem);\n if (cell) {\n return cell;\n }\n // try to get parent cell elem\n elem = utils.getParent(elem, '.flickity-slider > *');\n return this.getCell(elem);\n};\n\n/**\n * get cells adjacent to a slide\n * @param {Integer} adjCount - number of adjacent slides\n * @param {Integer} index - index of slide to start\n * @returns {Array} cells - array of Flickity.Cells\n */\nproto.getAdjacentCellElements = function (adjCount, index) {\n if (!adjCount) {\n return this.selectedSlide.getCellElements();\n }\n index = index === undefined ? this.selectedIndex : index;\n\n var len = this.slides.length;\n if (1 + adjCount * 2 >= len) {\n return this.getCellElements();\n }\n\n var cellElems = [];\n for (var i = index - adjCount; i <= index + adjCount; i++) {\n var slideIndex = this.options.wrapAround ? utils.modulo(i, len) : i;\n var slide = this.slides[slideIndex];\n if (slide) {\n cellElems = cellElems.concat(slide.getCellElements());\n }\n }\n return cellElems;\n};\n\n/**\n * select slide from number or cell element\n * @param {Element, Selector String, or Number} selector\n */\nproto.queryCell = function (selector) {\n if (typeof selector == 'number') {\n // use number as index\n return this.cells[selector];\n }\n if (typeof selector == 'string') {\n // do not select invalid selectors from hash: #123, #/. #791\n if (selector.match(/^[#\\.]?[\\d\\/]/)) {\n return;\n }\n // use string as selector, get element\n selector = this.element.querySelector(selector);\n }\n // get cell from element\n return this.getCell(selector);\n};\n\n// -------------------------- events -------------------------- //\n\nproto.uiChange = function () {\n this.emitEvent('uiChange');\n};\n\n// keep focus on element when child UI elements are clicked\nproto.childUIPointerDown = function (event) {\n // HACK iOS does not allow touch events to bubble up?!\n if (event.type != 'touchstart') {\n event.preventDefault();\n }\n this.focus();\n};\n\n// ----- resize ----- //\n\nproto.onresize = function () {\n this.watchCSS();\n this.resize();\n};\n\nutils.debounceMethod(Flickity, 'onresize', 150);\n\nproto.resize = function () {\n if (!this.isActive) {\n return;\n }\n this.getSize();\n // wrap values\n if (this.options.wrapAround) {\n this.x = utils.modulo(this.x, this.slideableWidth);\n }\n this.positionCells();\n this._getWrapShiftCells();\n this.setGallerySize();\n this.emitEvent('resize');\n // update selected index for group slides, instant\n // TODO: position can be lost between groups of various numbers\n var selectedElement = this.selectedElements && this.selectedElements[0];\n this.selectCell(selectedElement, false, true);\n};\n\n// watches the :after property, activates/deactivates\nproto.watchCSS = function () {\n var watchOption = this.options.watchCSS;\n if (!watchOption) {\n return;\n }\n\n var afterContent = getComputedStyle(this.element, ':after').content;\n // activate if :after { content: 'flickity' }\n if (afterContent.indexOf('flickity') != -1) {\n this.activate();\n } else {\n this.deactivate();\n }\n};\n\n// ----- keydown ----- //\n\n// go previous/next if left/right keys pressed\nproto.onkeydown = function (event) {\n // only work if element is in focus\n var isNotFocused =\n document.activeElement && document.activeElement != this.element;\n if (!this.options.accessibility || isNotFocused) {\n return;\n }\n\n var handler = Flickity.keyboardHandlers[event.keyCode];\n if (handler) {\n handler.call(this);\n }\n};\n\nFlickity.keyboardHandlers = {\n // left arrow\n 37: function () {\n var leftMethod = this.options.rightToLeft ? 'next' : 'previous';\n this.uiChange();\n this[leftMethod]();\n },\n // right arrow\n 39: function () {\n var rightMethod = this.options.rightToLeft ? 'previous' : 'next';\n this.uiChange();\n this[rightMethod]();\n },\n};\n\n// ----- focus ----- //\n\nproto.focus = function () {\n // TODO remove scrollTo once focus options gets more support\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#Browser_compatibility\n var prevScrollY = window.pageYOffset;\n this.element.focus({ preventScroll: true });\n // hack to fix scroll jump after focus, #76\n if (window.pageYOffset != prevScrollY) {\n window.scrollTo(window.pageXOffset, prevScrollY);\n }\n};\n\n// -------------------------- destroy -------------------------- //\n\n// deactivate all Flickity functionality, but keep stuff available\nproto.deactivate = function () {\n if (!this.isActive) {\n return;\n }\n this.element.classList.remove('flickity-enabled');\n this.element.classList.remove('flickity-rtl');\n this.unselectSelectedSlide();\n // destroy cells\n this.cells.forEach(function (cell) {\n cell.destroy();\n });\n this.element.removeChild(this.viewport);\n // move child elements back into element\n moveElements(this.slider.children, this.element);\n if (this.options.accessibility) {\n this.element.removeAttribute('tabIndex');\n this.element.removeEventListener('keydown', this);\n }\n // set flags\n this.isActive = false;\n this.emitEvent('deactivate');\n};\n\nproto.destroy = function () {\n this.deactivate();\n window.removeEventListener('resize', this);\n this.allOff();\n this.emitEvent('destroy');\n delete this.element.flickityGUID;\n delete instances[this.guid];\n};\n\n// -------------------------- prototype -------------------------- //\n\nutils.extend(proto, animatePrototype);\n\n// -------------------------- extras -------------------------- //\n\n/**\n * get Flickity instance from element\n * @param {Element} elem\n * @returns {Flickity}\n */\nFlickity.data = function (elem) {\n elem = utils.getQueryElement(elem);\n var id = elem && elem.flickityGUID;\n return id && instances[id];\n};\n\nutils.htmlInit(Flickity, 'flickity');\n\nFlickity.Cell = Cell;\nFlickity.Slide = Slide;\n","/*!\n * Unipointer v2.4.0\n * base class for doing one thing with pointer event\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*global define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter'\n ], function( EvEmitter ) {\n return factory( window, EvEmitter );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter')\n );\n } else {\n // browser global\n window.Unipointer = factory(\n window,\n window.EvEmitter\n );\n }\n\n}( window, function factory( window, EvEmitter ) {\n\n'use strict';\n\nfunction noop() {}\n\nfunction Unipointer() {}\n\n// inherit EvEmitter\nvar proto = Unipointer.prototype = Object.create( EvEmitter.prototype );\n\nproto.bindStartEvent = function( elem ) {\n this._bindStartEvent( elem, true );\n};\n\nproto.unbindStartEvent = function( elem ) {\n this._bindStartEvent( elem, false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd - remove if falsey\n */\nproto._bindStartEvent = function( elem, isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n\n // default to mouse events\n var startEvent = 'mousedown';\n if ( 'ontouchstart' in window ) {\n // HACK prefer Touch Events as you can preventDefault on touchstart to\n // disable scroll in iOS & mobile Chrome metafizzy/flickity#1177\n startEvent = 'touchstart';\n } else if ( window.PointerEvent ) {\n // Pointer Events\n startEvent = 'pointerdown';\n }\n elem[ bindMethod ]( startEvent, this );\n};\n\n// trigger handler methods for events\nproto.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// returns the touch that we're keeping track of\nproto.getTouch = function( touches ) {\n for ( var i=0; i < touches.length; i++ ) {\n var touch = touches[i];\n if ( touch.identifier == this.pointerIdentifier ) {\n return touch;\n }\n }\n};\n\n// ----- start event ----- //\n\nproto.onmousedown = function( event ) {\n // dismiss clicks from right or middle buttons\n var button = event.button;\n if ( button && ( button !== 0 && button !== 1 ) ) {\n return;\n }\n this._pointerDown( event, event );\n};\n\nproto.ontouchstart = function( event ) {\n this._pointerDown( event, event.changedTouches[0] );\n};\n\nproto.onpointerdown = function( event ) {\n this._pointerDown( event, event );\n};\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto._pointerDown = function( event, pointer ) {\n // dismiss right click and other pointers\n // button = 0 is okay, 1-4 not\n if ( event.button || this.isPointerDown ) {\n return;\n }\n\n this.isPointerDown = true;\n // save pointer identifier to match up touch events\n this.pointerIdentifier = pointer.pointerId !== undefined ?\n // pointerId for pointer events, touch.indentifier for touch events\n pointer.pointerId : pointer.identifier;\n\n this.pointerDown( event, pointer );\n};\n\nproto.pointerDown = function( event, pointer ) {\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// hash of events to be bound after start event\nvar postStartEvents = {\n mousedown: [ 'mousemove', 'mouseup' ],\n touchstart: [ 'touchmove', 'touchend', 'touchcancel' ],\n pointerdown: [ 'pointermove', 'pointerup', 'pointercancel' ],\n};\n\nproto._bindPostStartEvents = function( event ) {\n if ( !event ) {\n return;\n }\n // get proper events to match start event\n var events = postStartEvents[ event.type ];\n // bind events to node\n events.forEach( function( eventName ) {\n window.addEventListener( eventName, this );\n }, this );\n // save these arguments\n this._boundPointerEvents = events;\n};\n\nproto._unbindPostStartEvents = function() {\n // check for _boundEvents, in case dragEnd triggered twice (old IE8 bug)\n if ( !this._boundPointerEvents ) {\n return;\n }\n this._boundPointerEvents.forEach( function( eventName ) {\n window.removeEventListener( eventName, this );\n }, this );\n\n delete this._boundPointerEvents;\n};\n\n// ----- move event ----- //\n\nproto.onmousemove = function( event ) {\n this._pointerMove( event, event );\n};\n\nproto.onpointermove = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerMove( event, event );\n }\n};\n\nproto.ontouchmove = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerMove( event, touch );\n }\n};\n\n/**\n * pointer move\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerMove = function( event, pointer ) {\n this.pointerMove( event, pointer );\n};\n\n// public\nproto.pointerMove = function( event, pointer ) {\n this.emitEvent( 'pointerMove', [ event, pointer ] );\n};\n\n// ----- end event ----- //\n\n\nproto.onmouseup = function( event ) {\n this._pointerUp( event, event );\n};\n\nproto.onpointerup = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerUp( event, event );\n }\n};\n\nproto.ontouchend = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerUp( event, touch );\n }\n};\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerUp = function( event, pointer ) {\n this._pointerDone();\n this.pointerUp( event, pointer );\n};\n\n// public\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n};\n\n// ----- pointer done ----- //\n\n// triggered on pointer up & pointer cancel\nproto._pointerDone = function() {\n this._pointerReset();\n this._unbindPostStartEvents();\n this.pointerDone();\n};\n\nproto._pointerReset = function() {\n // reset properties\n this.isPointerDown = false;\n delete this.pointerIdentifier;\n};\n\nproto.pointerDone = noop;\n\n// ----- pointer cancel ----- //\n\nproto.onpointercancel = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerCancel( event, event );\n }\n};\n\nproto.ontouchcancel = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerCancel( event, touch );\n }\n};\n\n/**\n * pointer cancel\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerCancel = function( event, pointer ) {\n this._pointerDone();\n this.pointerCancel( event, pointer );\n};\n\n// public\nproto.pointerCancel = function( event, pointer ) {\n this.emitEvent( 'pointerCancel', [ event, pointer ] );\n};\n\n// ----- ----- //\n\n// utility function for getting x/y coords from event\nUnipointer.getPointerPoint = function( pointer ) {\n return {\n x: pointer.pageX,\n y: pointer.pageY\n };\n};\n\n// ----- ----- //\n\nreturn Unipointer;\n\n}));\n","/*!\n * Unidragger v2.4.0\n * Draggable base class\n * MIT license\n */\n\n/*jshint browser: true, unused: true, undef: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'unipointer/unipointer'\n ], function( Unipointer ) {\n return factory( window, Unipointer );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('unipointer')\n );\n } else {\n // browser global\n window.Unidragger = factory(\n window,\n window.Unipointer\n );\n }\n\n}( window, function factory( window, Unipointer ) {\n\n'use strict';\n\n// -------------------------- Unidragger -------------------------- //\n\nfunction Unidragger() {}\n\n// inherit Unipointer & EvEmitter\nvar proto = Unidragger.prototype = Object.create( Unipointer.prototype );\n\n// ----- bind start ----- //\n\nproto.bindHandles = function() {\n this._bindHandles( true );\n};\n\nproto.unbindHandles = function() {\n this._bindHandles( false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd\n */\nproto._bindHandles = function( isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n // bind each handle\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n var touchAction = isAdd ? this._touchActionValue : '';\n for ( var i=0; i < this.handles.length; i++ ) {\n var handle = this.handles[i];\n this._bindStartEvent( handle, isAdd );\n handle[ bindMethod ]( 'click', this );\n // touch-action: none to override browser touch gestures. metafizzy/flickity#540\n if ( window.PointerEvent ) {\n handle.style.touchAction = touchAction;\n }\n }\n};\n\n// prototype so it can be overwriteable by Flickity\nproto._touchActionValue = 'none';\n\n// ----- start event ----- //\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerDown = function( event, pointer ) {\n var isOkay = this.okayPointerDown( event );\n if ( !isOkay ) {\n return;\n }\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. flickity#842\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n\n event.preventDefault();\n this.pointerDownBlur();\n // bind move and end events\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// nodes that have text fields\nvar cursorNodes = {\n TEXTAREA: true,\n INPUT: true,\n SELECT: true,\n OPTION: true,\n};\n\n// input types that do not have text fields\nvar clickTypes = {\n radio: true,\n checkbox: true,\n button: true,\n submit: true,\n image: true,\n file: true,\n};\n\n// dismiss inputs with text fields. flickity#403, flickity#404\nproto.okayPointerDown = function( event ) {\n var isCursorNode = cursorNodes[ event.target.nodeName ];\n var isClickType = clickTypes[ event.target.type ];\n var isOkay = !isCursorNode || isClickType;\n if ( !isOkay ) {\n this._pointerReset();\n }\n return isOkay;\n};\n\n// kludge to blur previously focused input\nproto.pointerDownBlur = function() {\n var focused = document.activeElement;\n // do not blur body for IE10, metafizzy/flickity#117\n var canBlur = focused && focused.blur && focused != document.body;\n if ( canBlur ) {\n focused.blur();\n }\n};\n\n// ----- move event ----- //\n\n/**\n * drag move\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerMove = function( event, pointer ) {\n var moveVector = this._dragPointerMove( event, pointer );\n this.emitEvent( 'pointerMove', [ event, pointer, moveVector ] );\n this._dragMove( event, pointer, moveVector );\n};\n\n// base pointer move logic\nproto._dragPointerMove = function( event, pointer ) {\n var moveVector = {\n x: pointer.pageX - this.pointerDownPointer.pageX,\n y: pointer.pageY - this.pointerDownPointer.pageY\n };\n // start drag if pointer has moved far enough to start drag\n if ( !this.isDragging && this.hasDragStarted( moveVector ) ) {\n this._dragStart( event, pointer );\n }\n return moveVector;\n};\n\n// condition if pointer has moved far enough to start drag\nproto.hasDragStarted = function( moveVector ) {\n return Math.abs( moveVector.x ) > 3 || Math.abs( moveVector.y ) > 3;\n};\n\n// ----- end event ----- //\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n this._dragPointerUp( event, pointer );\n};\n\nproto._dragPointerUp = function( event, pointer ) {\n if ( this.isDragging ) {\n this._dragEnd( event, pointer );\n } else {\n // pointer didn't move enough for drag to start\n this._staticClick( event, pointer );\n }\n};\n\n// -------------------------- drag -------------------------- //\n\n// dragStart\nproto._dragStart = function( event, pointer ) {\n this.isDragging = true;\n // prevent clicks\n this.isPreventingClicks = true;\n this.dragStart( event, pointer );\n};\n\nproto.dragStart = function( event, pointer ) {\n this.emitEvent( 'dragStart', [ event, pointer ] );\n};\n\n// dragMove\nproto._dragMove = function( event, pointer, moveVector ) {\n // do not drag if not dragging yet\n if ( !this.isDragging ) {\n return;\n }\n\n this.dragMove( event, pointer, moveVector );\n};\n\nproto.dragMove = function( event, pointer, moveVector ) {\n event.preventDefault();\n this.emitEvent( 'dragMove', [ event, pointer, moveVector ] );\n};\n\n// dragEnd\nproto._dragEnd = function( event, pointer ) {\n // set flags\n this.isDragging = false;\n // re-enable clicking async\n setTimeout( function() {\n delete this.isPreventingClicks;\n }.bind( this ) );\n\n this.dragEnd( event, pointer );\n};\n\nproto.dragEnd = function( event, pointer ) {\n this.emitEvent( 'dragEnd', [ event, pointer ] );\n};\n\n// ----- onclick ----- //\n\n// handle all clicks and prevent clicks when dragging\nproto.onclick = function( event ) {\n if ( this.isPreventingClicks ) {\n event.preventDefault();\n }\n};\n\n// ----- staticClick ----- //\n\n// triggered after pointer down & up with no/tiny movement\nproto._staticClick = function( event, pointer ) {\n // ignore emulated mouse up clicks\n if ( this.isIgnoringMouseUp && event.type == 'mouseup' ) {\n return;\n }\n\n this.staticClick( event, pointer );\n\n // set flag for emulated clicks 300ms after touchend\n if ( event.type != 'mouseup' ) {\n this.isIgnoringMouseUp = true;\n // reset flag after 300ms\n setTimeout( function() {\n delete this.isIgnoringMouseUp;\n }.bind( this ), 400 );\n }\n};\n\nproto.staticClick = function( event, pointer ) {\n this.emitEvent( 'staticClick', [ event, pointer ] );\n};\n\n// ----- utils ----- //\n\nUnidragger.getPointerPoint = Unipointer.getPointerPoint;\n\n// ----- ----- //\n\nreturn Unidragger;\n\n}));\n","import Flickity from './flickity';\nimport utils from 'fizzy-ui-utils';\nimport Unidragger from 'unidragger';\n\n('use strict');\n\n// ----- defaults ----- //\n\nutils.extend(Flickity.defaults, {\n draggable: '>1',\n dragThreshold: 3,\n});\n\n// ----- create ----- //\n\nFlickity.createMethods.push('_createDrag');\n\n// -------------------------- drag prototype -------------------------- //\n\nvar proto = Flickity.prototype;\nutils.extend(proto, Unidragger.prototype);\nproto._touchActionValue = 'pan-y';\n\n// -------------------------- -------------------------- //\n\nvar isTouch = 'createTouch' in document;\nvar isTouchmoveScrollCanceled = false;\n\nproto._createDrag = function () {\n this.on('activate', this.onActivateDrag);\n this.on('uiChange', this._uiChangeDrag);\n this.on('deactivate', this.onDeactivateDrag);\n this.on('cellChange', this.updateDraggable);\n // TODO updateDraggable on resize? if groupCells & slides change\n // HACK - add seemingly innocuous handler to fix iOS 10 scroll behavior\n // #457, RubaXa/Sortable#973\n if (isTouch && !isTouchmoveScrollCanceled) {\n window.addEventListener('touchmove', function () {});\n isTouchmoveScrollCanceled = true;\n }\n};\n\nproto.onActivateDrag = function () {\n this.handles = [this.viewport];\n this.bindHandles();\n this.updateDraggable();\n};\n\nproto.onDeactivateDrag = function () {\n this.unbindHandles();\n this.element.classList.remove('is-draggable');\n};\n\nproto.updateDraggable = function () {\n // disable dragging if less than 2 slides. #278\n if (this.options.draggable == '>1') {\n this.isDraggable = this.slides.length > 1;\n } else {\n this.isDraggable = this.options.draggable;\n }\n if (this.isDraggable) {\n this.element.classList.add('is-draggable');\n } else {\n this.element.classList.remove('is-draggable');\n }\n};\n\n// backwards compatibility\nproto.bindDrag = function () {\n this.options.draggable = true;\n this.updateDraggable();\n};\n\nproto.unbindDrag = function () {\n this.options.draggable = false;\n this.updateDraggable();\n};\n\nproto._uiChangeDrag = function () {\n delete this.isFreeScrolling;\n};\n\n// -------------------------- pointer events -------------------------- //\n\nproto.pointerDown = function (event, pointer) {\n if (!this.isDraggable) {\n this._pointerDownDefault(event, pointer);\n return;\n }\n var isOkay = this.okayPointerDown(event);\n if (!isOkay) {\n return;\n }\n\n this._pointerDownPreventDefault(event);\n this.pointerDownFocus(event);\n // blur\n if (document.activeElement != this.element) {\n // do not blur if already focused\n this.pointerDownBlur();\n }\n\n // stop if it was moving\n this.dragX = this.x;\n this.viewport.classList.add('is-pointer-down');\n // track scrolling\n this.pointerDownScroll = getScrollPosition();\n window.addEventListener('scroll', this);\n\n this._pointerDownDefault(event, pointer);\n};\n\n// default pointerDown logic, used for staticClick\nproto._pointerDownDefault = function (event, pointer) {\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. #779\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n // bind move and end events\n this._bindPostStartEvents(event);\n this.dispatchEvent('pointerDown', event, [pointer]);\n};\n\nvar focusNodes = {\n INPUT: true,\n TEXTAREA: true,\n SELECT: true,\n};\n\nproto.pointerDownFocus = function (event) {\n var isFocusNode = focusNodes[event.target.nodeName];\n if (!isFocusNode) {\n this.focus();\n }\n};\n\nproto._pointerDownPreventDefault = function (event) {\n var isTouchStart = event.type == 'touchstart';\n var isTouchPointer = event.pointerType == 'touch';\n var isFocusNode = focusNodes[event.target.nodeName];\n if (!isTouchStart && !isTouchPointer && !isFocusNode) {\n event.preventDefault();\n }\n};\n\n// ----- move ----- //\n\nproto.hasDragStarted = function (moveVector) {\n return Math.abs(moveVector.x) > this.options.dragThreshold;\n};\n\n// ----- up ----- //\n\nproto.pointerUp = function (event, pointer) {\n delete this.isTouchScrolling;\n this.viewport.classList.remove('is-pointer-down');\n this.dispatchEvent('pointerUp', event, [pointer]);\n this._dragPointerUp(event, pointer);\n};\n\nproto.pointerDone = function () {\n window.removeEventListener('scroll', this);\n delete this.pointerDownScroll;\n};\n\n// -------------------------- dragging -------------------------- //\n\nproto.dragStart = function (event, pointer) {\n if (!this.isDraggable) {\n return;\n }\n this.dragStartPosition = this.x;\n this.startAnimation();\n window.removeEventListener('scroll', this);\n this.dispatchEvent('dragStart', event, [pointer]);\n};\n\nproto.pointerMove = function (event, pointer) {\n var moveVector = this._dragPointerMove(event, pointer);\n this.dispatchEvent('pointerMove', event, [pointer, moveVector]);\n this._dragMove(event, pointer, moveVector);\n};\n\nproto.dragMove = function (event, pointer, moveVector) {\n if (!this.isDraggable) {\n return;\n }\n event.preventDefault();\n\n this.previousDragX = this.dragX;\n // reverse if right-to-left\n var direction = this.options.rightToLeft ? -1 : 1;\n if (this.options.wrapAround) {\n // wrap around move. #589\n moveVector.x = moveVector.x % this.slideableWidth;\n }\n var dragX = this.dragStartPosition + moveVector.x * direction;\n\n if (!this.options.wrapAround && this.slides.length) {\n // slow drag\n var originBound = Math.max(-this.slides[0].target, this.dragStartPosition);\n dragX = dragX > originBound ? (dragX + originBound) * 0.5 : dragX;\n var endBound = Math.min(\n -this.getLastSlide().target,\n this.dragStartPosition\n );\n dragX = dragX < endBound ? (dragX + endBound) * 0.5 : dragX;\n }\n\n this.dragX = dragX;\n\n this.dragMoveTime = new Date();\n this.dispatchEvent('dragMove', event, [pointer, moveVector]);\n};\n\nproto.dragEnd = function (event, pointer) {\n if (!this.isDraggable) {\n return;\n }\n if (this.options.freeScroll) {\n this.isFreeScrolling = true;\n }\n // set selectedIndex based on where flick will end up\n var index = this.dragEndRestingSelect();\n\n if (this.options.freeScroll && !this.options.wrapAround) {\n // if free-scroll & not wrap around\n // do not free-scroll if going outside of bounding slides\n // so bounding slides can attract slider, and keep it in bounds\n var restingX = this.getRestingPosition();\n this.isFreeScrolling =\n -restingX > this.slides[0].target &&\n -restingX < this.getLastSlide().target;\n } else if (!this.options.freeScroll && index == this.selectedIndex) {\n // boost selection if selected index has not changed\n index += this.dragEndBoostSelect();\n }\n delete this.previousDragX;\n // apply selection\n // TODO refactor this, selecting here feels weird\n // HACK, set flag so dragging stays in correct direction\n this.isDragSelect = this.options.wrapAround;\n this.select(index);\n delete this.isDragSelect;\n this.dispatchEvent('dragEnd', event, [pointer]);\n};\n\nproto.dragEndRestingSelect = function () {\n var restingX = this.getRestingPosition();\n // how far away from selected slide\n var distance = Math.abs(this.getSlideDistance(-restingX, this.selectedIndex));\n // get closet resting going up and going down\n var positiveResting = this._getClosestResting(restingX, distance, 1);\n var negativeResting = this._getClosestResting(restingX, distance, -1);\n // use closer resting for wrap-around\n var index =\n positiveResting.distance < negativeResting.distance\n ? positiveResting.index\n : negativeResting.index;\n return index;\n};\n\n/**\n * given resting X and distance to selected cell\n * get the distance and index of the closest cell\n * @param {Number} restingX - estimated post-flick resting position\n * @param {Number} distance - distance to selected cell\n * @param {Integer} increment - +1 or -1, going up or down\n * @returns {Object} - { distance: {Number}, index: {Integer} }\n */\nproto._getClosestResting = function (restingX, distance, increment) {\n var index = this.selectedIndex;\n var minDistance = Infinity;\n var condition =\n this.options.contain && !this.options.wrapAround\n ? // if contain, keep going if distance is equal to minDistance\n function (d, md) {\n return d <= md;\n }\n : function (d, md) {\n return d < md;\n };\n while (condition(distance, minDistance)) {\n // measure distance to next cell\n index += increment;\n minDistance = distance;\n distance = this.getSlideDistance(-restingX, index);\n if (distance === null) {\n break;\n }\n distance = Math.abs(distance);\n }\n return {\n distance: minDistance,\n // selected was previous index\n index: index - increment,\n };\n};\n\n/**\n * measure distance between x and a slide target\n * @param {Number} x\n * @param {Integer} index - slide index\n */\nproto.getSlideDistance = function (x, index) {\n var len = this.slides.length;\n // wrap around if at least 2 slides\n var isWrapAround = this.options.wrapAround && len > 1;\n var slideIndex = isWrapAround ? utils.modulo(index, len) : index;\n var slide = this.slides[slideIndex];\n if (!slide) {\n return null;\n }\n // add distance for wrap-around slides\n var wrap = isWrapAround ? this.slideableWidth * Math.floor(index / len) : 0;\n return x - (slide.target + wrap);\n};\n\nproto.dragEndBoostSelect = function () {\n // do not boost if no previousDragX or dragMoveTime\n if (\n this.previousDragX === undefined ||\n !this.dragMoveTime ||\n // or if drag was held for 100 ms\n new Date() - this.dragMoveTime > 100\n ) {\n return 0;\n }\n\n var distance = this.getSlideDistance(-this.dragX, this.selectedIndex);\n var delta = this.previousDragX - this.dragX;\n if (distance > 0 && delta > 0) {\n // boost to next if moving towards the right, and positive velocity\n return 1;\n } else if (distance < 0 && delta < 0) {\n // boost to previous if moving towards the left, and negative velocity\n return -1;\n }\n return 0;\n};\n\n// ----- staticClick ----- //\n\nproto.staticClick = function (event, pointer) {\n // get clickedCell, if cell was clicked\n var clickedCell = this.getParentCell(event.target);\n var cellElem = clickedCell && clickedCell.element;\n var cellIndex = clickedCell && this.cells.indexOf(clickedCell);\n this.dispatchEvent('staticClick', event, [pointer, cellElem, cellIndex]);\n};\n\n// ----- scroll ----- //\n\nproto.onscroll = function () {\n var scroll = getScrollPosition();\n var scrollMoveX = this.pointerDownScroll.x - scroll.x;\n var scrollMoveY = this.pointerDownScroll.y - scroll.y;\n // cancel click/tap if scroll is too much\n if (Math.abs(scrollMoveX) > 3 || Math.abs(scrollMoveY) > 3) {\n this._pointerDone();\n }\n};\n\n// ----- utils ----- //\n\nfunction getScrollPosition() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset,\n };\n}\n\n// ----- ----- //\n","import Flickity from './flickity';\nimport Unipointer from 'unipointer';\nimport utils from 'fizzy-ui-utils';\n\n('use strict');\n\nvar svgURI = 'http://www.w3.org/2000/svg';\n\n// -------------------------- PrevNextButton -------------------------- //\n\nfunction PrevNextButton(direction, parent) {\n this.direction = direction;\n this.parent = parent;\n this.parentElement = this.parent.element.shadowRoot || this.parent.element;\n this._create();\n}\n\nPrevNextButton.prototype = Object.create(Unipointer.prototype);\n\nPrevNextButton.prototype._create = function () {\n // properties\n this.isEnabled = true;\n this.isPrevious = this.direction == -1;\n var leftDirection = this.parent.options.rightToLeft ? 1 : -1;\n this.isLeft = this.direction == leftDirection;\n\n var element = (this.element = document.createElement('button'));\n element.className = 'flickity-button flickity-prev-next-button';\n element.className += this.isPrevious ? ' previous' : ' next';\n // prevent button from submitting form http://stackoverflow.com/a/10836076/182183\n element.setAttribute('type', 'button');\n // init as disabled\n this.disable();\n\n element.setAttribute('aria-label', this.isPrevious ? 'Previous' : 'Next');\n\n // create arrow\n var svg = this.createSVG();\n element.appendChild(svg);\n // events\n this.parent.on('select', this.update.bind(this));\n this.on('pointerDown', this.parent.childUIPointerDown.bind(this.parent));\n};\n\nPrevNextButton.prototype.activate = function () {\n this.bindStartEvent(this.element);\n this.element.addEventListener('click', this);\n // add to DOM\n this.parentElement.appendChild(this.element);\n};\n\nPrevNextButton.prototype.deactivate = function () {\n // remove from DOM\n this.parentElement.removeChild(this.element);\n // click events\n this.unbindStartEvent(this.element);\n this.element.removeEventListener('click', this);\n};\n\nPrevNextButton.prototype.createSVG = function () {\n var svg = document.createElementNS(svgURI, 'svg');\n svg.setAttribute('class', 'flickity-button-icon');\n svg.setAttribute('viewBox', '0 0 100 100');\n var path = document.createElementNS(svgURI, 'path');\n var pathMovements = getArrowMovements(this.parent.options.arrowShape);\n path.setAttribute('d', pathMovements);\n path.setAttribute('class', 'arrow');\n // rotate arrow\n if (!this.isLeft) {\n path.setAttribute('transform', 'translate(100, 100) rotate(180) ');\n }\n svg.appendChild(path);\n return svg;\n};\n\n// get SVG path movmement\nfunction getArrowMovements(shape) {\n // use shape as movement if string\n if (typeof shape == 'string') {\n return shape;\n }\n // create movement string\n return (\n 'M ' +\n shape.x0 +\n ',50' +\n ' L ' +\n shape.x1 +\n ',' +\n (shape.y1 + 50) +\n ' L ' +\n shape.x2 +\n ',' +\n (shape.y2 + 50) +\n ' L ' +\n shape.x3 +\n ',50 ' +\n ' L ' +\n shape.x2 +\n ',' +\n (50 - shape.y2) +\n ' L ' +\n shape.x1 +\n ',' +\n (50 - shape.y1) +\n ' Z'\n );\n}\n\nPrevNextButton.prototype.handleEvent = utils.handleEvent;\n\nPrevNextButton.prototype.onclick = function () {\n if (!this.isEnabled) {\n return;\n }\n this.parent.uiChange();\n var method = this.isPrevious ? 'previous' : 'next';\n this.parent[method]();\n};\n\n// ----- ----- //\n\nPrevNextButton.prototype.enable = function () {\n if (this.isEnabled) {\n return;\n }\n this.element.disabled = false;\n this.isEnabled = true;\n};\n\nPrevNextButton.prototype.disable = function () {\n if (!this.isEnabled) {\n return;\n }\n this.element.disabled = true;\n this.isEnabled = false;\n};\n\nPrevNextButton.prototype.update = function () {\n // index of first or last slide, if previous or next\n var slides = this.parent.slides;\n // enable is wrapAround and at least 2 slides\n if (this.parent.options.wrapAround && slides.length > 1) {\n this.enable();\n return;\n }\n var lastIndex = slides.length ? slides.length - 1 : 0;\n var boundIndex = this.isPrevious ? 0 : lastIndex;\n var method = this.parent.selectedIndex == boundIndex ? 'disable' : 'enable';\n this[method]();\n};\n\nPrevNextButton.prototype.destroy = function () {\n this.deactivate();\n this.allOff();\n};\n\n// -------------------------- Flickity prototype -------------------------- //\n\nutils.extend(Flickity.defaults, {\n prevNextButtons: true,\n arrowShape: {\n x0: 10,\n x1: 60,\n y1: 50,\n x2: 70,\n y2: 40,\n x3: 30,\n },\n});\n\nFlickity.createMethods.push('_createPrevNextButtons');\nvar proto = Flickity.prototype;\n\nproto._createPrevNextButtons = function () {\n if (!this.options.prevNextButtons) {\n return;\n }\n\n this.prevButton = new PrevNextButton(-1, this);\n this.nextButton = new PrevNextButton(1, this);\n\n this.on('activate', this.activatePrevNextButtons);\n};\n\nproto.activatePrevNextButtons = function () {\n this.prevButton.activate();\n this.nextButton.activate();\n this.on('deactivate', this.deactivatePrevNextButtons);\n};\n\nproto.deactivatePrevNextButtons = function () {\n this.prevButton.deactivate();\n this.nextButton.deactivate();\n this.off('deactivate', this.deactivatePrevNextButtons);\n};\n\n// -------------------------- -------------------------- //\n\nFlickity.PrevNextButton = PrevNextButton;\n","import Flickity from './flickity';\nimport Unipointer from 'unipointer';\nimport utils from 'fizzy-ui-utils';\n\n// -------------------------- PageDots -------------------------- //\n\n('use strict');\n\nfunction PageDots(parent) {\n this.parent = parent;\n this.parentElement = this.parent.element.shadowRoot || this.parent.element;\n this._create();\n}\n\nPageDots.prototype = Object.create(Unipointer.prototype);\n\nPageDots.prototype._create = function () {\n // create holder element\n this.holder = document.createElement('ol');\n this.holder.className = 'flickity-page-dots';\n // create dots, array of elements\n this.dots = [];\n // events\n this.handleClick = this.onClick.bind(this);\n this.on('pointerDown', this.parent.childUIPointerDown.bind(this.parent));\n};\n\nPageDots.prototype.activate = function () {\n this.setDots();\n this.holder.addEventListener('click', this.handleClick);\n this.bindStartEvent(this.holder);\n // add to DOM\n this.parentElement.appendChild(this.holder);\n};\n\nPageDots.prototype.deactivate = function () {\n this.holder.removeEventListener('click', this.handleClick);\n this.unbindStartEvent(this.holder);\n // remove from DOM\n this.parentElement.removeChild(this.holder);\n};\n\nPageDots.prototype.setDots = function () {\n // get difference between number of slides and number of dots\n var delta = this.parent.slides.length - this.dots.length;\n if (delta > 0) {\n this.addDots(delta);\n } else if (delta < 0) {\n this.removeDots(-delta);\n }\n};\n\nPageDots.prototype.addDots = function (count) {\n var fragment = document.createDocumentFragment();\n var newDots = [];\n var length = this.dots.length;\n var max = length + count;\n\n for (var i = length; i < max; i++) {\n var dot = document.createElement('li');\n dot.classList.add('dot');\n dot.setAttribute('aria-label', 'Page dot ' + (i + 1));\n fragment.appendChild(dot);\n newDots.push(dot);\n }\n\n this.holder.appendChild(fragment);\n this.dots = this.dots.concat(newDots);\n};\n\nPageDots.prototype.removeDots = function (count) {\n // remove from this.dots collection\n var removeDots = this.dots.splice(this.dots.length - count, count);\n // remove from DOM\n removeDots.forEach(function (dot) {\n this.holder.removeChild(dot);\n }, this);\n};\n\nPageDots.prototype.updateSelected = function () {\n // remove selected class on previous\n if (this.selectedDot) {\n this.selectedDot.classList.remove('is-selected');\n this.selectedDot.removeAttribute('aria-current');\n }\n // don't proceed if no dots\n if (!this.dots.length) {\n return;\n }\n this.selectedDot = this.dots[this.parent.selectedIndex];\n this.selectedDot.classList.add('is-selected');\n this.selectedDot.setAttribute('aria-current', 'step');\n};\n\nPageDots.prototype.onTap = PageDots.prototype.onClick = function (event) {\n // old method name, backwards-compatible\n var target = event.target;\n // only care about dot clicks\n if (target.nodeName != 'LI') {\n return;\n }\n\n this.parent.uiChange();\n var index = this.dots.indexOf(target);\n this.parent.select(index);\n};\n\nPageDots.prototype.destroy = function () {\n this.deactivate();\n this.allOff();\n};\n\nFlickity.PageDots = PageDots;\n\n// -------------------------- Flickity -------------------------- //\n\nutils.extend(Flickity.defaults, {\n pageDots: true,\n});\n\nFlickity.createMethods.push('_createPageDots');\n\nvar proto = Flickity.prototype;\n\nproto._createPageDots = function () {\n if (!this.options.pageDots) {\n return;\n }\n this.pageDots = new PageDots(this);\n // events\n this.on('activate', this.activatePageDots);\n this.on('select', this.updateSelectedPageDots);\n this.on('cellChange', this.updatePageDots);\n this.on('resize', this.updatePageDots);\n this.on('deactivate', this.deactivatePageDots);\n};\n\nproto.activatePageDots = function () {\n this.pageDots.activate();\n};\n\nproto.updateSelectedPageDots = function () {\n this.pageDots.updateSelected();\n};\n\nproto.updatePageDots = function () {\n this.pageDots.setDots();\n};\n\nproto.deactivatePageDots = function () {\n this.pageDots.deactivate();\n};\n\n// ----- ----- //\n\nFlickity.PageDots = PageDots;\n","import EvEmitter from 'ev-emitter';\nimport utils from 'fizzy-ui-utils';\nimport Flickity from './flickity';\n\n('use strict');\n\n// -------------------------- Player -------------------------- //\n\nfunction Player(parent) {\n this.parent = parent;\n this.state = 'stopped';\n // visibility change event handler\n this.onVisibilityChange = this.visibilityChange.bind(this);\n this.onVisibilityPlay = this.visibilityPlay.bind(this);\n}\n\nPlayer.prototype = Object.create(EvEmitter.prototype);\n\n// start play\nPlayer.prototype.play = function () {\n if (this.state == 'playing') {\n return;\n }\n // do not play if page is hidden, start playing when page is visible\n var isPageHidden = document.hidden;\n if (isPageHidden) {\n document.addEventListener('visibilitychange', this.onVisibilityPlay);\n return;\n }\n\n this.state = 'playing';\n // listen to visibility change\n document.addEventListener('visibilitychange', this.onVisibilityChange);\n // start ticking\n this.tick();\n};\n\nPlayer.prototype.tick = function () {\n // do not tick if not playing\n if (this.state != 'playing') {\n return;\n }\n\n var time = this.parent.options.autoPlay;\n // default to 3 seconds\n time = typeof time == 'number' ? time : 3000;\n var _this = this;\n // HACK: reset ticks if stopped and started within interval\n this.clear();\n this.timeout = setTimeout(function () {\n _this.parent.next(true);\n _this.tick();\n }, time);\n};\n\nPlayer.prototype.stop = function () {\n this.state = 'stopped';\n this.clear();\n // remove visibility change event\n document.removeEventListener('visibilitychange', this.onVisibilityChange);\n};\n\nPlayer.prototype.clear = function () {\n clearTimeout(this.timeout);\n};\n\nPlayer.prototype.pause = function () {\n if (this.state == 'playing') {\n this.state = 'paused';\n this.clear();\n }\n};\n\nPlayer.prototype.unpause = function () {\n // re-start play if paused\n if (this.state == 'paused') {\n this.play();\n }\n};\n\n// pause if page visibility is hidden, unpause if visible\nPlayer.prototype.visibilityChange = function () {\n var isPageHidden = document.hidden;\n this[isPageHidden ? 'pause' : 'unpause']();\n};\n\nPlayer.prototype.visibilityPlay = function () {\n this.play();\n document.removeEventListener('visibilitychange', this.onVisibilityPlay);\n};\n\n// -------------------------- Flickity -------------------------- //\n\nutils.extend(Flickity.defaults, {\n pauseAutoPlayOnHover: true,\n});\n\nFlickity.createMethods.push('_createPlayer');\nvar proto = Flickity.prototype;\n\nproto._createPlayer = function () {\n this.player = new Player(this);\n\n this.on('activate', this.activatePlayer);\n this.on('uiChange', this.stopPlayer);\n this.on('pointerDown', this.stopPlayer);\n this.on('deactivate', this.deactivatePlayer);\n};\n\nproto.activatePlayer = function () {\n if (!this.options.autoPlay) {\n return;\n }\n this.player.play();\n this.element.addEventListener('mouseenter', this);\n};\n\n// Player API, don't hate the ... thanks I know where the door is\n\nproto.playPlayer = function () {\n this.player.play();\n};\n\nproto.stopPlayer = function () {\n this.player.stop();\n};\n\nproto.pausePlayer = function () {\n this.player.pause();\n};\n\nproto.unpausePlayer = function () {\n this.player.unpause();\n};\n\nproto.deactivatePlayer = function () {\n this.player.stop();\n this.element.removeEventListener('mouseenter', this);\n};\n\n// ----- mouseenter/leave ----- //\n\n// pause auto-play on hover\nproto.onmouseenter = function () {\n if (!this.options.pauseAutoPlayOnHover) {\n return;\n }\n this.player.pause();\n this.element.addEventListener('mouseleave', this);\n};\n\n// resume auto-play on hover off\nproto.onmouseleave = function () {\n this.player.unpause();\n this.element.removeEventListener('mouseleave', this);\n};\n\n// ----- ----- //\n\nFlickity.Player = Player;\n","import Flickity from './flickity';\nimport utils from 'fizzy-ui-utils';\n\n('use strict');\n\n// append cells to a document fragment\nfunction getCellsFragment(cells) {\n var fragment = document.createDocumentFragment();\n cells.forEach(function (cell) {\n fragment.appendChild(cell.element);\n });\n return fragment;\n}\n\n// -------------------------- add/remove cell prototype -------------------------- //\n\nvar proto = Flickity.prototype;\n\n/**\n * Insert, prepend, or append cells\n * @param {Element, Array, NodeList} elems\n * @param {Integer} index\n */\nproto.insert = function (elems, index) {\n var cells = this._makeCells(elems);\n if (!cells || !cells.length) {\n return;\n }\n var len = this.cells.length;\n // default to append\n index = index === undefined ? len : index;\n // add cells with document fragment\n var fragment = getCellsFragment(cells);\n // append to slider\n var isAppend = index == len;\n if (isAppend) {\n this.slider.appendChild(fragment);\n } else {\n var insertCellElement = this.cells[index].element;\n this.slider.insertBefore(fragment, insertCellElement);\n }\n // add to this.cells\n if (index === 0) {\n // prepend, add to start\n this.cells = cells.concat(this.cells);\n } else if (isAppend) {\n // append, add to end\n this.cells = this.cells.concat(cells);\n } else {\n // insert in this.cells\n var endCells = this.cells.splice(index, len - index);\n this.cells = this.cells.concat(cells).concat(endCells);\n }\n\n this._sizeCells(cells);\n this.cellChange(index, true);\n};\n\nproto.append = function (elems) {\n this.insert(elems, this.cells.length);\n};\n\nproto.prepend = function (elems) {\n this.insert(elems, 0);\n};\n\n/**\n * Remove cells\n * @param {Element, Array, NodeList} elems\n */\nproto.remove = function (elems) {\n var cells = this.getCells(elems);\n if (!cells || !cells.length) {\n return;\n }\n\n var minCellIndex = this.cells.length - 1;\n // remove cells from collection & DOM\n cells.forEach(function (cell) {\n cell.remove();\n var index = this.cells.indexOf(cell);\n minCellIndex = Math.min(index, minCellIndex);\n utils.removeFrom(this.cells, cell);\n }, this);\n\n this.cellChange(minCellIndex, true);\n};\n\n/**\n * logic to be run after a cell's size changes\n * @param {Element} elem - cell's element\n */\nproto.cellSizeChange = function (elem) {\n var cell = this.getCell(elem);\n if (!cell) {\n return;\n }\n cell.getSize();\n\n var index = this.cells.indexOf(cell);\n this.cellChange(index);\n};\n\n/**\n * logic any time a cell is changed: added, removed, or size changed\n * @param {Integer} changedCellIndex - index of the changed cell, optional\n */\nproto.cellChange = function (changedCellIndex, isPositioningSlider) {\n var prevSelectedElem = this.selectedElement;\n this._positionCells(changedCellIndex);\n this._getWrapShiftCells();\n this.setGallerySize();\n // update selectedIndex\n // try to maintain position & select previous selected element\n var cell = this.getCell(prevSelectedElem);\n if (cell) {\n this.selectedIndex = this.getCellSlideIndex(cell);\n }\n this.selectedIndex = Math.min(this.slides.length - 1, this.selectedIndex);\n\n this.emitEvent('cellChange', [changedCellIndex]);\n // position slider\n this.select(this.selectedIndex);\n // do not position slider after lazy load\n if (isPositioningSlider) {\n this.positionSliderAtSelected();\n }\n};\n","import Flickity from './flickity';\nimport utils from 'fizzy-ui-utils';\n\n('use strict');\n\nFlickity.createMethods.push('_createLazyload');\nvar proto = Flickity.prototype;\n\nproto._createLazyload = function () {\n this.on('select', this.lazyLoad);\n};\n\nproto.lazyLoad = function () {\n var lazyLoad = this.options.lazyLoad;\n if (!lazyLoad) {\n return;\n }\n // get adjacent cells, use lazyLoad option for adjacent count\n var adjCount = typeof lazyLoad == 'number' ? lazyLoad : 0;\n var cellElems = this.getAdjacentCellElements(adjCount);\n // get lazy images in those cells\n var lazyImages = [];\n cellElems.forEach(function (cellElem) {\n var lazyCellImages = getCellLazyImages(cellElem);\n lazyImages = lazyImages.concat(lazyCellImages);\n });\n // load lazy images\n lazyImages.forEach(function (img) {\n new LazyLoader(img, this);\n }, this);\n};\n\nfunction getCellLazyImages(cellElem) {\n // check if cell element is lazy image\n if (cellElem.nodeName == 'IMG') {\n var lazyloadAttr = cellElem.getAttribute('data-flickity-lazyload');\n var srcAttr = cellElem.getAttribute('data-flickity-lazyload-src');\n var srcsetAttr = cellElem.getAttribute('data-flickity-lazyload-srcset');\n if (lazyloadAttr || srcAttr || srcsetAttr) {\n return [cellElem];\n }\n }\n // select lazy images in cell\n var lazySelector =\n 'img[data-flickity-lazyload], ' +\n 'img[data-flickity-lazyload-src], img[data-flickity-lazyload-srcset]';\n var imgs = cellElem.querySelectorAll(lazySelector);\n return utils.makeArray(imgs);\n}\n\n// -------------------------- LazyLoader -------------------------- //\n\n/**\n * class to handle loading images\n */\nfunction LazyLoader(img, flickity) {\n this.img = img;\n this.flickity = flickity;\n this.load();\n}\n\nLazyLoader.prototype.handleEvent = utils.handleEvent;\n\nLazyLoader.prototype.load = function () {\n this.img.addEventListener('load', this);\n this.img.addEventListener('error', this);\n // get src & srcset\n var src =\n this.img.getAttribute('data-flickity-lazyload') ||\n this.img.getAttribute('data-flickity-lazyload-src');\n var srcset = this.img.getAttribute('data-flickity-lazyload-srcset');\n // set src & serset\n this.img.src = src;\n if (srcset) {\n this.img.setAttribute('srcset', srcset);\n }\n // remove attr\n this.img.removeAttribute('data-flickity-lazyload');\n this.img.removeAttribute('data-flickity-lazyload-src');\n this.img.removeAttribute('data-flickity-lazyload-srcset');\n};\n\nLazyLoader.prototype.onload = function (event) {\n this.complete(event, 'flickity-lazyloaded');\n};\n\nLazyLoader.prototype.onerror = function (event) {\n this.complete(event, 'flickity-lazyerror');\n};\n\nLazyLoader.prototype.complete = function (event, className) {\n // unbind events\n this.img.removeEventListener('load', this);\n this.img.removeEventListener('error', this);\n\n var cell = this.flickity.getParentCell(this.img);\n var cellElem = cell && cell.element;\n this.flickity.cellSizeChange(cellElem);\n\n this.img.classList.add(className);\n this.flickity.dispatchEvent('lazyLoad', event, cellElem);\n};\n\n// ----- ----- //\n\nFlickity.LazyLoader = LazyLoader;\n","import Flickity from './flickity';\n\nFlickity.createMethods.push('_createFullscreen');\nvar proto = Flickity.prototype;\n\nproto._createFullscreen = function () {\n this.isFullscreen = false;\n\n if (!this.options.fullscreen) {\n return;\n }\n // buttons\n this.viewFullscreenButton = new FullscreenButton('view', this);\n this.exitFullscreenButton = new FullscreenButton('exit', this);\n\n this.on('activate', this._changeFullscreenActive);\n this.on('deactivate', this._changeFullscreenActive);\n};\n\n// ----- activation ----- //\n\nproto._changeFullscreenActive = function () {\n var childMethod = this.isActive ? 'appendChild' : 'removeChild';\n this.element[childMethod](this.viewFullscreenButton.element);\n this.element[childMethod](this.exitFullscreenButton.element);\n // activate or deactivate buttons\n var activeMethod = this.isActive ? 'activate' : 'deactivate';\n this.viewFullscreenButton[activeMethod]();\n this.exitFullscreenButton[activeMethod]();\n};\n\n// ----- view, exit, toggle ----- //\n\nproto.viewFullscreen = function () {\n this._changeFullscreen(true);\n this.focus();\n};\n\nproto.exitFullscreen = function () {\n this._changeFullscreen(false);\n};\n\nproto._changeFullscreen = function (isView) {\n if (this.isFullscreen == isView) {\n return;\n }\n this.isFullscreen = isView;\n var classMethod = isView ? 'add' : 'remove';\n document.documentElement.classList[classMethod]('is-flickity-fullscreen');\n this.element.classList[classMethod]('is-fullscreen');\n this.resize();\n // HACK extra reposition on fullscreen for images\n if (this.isFullscreen) {\n this.reposition();\n }\n this.dispatchEvent('fullscreenChange', null, [isView]);\n};\n\nproto.toggleFullscreen = function () {\n this._changeFullscreen(!this.isFullscreen);\n};\n\n// ----- setGallerySize ----- //\n\n// overwrite so fullscreen cells are full height\nvar setGallerySize = proto.setGallerySize;\nproto.setGallerySize = function () {\n if (!this.options.setGallerySize) {\n return;\n }\n if (this.isFullscreen) {\n // remove height style on fullscreen\n this.viewport.style.height = '';\n } else {\n // otherwise, do normal\n setGallerySize.call(this);\n }\n};\n\n// ----- keyboard ----- //\n\n// ESC key closes full screen\nFlickity.keyboardHandlers[27] = function () {\n this.exitFullscreen();\n};\n\n// ----- FullscreenButton ----- //\n\nfunction FullscreenButton(name, flickity) {\n this.name = name;\n this.createButton();\n this.createIcon();\n // events\n // trigger viewFullscreen or exitFullscreen on click\n this.onClick = function () {\n flickity[name + 'Fullscreen']();\n };\n this.clickHandler = this.onClick.bind(this);\n}\n\nFullscreenButton.prototype.createButton = function () {\n var element = (this.element = document.createElement('button'));\n element.className =\n 'flickity-button flickity-fullscreen-button ' +\n 'flickity-fullscreen-button-' +\n this.name;\n // prevent button from submitting form\n element.setAttribute('type', 'button');\n // set label\n var label = capitalize(this.name + ' full-screen');\n element.setAttribute('aria-label', label);\n element.title = label;\n};\n\nfunction capitalize(text) {\n return text[0].toUpperCase() + text.slice(1);\n}\n\nvar svgURI = 'http://www.w3.org/2000/svg';\n\nvar pathDirections = {\n view: 'M15,20,7,28h5v4H0V20H4v5l8-8Zm5-5,8-8v5h4V0H20V4h5l-8,8Z',\n exit: 'M32,3l-7,7h5v4H18V2h4V7l7-7ZM3,32l7-7v5h4V18H2v4H7L0,29Z',\n};\n\nFullscreenButton.prototype.createIcon = function () {\n var svg = document.createElementNS(svgURI, 'svg');\n svg.setAttribute('class', 'flickity-button-icon');\n svg.setAttribute('viewBox', '0 0 32 32');\n // path & direction\n var path = document.createElementNS(svgURI, 'path');\n var direction = pathDirections[this.name];\n path.setAttribute('d', direction);\n // put it together\n svg.appendChild(path);\n this.element.appendChild(svg);\n};\n\nFullscreenButton.prototype.activate = function () {\n this.element.addEventListener('click', this.clickHandler);\n};\n\nFullscreenButton.prototype.deactivate = function () {\n this.element.removeEventListener('click', this.clickHandler);\n};\n\nFlickity.FullscreenButton = FullscreenButton;\n","import Flickity from './flickity';\nimport utils from 'fizzy-ui-utils';\n\nvar Slide = Flickity.Slide;\n\nvar slideUpdateTarget = Slide.prototype.updateTarget;\nSlide.prototype.updateTarget = function () {\n slideUpdateTarget.apply(this, arguments);\n if (!this.parent.options.fade) {\n return;\n }\n // position cells at selected target\n var slideTargetX = this.target - this.x;\n var firstCellX = this.cells[0].x;\n this.cells.forEach(function (cell) {\n var targetX = cell.x - firstCellX - slideTargetX;\n cell.renderPosition(targetX);\n });\n};\n\nSlide.prototype.setOpacity = function (alpha) {\n this.cells.forEach(function (cell) {\n cell.element.style.opacity = alpha;\n });\n};\n\n// ---- Flickity ---- //\n\nvar proto = Flickity.prototype;\n\nFlickity.createMethods.push('_createFade');\n\nproto._createFade = function () {\n this.fadeIndex = this.selectedIndex;\n this.prevSelectedIndex = this.selectedIndex;\n this.on('select', this.onSelectFade);\n this.on('dragEnd', this.onDragEndFade);\n this.on('settle', this.onSettleFade);\n this.on('activate', this.onActivateFade);\n this.on('deactivate', this.onDeactivateFade);\n};\n\nvar updateSlides = proto.updateSlides;\nproto.updateSlides = function () {\n updateSlides.apply(this, arguments);\n if (!this.options.fade) {\n return;\n }\n // set initial opacity\n this.slides.forEach(function (slide, i) {\n var alpha = i == this.selectedIndex ? 1 : 0;\n slide.setOpacity(alpha);\n }, this);\n};\n\n/* ---- events ---- */\n\nproto.onSelectFade = function () {\n // in case of resize, keep fadeIndex within current count\n this.fadeIndex = Math.min(this.prevSelectedIndex, this.slides.length - 1);\n this.prevSelectedIndex = this.selectedIndex;\n};\n\nproto.onSettleFade = function () {\n delete this.didDragEnd;\n if (!this.options.fade) {\n return;\n }\n // set full and 0 opacity on selected & faded slides\n this.selectedSlide.setOpacity(1);\n var fadedSlide = this.slides[this.fadeIndex];\n if (fadedSlide && this.fadeIndex != this.selectedIndex) {\n this.slides[this.fadeIndex].setOpacity(0);\n }\n};\n\nproto.onDragEndFade = function () {\n // set flag\n this.didDragEnd = true;\n};\n\nproto.onActivateFade = function () {\n if (this.options.fade) {\n this.element.classList.add('is-fade');\n }\n};\n\nproto.onDeactivateFade = function () {\n if (!this.options.fade) {\n return;\n }\n this.element.classList.remove('is-fade');\n // reset opacity\n this.slides.forEach(function (slide) {\n slide.setOpacity('');\n });\n};\n\n/* ---- position & fading ---- */\n\nvar positionSlider = proto.positionSlider;\nproto.positionSlider = function () {\n if (!this.options.fade) {\n positionSlider.apply(this, arguments);\n return;\n }\n\n this.fadeSlides();\n this.dispatchScrollEvent();\n};\n\nvar positionSliderAtSelected = proto.positionSliderAtSelected;\nproto.positionSliderAtSelected = function () {\n if (this.options.fade) {\n // position fade slider at origin\n this.setTranslateX(0);\n }\n positionSliderAtSelected.apply(this, arguments);\n};\n\nproto.fadeSlides = function () {\n if (this.slides.length < 2) {\n return;\n }\n // get slides to fade-in & fade-out\n var indexes = this.getFadeIndexes();\n var fadeSlideA = this.slides[indexes.a];\n var fadeSlideB = this.slides[indexes.b];\n var distance = this.wrapDifference(fadeSlideA.target, fadeSlideB.target);\n var progress = this.wrapDifference(fadeSlideA.target, -this.x);\n progress = progress / distance;\n\n fadeSlideA.setOpacity(1 - progress);\n fadeSlideB.setOpacity(progress);\n\n // hide previous slide\n var fadeHideIndex = indexes.a;\n if (this.isDragging) {\n fadeHideIndex = progress > 0.5 ? indexes.a : indexes.b;\n }\n var isNewHideIndex =\n this.fadeHideIndex != undefined &&\n this.fadeHideIndex != fadeHideIndex &&\n this.fadeHideIndex != indexes.a &&\n this.fadeHideIndex != indexes.b;\n if (isNewHideIndex) {\n // new fadeHideSlide set, hide previous\n this.slides[this.fadeHideIndex].setOpacity(0);\n }\n this.fadeHideIndex = fadeHideIndex;\n};\n\nproto.getFadeIndexes = function () {\n if (!this.isDragging && !this.didDragEnd) {\n return {\n a: this.fadeIndex,\n b: this.selectedIndex,\n };\n }\n if (this.options.wrapAround) {\n return this.getFadeDragWrapIndexes();\n } else {\n return this.getFadeDragLimitIndexes();\n }\n};\n\nproto.getFadeDragWrapIndexes = function () {\n var distances = this.slides.map(function (slide, i) {\n return this.getSlideDistance(-this.x, i);\n }, this);\n var absDistances = distances.map(function (distance) {\n return Math.abs(distance);\n });\n var minDistance = Math.min.apply(Math, absDistances);\n var closestIndex = absDistances.indexOf(minDistance);\n var distance = distances[closestIndex];\n var len = this.slides.length;\n\n var delta = distance >= 0 ? 1 : -1;\n return {\n a: closestIndex,\n b: utils.modulo(closestIndex + delta, len),\n };\n};\n\nproto.getFadeDragLimitIndexes = function () {\n // calculate closest previous slide\n var dragIndex = 0;\n for (var i = 0; i < this.slides.length - 1; i++) {\n var slide = this.slides[i];\n if (-this.x < slide.target) {\n break;\n }\n dragIndex = i;\n }\n return {\n a: dragIndex,\n b: dragIndex + 1,\n };\n};\n\nproto.wrapDifference = function (a, b) {\n var diff = b - a;\n\n if (!this.options.wrapAround) {\n return diff;\n }\n\n var diffPlus = diff + this.slideableWidth;\n var diffMinus = diff - this.slideableWidth;\n if (Math.abs(diffPlus) < Math.abs(diff)) {\n diff = diffPlus;\n }\n if (Math.abs(diffMinus) < Math.abs(diff)) {\n diff = diffMinus;\n }\n return diff;\n};\n\n// ---- wrapAround ---- //\n\nvar _getWrapShiftCells = proto._getWrapShiftCells;\nproto._getWrapShiftCells = function () {\n if (!this.options.fade) {\n _getWrapShiftCells.apply(this, arguments);\n }\n};\n\nvar shiftWrapCells = proto.shiftWrapCells;\nproto.shiftWrapCells = function () {\n if (!this.options.fade) {\n shiftWrapCells.apply(this, arguments);\n }\n};\n","import Flickity from './flickity';\nimport './drag';\nimport './prev-next-button';\nimport './page-dots';\nimport './player';\nimport './add-remove-cell';\nimport './lazyload';\nimport './fullscreen';\nimport './fade';\n\nexport const flickity = Flickity;\n","@import '../../global/style/nano-theme/colours';\n\n:host {\n /**\n * @prop --dot-color: inactive colour of pager bullets. Default #cccccc;\n * @prop --dot-color-active: active colour of pager bullets. Default #{nano-color(primary, base)};\n *\n * @prop --navbtns-icon-color: next / prev icon color. Default var(--dot-color-active);\n * @prop --navbtns-bg-color: next / prev bg color. Default white;\n * @prop --navbtns-icon-color-disabled: next / prev icon color. Default var(--dot-color-active);\n * @prop --navbtns-bg-color-disabled: next / prev bg color. Default white;\n *\n * @prop --fsbtn-icon-color: fullscreen btn icon color. Default var(--dot-color-active);\n * @prop --fsbtn-bg-color: fullscreen bg color. Default white;\n */\n --dot-color: #ccc;\n --dot-color-active: #{nano-color(primary, base)};\n --navbtns-icon-color: var(--dot-color-active);\n --navbtns-bg-color: white;\n --navbtns-icon-color-disabled: var(--dot-color-active);\n --navbtns-bg-color-disabled: white;\n --fsbtn-icon-color: var(--dot-color-active);\n --fsbtn-bg-color: white;\n\n display: block;\n user-select: none;\n overflow: hidden;\n transition: opacity 0.2s;\n opacity: 0;\n}\n\n:host([ready]) {\n opacity: 1;\n}\n\n.slideshow {\n block-size: 100%;\n position: relative;\n}\n\n.flickity-container {\n block-size: 0;\n opacity: 0;\n transition: opacity 0.2s;\n\n &.slides-ready {\n block-size: 100%;\n }\n}\n\n[hidden] {\n display: none !important;\n}\n\n.ui-extras {\n pointer-events: none;\n position: absolute;\n block-size: 100%;\n inline-size: 100%;\n inset-block-start: 0;\n inset-inline-start: 0;\n\n * {\n pointer-events: all;\n }\n}\n\n/*! Flickity v2.2.1\nhttps://flickity.metafizzy.co\n---------------------------------------------- */\n\n.flickity-enabled {\n position: relative;\n opacity: 1;\n}\n\n.flickity-enabled:focus {\n outline: none;\n}\n\n.flickity-viewport {\n overflow: hidden;\n position: relative;\n block-size: 100% !important;\n}\n\n.flickity-slider {\n position: absolute;\n inline-size: 100%;\n block-size: 100%;\n}\n\n/* draggable */\n\n.flickity-enabled.is-draggable {\n -webkit-tap-highlight-color: transparent;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.flickity-enabled.is-draggable .flickity-viewport {\n cursor: move;\n cursor: -webkit-grab;\n cursor: grab;\n}\n\n.flickity-enabled.is-draggable .flickity-viewport.is-pointer-down {\n cursor: -webkit-grabbing;\n cursor: grabbing;\n}\n\n/* ---- flickity-button ---- */\n\n.flickity-button {\n position: absolute;\n background: var(--navbtns-bg-color);\n border: none;\n color: #333;\n opacity: 0.75;\n}\n\n.flickity-button:hover {\n opacity: 1;\n cursor: pointer;\n}\n\n.flickity-button:focus {\n outline: none;\n box-shadow: 0 0 0 5px #19f;\n}\n\n.flickity-button:active {\n opacity: 0.6;\n}\n\n.flickity-button:disabled {\n opacity: 0.3;\n cursor: auto;\n\n /* prevent disabled button from capturing pointer up event. #716 */\n pointer-events: none;\n background: var(--navbtns-bg-color-disabled);\n}\n\n.flickity-button-icon {\n fill: var(--navbtns-icon-color);\n}\n\n.flickity-button:disabled .flickity-button-icon {\n fill: var(--navbtns-icon-color-disabled);\n}\n\n/* ---- previous/next buttons ---- */\n\n.flickity-prev-next-button {\n inset-block-start: 50%;\n inline-size: 44px;\n block-size: 44px;\n border-radius: 50%;\n\n /* vertically center */\n transform: translateY(-50%);\n}\n\n.flickity-prev-next-button.previous {\n inset-inline-start: 10px;\n}\n\n.flickity-prev-next-button.next {\n inset-inline-end: 10px;\n}\n\n/* right to left */\n.flickity-rtl .flickity-prev-next-button.previous {\n inset-inline: auto 10px;\n}\n\n.flickity-rtl .flickity-prev-next-button.next {\n inset-inline: 10px auto;\n}\n\n.flickity-prev-next-button .flickity-button-icon {\n position: absolute;\n inset-inline-start: 20%;\n inset-block-start: 20%;\n inline-size: 60%;\n block-size: 60%;\n}\n\n/* ---- page dots ---- */\n\n.flickity-page-dots {\n position: absolute;\n inline-size: 100%;\n inset-block-end: 10px;\n padding: 0;\n margin: 0;\n list-style: none;\n text-align: center;\n line-height: 1;\n z-index: 4;\n}\n\n.flickity-rtl .flickity-page-dots {\n direction: rtl;\n}\n\n.flickity-page-dots .dot {\n display: inline-block;\n inline-size: 10px;\n block-size: 10px;\n margin-block: 0;\n margin-inline: 8px;\n border-radius: 50%;\n cursor: pointer;\n background: var(--dot-color);\n\n // Pagination Bullets\n // --------------------------------------------------\n}\n\n.flickity-page-dots .dot.is-selected {\n opacity: 1;\n background: var(--dot-color-active);\n}\n\n// fullscreen\n\n.flickity-enabled.is-fullscreen {\n position: fixed;\n inset-inline-start: 0;\n inset-block-start: 0;\n inline-size: 100%;\n block-size: 100%;\n background: hsla(0, 0%, 0%, 0.9);\n padding-block-end: 35px;\n z-index: 100;\n}\n\n.flickity-enabled.is-fullscreen .flickity-page-dots {\n inset-block-end: 45px;\n}\n\n/* prevent page scrolling when flickity is fullscreen */\nhtml.is-flickity-fullscreen {\n overflow: hidden;\n}\n\n/* ---- flickity-fullscreen-button ---- */\n\n.flickity-fullscreen-button {\n display: block;\n inset-inline-end: 10px;\n inset-block-start: 10px;\n inline-size: 24px;\n block-size: 24px;\n border-radius: 4px;\n background: var(--fsbtn-bg-color);\n fill: var(--fsbtn-icon-color);\n}\n\n/* right-to-left */\n.flickity-rtl .flickity-fullscreen-button {\n inset-inline: 10px auto;\n}\n\n.flickity-fullscreen-button-exit {\n display: none;\n}\n\n.flickity-enabled.is-fullscreen .flickity-fullscreen-button-exit {\n display: block;\n}\n\n.flickity-enabled.is-fullscreen .flickity-fullscreen-button-view {\n display: none;\n}\n\n.flickity-fullscreen-button .flickity-button-icon {\n position: absolute;\n inline-size: 16px;\n block-size: 16px;\n inset-inline-start: 4px;\n inset-block-start: 4px;\n}\n\n// fade\n\n/* flickity-fade */\n\n.flickity-enabled.is-fade .flickity-slider > * {\n pointer-events: none;\n z-index: 0;\n}\n\n.flickity-enabled.is-fade .flickity-slider ::slotted(.is-selected) {\n pointer-events: auto;\n z-index: 1;\n}\n","import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n Prop,\n h,\n Host,\n Watch,\n Method,\n State,\n Build,\n} from '@stencil/core';\nimport { flickity } from './lib/js';\nimport type {\n FlickityOptions,\n FlickityEvents,\n Flickity,\n DragEvent,\n FlickitySlide,\n SlideAnimation,\n} from '../../interface';\n\nconst CANSHADOW = !!document.head.attachShadow;\n\n/**\n * The Slides component is a multi-section container. Each section can be swiped or dragged between.\n * It contains any number of Slide components.\n *\n * Uses [Flickity](https://flickity.metafizzy.co/) under the hood. A good balance of options, flexibility and IE11 compatibility.\n *\n * @slot - default slot of nano-slide components\n * @slot ui - An absolutely positioned element that will be placed over the slider. Any custom ui can be housed here.\n */\n@Component({\n tag: 'nano-slides',\n styleUrl: 'slides.scss',\n shadow: true,\n})\nexport class Slides implements ComponentInterface {\n private flickityEl: HTMLElement;\n private flickityReady = false;\n private mutationO?: MutationObserver;\n private resizeO?: ResizeObserver;\n private readyflickity!: (slider: Flickity) => void;\n private flickity: Promise<Flickity> = new Promise((resolve) => {\n this.readyflickity = resolve;\n });\n private syncflickity?: Flickity;\n private childrenEles: NodeList;\n private slideShowEle: HTMLDivElement;\n\n @State() iCurrentSlide: number;\n @State() slidesReady: boolean;\n @State() didInit = false;\n\n @Element() host!: HTMLNanoSlidesElement;\n\n /**\n * Options to pass to the flickity instance.\n * See https://flickity.metafizzy.co/options.html for valid options\n */\n @Prop({ mutable: true }) options: FlickityOptions = {};\n\n @Watch('options')\n async optionsChanged() {\n if (this.flickityReady) {\n const flickity = await this.getflickity();\n Object.assign(flickity.options, this.options);\n await this.update();\n }\n }\n\n /**\n * If `true`, show the next / prev buttons.\n */\n @Prop() navbtns = false;\n\n @Watch('navbtns')\n async navbtnsChanged() {\n Array.from(\n this._getRoot().querySelectorAll('.flickity-prev-next-button')\n ).forEach((btn) => {\n (btn as HTMLElement).hidden = !this.navbtns;\n });\n }\n\n /**\n * If `true`, show the pagination.\n */\n @Prop() pager = false;\n\n @Watch('pager')\n async pagerChanged() {\n const dots = this._getRoot().querySelector(\n '.flickity-page-dots'\n ) as HTMLElement;\n dots.hidden = !this.pager;\n }\n\n /**\n * If `true`, show a fullscreen button.\n */\n @Prop() fullscreenbtn = false;\n\n @Watch('fullscreenbtn')\n async fullscreenBtnChanged() {\n const btn = this._getRoot().querySelector(\n '.flickity-fullscreen-button'\n ) as HTMLElement;\n btn.hidden = !this.fullscreenbtn;\n }\n\n /**\n * If `true`, make the slider fullscreen.\n */\n @Prop({ reflect: true, mutable: true }) fullscreen = false;\n\n @Watch('fullscreen')\n async fullscreenChanged(_?, oldFs?: boolean) {\n const flickity = await this.getflickity();\n if (this.fullscreen) flickity.viewFullscreen();\n else if (typeof oldFs !== 'undefined') flickity.exitFullscreen();\n }\n\n /**\n * Animation presets.\n */\n @Prop({ reflect: true }) animation: SlideAnimation = 'scroll';\n\n @Watch('animation')\n async animationChange(_?, oldAnim?: SlideAnimation) {\n const [flkty, slides] = await Promise.all([\n this.getflickity(),\n waitForSlides(this.host),\n ]);\n\n // clear old stuff\n slides.forEach((slide) => {\n slide.style['left'] = undefined;\n });\n\n if (oldAnim === 'parallax') {\n flkty.off('scroll', this.parralax);\n slides.forEach((_, i) => {\n if (this.childrenEles && this.childrenEles[i])\n (this.childrenEles[i] as HTMLElement).style['transform'] = undefined;\n });\n this.update();\n }\n\n // setup new stuff\n switch (this.animation) {\n case 'fade':\n this.options = { fade: true, percentPosition: true };\n break;\n case 'parallax':\n this.options = { fade: false, percentPosition: false };\n flkty.on('scroll', this.parralax);\n break;\n default:\n this.options = { fade: false, percentPosition: true };\n break;\n }\n }\n\n /**\n * Zero-based index of the selected cell.\n */\n @Prop({ reflect: true, mutable: true }) currentSlide: number = 0;\n\n @Watch('currentSlide')\n currentSlideChange() {\n if (this.currentSlide !== this.iCurrentSlide)\n this.slideTo(this.currentSlide);\n }\n\n @Watch('iCurrentSlide')\n internalSlideChange() {\n this.currentSlide = this.iCurrentSlide;\n }\n\n /**\n * time duration, in ms, to automatically advance slides\n */\n @Prop() autoplay: string | false | number = false;\n\n @Watch('autoplay')\n async autoPlayChange() {\n await this.stopAutoplay();\n if (this.autoplay) {\n if (typeof this.autoplay === 'string')\n this.autoplay = parseInt(this.autoplay);\n if (this.autoplay > 0) this.startAutoplay(this.autoplay as number);\n }\n }\n\n /**\n * @internal\n */\n @Prop({ reflect: true, mutable: true }) ready = false;\n\n /**\n * Emitted after component initialization\n */\n @Event() nanoSlidesDidLoad!: EventEmitter<void>;\n\n /**\n * Emitted after flickity initialization\n */\n @Event() nanoSlidesReady!: EventEmitter<void>;\n\n /**\n * Emitted when a slide is selected, even on the same slide\n */\n @Event() nanoSlidesSelect!: EventEmitter<number>;\n\n /**\n * Emitted when the selected slide is changed.\n */\n @Event() nanoSlidesChange!: EventEmitter<number>;\n\n /**\n * Emitted when the slider moves.\n */\n @Event() nanoSlidesScroll!: EventEmitter<number>;\n\n /**\n * Emitted when the slide transition has finished.\n */\n @Event() nanoSlidesTransitionEnd!: EventEmitter<number>;\n\n /**\n * Emitted when the slider starts actively being moved.\n */\n @Event() nanoSlidesDragStart!: EventEmitter<DragEvent>;\n\n /**\n * Emitted when the slider is being dragged.\n */\n @Event() nanoSlidesDragMove!: EventEmitter<DragEvent>;\n\n /**\n * Emitted when the slider has finished being dragged.\n */\n @Event() nanoSlidesDragEnd!: EventEmitter<DragEvent>;\n\n /**\n * Emitted when the user taps/clicks on the slide's container.\n */\n @Event() nanoSlidesTap!: EventEmitter<DragEvent>;\n\n /**\n * Emitted when the user taps/clicks on the slide's container.\n */\n @Event() nanoSlidesFullscreenChange!: EventEmitter<boolean>;\n\n /**\n * Update the underlying flickity implementation. Call this if you've added or removed\n * child slides.\n */\n @Method()\n async update() {\n const [flickity] = await Promise.all([\n this.getflickity(),\n waitForSlides(this.host),\n ]);\n this.childrenEles = this.host.querySelectorAll('nano-slide > *');\n flickity.reloadCells();\n flickity.resize();\n flickity.reposition();\n }\n\n /**\n * Force flickity to update its height (when adaptiveHeight is enabled) for the duration\n * equal to 'speed' parameter.\n *\n * @param speed The transition duration (in ms).\n */\n @Method()\n async updateAutoHeight(speed?: number) {\n const vp = document.querySelector('.flickity-viewport') as HTMLElement;\n if (vp) vp.style.transition = speed + 'ms';\n }\n\n /**\n * Transition to the specified slide.\n *\n * @param index The index of the slide to transition to.\n * @param instant Immediately view the selected slide without animation.\n */\n @Method()\n async slideTo(index: number, instant?: boolean) {\n const flickity = await this.getflickity();\n flickity.select(index, instant);\n }\n\n /**\n * Transition to the next slide.\n *\n * @param instant The transition duration (in ms).\n * @param wrap If true, the first slide will be selected if at the last slide.\n */\n @Method()\n async slideNext(instant?: boolean, wrap?: boolean) {\n const flickity = await this.getflickity();\n flickity.next(wrap, instant);\n }\n\n /**\n * Transition to the previous slide.\n *\n * @param instant The transition duration (in ms).\n * @param wrap If true, the last slide will be selected if at the first slide.\n */\n @Method()\n async slidePrev(instant?: boolean, wrap?: boolean) {\n const flickity = await this.getflickity();\n flickity.previous(instant, wrap);\n }\n\n /**\n * Get the index of the active slide.\n */\n @Method()\n async getActiveIndex() {\n const flickity = await this.getflickity();\n return flickity.selectedIndex;\n }\n\n /**\n * Get the total number of slides.\n */\n @Method()\n async length() {\n const flickity = await this.getflickity();\n return flickity.slides.length;\n }\n\n /**\n * Get whether or not the current slide is the last slide.\n */\n @Method()\n async isEnd() {\n const flickity = await this.getflickity();\n return flickity.selectedIndex === flickity.slides.length - 1;\n }\n\n /**\n * Get whether or not the current slide is the first slide.\n */\n @Method()\n async isBeginning() {\n const flickity = await this.getflickity();\n return flickity.selectedIndex === 0;\n }\n\n /**\n * Start auto play.\n * @param time - optional time duration to show slides\n */\n @Method()\n async startAutoplay(time?: number) {\n const flickity = await this.getflickity();\n if (time) this.options = { autoPlay: time };\n setTimeout(() => flickity.playPlayer());\n }\n\n /**\n * Stop auto play.\n */\n @Method()\n async stopAutoplay() {\n const flickity = await this.getflickity();\n flickity.stopPlayer();\n }\n\n /**\n * Lock or unlock the ability to slide to the next slide.\n *\n * @param lock If `true`, disable swiping\n */\n @Method()\n async lockSwipes(lock: boolean) {\n const flickity = await this.getflickity();\n flickity.options.draggable = !lock;\n flickity.updateDraggable();\n }\n\n /**\n * Get the flickity instance.\n * Use this to access the full flickity API.\n * See https://flickity.metafizzy.co/ for all API options.\n */\n @Method()\n async getflickity() {\n return this.flickity;\n }\n\n /**\n * Hard destroy / create.\n * Certain flickity options, you will require the instance to be re-initialised\n */\n @Method()\n async reload() {\n this.destroyflickity();\n setTimeout(() => this.initflickity(), 20);\n }\n\n private _getRoot() {\n return this.host.shadowRoot ? this.host.shadowRoot : this.host;\n }\n\n private _fixClassNames() {\n const ctxClasses = this.slideShowEle.className\n .split(' ')\n .filter((classStr) => classStr.match(/^sc-nano/));\n const eles = this._getRoot().querySelectorAll('*');\n if (!eles) return;\n Array.from(eles).map((ele: HTMLElement) => {\n ctxClasses.map((classStr) => ele.classList.add(classStr));\n });\n }\n\n private parralax = async () => {\n const flkty = await this.flickity;\n flkty.slides.forEach((slide: FlickitySlide, i) => {\n const ele = this.childrenEles[i] as HTMLElement;\n const x = ((slide.target + flkty.x) * -1) / 3;\n ele.style['transform'] = 'translateX(' + x + 'px)';\n });\n };\n\n private handleFullscreen = (isFullScreen: boolean) => {\n this.fullscreen = isFullScreen;\n this.nanoSlidesFullscreenChange.emit(isFullScreen);\n };\n\n private handleSlideSelect = (slide: number) => {\n this.iCurrentSlide = slide;\n this.nanoSlidesSelect.emit(slide);\n };\n\n private destroyflickity() {\n /**\n * We need to synchronously destroy\n * flickity otherwise it is possible\n * that it will be left in a\n * destroyed state if connectedCallback\n * is called multiple times\n */\n const flickity = this.syncflickity;\n\n if (flickity !== undefined) {\n flickity.destroy();\n this.flickity = new Promise((resolve) => {\n this.readyflickity = resolve;\n });\n this.flickityReady = false;\n this.syncflickity = undefined;\n this.ready = false;\n }\n this.didInit = false;\n }\n\n private async initflickity() {\n const finalOptions = this.normalizeOptions();\n\n // init flickity core\n await waitForSlides(this.host);\n this.slidesReady = true;\n\n this.flickityEl =\n this.flickityEl || this._getRoot().querySelector('.flickity-container');\n if (this.flickityEl.classList.contains('flickity-enabled'))\n this.destroyflickity();\n\n setTimeout(() => {\n const flick = new flickity(this.flickityEl, finalOptions) as Flickity;\n this.flickityReady = true;\n\n if (!this.host.shadowRoot || !CANSHADOW) this._fixClassNames();\n\n this.syncflickity = flick;\n\n this.animationChange();\n this.navbtnsChanged();\n this.pagerChanged();\n this.fullscreenChanged();\n this.fullscreenBtnChanged();\n\n this.readyflickity(flick);\n this.ready = true;\n // the slideshow has been initialised without any dimensions - let's add a one show\n // resize observer to kick it off when it gets some dimensions\n if (!this.host.getBoundingClientRect().height) {\n const ro = (this.resizeO = new ResizeObserver(() => {\n flick.resize();\n this.resizeO.disconnect();\n }));\n ro.observe(this.host);\n }\n }, 100);\n }\n\n private normalizeOptions(): FlickityOptions {\n // Base options, can be changed\n const flickityOptions: FlickityOptions = {\n cellSelector: 'nano-slide',\n contain: true,\n prevNextButtons: true,\n fullscreen: true,\n accessibility: true,\n imagesLoaded: true,\n pageDots: true,\n };\n\n if (this.animation === 'fade') {\n flickityOptions.fade = true;\n }\n if (this.currentSlide > 0) {\n flickityOptions.initialIndex = this.currentSlide;\n }\n if (this.autoplay) {\n if (typeof this.autoplay === 'string')\n this.autoplay = parseInt(this.autoplay);\n if (this.autoplay > 0) flickityOptions.autoPlay = this.autoplay as number;\n }\n\n // Keep the event options separate, we dont want users\n // overwriting these\n const eventOptions: FlickityEvents = {\n ready: () => {\n setTimeout(() => {\n this.nanoSlidesReady.emit();\n }, 20);\n },\n select: this.handleSlideSelect,\n change: this.nanoSlidesChange.emit,\n scroll: this.nanoSlidesScroll.emit,\n settle: this.nanoSlidesTransitionEnd.emit,\n dragStart: this.nanoSlidesDragStart.emit,\n dragMove: this.nanoSlidesDragMove.emit,\n dragEnd: this.nanoSlidesDragEnd.emit,\n staticClick: this.nanoSlidesTap.emit,\n fullscreenChange: this.handleFullscreen,\n };\n\n const customEvents =\n !!this.options && !!this.options.on ? this.options.on : {};\n // merge \"on\" event listeners, while giving our event listeners priority\n const mergedEventOptions = { on: { ...customEvents, ...eventOptions } };\n // Merge the base, user options, and events together then pass to flickity\n // @ts-ignore\n return { ...flickityOptions, ...mergedEventOptions, ...this.options };\n }\n\n componentDidLoad() {\n if (\n Build.isBrowser &&\n typeof window !== 'undefined' &&\n (window as any).MutationObserver\n ) {\n const mut = (this.mutationO = new MutationObserver(\n (e: MutationRecord[]) => {\n if (\n e[0].addedNodes[0] &&\n e[0].addedNodes[0].nodeName.toLowerCase() === 'nano-slide' &&\n this.flickityReady\n ) {\n this.update();\n }\n }\n ));\n\n mut.observe(this.host, {\n childList: true,\n subtree: true,\n });\n }\n }\n\n componentWillLoad() {\n this.nanoSlidesDidLoad.emit();\n\n if (!this.didInit) {\n this.didInit = true;\n this.initflickity();\n }\n }\n\n disconnectedCallback() {\n if (this.mutationO) {\n this.mutationO.disconnect();\n this.mutationO = undefined;\n }\n if (this.resizeO) this.resizeO.disconnect();\n this.destroyflickity();\n }\n\n render() {\n return (\n <Host>\n <div class=\"slideshow\" ref={(div) => (this.slideShowEle = div)}>\n <div\n ref={(div) => (this.flickityEl = div)}\n class={{\n 'flickity-container': true,\n 'slides-ready': this.slidesReady,\n 'slides-not-ready': !this.slidesReady,\n }}\n >\n <slot />\n </div>\n <div class=\"ui-extras\">\n <slot name=\"ui\" />\n </div>\n </div>\n </Host>\n );\n }\n}\n\nconst waitForSlides = (host: HTMLElement): Promise<HTMLNanoSlideElement[]> => {\n const allSlides = Array.from(host.querySelectorAll('nano-slide'));\n let toLoadSlides = allSlides.filter(\n (ele: HTMLNanoSlideElement) => !ele.ready\n );\n\n if (!toLoadSlides.length) return Promise.resolve(allSlides);\n\n return new Promise((resolve) => {\n const slideResolver = (ev: CustomEvent) => {\n toLoadSlides = toLoadSlides.filter((ele) => ele !== ev.target);\n if (!toLoadSlides.length) {\n resolve(allSlides);\n host.removeEventListener('nanoSlideReady', slideResolver);\n }\n };\n host.addEventListener('nanoSlideReady', slideResolver);\n host.addEventListener('nanoslideready', slideResolver);\n });\n};\n"],"version":3}
1
+ {"file":"nano-slides.entry.js","mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,UAAU,MAAM,EAAE,OAAO,GAAG;AAC9B;AACA;AACA,EAGS,KAAkC,MAAM,CAAC,OAAO,GAAG;AAC5D;AACA,IAAI,cAAc,GAAG,OAAO,EAAE,CAAC;AAC/B,GAAG,MAAM;AACT;AACA,IAAI,MAAM,CAAC,SAAS,GAAG,OAAO,EAAE,CAAC;AACjC,GAAG;AACH;AACA,CAAC,EAAE,OAAO,MAAM,IAAI,WAAW,GAAG,MAAM,GAAGA,cAAI,EAAE,WAAW;AAG5D;AACA,SAAS,SAAS,GAAG,EAAE;AACvB;AACA,IAAI,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC;AAChC;AACA,KAAK,CAAC,EAAE,GAAG,UAAU,SAAS,EAAE,QAAQ,GAAG;AAC3C,EAAE,KAAK,CAAC,SAAS,IAAI,CAAC,QAAQ,GAAG;AACjC,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;AACjD;AACA,EAAE,IAAI,SAAS,GAAG,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAClE;AACA,EAAE,KAAK,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,GAAG;AAC7C,IAAI,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC/B,GAAG;AACH;AACA,EAAE,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AACF;AACA,KAAK,CAAC,IAAI,GAAG,UAAU,SAAS,EAAE,QAAQ,GAAG;AAC7C,EAAE,KAAK,CAAC,SAAS,IAAI,CAAC,QAAQ,GAAG;AACjC,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AACjC;AACA;AACA,EAAE,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;AAC7D;AACA,EAAE,IAAI,aAAa,GAAG,UAAU,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC9E;AACA,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;AACnC;AACA,EAAE,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AACF;AACA,KAAK,CAAC,GAAG,GAAG,UAAU,SAAS,EAAE,QAAQ,GAAG;AAC5C,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;AAC5D,EAAE,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG;AACzC,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC5C,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG;AACrB,IAAI,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACjC,GAAG;AACH;AACA,EAAE,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AACF;AACA,KAAK,CAAC,SAAS,GAAG,UAAU,SAAS,EAAE,IAAI,GAAG;AAC9C,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;AAC5D,EAAE,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG;AACzC,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACjC,EAAE,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;AACpB;AACA,EAAE,IAAI,aAAa,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC;AACxE;AACA,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG;AAC7C,IAAI,IAAI,QAAQ,GAAG,SAAS,CAAC,CAAC,EAAC;AAC/B,IAAI,IAAI,MAAM,GAAG,aAAa,IAAI,aAAa,EAAE,QAAQ,EAAE,CAAC;AAC5D,IAAI,KAAK,MAAM,GAAG;AAClB;AACA;AACA,MAAM,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AACtC;AACA,MAAM,OAAO,aAAa,EAAE,QAAQ,EAAE,CAAC;AACvC,KAAK;AACL;AACA,IAAI,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACjC,GAAG;AACH;AACA,EAAE,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AACF;AACA,KAAK,CAAC,MAAM,GAAG,WAAW;AAC1B,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC;AACtB,EAAE,OAAO,IAAI,CAAC,WAAW,CAAC;AAC1B,CAAC,CAAC;AACF;AACA,OAAO,SAAS,CAAC;AACjB;AACA,CAAC,CAAC;;;;AC/GF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,UAAU,MAAM,EAAE,OAAO,GAAG;AAC9B;AACA,EAGS,KAAkC,MAAM,CAAC,OAAO,GAAG;AAC5D;AACA,IAAI,cAAc,GAAG,OAAO,EAAE,CAAC;AAC/B,GAAG,MAAM;AACT;AACA,IAAI,MAAM,CAAC,OAAO,GAAG,OAAO,EAAE,CAAC;AAC/B,GAAG;AACH;AACA,CAAC,GAAG,MAAM,EAAE,SAAS,OAAO,GAAG;AAE/B;AACA;AACA;AACA;AACA,SAAS,YAAY,EAAE,KAAK,GAAG;AAC/B,EAAE,IAAI,GAAG,GAAG,UAAU,EAAE,KAAK,EAAE,CAAC;AAChC;AACA,EAAE,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC;AAC1D,EAAE,OAAO,OAAO,IAAI,GAAG,CAAC;AACxB,CAAC;AACD;AACA,SAAS,IAAI,GAAG,EAAE;AAClB;AACA,IAAI,QAAQ,GAAG,OAAO,OAAO,IAAI,WAAW,GAAG,IAAI;AACnD,EAAE,UAAU,OAAO,GAAG;AACtB,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;AAC7B,GAAG,CAAC;AACJ;AACA;AACA;AACA,IAAI,YAAY,GAAG;AACnB,EAAE,aAAa;AACf,EAAE,cAAc;AAChB,EAAE,YAAY;AACd,EAAE,eAAe;AACjB,EAAE,YAAY;AACd,EAAE,aAAa;AACf,EAAE,WAAW;AACb,EAAE,cAAc;AAChB,EAAE,iBAAiB;AACnB,EAAE,kBAAkB;AACpB,EAAE,gBAAgB;AAClB,EAAE,mBAAmB;AACrB,CAAC,CAAC;AACF;AACA,IAAI,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAC;AAC7C;AACA,SAAS,WAAW,GAAG;AACvB,EAAE,IAAI,IAAI,GAAG;AACb,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,MAAM,EAAE,CAAC;AACb,IAAI,UAAU,EAAE,CAAC;AACjB,IAAI,WAAW,EAAE,CAAC;AAClB,IAAI,UAAU,EAAE,CAAC;AACjB,IAAI,WAAW,EAAE,CAAC;AAClB,GAAG,CAAC;AACJ,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,kBAAkB,EAAE,CAAC,EAAE,GAAG;AAC/C,IAAI,IAAI,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AACtC,IAAI,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;AAC5B,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ,EAAE,IAAI,GAAG;AAC1B,EAAE,IAAI,KAAK,GAAG,gBAAgB,EAAE,IAAI,EAAE,CAAC;AACvC,EAAE,KAAK,CAAC,KAAK,GAAG;AAChB,IAAI,QAAQ,EAAE,iBAAiB,GAAG,KAAK;AACvC,MAAM,6DAA6D;AACnE,MAAM,gCAAgC,EAAE,CAAC;AACzC,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,CAAC;AACD;AACA;AACA;AACA,IAAI,OAAO,GAAG,KAAK,CAAC;AACpB;AACA,IAAI,cAAc,CAAC;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,KAAK,GAAG;AACjB;AACA,EAAE,KAAK,OAAO,GAAG;AACjB,IAAI,OAAO;AACX,GAAG;AACH,EAAE,OAAO,GAAG,IAAI,CAAC;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC1C,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC;AAC5B,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,iBAAiB,CAAC;AACxC,EAAE,GAAG,CAAC,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC;AAClC,EAAE,GAAG,CAAC,KAAK,CAAC,WAAW,GAAG,iBAAiB,CAAC;AAC5C,EAAE,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,YAAY,CAAC;AACrC;AACA,EAAE,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,eAAe,CAAC;AACvD,EAAE,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC;AAC1B,EAAE,IAAI,KAAK,GAAG,QAAQ,EAAE,GAAG,EAAE,CAAC;AAC9B;AACA,EAAE,cAAc,GAAG,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,GAAG,CAAC;AACpE,EAAE,OAAO,CAAC,cAAc,GAAG,cAAc,CAAC;AAC1C;AACA,EAAE,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC;AAC1B,CAAC;AACD;AACA;AACA;AACA,SAAS,OAAO,EAAE,IAAI,GAAG;AACzB,EAAE,KAAK,EAAE,CAAC;AACV;AACA;AACA,EAAE,KAAK,OAAO,IAAI,IAAI,QAAQ,GAAG;AACjC,IAAI,IAAI,GAAG,QAAQ,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC;AAC1C,GAAG;AACH;AACA;AACA,EAAE,KAAK,CAAC,IAAI,IAAI,OAAO,IAAI,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG;AAC5D,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,KAAK,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC/B;AACA;AACA,EAAE,KAAK,KAAK,CAAC,OAAO,IAAI,MAAM,GAAG;AACjC,IAAI,OAAO,WAAW,EAAE,CAAC;AACzB,GAAG;AACH;AACA,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;AAChB,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;AAChC,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;AAClC;AACA,EAAE,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,SAAS,IAAI,YAAY,CAAC;AACvE;AACA;AACA,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,kBAAkB,EAAE,CAAC,EAAE,GAAG;AAC/C,IAAI,IAAI,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;AACtC,IAAI,IAAI,KAAK,GAAG,KAAK,EAAE,WAAW,EAAE,CAAC;AACrC,IAAI,IAAI,GAAG,GAAG,UAAU,EAAE,KAAK,EAAE,CAAC;AAClC;AACA,IAAI,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;AAClD,GAAG;AACH;AACA,EAAE,IAAI,YAAY,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;AAC1D,EAAE,IAAI,aAAa,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC;AAC3D,EAAE,IAAI,WAAW,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;AACvD,EAAE,IAAI,YAAY,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC;AACxD,EAAE,IAAI,WAAW,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC;AACjE,EAAE,IAAI,YAAY,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC;AAClE;AACA,EAAE,IAAI,oBAAoB,GAAG,WAAW,IAAI,cAAc,CAAC;AAC3D;AACA;AACA,EAAE,IAAI,UAAU,GAAG,YAAY,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;AAC/C,EAAE,KAAK,UAAU,KAAK,KAAK,GAAG;AAC9B,IAAI,IAAI,CAAC,KAAK,GAAG,UAAU;AAC3B;AACA,QAAQ,oBAAoB,GAAG,CAAC,GAAG,YAAY,GAAG,WAAW,EAAE,CAAC;AAChE,GAAG;AACH;AACA,EAAE,IAAI,WAAW,GAAG,YAAY,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;AACjD,EAAE,KAAK,WAAW,KAAK,KAAK,GAAG;AAC/B,IAAI,IAAI,CAAC,MAAM,GAAG,WAAW;AAC7B;AACA,QAAQ,oBAAoB,GAAG,CAAC,GAAG,aAAa,GAAG,YAAY,EAAE,CAAC;AAClE,GAAG;AACH;AACA,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,KAAK,YAAY,GAAG,WAAW,EAAE,CAAC;AAChE,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,KAAK,aAAa,GAAG,YAAY,EAAE,CAAC;AACpE;AACA,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;AAC7C,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;AAChD;AACA,EAAE,OAAO,IAAI,CAAC;AACd,CAAC;AACD;AACA,OAAO,OAAO,CAAC;AACf;AACA,CAAC,CAAC;;;;AC9MF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,UAAU,MAAM,EAAE,OAAO,GAAG;AAG9B;AACA,EAGS,KAAkC,MAAM,CAAC,OAAO,GAAG;AAC5D;AACA,IAAI,cAAc,GAAG,OAAO,EAAE,CAAC;AAC/B,GAAG,MAAM;AACT;AACA,IAAI,MAAM,CAAC,eAAe,GAAG,OAAO,EAAE,CAAC;AACvC,GAAG;AACH;AACA,CAAC,EAAE,MAAM,EAAE,SAAS,OAAO,GAAG;AAE9B;AACA,EAAE,IAAI,aAAa,GAAG,EAAE,WAAW;AACnC,IAAI,IAAI,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;AAC7C;AACA,IAAI,KAAK,SAAS,CAAC,OAAO,GAAG;AAC7B,MAAM,OAAO,SAAS,CAAC;AACvB,KAAK;AACL;AACA,IAAI,KAAK,SAAS,CAAC,eAAe,GAAG;AACrC,MAAM,OAAO,iBAAiB,CAAC;AAC/B,KAAK;AACL;AACA,IAAI,IAAI,QAAQ,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAClD;AACA,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG;AAC9C,MAAM,IAAI,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC/B,MAAM,IAAI,MAAM,GAAG,MAAM,GAAG,iBAAiB,CAAC;AAC9C,MAAM,KAAK,SAAS,EAAE,MAAM,EAAE,GAAG;AACjC,QAAQ,OAAO,MAAM,CAAC;AACtB,OAAO;AACP,KAAK;AACL,GAAG,GAAG,CAAC;AACP;AACA,EAAE,OAAO,SAAS,eAAe,EAAE,IAAI,EAAE,QAAQ,GAAG;AACpD,IAAI,OAAO,IAAI,EAAE,aAAa,EAAE,EAAE,QAAQ,EAAE,CAAC;AAC7C,GAAG,CAAC;AACJ;AACA,CAAC,CAAC;;;;ACpDF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,UAAU,MAAM,EAAE,OAAO,GAAG;AAC9B;AACA;AACA;AACA,EAOS,KAAkC,MAAM,CAAC,OAAO,GAAG;AAC5D;AACA,IAAI,cAAc,GAAG,OAAO;AAC5B,MAAM,MAAM;AACZ,MAAMC,eAAoC;AAC1C,KAAK,CAAC;AACN,GAAG,MAAM;AACT;AACA,IAAI,MAAM,CAAC,YAAY,GAAG,OAAO;AACjC,MAAM,MAAM;AACZ,MAAM,MAAM,CAAC,eAAe;AAC5B,KAAK,CAAC;AACN,GAAG;AACH;AACA,CAAC,EAAE,MAAM,EAAE,SAAS,OAAO,EAAE,MAAM,EAAE,eAAe,GAAG;AAGvD;AACA,IAAI,KAAK,GAAG,EAAE,CAAC;AACf;AACA;AACA;AACA;AACA,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC,GAAG;AAChC,EAAE,MAAM,IAAI,IAAI,IAAI,CAAC,GAAG;AACxB,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC;AAC1B,GAAG;AACH,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,MAAM,GAAG,UAAU,GAAG,EAAE,GAAG,GAAG;AACpC,EAAE,OAAO,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,GAAG,CAAC;AACvC,CAAC,CAAC;AACF;AACA;AACA;AACA,IAAI,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;AACvC;AACA;AACA,KAAK,CAAC,SAAS,GAAG,UAAU,GAAG,GAAG;AAClC,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG;AAC9B;AACA,IAAI,OAAO,GAAG,CAAC;AACf,GAAG;AACH;AACA,EAAE,KAAK,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,GAAG;AAC3C,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH;AACA,EAAE,IAAI,WAAW,GAAG,OAAO,GAAG,IAAI,QAAQ,IAAI,OAAO,GAAG,CAAC,MAAM,IAAI,QAAQ,CAAC;AAC5E,EAAE,KAAK,WAAW,GAAG;AACrB;AACA,IAAI,OAAO,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;AAClC,GAAG;AACH;AACA;AACA,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AACjB,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,UAAU,GAAG,UAAU,GAAG,EAAE,GAAG,GAAG;AACxC,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC;AACjC,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG;AACrB,IAAI,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AAC3B,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,SAAS,GAAG,UAAU,IAAI,EAAE,QAAQ,GAAG;AAC7C,EAAE,QAAQ,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,QAAQ,CAAC,IAAI,GAAG;AACrD,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;AAC3B,IAAI,KAAK,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG;AAC7C,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,KAAK,CAAC,eAAe,GAAG,UAAU,IAAI,GAAG;AACzC,EAAE,KAAK,OAAO,IAAI,IAAI,QAAQ,GAAG;AACjC,IAAI,OAAO,QAAQ,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC;AAC1C,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,KAAK,CAAC,WAAW,GAAG,UAAU,KAAK,GAAG;AACtC,EAAE,IAAI,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AACjC,EAAE,KAAK,IAAI,EAAE,MAAM,EAAE,GAAG;AACxB,IAAI,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC;AAC5B,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,kBAAkB,GAAG,UAAU,KAAK,EAAE,QAAQ,GAAG;AACvD;AACA,EAAE,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC;AACnC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC;AACnB;AACA,EAAE,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,GAAG;AAClC;AACA,IAAI,KAAK,GAAG,IAAI,YAAY,WAAW,EAAE,GAAG;AAC5C,MAAM,OAAO;AACb,KAAK;AACL;AACA,IAAI,KAAK,CAAC,QAAQ,GAAG;AACrB,MAAM,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;AAC3B,MAAM,OAAO;AACb,KAAK;AACL;AACA;AACA,IAAI,KAAK,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG;AAC7C,MAAM,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;AAC3B,KAAK;AACL;AACA,IAAI,IAAI,UAAU,GAAG,IAAI,CAAC,gBAAgB,EAAE,QAAQ,EAAE,CAAC;AACvD;AACA,IAAI,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG;AAChD,MAAM,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;AACpC,KAAK;AACL,GAAG,CAAC,CAAC;AACL;AACA,EAAE,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,cAAc,GAAG,UAAU,MAAM,EAAE,UAAU,EAAE,SAAS,GAAG;AACjE,EAAE,SAAS,GAAG,SAAS,IAAI,GAAG,CAAC;AAC/B;AACA,EAAE,IAAI,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC;AAC9C,EAAE,IAAI,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC;AAC3C;AACA,EAAE,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,GAAG,WAAW;AAC9C,IAAI,IAAI,OAAO,GAAG,IAAI,EAAE,WAAW,EAAE,CAAC;AACtC,IAAI,YAAY,EAAE,OAAO,EAAE,CAAC;AAC5B;AACA,IAAI,IAAI,IAAI,GAAG,SAAS,CAAC;AACzB,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC;AACrB,IAAI,IAAI,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,WAAW;AACjD,MAAM,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAClC,MAAM,OAAO,KAAK,EAAE,WAAW,EAAE,CAAC;AAClC,KAAK,EAAE,SAAS,EAAE,CAAC;AACnB,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,QAAQ,GAAG,UAAU,QAAQ,GAAG;AACtC,EAAE,IAAI,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;AACvC,EAAE,KAAK,UAAU,IAAI,UAAU,IAAI,UAAU,IAAI,aAAa,GAAG;AACjE;AACA,IAAI,UAAU,EAAE,QAAQ,EAAE,CAAC;AAC3B,GAAG,MAAM;AACT,IAAI,QAAQ,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC;AAC9D,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,KAAK,CAAC,QAAQ,GAAG,UAAU,GAAG,GAAG;AACjC,EAAE,OAAO,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG;AAC/D,IAAI,OAAO,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;AACzB,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AACnB,CAAC,CAAC;AACF;AACA,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC7B;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,QAAQ,GAAG,UAAU,WAAW,EAAE,SAAS,GAAG;AACpD,EAAE,KAAK,CAAC,QAAQ,EAAE,WAAW;AAC7B,IAAI,IAAI,eAAe,GAAG,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC;AACtD,IAAI,IAAI,QAAQ,GAAG,OAAO,GAAG,eAAe,CAAC;AAC7C,IAAI,IAAI,aAAa,GAAG,QAAQ,CAAC,gBAAgB,EAAE,GAAG,GAAG,QAAQ,GAAG,GAAG,EAAE,CAAC;AAC1E,IAAI,IAAI,WAAW,GAAG,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,eAAe,EAAE,CAAC;AAC5E,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC,SAAS,EAAE,aAAa,EAAE;AAChD,OAAO,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,EAAE,CAAC;AAChD,IAAI,IAAI,eAAe,GAAG,QAAQ,GAAG,UAAU,CAAC;AAChD,IAAI,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC/B;AACA,IAAI,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,GAAG;AACpC,MAAM,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE;AAC9C,QAAQ,IAAI,CAAC,YAAY,EAAE,eAAe,EAAE,CAAC;AAC7C,MAAM,IAAI,OAAO,CAAC;AAClB,MAAM,IAAI;AACV,QAAQ,OAAO,GAAG,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;AAC7C,OAAO,CAAC,QAAQ,KAAK,GAAG;AACxB;AACA,QAAQ,KAAK,OAAO,GAAG;AACvB,UAAU,OAAO,CAAC,KAAK,EAAE,gBAAgB,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC,SAAS;AAC9E,UAAU,IAAI,GAAG,KAAK,EAAE,CAAC;AACzB,SAAS;AACT,QAAQ,OAAO;AACf,OAAO;AACP;AACA,MAAM,IAAI,QAAQ,GAAG,IAAI,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACtD;AACA,MAAM,KAAK,MAAM,GAAG;AACpB,QAAQ,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AACjD,OAAO;AACP,KAAK,CAAC,CAAC;AACP;AACA,GAAG,CAAC,CAAC;AACL,CAAC,CAAC;AACF;AACA;AACA;AACA,OAAO,KAAK,CAAC;AACb;AACA,CAAC,CAAC;;;AC5Oa,SAAS,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE;AAC3C,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACtB,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACvB;AACA,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AAChB,CAAC;AACD;AACA,IAAIC,OAAK,GAAG,IAAI,CAAC,SAAS,CAAC;AAC3B;AACAA,OAAK,CAAC,MAAM,GAAG,YAAY;AAC3B,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;AAC3C,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AACnD,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACb,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACjB,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK;AACtE,IAAI,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAC3C,GAAG,CAAC,CAAC;AACL,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,OAAO,GAAG,YAAY;AAC5B;AACA,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AAClB,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;AACnC,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;AACpC,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AAChC,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,OAAO,GAAG,YAAY;AAC5B,EAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,WAAW,GAAG,UAAU,CAAC,EAAE;AACjC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACb,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;AACtB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC,CAAC;AACF;AACA;AACAA,OAAK,CAAC,YAAY,GAAGA,OAAK,CAAC,gBAAgB,GAAG,YAAY;AAC1D,EAAE,IAAI,cAAc;AACpB,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,GAAG,YAAY,GAAG,aAAa,CAAC;AACpE,EAAE,IAAI,CAAC,MAAM;AACb,IAAI,IAAI,CAAC,CAAC;AACV,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;AAC7B,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;AAC5C,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,cAAc,GAAG,UAAU,CAAC,EAAE;AACpC;AACA,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;AACpC,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,MAAM,GAAG,YAAY;AAC3B,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAC5C,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;AAC9C,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK;AACtE,IAAI,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;AACxC,GAAG,CAAC,CAAC;AACL,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,QAAQ,GAAG,YAAY;AAC7B,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAC/C,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AACnD,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK;AACtE,IAAI,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAC3C,GAAG,CAAC,CAAC;AACL,CAAC,CAAC;AACF;AACA;AACA;AACA;AACAA,OAAK,CAAC,SAAS,GAAG,UAAU,KAAK,EAAE;AACnC,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACrB,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC,CAAC;AACnE,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,MAAM,GAAG,YAAY;AAC3B,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACpD,CAAC;;ACjFc,SAASC,OAAK,CAAC,MAAM,EAAE;AACtC,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACvB,EAAE,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC;AAClD,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AAClB,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;AACtB,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAClB,CAAC;AACD;AACA,IAAID,OAAK,GAAGC,OAAK,CAAC,SAAS,CAAC;AAC5B;AACAD,OAAK,CAAC,OAAO,GAAG,UAAU,IAAI,EAAE;AAChC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC1C,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7D;AACA,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AAC9B,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACpB,IAAI,IAAI,WAAW,GAAG,IAAI,CAAC,YAAY,GAAG,YAAY,GAAG,aAAa,CAAC;AACvE,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC9C,GAAG;AACH,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,YAAY,GAAG,YAAY;AACjC,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,GAAG,aAAa,GAAG,YAAY,CAAC;AACnE,EAAE,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AACpC,EAAE,IAAI,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC3D,EAAE,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,CAAC;AACrE,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;AAC/E,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,WAAW,GAAG,YAAY;AAChC,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC3C,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,MAAM,GAAG,YAAY;AAC3B,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AACrC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;AAClB,GAAG,CAAC,CAAC;AACL,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,QAAQ,GAAG,YAAY;AAC7B,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AACrC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpB,GAAG,CAAC,CAAC;AACL,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,eAAe,GAAG,YAAY;AACpC,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE;AACxC,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC;AACxB,GAAG,CAAC,CAAC;AACL,CAAC;;AClDD,MAAMA,OAAK,GAAG,EAAE,CAAC;AACjB;AACAA,OAAK,CAAC,cAAc,GAAG,YAAY;AACnC,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE;AACxB,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC1B,EAAE,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AACzB,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AACjB,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,OAAO,GAAG,YAAY;AAC5B,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;AACxB,EAAE,IAAI,CAAC,uBAAuB,EAAE,CAAC;AACjC;AACA,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC;AACzB;AACA,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC1B,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;AACxB,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACzB;AACA,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE;AACxB,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC;AACrB,IAAI,qBAAqB,CAAC,SAAS,YAAY,GAAG;AAClD,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;AACtB,KAAK,CAAC,CAAC;AACP,GAAG;AACH,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,cAAc,GAAG,YAAY;AACnC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACjB;AACA,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACxD,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AAC7C,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;AAChC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAC3B,GAAG;AACH;AACA,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1C,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC7B,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,aAAa,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE;AACzC,EAAE,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC;AAC3B;AACA,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACxC,EAAE,IAAI,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAC5C;AACA;AACA,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI;AACpC,MAAM,cAAc,GAAG,UAAU,GAAG,OAAO;AAC3C,MAAM,aAAa,GAAG,UAAU,GAAG,GAAG,CAAC;AACvC,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,mBAAmB,GAAG,YAAY;AACxC,EAAE,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAClC,EAAE,IAAI,CAAC,UAAU,EAAE;AACnB,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;AAC9C,EAAE,IAAI,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;AAC9C,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAC5D,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,wBAAwB,GAAG,YAAY;AAC7C,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AAC1B,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;AACtC,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AACpB,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;AACxB,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,gBAAgB,GAAG,UAAU,QAAQ,EAAE;AAC7C,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;AACpC;AACA,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC;AAC9E,GAAG,MAAM;AACT;AACA,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;AACvC,GAAG;AACH,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,MAAM,GAAG,UAAU,SAAS,EAAE;AACpC;AACA,EAAE;AACF,IAAI,CAAC,IAAI,CAAC,aAAa;AACvB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC;AAC3D,IAAI;AACJ,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;AACzB,GAAG;AACH;AACA,EAAE,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE;AAC9B,IAAI,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC7B,IAAI,OAAO,IAAI,CAAC,eAAe,CAAC;AAChC;AACA,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;AAC1B,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AAC7D,GAAG;AACH,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,cAAc,GAAG,UAAU,CAAC,EAAE;AACpC;AACA,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;AAC1C,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;AACzD;AACA,EAAE,IAAI,QAAQ;AACd,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;AAC3E,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AACtD,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,WAAW,GAAG,UAAU,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE;AACjD,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACxB,IAAI,IAAI,SAAS,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AACxC,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAC9B,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAChC,GAAG;AACH,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,aAAa,GAAG,UAAU,KAAK,EAAE;AACvC,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AAC/B,IAAI,OAAO;AACX,GAAG;AACH,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC1B,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACAA,OAAK,CAAC,gBAAgB,GAAG,YAAY;AACrC,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC;AAC1B,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC5C,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,UAAU,GAAG,UAAU,KAAK,EAAE;AACpC,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC;AACzB,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,iBAAiB,GAAG,YAAY;AACtC,EAAE;AACF,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,GAAG,oBAAoB,GAAG,UAAU,CAAC;AAC9E,IAAI;AACJ,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,kBAAkB,GAAG,YAAY;AACvC;AACA,EAAE,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACjE,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,cAAc,GAAG,YAAY;AACnC,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AAChD,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;AACzC,EAAE,IAAI,SAAS,GAAG,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC/C,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC7B,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,uBAAuB,GAAG,YAAY;AAC5C;AACA,EAAE,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,CAAC;AACxD,EAAE,IAAI,QAAQ,IAAI,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AAC/D,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACzD,EAAE,IAAI,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC;AACzD,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC;;ACpKD;AACA,IAAIE,kBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC/C,IAAIC,SAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AAC7B;AACA,SAAS,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE;AACrC,EAAE,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACjC,EAAE,OAAO,KAAK,CAAC,MAAM,EAAE;AACvB,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;AACtC,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG,CAAC,CAAC;AACb;AACA,IAAI,SAAS,GAAG,EAAE,CAAC;AACnB;AACe,SAAS,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE;AACnD,EAAE,IAAI,YAAY,GAAG,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AACpD,EAAE,IAAI,CAAC,YAAY,EAAE;AACrB,IAAI,IAAIA,SAAO,EAAE;AACjB,MAAMA,SAAO,CAAC,KAAK,CAAC,4BAA4B,IAAI,YAAY,IAAI,OAAO,CAAC,CAAC,CAAC;AAC9E,KAAK;AACL,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC;AAC9B;AACA,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;AACjC,IAAI,IAAI,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AACxD,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,OAAO;AACtD,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC7B,IAAI,OAAO,QAAQ,CAAC;AACpB,GAAG;AACH;AACA;AACA,EAAE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC7D,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACvB;AACA;AACA,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AACjB,CAAC;AACD;AACA,QAAQ,CAAC,QAAQ,GAAG;AACpB,EAAE,aAAa,EAAE,IAAI;AACrB;AACA,EAAE,SAAS,EAAE,QAAQ;AACrB;AACA;AACA,EAAE,kBAAkB,EAAE,KAAK;AAC3B,EAAE,QAAQ,EAAE,IAAI;AAChB,EAAE,qBAAqB,EAAE,IAAI;AAC7B;AACA,EAAE,eAAe,EAAE,IAAI;AACvB,EAAE,MAAM,EAAE,IAAI;AACd,EAAE,kBAAkB,EAAE,KAAK;AAC3B,EAAE,cAAc,EAAE,IAAI;AACtB;AACA;AACA,CAAC,CAAC;AACF;AACA;AACA,QAAQ,CAAC,aAAa,GAAG,EAAE,CAAC;AAC5B;AACA,IAAIH,OAAK,GAAG,QAAQ,CAAC,SAAS,CAAC;AAC/B;AACA,KAAK,CAAC,MAAM,CAACA,OAAK,EAAEI,SAAS,CAAC,SAAS,CAAC,CAAC;AACzC;AACAJ,OAAK,CAAC,OAAO,GAAG,YAAY;AAC5B;AACA,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,CAAC,CAAC;AAChC,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,EAAE,CAAC;AACjC,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;AACvB;AACA,EAAE,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AACzB;AACA,EAAE,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AACzB;AACA,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AACb,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AACpB,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAChE;AACA,EAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAChD,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,mBAAmB,CAAC;AAChD,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;AACvB;AACA,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AACpD,IAAI,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC5C,GAAG;AACH;AACA;AACA,EAAE,KAAK,IAAI,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE;AACzC,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AAC9C,IAAI,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACjC,GAAG;AACH;AACA,EAAE,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,MAAM,EAAE;AACnD,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AACnB,GAAG,EAAE,IAAI,CAAC,CAAC;AACX;AACA,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AAC7B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpB,GAAG,MAAM;AACT,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpB,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACAA,OAAK,CAAC,MAAM,GAAG,UAAU,IAAI,EAAE;AAC/B,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACnC,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,QAAQ,GAAG,YAAY;AAC7B,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE;AACrB,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACvB,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AACjD,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;AAChC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAC/C,GAAG;AACH;AACA,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AACjB;AACA,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;AACxC,EAAE,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACvC,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACzC,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC1C;AACA,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;AACrB;AACA,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;AAClC;AACA,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AAC9B;AACA,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACnD,GAAG;AACH;AACA,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAC7B,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC5B;AACA,EAAE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC9B;AACA,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC,CAAC;AACF;AACA;AACAA,OAAK,CAAC,aAAa,GAAG,YAAY;AAClC;AACA,EAAE,IAAI,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC7C,EAAE,MAAM,CAAC,SAAS,GAAG,iBAAiB,CAAC;AACvC,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACpC,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACvB,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,uBAAuB,GAAG,UAAU,KAAK,EAAE;AACjD,EAAE,OAAO,KAAK,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AACpE,CAAC,CAAC;AACF;AACA;AACAA,OAAK,CAAC,WAAW,GAAG,YAAY;AAChC;AACA,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU;AAC9B,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI;AAClC,QAAQ,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,QAAQ;AAC/C,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ;AAC5B,GAAG,CAAC;AACJ,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;AACvB,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC5B,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;AACxB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACAA,OAAK,CAAC,UAAU,GAAG,UAAU,KAAK,EAAE;AACpC,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACtD;AACA;AACA,EAAE,IAAI,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,QAAQ,EAAE;AAChD,IAAI,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACpC,GAAG,EAAE,IAAI,CAAC,CAAC;AACX;AACA,EAAE,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,WAAW,GAAG,YAAY;AAChC,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC3C,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,YAAY,GAAG,YAAY;AACjC,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC7C,CAAC,CAAC;AACF;AACA;AACAA,OAAK,CAAC,aAAa,GAAG,YAAY;AAClC;AACA,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B;AACA,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACAA,OAAK,CAAC,cAAc,GAAG,UAAU,KAAK,EAAE;AACxC,EAAE,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC;AACrB;AACA;AACA,EAAE,IAAI,CAAC,aAAa,GAAG,KAAK,GAAG,IAAI,CAAC,aAAa,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3D,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;AAChB;AACA,EAAE,IAAI,KAAK,GAAG,CAAC,EAAE;AACjB,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AAC1C,IAAI,KAAK,GAAG,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;AACpD,GAAG;AACH,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AAC9B,EAAE,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AACpC,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7B,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC5B,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAClC,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAC7E,GAAG;AACH;AACA,EAAE,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC9B;AACA,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;AACtB;AACA,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;AACxB;AACA,EAAE,IAAI,CAAC,WAAW,GAAG,GAAG;AACxB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM;AACxD,MAAM,CAAC,CAAC;AACR,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACAA,OAAK,CAAC,UAAU,GAAG,UAAU,KAAK,EAAE;AACpC,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AAChC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;AACnB,GAAG,CAAC,CAAC;AACL,CAAC,CAAC;AACF;AACA;AACA;AACAA,OAAK,CAAC,YAAY,GAAG,YAAY;AACjC,EAAE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AACnB,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AAC1B,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,KAAK,GAAG,IAAIC,OAAK,CAAC,IAAI,CAAC,CAAC;AAC9B,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,EAAE,IAAI,YAAY,GAAG,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC;AAC/C,EAAE,IAAI,UAAU,GAAG,YAAY,GAAG,aAAa,GAAG,YAAY,CAAC;AAC/D;AACA,EAAE,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;AACzC;AACA,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE;AACxC;AACA,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE;AAC7B,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1B,MAAM,OAAO;AACb,KAAK;AACL;AACA,IAAI,IAAI,UAAU;AAClB,MAAM,KAAK,CAAC,UAAU;AACtB,MAAM,KAAK,CAAC,WAAW;AACvB,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACrD;AACA,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE;AAC9C,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1B,KAAK,MAAM;AACX;AACA,MAAM,KAAK,CAAC,YAAY,EAAE,CAAC;AAC3B;AACA,MAAM,KAAK,GAAG,IAAIA,OAAK,CAAC,IAAI,CAAC,CAAC;AAC9B,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1B,KAAK;AACL,GAAG,EAAE,IAAI,CAAC,CAAC;AACX;AACA,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC;AACvB;AACA,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC7B,CAAC,CAAC;AACF;AACAD,OAAK,CAAC,cAAc,GAAG,YAAY;AACnC,EAAE,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;AAC3C,EAAE,IAAI,CAAC,UAAU,EAAE;AACnB,IAAI,OAAO,YAAY;AACvB,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK,CAAC;AACN,GAAG,MAAM,IAAI,OAAO,UAAU,IAAI,QAAQ,EAAE;AAC5C;AACA,IAAI,IAAI,MAAM,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC1C,IAAI,OAAO,UAAU,CAAC,EAAE;AACxB,MAAM,OAAO,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC;AAC9B,KAAK,CAAC;AACN,GAAG;AACH;AACA;AACA,EAAE,IAAI,YAAY;AAClB,IAAI,OAAO,UAAU,IAAI,QAAQ,IAAI,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AAClE,EAAE,IAAI,OAAO,GAAG,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;AACvE,EAAE,OAAO,UAAU,CAAC,EAAE,UAAU,EAAE;AAClC,IAAI,OAAO,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,OAAO,CAAC;AAC9D,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA;AACAA,OAAK,CAAC,KAAK,GAAGA,OAAK,CAAC,UAAU,GAAG,YAAY;AAC7C,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;AACvB,EAAE,IAAI,CAAC,wBAAwB,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,OAAO,GAAG,YAAY;AAC5B,EAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACpC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;AACtB,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;AAC9D,CAAC,CAAC;AACF;AACA,IAAI,mBAAmB,GAAG;AAC1B;AACA,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,GAAG;AACb,IAAI,KAAK,EAAE,GAAG;AACd,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,KAAK,EAAE,CAAC;AACZ,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,KAAK,EAAE,CAAC;AACZ,IAAI,IAAI,EAAE,CAAC;AACX,GAAG;AACH,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,YAAY,GAAG,YAAY;AACjC,EAAE,IAAI,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC9D,EAAE,IAAI,CAAC,SAAS,GAAG,SAAS;AAC5B,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;AAChC,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AAC7B,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,cAAc,GAAG,YAAY;AACnC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;AACnC,IAAI,IAAI,MAAM;AACd,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,aAAa;AACvD,UAAU,IAAI,CAAC,aAAa,CAAC,MAAM;AACnC,UAAU,IAAI,CAAC,aAAa,CAAC;AAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAC/C,GAAG;AACH,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,kBAAkB,GAAG,YAAY;AACvC;AACA,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;AAChC,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC5C,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAC3C;AACA;AACA,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC;AACjC,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACxC,EAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;AACjE;AACA;AACA,EAAE,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC;AACpD;AACA,EAAE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvD,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,YAAY,GAAG,UAAU,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE;AAC3D;AACA,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC;AACjB,EAAE,OAAO,IAAI,GAAG,CAAC,EAAE;AACnB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACrC,IAAI,IAAI,CAAC,IAAI,EAAE;AACf,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrB,IAAI,SAAS,IAAI,SAAS,CAAC;AAC3B,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AACjC,GAAG;AACH,EAAE,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AACF;AACA;AACA;AACA;AACAA,OAAK,CAAC,cAAc,GAAG,YAAY;AACnC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AAC9E,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;AAC/C,EAAE,IAAI,WAAW,GAAG,aAAa,GAAG,aAAa,GAAG,YAAY,CAAC;AACjE,EAAE,IAAI,SAAS,GAAG,aAAa,GAAG,YAAY,GAAG,aAAa,CAAC;AAC/D,EAAE,IAAI,YAAY,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC9E;AACA,EAAE,IAAI,gBAAgB,GAAG,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAC7D;AACA,EAAE,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACzE,EAAE,IAAI,QAAQ,GAAG,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;AAC5E;AACA,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE;AACvC,IAAI,IAAI,gBAAgB,EAAE;AAC1B;AACA,MAAM,KAAK,CAAC,MAAM,GAAG,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;AACnD,KAAK,MAAM;AACX;AACA,MAAM,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AACxD,MAAM,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACtD,KAAK;AACL,GAAG,EAAE,IAAI,CAAC,CAAC;AACX,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAA,OAAK,CAAC,aAAa,GAAG,UAAU,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;AACnD,EAAE,IAAI,QAAQ,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACrD,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACjC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAA,OAAK,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE;AACnD,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACtB,IAAI,OAAO;AACX,GAAG;AACH,EAAE,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC9B,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC1B;AACA,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,MAAM,EAAE;AACzC,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACpD,GAAG;AACH;AACA,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AAC3B,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;AACrC,EAAE,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC7B,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC7B,EAAE,IAAI,SAAS,EAAE;AACjB,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;AACpC,GAAG,MAAM;AACT,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;AAC1B,GAAG;AACH,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;AACnC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;AAC1B,GAAG;AACH;AACA,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9C;AACA,EAAE,IAAI,KAAK,IAAI,SAAS,EAAE;AAC1B,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAChD,GAAG;AACH;AACA,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;AACnC,CAAC,CAAC;AACF;AACA;AACAA,OAAK,CAAC,WAAW,GAAG,UAAU,KAAK,EAAE;AACrC,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AAC/B,EAAE,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,GAAG,GAAG,CAAC,CAAC;AACtD,EAAE,IAAI,CAAC,UAAU,EAAE;AACnB,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH,EAAE,IAAI,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC3C;AACA,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;AACvD,EAAE,IAAI,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;AACrE,EAAE,IAAI,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;AACzE,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,aAAa,GAAG,KAAK,EAAE;AACnD,IAAI,KAAK,IAAI,GAAG,CAAC;AACjB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,iBAAiB,GAAG,KAAK,EAAE;AAC9D,IAAI,KAAK,IAAI,GAAG,CAAC;AACjB,GAAG;AACH;AACA,EAAE,IAAI,KAAK,GAAG,CAAC,EAAE;AACjB,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC;AAClC,GAAG,MAAM,IAAI,KAAK,IAAI,GAAG,EAAE;AAC3B,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC;AAClC,GAAG;AACH,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,QAAQ,GAAG,UAAU,MAAM,EAAE,SAAS,EAAE;AAC9C,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AACzD,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,IAAI,GAAG,UAAU,MAAM,EAAE,SAAS,EAAE;AAC1C,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AACzD,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,mBAAmB,GAAG,YAAY;AACxC,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC9C;AACA,EAAE,IAAI,CAAC,KAAK,EAAE;AACd,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC/B;AACA,EAAE,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC7B,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;AACjB,EAAE,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC;AACnC,EAAE,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;AAClD;AACA;AACA,EAAE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACrC,EAAE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,qBAAqB,GAAG,YAAY;AAC1C,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE;AAC1B,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;AAClC,GAAG;AACH,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,kBAAkB,GAAG,YAAY;AACvC,EAAE,IAAI,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;AAC/C;AACA,EAAE,IAAI,IAAI,CAAC,eAAe,EAAE;AAC5B,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACjD,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,YAAY,IAAI,OAAO,YAAY,IAAI,QAAQ,EAAE;AACvD,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AAC5C,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACjD,MAAM,OAAO;AACb,KAAK;AACL,GAAG;AACH;AACA,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;AAChB;AACA,EAAE,IAAI,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;AACjD,IAAI,KAAK,GAAG,YAAY,CAAC;AACzB,GAAG;AACH;AACA,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACAA,OAAK,CAAC,UAAU,GAAG,UAAU,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE;AACvD;AACA,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACnC,EAAE,IAAI,CAAC,IAAI,EAAE;AACb,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC3C,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AACxC,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,iBAAiB,GAAG,UAAU,IAAI,EAAE;AAC1C;AACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/C,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC/B,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1C,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,EAAE;AACrB,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAA,OAAK,CAAC,OAAO,GAAG,UAAU,IAAI,EAAE;AAChC;AACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC9C,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7B,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;AAC9B,MAAM,OAAO,IAAI,CAAC;AAClB,KAAK;AACL,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACAA,OAAK,CAAC,QAAQ,GAAG,UAAU,KAAK,EAAE;AAClC,EAAE,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACjC,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC;AACjB,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AAChC,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAClC,IAAI,IAAI,IAAI,EAAE;AACd,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvB,KAAK;AACL,GAAG,EAAE,IAAI,CAAC,CAAC;AACX,EAAE,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACAA,OAAK,CAAC,eAAe,GAAG,YAAY;AACpC,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE;AACxC,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC;AACxB,GAAG,CAAC,CAAC;AACL,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACAA,OAAK,CAAC,aAAa,GAAG,UAAU,IAAI,EAAE;AACtC;AACA,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAChC,EAAE,IAAI,IAAI,EAAE;AACZ,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA,EAAE,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;AACvD,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACAA,OAAK,CAAC,uBAAuB,GAAG,UAAU,QAAQ,EAAE,KAAK,EAAE;AAC3D,EAAE,IAAI,CAAC,QAAQ,EAAE;AACjB,IAAI,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;AAChD,GAAG;AACH,EAAE,KAAK,GAAG,KAAK,KAAK,SAAS,GAAG,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3D;AACA,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AAC/B,EAAE,IAAI,CAAC,GAAG,QAAQ,GAAG,CAAC,IAAI,GAAG,EAAE;AAC/B,IAAI,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;AAClC,GAAG;AACH;AACA,EAAE,IAAI,SAAS,GAAG,EAAE,CAAC;AACrB,EAAE,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,QAAQ,EAAE,CAAC,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;AAC7D,IAAI,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AACxE,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACxC,IAAI,IAAI,KAAK,EAAE;AACf,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;AAC5D,KAAK;AACL,GAAG;AACH,EAAE,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACAA,OAAK,CAAC,SAAS,GAAG,UAAU,QAAQ,EAAE;AACtC,EAAE,IAAI,OAAO,QAAQ,IAAI,QAAQ,EAAE;AACnC;AACA,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAChC,GAAG;AACH,EAAE,IAAI,OAAO,QAAQ,IAAI,QAAQ,EAAE;AACnC;AACA,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE;AACzC,MAAM,OAAO;AACb,KAAK;AACL;AACA,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AACpD,GAAG;AACH;AACA,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC,CAAC;AACF;AACA;AACA;AACAA,OAAK,CAAC,QAAQ,GAAG,YAAY;AAC7B,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAC7B,CAAC,CAAC;AACF;AACA;AACAA,OAAK,CAAC,kBAAkB,GAAG,UAAU,KAAK,EAAE;AAC5C;AACA,EAAE,IAAI,KAAK,CAAC,IAAI,IAAI,YAAY,EAAE;AAClC,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;AACf,CAAC,CAAC;AACF;AACA;AACA;AACAA,OAAK,CAAC,QAAQ,GAAG,YAAY;AAC7B,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AAClB,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AAChB,CAAC,CAAC;AACF;AACA,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;AAChD;AACAA,OAAK,CAAC,MAAM,GAAG,YAAY;AAC3B,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACtB,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AACjB;AACA,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;AAC/B,IAAI,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACvD,GAAG;AACH,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;AACvB,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC5B,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;AACxB,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC3B;AACA;AACA,EAAE,IAAI,eAAe,GAAG,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAC1E,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAChD,CAAC,CAAC;AACF;AACA;AACAA,OAAK,CAAC,QAAQ,GAAG,YAAY;AAC7B,EAAE,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC1C,EAAE,IAAI,CAAC,WAAW,EAAE;AACpB,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,YAAY,GAAGE,kBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC;AACtE;AACA,EAAE,IAAI,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE;AAC9C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpB,GAAG,MAAM;AACT,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;AACtB,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACAF,OAAK,CAAC,SAAS,GAAG,UAAU,KAAK,EAAE;AACnC;AACA,EAAE,IAAI,YAAY;AAClB,IAAI,QAAQ,CAAC,aAAa,IAAI,QAAQ,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC;AACrE,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,YAAY,EAAE;AACnD,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACzD,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvB,GAAG;AACH,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,gBAAgB,GAAG;AAC5B;AACA,EAAE,EAAE,EAAE,YAAY;AAClB,IAAI,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,MAAM,GAAG,UAAU,CAAC;AACpE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpB,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;AACvB,GAAG;AACH;AACA,EAAE,EAAE,EAAE,YAAY;AAClB,IAAI,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,UAAU,GAAG,MAAM,CAAC;AACrE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;AACpB,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;AACxB,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACAA,OAAK,CAAC,KAAK,GAAG,YAAY;AAC1B;AACA;AACA,EAAE,IAAI,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACvC,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9C;AACA,EAAE,IAAI,MAAM,CAAC,WAAW,IAAI,WAAW,EAAE;AACzC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AACrD,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACAA,OAAK,CAAC,UAAU,GAAG,YAAY;AAC/B,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACtB,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACpD,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAChD,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC/B;AACA,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AACrC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;AACnB,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC1C;AACA,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACnD,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;AAClC,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;AAC7C,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACtD,GAAG;AACH;AACA,EAAE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACxB,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AAC/B,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,OAAO,GAAG,YAAY;AAC5B,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;AACpB,EAAE,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC7C,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AAChB,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AAC5B,EAAE,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;AACnC,EAAE,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,MAAM,CAACA,OAAK,EAAEK,OAAgB,CAAC,CAAC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,CAAC,IAAI,GAAG,UAAU,IAAI,EAAE;AAChC,EAAE,IAAI,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACrC,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC;AACrC,EAAE,OAAO,EAAE,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;AAC7B,CAAC,CAAC;AACF;AACA,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACrC;AACA,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,QAAQ,CAAC,KAAK,GAAGJ,OAAK;;;ACp2BtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,UAAU,MAAM,EAAE,OAAO,GAAG;AAC9B;AACA;AACA,EAOS,KAAkC,MAAM,CAAC,OAAO,GAAG;AAC5D;AACA,IAAI,cAAc,GAAG,OAAO;AAC5B,MAAM,MAAM;AACZ,MAAMF,SAAqB;AAC3B,KAAK,CAAC;AACN,GAAG,MAAM;AACT;AACA,IAAI,MAAM,CAAC,UAAU,GAAG,OAAO;AAC/B,MAAM,MAAM;AACZ,MAAM,MAAM,CAAC,SAAS;AACtB,KAAK,CAAC;AACN,GAAG;AACH;AACA,CAAC,EAAE,MAAM,EAAE,SAAS,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG;AAGjD;AACA,SAAS,IAAI,GAAG,EAAE;AAClB;AACA,SAAS,UAAU,GAAG,EAAE;AACxB;AACA;AACA,IAAI,KAAK,GAAG,UAAU,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC;AACxE;AACA,KAAK,CAAC,cAAc,GAAG,UAAU,IAAI,GAAG;AACxC,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACrC,CAAC,CAAC;AACF;AACA,KAAK,CAAC,gBAAgB,GAAG,UAAU,IAAI,GAAG;AAC1C,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACtC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,eAAe,GAAG,UAAU,IAAI,EAAE,KAAK,GAAG;AAChD;AACA,EAAE,KAAK,GAAG,KAAK,KAAK,SAAS,GAAG,IAAI,GAAG,KAAK,CAAC;AAC7C,EAAE,IAAI,UAAU,GAAG,KAAK,GAAG,kBAAkB,GAAG,qBAAqB,CAAC;AACtE;AACA;AACA,EAAE,IAAI,UAAU,GAAG,WAAW,CAAC;AAC/B,EAAE,KAAK,cAAc,IAAI,MAAM,GAAG;AAClC;AACA;AACA,IAAI,UAAU,GAAG,YAAY,CAAC;AAC9B,GAAG,MAAM,KAAK,MAAM,CAAC,YAAY,GAAG;AACpC;AACA,IAAI,UAAU,GAAG,aAAa,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACzC,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,WAAW,GAAG,UAAU,KAAK,GAAG;AACtC,EAAE,IAAI,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AACjC,EAAE,KAAK,IAAI,EAAE,MAAM,EAAE,GAAG;AACxB,IAAI,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC;AAC5B,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,QAAQ,GAAG,UAAU,OAAO,GAAG;AACrC,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG;AAC3C,IAAI,IAAI,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC3B,IAAI,KAAK,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,iBAAiB,GAAG;AACtD,MAAM,OAAO,KAAK,CAAC;AACnB,KAAK;AACL,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,WAAW,GAAG,UAAU,KAAK,GAAG;AACtC;AACA,EAAE,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AAC5B,EAAE,KAAK,MAAM,MAAM,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,EAAE,GAAG;AACpD,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AACpC,CAAC,CAAC;AACF;AACA,KAAK,CAAC,YAAY,GAAG,UAAU,KAAK,GAAG;AACvC,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,CAAC,CAAC;AACF;AACA,KAAK,CAAC,aAAa,GAAG,UAAU,KAAK,GAAG;AACxC,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AACpC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,YAAY,GAAG,UAAU,KAAK,EAAE,OAAO,GAAG;AAChD;AACA;AACA,EAAE,KAAK,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,GAAG;AAC5C,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC5B;AACA,EAAE,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,SAAS,KAAK,SAAS;AAC1D;AACA,IAAI,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;AAC3C;AACA,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACrC,CAAC,CAAC;AACF;AACA,KAAK,CAAC,WAAW,GAAG,UAAU,KAAK,EAAE,OAAO,GAAG;AAC/C,EAAE,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,CAAC;AACrC,EAAE,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;AACtD,CAAC,CAAC;AACF;AACA;AACA,IAAI,eAAe,GAAG;AACtB,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE;AACvC,EAAE,UAAU,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE;AACxD,EAAE,WAAW,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE;AAC9D,CAAC,CAAC;AACF;AACA,KAAK,CAAC,oBAAoB,GAAG,UAAU,KAAK,GAAG;AAC/C,EAAE,KAAK,CAAC,KAAK,GAAG;AAChB,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,MAAM,GAAG,eAAe,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;AAC7C;AACA,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,SAAS,GAAG;AACxC,IAAI,MAAM,CAAC,gBAAgB,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC/C,GAAG,EAAE,IAAI,EAAE,CAAC;AACZ;AACA,EAAE,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC;AACpC,CAAC,CAAC;AACF;AACA,KAAK,CAAC,sBAAsB,GAAG,WAAW;AAC1C;AACA,EAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,GAAG;AACnC,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,UAAU,SAAS,GAAG;AAC1D,IAAI,MAAM,CAAC,mBAAmB,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAClD,GAAG,EAAE,IAAI,EAAE,CAAC;AACZ;AACA,EAAE,OAAO,IAAI,CAAC,mBAAmB,CAAC;AAClC,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,WAAW,GAAG,UAAU,KAAK,GAAG;AACtC,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AACpC,CAAC,CAAC;AACF;AACA,KAAK,CAAC,aAAa,GAAG,UAAU,KAAK,GAAG;AACxC,EAAE,KAAK,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,iBAAiB,GAAG;AACnD,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AACtC,GAAG;AACH,CAAC,CAAC;AACF;AACA,KAAK,CAAC,WAAW,GAAG,UAAU,KAAK,GAAG;AACtC,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC;AACpD,EAAE,KAAK,KAAK,GAAG;AACf,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AACtC,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,YAAY,GAAG,UAAU,KAAK,EAAE,OAAO,GAAG;AAChD,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACrC,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,WAAW,GAAG,UAAU,KAAK,EAAE,OAAO,GAAG;AAC/C,EAAE,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;AACtD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,GAAG,UAAU,KAAK,GAAG;AACpC,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAClC,CAAC,CAAC;AACF;AACA,KAAK,CAAC,WAAW,GAAG,UAAU,KAAK,GAAG;AACtC,EAAE,KAAK,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,iBAAiB,GAAG;AACnD,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AACpC,GAAG;AACH,CAAC,CAAC;AACF;AACA,KAAK,CAAC,UAAU,GAAG,UAAU,KAAK,GAAG;AACrC,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC;AACpD,EAAE,KAAK,KAAK,GAAG;AACf,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AACpC,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,UAAU,GAAG,UAAU,KAAK,EAAE,OAAO,GAAG;AAC9C,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;AACtB,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACnC,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,GAAG,UAAU,KAAK,EAAE,OAAO,GAAG;AAC7C,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;AACpD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,KAAK,CAAC,YAAY,GAAG,WAAW;AAChC,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;AACvB,EAAE,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAChC,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;AACrB,CAAC,CAAC;AACF;AACA,KAAK,CAAC,aAAa,GAAG,WAAW;AACjC;AACA,EAAE,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC7B,EAAE,OAAO,IAAI,CAAC,iBAAiB,CAAC;AAChC,CAAC,CAAC;AACF;AACA,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;AACzB;AACA;AACA;AACA,KAAK,CAAC,eAAe,GAAG,UAAU,KAAK,GAAG;AAC1C,EAAE,KAAK,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,iBAAiB,GAAG;AACnD,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AACxC,GAAG;AACH,CAAC,CAAC;AACF;AACA,KAAK,CAAC,aAAa,GAAG,UAAU,KAAK,GAAG;AACxC,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC;AACpD,EAAE,KAAK,KAAK,GAAG;AACf,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AACxC,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,cAAc,GAAG,UAAU,KAAK,EAAE,OAAO,GAAG;AAClD,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;AACtB,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACvC,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,aAAa,GAAG,UAAU,KAAK,EAAE,OAAO,GAAG;AACjD,EAAE,IAAI,CAAC,SAAS,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;AACxD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,UAAU,CAAC,eAAe,GAAG,UAAU,OAAO,GAAG;AACjD,EAAE,OAAO;AACT,IAAI,CAAC,EAAE,OAAO,CAAC,KAAK;AACpB,IAAI,CAAC,EAAE,OAAO,CAAC,KAAK;AACpB,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA;AACA;AACA,OAAO,UAAU,CAAC;AAClB;AACA,CAAC,CAAC;;;;AC7SF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,UAAU,MAAM,EAAE,OAAO,GAAG;AAC9B;AACA;AACA;AACA,EAOS,KAAkC,MAAM,CAAC,OAAO,GAAG;AAC5D;AACA,IAAI,cAAc,GAAG,OAAO;AAC5B,MAAM,MAAM;AACZ,MAAMA,UAAqB;AAC3B,KAAK,CAAC;AACN,GAAG,MAAM;AACT;AACA,IAAI,MAAM,CAAC,UAAU,GAAG,OAAO;AAC/B,MAAM,MAAM;AACZ,MAAM,MAAM,CAAC,UAAU;AACvB,KAAK,CAAC;AACN,GAAG;AACH;AACA,CAAC,EAAE,MAAM,EAAE,SAAS,OAAO,EAAE,MAAM,EAAE,UAAU,GAAG;AAGlD;AACA;AACA;AACA,SAAS,UAAU,GAAG,EAAE;AACxB;AACA;AACA,IAAI,KAAK,GAAG,UAAU,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC;AACzE;AACA;AACA;AACA,KAAK,CAAC,WAAW,GAAG,WAAW;AAC/B,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC,CAAC;AACF;AACA,KAAK,CAAC,aAAa,GAAG,WAAW;AACjC,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,YAAY,GAAG,UAAU,KAAK,GAAG;AACvC;AACA,EAAE,KAAK,GAAG,KAAK,KAAK,SAAS,GAAG,IAAI,GAAG,KAAK,CAAC;AAC7C;AACA,EAAE,IAAI,UAAU,GAAG,KAAK,GAAG,kBAAkB,GAAG,qBAAqB,CAAC;AACtE,EAAE,IAAI,WAAW,GAAG,KAAK,GAAG,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;AACxD,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG;AAChD,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACjC,IAAI,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC1C,IAAI,MAAM,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC1C;AACA,IAAI,KAAK,MAAM,CAAC,YAAY,GAAG;AAC/B,MAAM,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;AAC7C,KAAK;AACL,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,iBAAiB,GAAG,MAAM,CAAC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,WAAW,GAAG,UAAU,KAAK,EAAE,OAAO,GAAG;AAC/C,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,CAAC;AAC7C,EAAE,KAAK,CAAC,MAAM,GAAG;AACjB,IAAI,OAAO;AACX,GAAG;AACH;AACA;AACA,EAAE,IAAI,CAAC,kBAAkB,GAAG;AAC5B,IAAI,KAAK,EAAE,OAAO,CAAC,KAAK;AACxB,IAAI,KAAK,EAAE,OAAO,CAAC,KAAK;AACxB,GAAG,CAAC;AACJ;AACA,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;AACzB;AACA,EAAE,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,CAAC;AACrC,EAAE,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;AACtD,CAAC,CAAC;AACF;AACA;AACA,IAAI,WAAW,GAAG;AAClB,EAAE,QAAQ,EAAE,IAAI;AAChB,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,MAAM,EAAE,IAAI;AACd,EAAE,MAAM,EAAE,IAAI;AACd,CAAC,CAAC;AACF;AACA;AACA,IAAI,UAAU,GAAG;AACjB,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,QAAQ,EAAE,IAAI;AAChB,EAAE,MAAM,EAAE,IAAI;AACd,EAAE,MAAM,EAAE,IAAI;AACd,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,IAAI,EAAE,IAAI;AACZ,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,eAAe,GAAG,UAAU,KAAK,GAAG;AAC1C,EAAE,IAAI,YAAY,GAAG,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC1D,EAAE,IAAI,WAAW,GAAG,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACpD,EAAE,IAAI,MAAM,GAAG,CAAC,YAAY,IAAI,WAAW,CAAC;AAC5C,EAAE,KAAK,CAAC,MAAM,GAAG;AACjB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;AACzB,GAAG;AACH,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,eAAe,GAAG,WAAW;AACnC,EAAE,IAAI,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC;AACvC;AACA,EAAE,IAAI,OAAO,GAAG,OAAO,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC;AACpE,EAAE,KAAK,OAAO,GAAG;AACjB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;AACnB,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,WAAW,GAAG,UAAU,KAAK,EAAE,OAAO,GAAG;AAC/C,EAAE,IAAI,UAAU,GAAG,IAAI,CAAC,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC3D,EAAE,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC;AAClE,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AAC/C,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,gBAAgB,GAAG,UAAU,KAAK,EAAE,OAAO,GAAG;AACpD,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,CAAC,EAAE,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK;AACpD,IAAI,CAAC,EAAE,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK;AACpD,GAAG,CAAC;AACJ;AACA,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE,GAAG;AAC/D,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACtC,GAAG;AACH,EAAE,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,cAAc,GAAG,UAAU,UAAU,GAAG;AAC9C,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACtE,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,CAAC,SAAS,GAAG,UAAU,KAAK,EAAE,OAAO,GAAG;AAC7C,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;AACpD,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACxC,CAAC,CAAC;AACF;AACA,KAAK,CAAC,cAAc,GAAG,UAAU,KAAK,EAAE,OAAO,GAAG;AAClD,EAAE,KAAK,IAAI,CAAC,UAAU,GAAG;AACzB,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACpC,GAAG,MAAM;AACT;AACA,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACxC,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,KAAK,CAAC,UAAU,GAAG,UAAU,KAAK,EAAE,OAAO,GAAG;AAC9C,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACzB;AACA,EAAE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AACjC,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACnC,CAAC,CAAC;AACF;AACA,KAAK,CAAC,SAAS,GAAG,UAAU,KAAK,EAAE,OAAO,GAAG;AAC7C,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;AACpD,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,SAAS,GAAG,UAAU,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG;AACzD;AACA,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG;AAC1B,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AAC9C,CAAC,CAAC;AACF;AACA,KAAK,CAAC,QAAQ,GAAG,UAAU,KAAK,EAAE,OAAO,EAAE,UAAU,GAAG;AACxD,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC;AACzB,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC;AAC/D,CAAC,CAAC;AACF;AACA;AACA,KAAK,CAAC,QAAQ,GAAG,UAAU,KAAK,EAAE,OAAO,GAAG;AAC5C;AACA,EAAE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC1B;AACA,EAAE,UAAU,EAAE,WAAW;AACzB,IAAI,OAAO,IAAI,CAAC,kBAAkB,CAAC;AACnC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;AACnB;AACA,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACjC,CAAC,CAAC;AACF;AACA,KAAK,CAAC,OAAO,GAAG,UAAU,KAAK,EAAE,OAAO,GAAG;AAC3C,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;AAClD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,KAAK,CAAC,OAAO,GAAG,UAAU,KAAK,GAAG;AAClC,EAAE,KAAK,IAAI,CAAC,kBAAkB,GAAG;AACjC,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;AAC3B,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,KAAK,CAAC,YAAY,GAAG,UAAU,KAAK,EAAE,OAAO,GAAG;AAChD;AACA,EAAE,KAAK,IAAI,CAAC,iBAAiB,IAAI,KAAK,CAAC,IAAI,IAAI,SAAS,GAAG;AAC3D,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACrC;AACA;AACA,EAAE,KAAK,KAAK,CAAC,IAAI,IAAI,SAAS,GAAG;AACjC,IAAI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;AAClC;AACA,IAAI,UAAU,EAAE,WAAW;AAC3B,MAAM,OAAO,IAAI,CAAC,iBAAiB,CAAC;AACpC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC;AAC1B,GAAG;AACH,CAAC,CAAC;AACF;AACA,KAAK,CAAC,WAAW,GAAG,UAAU,KAAK,EAAE,OAAO,GAAG;AAC/C,EAAE,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;AACtD,CAAC,CAAC;AACF;AACA;AACA;AACA,UAAU,CAAC,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC;AACxD;AACA;AACA;AACA,OAAO,UAAU,CAAC;AAClB;AACA,CAAC,CAAC;;;ACpRF;AACA;AACA,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAChC,EAAE,SAAS,EAAE,IAAI;AACjB,EAAE,aAAa,EAAE,CAAC;AAClB,CAAC,CAAC,CAAC;AACH;AACA;AACA;AACA,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC3C;AACA;AACA;AACA,IAAIC,OAAK,GAAG,QAAQ,CAAC,SAAS,CAAC;AAC/B,KAAK,CAAC,MAAM,CAACA,OAAK,EAAEM,UAAU,CAAC,SAAS,CAAC,CAAC;AAC1CN,OAAK,CAAC,iBAAiB,GAAG,OAAO,CAAC;AAClC;AACA;AACA;AACA,IAAI,OAAO,GAAG,aAAa,IAAI,QAAQ,CAAC;AACxC,IAAI,yBAAyB,GAAG,KAAK,CAAC;AACtC;AACAA,OAAK,CAAC,WAAW,GAAG,YAAY;AAChC,EAAE,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AAC3C,EAAE,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAC1C,EAAE,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC/C,EAAE,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AAC9C;AACA;AACA;AACA,EAAE,IAAI,OAAO,IAAI,CAAC,yBAAyB,EAAE;AAC7C,IAAI,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;AACzD,IAAI,yBAAyB,GAAG,IAAI,CAAC;AACrC,GAAG;AACH,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,cAAc,GAAG,YAAY;AACnC,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACjC,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;AACrB,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;AACzB,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,gBAAgB,GAAG,YAAY;AACrC,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;AACvB,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAChD,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,eAAe,GAAG,YAAY;AACpC;AACA,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,EAAE;AACtC,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9C,GAAG,MAAM;AACT,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;AAC9C,GAAG;AACH,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE;AACxB,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAC/C,GAAG,MAAM;AACT,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAClD,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACAA,OAAK,CAAC,QAAQ,GAAG,YAAY;AAC7B,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;AAChC,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;AACzB,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,UAAU,GAAG,YAAY;AAC/B,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;AACjC,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;AACzB,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,aAAa,GAAG,YAAY;AAClC,EAAE,OAAO,IAAI,CAAC,eAAe,CAAC;AAC9B,CAAC,CAAC;AACF;AACA;AACA;AACAA,OAAK,CAAC,WAAW,GAAG,UAAU,KAAK,EAAE,OAAO,EAAE;AAC9C,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACzB,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC7C,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAC3C,EAAE,IAAI,CAAC,MAAM,EAAE;AACf,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;AACzC,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC/B;AACA,EAAE,IAAI,QAAQ,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,EAAE;AAC9C;AACA,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;AAC3B,GAAG;AACH;AACA;AACA,EAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;AACtB,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AACjD;AACA,EAAE,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,EAAE,CAAC;AAC/C,EAAE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC1C;AACA,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC,CAAC;AACF;AACA;AACAA,OAAK,CAAC,mBAAmB,GAAG,UAAU,KAAK,EAAE,OAAO,EAAE;AACtD;AACA;AACA,EAAE,IAAI,CAAC,kBAAkB,GAAG;AAC5B,IAAI,KAAK,EAAE,OAAO,CAAC,KAAK;AACxB,IAAI,KAAK,EAAE,OAAO,CAAC,KAAK;AACxB,GAAG,CAAC;AACJ;AACA,EAAE,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;AACnC,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AACtD,CAAC,CAAC;AACF;AACA,IAAI,UAAU,GAAG;AACjB,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,QAAQ,EAAE,IAAI;AAChB,EAAE,MAAM,EAAE,IAAI;AACd,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,gBAAgB,GAAG,UAAU,KAAK,EAAE;AAC1C,EAAE,IAAI,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACtD,EAAE,IAAI,CAAC,WAAW,EAAE;AACpB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;AACjB,GAAG;AACH,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,0BAA0B,GAAG,UAAU,KAAK,EAAE;AACpD,EAAE,IAAI,YAAY,GAAG,KAAK,CAAC,IAAI,IAAI,YAAY,CAAC;AAChD,EAAE,IAAI,cAAc,GAAG,KAAK,CAAC,WAAW,IAAI,OAAO,CAAC;AACpD,EAAE,IAAI,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACtD,EAAE,IAAI,CAAC,YAAY,IAAI,CAAC,cAAc,IAAI,CAAC,WAAW,EAAE;AACxD,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;AAC3B,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACAA,OAAK,CAAC,cAAc,GAAG,UAAU,UAAU,EAAE;AAC7C,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;AAC7D,CAAC,CAAC;AACF;AACA;AACA;AACAA,OAAK,CAAC,SAAS,GAAG,UAAU,KAAK,EAAE,OAAO,EAAE;AAC5C,EAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC;AAC/B,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACpD,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AACpD,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACtC,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,WAAW,GAAG,YAAY;AAChC,EAAE,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC7C,EAAE,OAAO,IAAI,CAAC,iBAAiB,CAAC;AAChC,CAAC,CAAC;AACF;AACA;AACA;AACAA,OAAK,CAAC,SAAS,GAAG,UAAU,KAAK,EAAE,OAAO,EAAE;AAC5C,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACzB,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC;AAClC,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;AACxB,EAAE,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC7C,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AACpD,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,WAAW,GAAG,UAAU,KAAK,EAAE,OAAO,EAAE;AAC9C,EAAE,IAAI,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACzD,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AAC7C,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,QAAQ,GAAG,UAAU,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE;AACvD,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACzB,IAAI,OAAO;AACX,GAAG;AACH,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC;AACzB;AACA,EAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;AAClC;AACA,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACpD,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;AAC/B;AACA,IAAI,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;AACtD,GAAG;AACH,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC;AAChE;AACA,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AACtD;AACA,IAAI,IAAI,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC/E,IAAI,KAAK,GAAG,KAAK,GAAG,WAAW,GAAG,CAAC,KAAK,GAAG,WAAW,IAAI,GAAG,GAAG,KAAK,CAAC;AACtE,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG;AAC3B,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM;AACjC,MAAM,IAAI,CAAC,iBAAiB;AAC5B,KAAK,CAAC;AACN,IAAI,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,CAAC,KAAK,GAAG,QAAQ,IAAI,GAAG,GAAG,KAAK,CAAC;AAChE,GAAG;AACH;AACA,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACrB;AACA,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;AACjC,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AAC/D,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,OAAO,GAAG,UAAU,KAAK,EAAE,OAAO,EAAE;AAC1C,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACzB,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;AAC/B,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAChC,GAAG;AACH;AACA,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC1C;AACA,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;AAC3D;AACA;AACA;AACA,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC7C,IAAI,IAAI,CAAC,eAAe;AACxB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM;AACvC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC;AAC7C,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE;AACtE;AACA,IAAI,KAAK,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;AACvC,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,aAAa,CAAC;AAC5B;AACA;AACA;AACA,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;AAC9C,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACrB,EAAE,OAAO,IAAI,CAAC,YAAY,CAAC;AAC3B,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,oBAAoB,GAAG,YAAY;AACzC,EAAE,IAAI,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC3C;AACA,EAAE,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AAChF;AACA,EAAE,IAAI,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AACvE,EAAE,IAAI,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;AACxE;AACA,EAAE,IAAI,KAAK;AACX,IAAI,eAAe,CAAC,QAAQ,GAAG,eAAe,CAAC,QAAQ;AACvD,QAAQ,eAAe,CAAC,KAAK;AAC7B,QAAQ,eAAe,CAAC,KAAK,CAAC;AAC9B,EAAE,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAA,OAAK,CAAC,kBAAkB,GAAG,UAAU,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE;AACpE,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;AACjC,EAAE,IAAI,WAAW,GAAG,QAAQ,CAAC;AAC7B,EAAE,IAAI,SAAS;AACf,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU;AACpD;AACA,QAAQ,UAAU,CAAC,EAAE,EAAE,EAAE;AACzB,UAAU,OAAO,CAAC,IAAI,EAAE,CAAC;AACzB,SAAS;AACT,QAAQ,UAAU,CAAC,EAAE,EAAE,EAAE;AACzB,UAAU,OAAO,CAAC,GAAG,EAAE,CAAC;AACxB,SAAS,CAAC;AACV,EAAE,OAAO,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE;AAC3C;AACA,IAAI,KAAK,IAAI,SAAS,CAAC;AACvB,IAAI,WAAW,GAAG,QAAQ,CAAC;AAC3B,IAAI,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AACvD,IAAI,IAAI,QAAQ,KAAK,IAAI,EAAE;AAC3B,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAClC,GAAG;AACH,EAAE,OAAO;AACT,IAAI,QAAQ,EAAE,WAAW;AACzB;AACA,IAAI,KAAK,EAAE,KAAK,GAAG,SAAS;AAC5B,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACAA,OAAK,CAAC,gBAAgB,GAAG,UAAU,CAAC,EAAE,KAAK,EAAE;AAC7C,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AAC/B;AACA,EAAE,IAAI,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,GAAG,GAAG,CAAC,CAAC;AACxD,EAAE,IAAI,UAAU,GAAG,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AACnE,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACtC,EAAE,IAAI,CAAC,KAAK,EAAE;AACd,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA,EAAE,IAAI,IAAI,GAAG,YAAY,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9E,EAAE,OAAO,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AACnC,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,kBAAkB,GAAG,YAAY;AACvC;AACA,EAAE;AACF,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS;AACpC,IAAI,CAAC,IAAI,CAAC,YAAY;AACtB;AACA,IAAI,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,GAAG,GAAG;AACxC,IAAI;AACJ,IAAI,OAAO,CAAC,CAAC;AACb,GAAG;AACH;AACA,EAAE,IAAI,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AACxE,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;AAC9C,EAAE,IAAI,QAAQ,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE;AACjC;AACA,IAAI,OAAO,CAAC,CAAC;AACb,GAAG,MAAM,IAAI,QAAQ,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE;AACxC;AACA,IAAI,OAAO,CAAC,CAAC,CAAC;AACd,GAAG;AACH,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF;AACA;AACA;AACAA,OAAK,CAAC,WAAW,GAAG,UAAU,KAAK,EAAE,OAAO,EAAE;AAC9C;AACA,EAAE,IAAI,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACrD,EAAE,IAAI,QAAQ,GAAG,WAAW,IAAI,WAAW,CAAC,OAAO,CAAC;AACpD,EAAE,IAAI,SAAS,GAAG,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AACjE,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAC3E,CAAC,CAAC;AACF;AACA;AACA;AACAA,OAAK,CAAC,QAAQ,GAAG,YAAY;AAC7B,EAAE,IAAI,MAAM,GAAG,iBAAiB,EAAE,CAAC;AACnC,EAAE,IAAI,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AACxD,EAAE,IAAI,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AACxD;AACA,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE;AAC9D,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;AACxB,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA,SAAS,iBAAiB,GAAG;AAC7B,EAAE,OAAO;AACT,IAAI,CAAC,EAAE,MAAM,CAAC,WAAW;AACzB,IAAI,CAAC,EAAE,MAAM,CAAC,WAAW;AACzB,GAAG,CAAC;AACJ,CAAC;AACD;AACA;;AChXA,IAAIO,QAAM,GAAG,4BAA4B,CAAC;AAC1C;AACA;AACA;AACA,SAAS,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE;AAC3C,EAAE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AAC7B,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACvB,EAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;AAC7E,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AACjB,CAAC;AACD;AACA,cAAc,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAACC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC/D;AACA,cAAc,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AAC/C;AACA,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACxB,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;AACzC,EAAE,IAAI,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/D,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,IAAI,aAAa,CAAC;AAChD;AACA,EAAE,IAAI,OAAO,IAAI,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClE,EAAE,OAAO,CAAC,SAAS,GAAG,2CAA2C,CAAC;AAClE,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC;AAC/D;AACA,EAAE,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACzC;AACA,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AACjB;AACA,EAAE,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC,CAAC;AAC5E;AACA;AACA,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;AAC7B,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAC3B;AACA,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACnD,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3E,CAAC,CAAC;AACF;AACA,cAAc,CAAC,SAAS,CAAC,QAAQ,GAAG,YAAY;AAChD,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACpC,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC/C;AACA,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC/C,CAAC,CAAC;AACF;AACA,cAAc,CAAC,SAAS,CAAC,UAAU,GAAG,YAAY;AAClD;AACA,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC/C;AACA,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACtC,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC,CAAC;AACF;AACA,cAAc,CAAC,SAAS,CAAC,SAAS,GAAG,YAAY;AACjD,EAAE,IAAI,GAAG,GAAG,QAAQ,CAAC,eAAe,CAACD,QAAM,EAAE,KAAK,CAAC,CAAC;AACpD,EAAE,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;AACpD,EAAE,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAC7C,EAAE,IAAI,IAAI,GAAG,QAAQ,CAAC,eAAe,CAACA,QAAM,EAAE,MAAM,CAAC,CAAC;AACtD,EAAE,IAAI,aAAa,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AACxE,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;AACxC,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACtC;AACA,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACpB,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,kCAAkC,CAAC,CAAC;AACvE,GAAG;AACH,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACxB,EAAE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AACF;AACA;AACA,SAAS,iBAAiB,CAAC,KAAK,EAAE;AAClC;AACA,EAAE,IAAI,OAAO,KAAK,IAAI,QAAQ,EAAE;AAChC,IAAI,OAAO,KAAK,CAAC;AACjB,GAAG;AACH;AACA,EAAE;AACF,IAAI,IAAI;AACR,IAAI,KAAK,CAAC,EAAE;AACZ,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK,CAAC,EAAE;AACZ,IAAI,GAAG;AACP,KAAK,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;AACnB,IAAI,KAAK;AACT,IAAI,KAAK,CAAC,EAAE;AACZ,IAAI,GAAG;AACP,KAAK,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;AACnB,IAAI,KAAK;AACT,IAAI,KAAK,CAAC,EAAE;AACZ,IAAI,MAAM;AACV,IAAI,KAAK;AACT,IAAI,KAAK,CAAC,EAAE;AACZ,IAAI,GAAG;AACP,KAAK,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;AACnB,IAAI,KAAK;AACT,IAAI,KAAK,CAAC,EAAE;AACZ,IAAI,GAAG;AACP,KAAK,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;AACnB,IAAI,IAAI;AACR,IAAI;AACJ,CAAC;AACD;AACA,cAAc,CAAC,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;AACzD;AACA,cAAc,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AAC/C,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACvB,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;AACzB,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;AACrD,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;AACxB,CAAC,CAAC;AACF;AACA;AACA;AACA,cAAc,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;AAC9C,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE;AACtB,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;AAChC,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACxB,CAAC,CAAC;AACF;AACA,cAAc,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AAC/C,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACvB,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC/B,EAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACzB,CAAC,CAAC;AACF;AACA,cAAc,CAAC,SAAS,CAAC,MAAM,GAAG,YAAY;AAC9C;AACA,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AAClC;AACA,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3D,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;AAClB,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;AACxD,EAAE,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,SAAS,CAAC;AACnD,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC9E,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AACjB,CAAC,CAAC;AACF;AACA,cAAc,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AAC/C,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;AACpB,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AAChB,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAChC,EAAE,eAAe,EAAE,IAAI;AACvB,EAAE,UAAU,EAAE;AACd,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,EAAE,EAAE,EAAE;AACV,IAAI,EAAE,EAAE,EAAE;AACV,GAAG;AACH,CAAC,CAAC,CAAC;AACH;AACA,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AACtD,IAAIP,OAAK,GAAG,QAAQ,CAAC,SAAS,CAAC;AAC/B;AACAA,OAAK,CAAC,sBAAsB,GAAG,YAAY;AAC3C,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;AACrC,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACjD,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAChD;AACA,EAAE,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;AACpD,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,uBAAuB,GAAG,YAAY;AAC5C,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;AAC7B,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;AAC7B,EAAE,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;AACxD,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,yBAAyB,GAAG,YAAY;AAC9C,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;AAC/B,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;AAC/B,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;AACzD,CAAC,CAAC;AACF;AACA;AACA;AACA,QAAQ,CAAC,cAAc,GAAG,cAAc;;AC/LxC,SAAS,QAAQ,CAAC,MAAM,EAAE;AAC1B,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACvB,EAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;AAC7E,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AACjB,CAAC;AACD;AACA,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAACQ,UAAU,CAAC,SAAS,CAAC,CAAC;AACzD;AACA,QAAQ,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AACzC;AACA,EAAE,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC7C,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,oBAAoB,CAAC;AAC/C;AACA,EAAE,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;AACjB;AACA,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7C,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3E,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,SAAS,CAAC,QAAQ,GAAG,YAAY;AAC1C,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AACjB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1D,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACnC;AACA,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9C,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,SAAS,CAAC,UAAU,GAAG,YAAY;AAC5C,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAC7D,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACrC;AACA,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9C,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AACzC;AACA,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3D,EAAE,IAAI,KAAK,GAAG,CAAC,EAAE;AACjB,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACxB,GAAG,MAAM,IAAI,KAAK,GAAG,CAAC,EAAE;AACxB,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC;AAC5B,GAAG;AACH,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,KAAK,EAAE;AAC9C,EAAE,IAAI,QAAQ,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;AACnD,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC;AACnB,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAChC,EAAE,IAAI,GAAG,GAAG,MAAM,GAAG,KAAK,CAAC;AAC3B;AACA,EAAE,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AACrC,IAAI,IAAI,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC3C,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC7B,IAAI,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE,WAAW,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1D,IAAI,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAC9B,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtB,GAAG;AACH;AACA,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AACpC,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,KAAK,EAAE;AACjD;AACA,EAAE,IAAI,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC;AACrE;AACA,EAAE,UAAU,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AACpC,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACjC,GAAG,EAAE,IAAI,CAAC,CAAC;AACX,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,SAAS,CAAC,cAAc,GAAG,YAAY;AAChD;AACA,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE;AACxB,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AACrD,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;AACrD,GAAG;AACH;AACA,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACzB,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAC1D,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAChD,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AACxD,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,SAAS,CAAC,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,KAAK,EAAE;AACzE;AACA,EAAE,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AAC5B;AACA,EAAE,IAAI,MAAM,CAAC,QAAQ,IAAI,IAAI,EAAE;AAC/B,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;AACzB,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACxC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AACzC,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;AACpB,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AAChB,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B;AACA;AACA;AACA,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAChC,EAAE,QAAQ,EAAE,IAAI;AAChB,CAAC,CAAC,CAAC;AACH;AACA,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC/C;AACA,IAAIR,OAAK,GAAG,QAAQ,CAAC,SAAS,CAAC;AAC/B;AACAA,OAAK,CAAC,eAAe,GAAG,YAAY;AACpC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AAC9B,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrC;AACA,EAAE,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC7C,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;AACjD,EAAE,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AAC7C,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACzC,EAAE,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACjD,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,gBAAgB,GAAG,YAAY;AACrC,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAC3B,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,sBAAsB,GAAG,YAAY;AAC3C,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;AACjC,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,cAAc,GAAG,YAAY;AACnC,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;AAC1B,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,kBAAkB,GAAG,YAAY;AACvC,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;AAC7B,CAAC,CAAC;AACF;AACA;AACA;AACA,QAAQ,CAAC,QAAQ,GAAG,QAAQ;;ACrJ5B;AACA;AACA,SAAS,MAAM,CAAC,MAAM,EAAE;AACxB,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACvB,EAAE,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;AACzB;AACA,EAAE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7D,EAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzD,CAAC;AACD;AACA,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAACI,SAAS,CAAC,SAAS,CAAC,CAAC;AACtD;AACA;AACA,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,YAAY;AACpC,EAAE,IAAI,IAAI,CAAC,KAAK,IAAI,SAAS,EAAE;AAC/B,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC;AACrC,EAAE,IAAI,YAAY,EAAE;AACpB,IAAI,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACzE,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;AACzB;AACA,EAAE,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACzE;AACA,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AACd,CAAC,CAAC;AACF;AACA,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,YAAY;AACpC;AACA,EAAE,IAAI,IAAI,CAAC,KAAK,IAAI,SAAS,EAAE;AAC/B,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC1C;AACA,EAAE,IAAI,GAAG,OAAO,IAAI,IAAI,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;AAC/C,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC;AACnB;AACA,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;AACf,EAAE,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,YAAY;AACxC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;AACjB,GAAG,EAAE,IAAI,CAAC,CAAC;AACX,CAAC,CAAC;AACF;AACA,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,YAAY;AACpC,EAAE,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;AACzB,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;AACf;AACA,EAAE,QAAQ,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAC5E,CAAC,CAAC;AACF;AACA,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;AACrC,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC,CAAC;AACF;AACA,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;AACrC,EAAE,IAAI,IAAI,CAAC,KAAK,IAAI,SAAS,EAAE;AAC/B,IAAI,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;AAC1B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;AACjB,GAAG;AACH,CAAC,CAAC;AACF;AACA,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,YAAY;AACvC;AACA,EAAE,IAAI,IAAI,CAAC,KAAK,IAAI,QAAQ,EAAE;AAC9B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;AAChB,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA,MAAM,CAAC,SAAS,CAAC,gBAAgB,GAAG,YAAY;AAChD,EAAE,IAAI,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC;AACrC,EAAE,IAAI,CAAC,YAAY,GAAG,OAAO,GAAG,SAAS,CAAC,EAAE,CAAC;AAC7C,CAAC,CAAC;AACF;AACA,MAAM,CAAC,SAAS,CAAC,cAAc,GAAG,YAAY;AAC9C,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AACd,EAAE,QAAQ,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC1E,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAChC,EAAE,oBAAoB,EAAE,IAAI;AAC5B,CAAC,CAAC,CAAC;AACH;AACA,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AAC7C,IAAIJ,OAAK,GAAG,QAAQ,CAAC,SAAS,CAAC;AAC/B;AACAA,OAAK,CAAC,aAAa,GAAG,YAAY;AAClC,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;AACjC;AACA,EAAE,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AAC3C,EAAE,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACvC,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAC1C,EAAE,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC/C,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,cAAc,GAAG,YAAY;AACnC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AAC9B,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACrB,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AACpD,CAAC,CAAC;AACF;AACA;AACA;AACAA,OAAK,CAAC,UAAU,GAAG,YAAY;AAC/B,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACrB,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,UAAU,GAAG,YAAY;AAC/B,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACrB,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,WAAW,GAAG,YAAY;AAChC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;AACtB,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,aAAa,GAAG,YAAY;AAClC,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;AACxB,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,gBAAgB,GAAG,YAAY;AACrC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACrB,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AACvD,CAAC,CAAC;AACF;AACA;AACA;AACA;AACAA,OAAK,CAAC,YAAY,GAAG,YAAY;AACjC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE;AAC1C,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;AACtB,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AACpD,CAAC,CAAC;AACF;AACA;AACAA,OAAK,CAAC,YAAY,GAAG,YAAY;AACjC,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;AACxB,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AACvD,CAAC,CAAC;AACF;AACA;AACA;AACA,QAAQ,CAAC,MAAM,GAAG,MAAM;;AC1JxB;AACA,SAAS,gBAAgB,CAAC,KAAK,EAAE;AACjC,EAAE,IAAI,QAAQ,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;AACnD,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AAChC,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACvC,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,QAAQ,CAAC;AAClB,CAAC;AACD;AACA;AACA;AACA,IAAIA,OAAK,GAAG,QAAQ,CAAC,SAAS,CAAC;AAC/B;AACA;AACA;AACA;AACA;AACA;AACAA,OAAK,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE,KAAK,EAAE;AACvC,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACrC,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AAC/B,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AAC9B;AACA,EAAE,KAAK,GAAG,KAAK,KAAK,SAAS,GAAG,GAAG,GAAG,KAAK,CAAC;AAC5C;AACA,EAAE,IAAI,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACzC;AACA,EAAE,IAAI,QAAQ,GAAG,KAAK,IAAI,GAAG,CAAC;AAC9B,EAAE,IAAI,QAAQ,EAAE;AAChB,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AACtC,GAAG,MAAM;AACT,IAAI,IAAI,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;AACtD,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;AAC1D,GAAG;AACH;AACA,EAAE,IAAI,KAAK,KAAK,CAAC,EAAE;AACnB;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1C,GAAG,MAAM,IAAI,QAAQ,EAAE;AACvB;AACA,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1C,GAAG,MAAM;AACT;AACA,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC;AACzD,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC3D,GAAG;AACH;AACA,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACzB,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC/B,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE;AAChC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,OAAO,GAAG,UAAU,KAAK,EAAE;AACjC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACxB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACAA,OAAK,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE;AAChC,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACnC,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AAC/B,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3C;AACA,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AAChC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;AAClB,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzC,IAAI,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AACjD,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACvC,GAAG,EAAE,IAAI,CAAC,CAAC;AACX;AACA,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACAA,OAAK,CAAC,cAAc,GAAG,UAAU,IAAI,EAAE;AACvC,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAChC,EAAE,IAAI,CAAC,IAAI,EAAE;AACb,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AACjB;AACA,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACvC,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACAA,OAAK,CAAC,UAAU,GAAG,UAAU,gBAAgB,EAAE,mBAAmB,EAAE;AACpE,EAAE,IAAI,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC;AAC9C,EAAE,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;AACxC,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC5B,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;AACxB;AACA;AACA,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAC5C,EAAE,IAAI,IAAI,EAAE;AACZ,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACtD,GAAG;AACH,EAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAC5E;AACA,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACnD;AACA,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAClC;AACA,EAAE,IAAI,mBAAmB,EAAE;AAC3B,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;AACpC,GAAG;AACH,CAAC;;AC1HD,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC/C,IAAIA,OAAK,GAAG,QAAQ,CAAC,SAAS,CAAC;AAC/B;AACAA,OAAK,CAAC,eAAe,GAAG,YAAY;AACpC,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,QAAQ,GAAG,YAAY;AAC7B,EAAE,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;AACvC,EAAE,IAAI,CAAC,QAAQ,EAAE;AACjB,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,QAAQ,GAAG,OAAO,QAAQ,IAAI,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAC;AAC5D,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;AACzD;AACA,EAAE,IAAI,UAAU,GAAG,EAAE,CAAC;AACtB,EAAE,SAAS,CAAC,OAAO,CAAC,UAAU,QAAQ,EAAE;AACxC,IAAI,IAAI,cAAc,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AACrD,IAAI,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AACnD,GAAG,CAAC,CAAC;AACL;AACA,EAAE,UAAU,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE;AACpC,IAAI,IAAI,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC9B,GAAG,EAAE,IAAI,CAAC,CAAC;AACX,CAAC,CAAC;AACF;AACA,SAAS,iBAAiB,CAAC,QAAQ,EAAE;AACrC;AACA,EAAE,IAAI,QAAQ,CAAC,QAAQ,IAAI,KAAK,EAAE;AAClC,IAAI,IAAI,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;AACvE,IAAI,IAAI,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,4BAA4B,CAAC,CAAC;AACtE,IAAI,IAAI,UAAU,GAAG,QAAQ,CAAC,YAAY,CAAC,+BAA+B,CAAC,CAAC;AAC5E,IAAI,IAAI,YAAY,IAAI,OAAO,IAAI,UAAU,EAAE;AAC/C,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;AACxB,KAAK;AACL,GAAG;AACH;AACA,EAAE,IAAI,YAAY;AAClB,IAAI,+BAA+B;AACnC,IAAI,qEAAqE,CAAC;AAC1E,EAAE,IAAI,IAAI,GAAG,QAAQ,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;AACrD,EAAE,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE;AACnC,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AACjB,EAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC3B,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AACd,CAAC;AACD;AACA,UAAU,CAAC,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;AACrD;AACA,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,YAAY;AACxC,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC1C,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC3C;AACA,EAAE,IAAI,GAAG;AACT,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,wBAAwB,CAAC;AACnD,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,4BAA4B,CAAC,CAAC;AACxD,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,+BAA+B,CAAC,CAAC;AACtE;AACA,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;AACrB,EAAE,IAAI,MAAM,EAAE;AACd,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC5C,GAAG;AACH;AACA,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,wBAAwB,CAAC,CAAC;AACrD,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,4BAA4B,CAAC,CAAC;AACzD,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,+BAA+B,CAAC,CAAC;AAC5D,CAAC,CAAC;AACF;AACA,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE;AAC/C,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC;AAC9C,CAAC,CAAC;AACF;AACA,UAAU,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,KAAK,EAAE;AAChD,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;AAC7C,CAAC,CAAC;AACF;AACA,UAAU,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAU,KAAK,EAAE,SAAS,EAAE;AAC5D;AACA,EAAE,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC7C,EAAE,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC9C;AACA,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnD,EAAE,IAAI,QAAQ,GAAG,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC;AACtC,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AACzC;AACA,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACpC,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC3D,CAAC,CAAC;AACF;AACA;AACA;AACA,QAAQ,CAAC,UAAU,GAAG,UAAU;;ACvGhC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AACjD,IAAIA,OAAK,GAAG,QAAQ,CAAC,SAAS,CAAC;AAC/B;AACAA,OAAK,CAAC,iBAAiB,GAAG,YAAY;AACtC,EAAE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC5B;AACA,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;AAChC,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,CAAC,oBAAoB,GAAG,IAAI,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACjE,EAAE,IAAI,CAAC,oBAAoB,GAAG,IAAI,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACjE;AACA,EAAE,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;AACpD,EAAE,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;AACtD,CAAC,CAAC;AACF;AACA;AACA;AACAA,OAAK,CAAC,uBAAuB,GAAG,YAAY;AAC5C,EAAE,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,GAAG,aAAa,GAAG,aAAa,CAAC;AAClE,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC/D,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC/D;AACA,EAAE,IAAI,YAAY,GAAG,IAAI,CAAC,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAC;AAC/D,EAAE,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,EAAE,CAAC;AAC5C,EAAE,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,EAAE,CAAC;AAC5C,CAAC,CAAC;AACF;AACA;AACA;AACAA,OAAK,CAAC,cAAc,GAAG,YAAY;AACnC,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC/B,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;AACf,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,cAAc,GAAG,YAAY;AACnC,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,iBAAiB,GAAG,UAAU,MAAM,EAAE;AAC5C,EAAE,IAAI,IAAI,CAAC,YAAY,IAAI,MAAM,EAAE;AACnC,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;AAC7B,EAAE,IAAI,WAAW,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;AAC9C,EAAE,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,wBAAwB,CAAC,CAAC;AAC5E,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,eAAe,CAAC,CAAC;AACvD,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AAChB;AACA,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE;AACzB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;AACtB,GAAG;AACH,EAAE,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACzD,CAAC,CAAC;AACF;AACAA,OAAK,CAAC,gBAAgB,GAAG,YAAY;AACrC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC7C,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,IAAI,cAAc,GAAGA,OAAK,CAAC,cAAc,CAAC;AAC1CA,OAAK,CAAC,cAAc,GAAG,YAAY;AACnC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;AACpC,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE;AACzB;AACA,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;AACpC,GAAG,MAAM;AACT;AACA,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,GAAG;AACH,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,YAAY;AAC5C,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;AACxB,CAAC,CAAC;AACF;AACA;AACA;AACA,SAAS,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE;AAC1C,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACnB,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;AACtB,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;AACpB;AACA;AACA,EAAE,IAAI,CAAC,OAAO,GAAG,YAAY;AAC7B,IAAI,QAAQ,CAAC,IAAI,GAAG,YAAY,CAAC,EAAE,CAAC;AACpC,GAAG,CAAC;AACJ,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC;AACD;AACA,gBAAgB,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY;AACtD,EAAE,IAAI,OAAO,IAAI,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClE,EAAE,OAAO,CAAC,SAAS;AACnB,IAAI,6CAA6C;AACjD,IAAI,6BAA6B;AACjC,IAAI,IAAI,CAAC,IAAI,CAAC;AACd;AACA,EAAE,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACzC;AACA,EAAE,IAAI,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC,CAAC;AACrD,EAAE,OAAO,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AAC5C,EAAE,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;AACxB,CAAC,CAAC;AACF;AACA,SAAS,UAAU,CAAC,IAAI,EAAE;AAC1B,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AACD;AACA,IAAI,MAAM,GAAG,4BAA4B,CAAC;AAC1C;AACA,IAAI,cAAc,GAAG;AACrB,EAAE,IAAI,EAAE,0DAA0D;AAClE,EAAE,IAAI,EAAE,0DAA0D;AAClE,CAAC,CAAC;AACF;AACA,gBAAgB,CAAC,SAAS,CAAC,UAAU,GAAG,YAAY;AACpD,EAAE,IAAI,GAAG,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACpD,EAAE,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;AACpD,EAAE,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AAC3C;AACA,EAAE,IAAI,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACtD,EAAE,IAAI,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5C,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AACpC;AACA,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACxB,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC,CAAC;AACF;AACA,gBAAgB,CAAC,SAAS,CAAC,QAAQ,GAAG,YAAY;AAClD,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AAC5D,CAAC,CAAC;AACF;AACA,gBAAgB,CAAC,SAAS,CAAC,UAAU,GAAG,YAAY;AACpD,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AAC/D,CAAC,CAAC;AACF;AACA,QAAQ,CAAC,gBAAgB,GAAG,gBAAgB;;AC/I5C,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;AAC3B;AACA,IAAI,iBAAiB,GAAG,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC;AACrD,KAAK,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY;AAC3C,EAAE,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC3C,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;AACjC,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;AAC1C,EAAE,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AACrC,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,UAAU,GAAG,YAAY,CAAC;AACrD,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AACjC,GAAG,CAAC,CAAC;AACL,CAAC,CAAC;AACF;AACA,KAAK,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,KAAK,EAAE;AAC9C,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AACrC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;AACvC,GAAG,CAAC,CAAC;AACL,CAAC,CAAC;AACF;AACA;AACA;AACA,IAAI,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC;AAC/B;AACA,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAC3C;AACA,KAAK,CAAC,WAAW,GAAG,YAAY;AAChC,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;AACtC,EAAE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC;AAC9C,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AACvC,EAAE,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AACzC,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AACvC,EAAE,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AAC3C,EAAE,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC/C,CAAC,CAAC;AACF;AACA,IAAI,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;AACtC,KAAK,CAAC,YAAY,GAAG,YAAY;AACjC,EAAE,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACtC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAC1B,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE,CAAC,EAAE;AAC1C,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,CAAC,CAAC;AAChD,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAC5B,GAAG,EAAE,IAAI,CAAC,CAAC;AACX,CAAC,CAAC;AACF;AACA;AACA;AACA,KAAK,CAAC,YAAY,GAAG,YAAY;AACjC;AACA,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC5E,EAAE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC;AAC9C,CAAC,CAAC;AACF;AACA,KAAK,CAAC,YAAY,GAAG,YAAY;AACjC,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC;AACzB,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAC1B,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACnC,EAAE,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/C,EAAE,IAAI,UAAU,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,EAAE;AAC1D,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC9C,GAAG;AACH,CAAC,CAAC;AACF;AACA,KAAK,CAAC,aAAa,GAAG,YAAY;AAClC;AACA,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACzB,CAAC,CAAC;AACF;AACA,KAAK,CAAC,cAAc,GAAG,YAAY;AACnC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AACzB,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC1C,GAAG;AACH,CAAC,CAAC;AACF;AACA,KAAK,CAAC,gBAAgB,GAAG,YAAY;AACrC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAC1B,IAAI,OAAO;AACX,GAAG;AACH,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAC3C;AACA,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,KAAK,EAAE;AACvC,IAAI,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AACzB,GAAG,CAAC,CAAC;AACL,CAAC,CAAC;AACF;AACA;AACA;AACA,IAAI,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;AAC1C,KAAK,CAAC,cAAc,GAAG,YAAY;AACnC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAC1B,IAAI,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC1C,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;AACpB,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC7B,CAAC,CAAC;AACF;AACA,IAAI,wBAAwB,GAAG,KAAK,CAAC,wBAAwB,CAAC;AAC9D,KAAK,CAAC,wBAAwB,GAAG,YAAY;AAC7C,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AACzB;AACA,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AAC1B,GAAG;AACH,EAAE,wBAAwB,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAClD,CAAC,CAAC;AACF;AACA,KAAK,CAAC,UAAU,GAAG,YAAY;AAC/B,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9B,IAAI,OAAO;AACX,GAAG;AACH;AACA,EAAE,IAAI,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;AACtC,EAAE,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1C,EAAE,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1C,EAAE,IAAI,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;AAC3E,EAAE,IAAI,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjE,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AACjC;AACA,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;AACtC,EAAE,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAClC;AACA;AACA,EAAE,IAAI,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC;AAChC,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE;AACvB,IAAI,aAAa,GAAG,QAAQ,GAAG,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;AAC3D,GAAG;AACH,EAAE,IAAI,cAAc;AACpB,IAAI,IAAI,CAAC,aAAa,IAAI,SAAS;AACnC,IAAI,IAAI,CAAC,aAAa,IAAI,aAAa;AACvC,IAAI,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,CAAC,CAAC;AACpC,EAAE,IAAI,cAAc,EAAE;AACtB;AACA,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAClD,GAAG;AACH,EAAE,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;AACrC,CAAC,CAAC;AACF;AACA,KAAK,CAAC,cAAc,GAAG,YAAY;AACnC,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAC5C,IAAI,OAAO;AACX,MAAM,CAAC,EAAE,IAAI,CAAC,SAAS;AACvB,MAAM,CAAC,EAAE,IAAI,CAAC,aAAa;AAC3B,KAAK,CAAC;AACN,GAAG;AACH,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;AAC/B,IAAI,OAAO,IAAI,CAAC,sBAAsB,EAAE,CAAC;AACzC,GAAG,MAAM;AACT,IAAI,OAAO,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAC1C,GAAG;AACH,CAAC,CAAC;AACF;AACA,KAAK,CAAC,sBAAsB,GAAG,YAAY;AAC3C,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,KAAK,EAAE,CAAC,EAAE;AACtD,IAAI,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7C,GAAG,EAAE,IAAI,CAAC,CAAC;AACX,EAAE,IAAI,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,QAAQ,EAAE;AACvD,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC9B,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AACvD,EAAE,IAAI,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AACvD,EAAE,IAAI,QAAQ,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;AACzC,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AAC/B;AACA,EAAE,IAAI,KAAK,GAAG,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACrC,EAAE,OAAO;AACT,IAAI,CAAC,EAAE,YAAY;AACnB,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,KAAK,EAAE,GAAG,CAAC;AAC9C,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA,KAAK,CAAC,uBAAuB,GAAG,YAAY;AAC5C;AACA,EAAE,IAAI,SAAS,GAAG,CAAC,CAAC;AACpB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACnD,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC/B,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE;AAChC,MAAM,MAAM;AACZ,KAAK;AACL,IAAI,SAAS,GAAG,CAAC,CAAC;AAClB,GAAG;AACH,EAAE,OAAO;AACT,IAAI,CAAC,EAAE,SAAS;AAChB,IAAI,CAAC,EAAE,SAAS,GAAG,CAAC;AACpB,GAAG,CAAC;AACJ,CAAC,CAAC;AACF;AACA,KAAK,CAAC,cAAc,GAAG,UAAU,CAAC,EAAE,CAAC,EAAE;AACvC,EAAE,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;AACnB;AACA,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;AAChC,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA,EAAE,IAAI,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC;AAC5C,EAAE,IAAI,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC;AAC7C,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAC3C,IAAI,IAAI,GAAG,QAAQ,CAAC;AACpB,GAAG;AACH,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAC5C,IAAI,IAAI,GAAG,SAAS,CAAC;AACrB,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AACF;AACA;AACA;AACA,IAAI,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,CAAC;AAClD,KAAK,CAAC,kBAAkB,GAAG,YAAY;AACvC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAC1B,IAAI,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC9C,GAAG;AACH,CAAC,CAAC;AACF;AACA,IAAI,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;AAC1C,KAAK,CAAC,cAAc,GAAG,YAAY;AACnC,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAC1B,IAAI,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC1C,GAAG;AACH,CAAC;;AC/NM,MAAM,QAAQ,GAAG,QAAQ;;ACVhC,MAAM,SAAS,GAAG,ygIAAygI;;MCsC9gI,MAAM;;;;;;;;;;;;;;IAET,kBAAa,GAAG,KAAK,CAAC;IAItB,aAAQ,GAAsB,IAAI,OAAO,CAAC,CAAC,OAAO;MACxD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;KAC9B,CAAC,CAAC;IA6WK,aAAQ,GAAG;MACjB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC;MAClC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAoB,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAgB,CAAC;QAChD,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9C,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,aAAa,GAAG,CAAC,GAAG,KAAK,CAAC;OACpD,CAAC,CAAC;KACJ,CAAC;IAEM,qBAAgB,GAAG,CAAC,YAAqB;MAC/C,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC;MAC/B,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACpD,CAAC;IAEM,sBAAiB,GAAG,CAAC,KAAa;MACxC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;MAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC,CAAC;;;mBAxXiB,KAAK;mBAQ4B,EAAE;mBAcpC,KAAK;iBAcP,KAAK;yBAaG,KAAK;sBAawB,KAAK;qBAYL,QAAQ;wBAyCE,CAAC;oBAgBpB,KAAK;iBAeD,KAAK;;EAvIrD,MAAM,cAAc;IAClB,IAAI,IAAI,CAAC,aAAa,EAAE;MACtB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;MAC1C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;MAC9C,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;KACrB;GACF;EAQD,MAAM,cAAc;IAClB,KAAK,CAAC,IAAI,CACR,IAAI,CAAC,QAAQ,EAAE,CAAC,gBAAgB,CAAC,4BAA4B,CAAC,CAC/D,CAAC,OAAO,CAAC,CAAC,GAAG;MACX,GAAmB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;KAC7C,CAAC,CAAC;GACJ;EAQD,MAAM,YAAY;IAChB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,aAAa,CACxC,qBAAqB,CACP,CAAC;IACjB,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;GAC3B;EAQD,MAAM,oBAAoB;IACxB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,aAAa,CACvC,6BAA6B,CACf,CAAC;IACjB,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;GAClC;EAQD,MAAM,iBAAiB,CAAC,CAAE,EAAE,KAAe;IACzC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1C,IAAI,IAAI,CAAC,UAAU;MAAE,QAAQ,CAAC,cAAc,EAAE,CAAC;SAC1C,IAAI,OAAO,KAAK,KAAK,WAAW;MAAE,QAAQ,CAAC,cAAc,EAAE,CAAC;GAClE;EAQD,MAAM,eAAe,CAAC,CAAE,EAAE,OAAwB;IAChD,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;MACxC,IAAI,CAAC,WAAW,EAAE;MAClB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;KACzB,CAAC,CAAC;;IAGH,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK;MACnB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;KACjC,CAAC,CAAC;IAEH,IAAI,OAAO,KAAK,UAAU,EAAE;MAC1B,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;MACnC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;UAC1C,IAAI,CAAC,YAAY,CAAC,CAAC,CAAiB,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;OACxE,CAAC,CAAC;MACH,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;;IAGD,QAAQ,IAAI,CAAC,SAAS;MACpB,KAAK,MAAM;QACT,IAAI,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;QACrD,MAAM;MACR,KAAK,UAAU;QACb,IAAI,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;QACvD,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClC,MAAM;MACR;QACE,IAAI,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;QACtD,MAAM;KACT;GACF;EAQD,kBAAkB;IAChB,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,aAAa;MAC1C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;GACnC;EAGD,mBAAmB;IACjB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC;GACxC;EAQD,MAAM,cAAc;IAClB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;IAC1B,IAAI,IAAI,CAAC,QAAQ,EAAE;MACjB,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ;QACnC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;MAC1C,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC;QAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAkB,CAAC,CAAC;KACpE;GACF;;;;;EAmED,MAAM,MAAM;IACV,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;MACnC,IAAI,CAAC,WAAW,EAAE;MAClB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;KACzB,CAAC,CAAC;IACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACjE,QAAQ,CAAC,WAAW,EAAE,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,UAAU,EAAE,CAAC;GACvB;;;;;;;EASD,MAAM,gBAAgB,CAAC,KAAc;IACnC,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAgB,CAAC;IACvE,IAAI,EAAE;MAAE,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,GAAG,IAAI,CAAC;GAC5C;;;;;;;EASD,MAAM,OAAO,CAAC,KAAa,EAAE,OAAiB;IAC5C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1C,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;GACjC;;;;;;;EASD,MAAM,SAAS,CAAC,OAAiB,EAAE,IAAc;IAC/C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1C,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;GAC9B;;;;;;;EASD,MAAM,SAAS,CAAC,OAAiB,EAAE,IAAc;IAC/C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1C,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;GAClC;;;;EAMD,MAAM,cAAc;IAClB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1C,OAAO,QAAQ,CAAC,aAAa,CAAC;GAC/B;;;;EAMD,MAAM,MAAM;IACV,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1C,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;GAC/B;;;;EAMD,MAAM,KAAK;IACT,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1C,OAAO,QAAQ,CAAC,aAAa,KAAK,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;GAC9D;;;;EAMD,MAAM,WAAW;IACf,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1C,OAAO,QAAQ,CAAC,aAAa,KAAK,CAAC,CAAC;GACrC;;;;;EAOD,MAAM,aAAa,CAAC,IAAa;IAC/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1C,IAAI,IAAI;MAAE,IAAI,CAAC,OAAO,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5C,UAAU,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;GACzC;;;;EAMD,MAAM,YAAY;IAChB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE,CAAC;GACvB;;;;;;EAQD,MAAM,UAAU,CAAC,IAAa;IAC5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1C,QAAQ,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC;IACnC,QAAQ,CAAC,eAAe,EAAE,CAAC;GAC5B;;;;;;EAQD,MAAM,WAAW;IACf,OAAO,IAAI,CAAC,QAAQ,CAAC;GACtB;;;;;EAOD,MAAM,MAAM;IACV,IAAI,CAAC,eAAe,EAAE,CAAC;IACvB,UAAU,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;GAC3C;EAEO,QAAQ;IACd,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;GAChE;EAqBO,eAAe;;;;;;;;IAQrB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC;IAEnC,IAAI,QAAQ,KAAK,SAAS,EAAE;MAC1B,QAAQ,CAAC,OAAO,EAAE,CAAC;MACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO;QAClC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;OAC9B,CAAC,CAAC;MACH,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;MAC3B,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;MAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACpB;IACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;GACtB;EAEO,MAAM,YAAY;IACxB,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;;IAG7C,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAExB,IAAI,CAAC,UAAU;MACb,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAC1E,IACE,IAAI,CAAC,UAAU;MACf,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC;MAEtD,IAAI,CAAC,eAAe,EAAE,CAAC;IAEzB,UAAU,CAAC;MACT,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAa,CAAC;MACtE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;MAE1B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;MAE1B,IAAI,CAAC,eAAe,EAAE,CAAC;MACvB,IAAI,CAAC,cAAc,EAAE,CAAC;MACtB,IAAI,CAAC,YAAY,EAAE,CAAC;MACpB,IAAI,CAAC,iBAAiB,EAAE,CAAC;MACzB,IAAI,CAAC,oBAAoB,EAAE,CAAC;MAE5B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;MAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;;;MAGlB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,MAAM,EAAE;QAC7C,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;UAAE,OAAO;QAEtC,MAAM,EAAE,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC;UAC5C,KAAK,CAAC,MAAM,EAAE,CAAC;UACf,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;SAC3B,CAAC,CAAC,CAAC;QACJ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;OACvB;KACF,EAAE,GAAG,CAAC,CAAC;GACT;EAEO,gBAAgB;;IAEtB,MAAM,eAAe,GAAoB;MACvC,YAAY,EAAE,YAAY;MAC1B,OAAO,EAAE,IAAI;MACb,eAAe,EAAE,IAAI;MACrB,UAAU,EAAE,IAAI;MAChB,aAAa,EAAE,IAAI;MACnB,YAAY,EAAE,IAAI;MAClB,QAAQ,EAAE,IAAI;KACf,CAAC;IAEF,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE;MAC7B,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC;KAC7B;IACD,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE;MACzB,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;KAClD;IACD,IAAI,IAAI,CAAC,QAAQ,EAAE;MACjB,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ;QACnC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;MAC1C,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC;QAAE,eAAe,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAkB,CAAC;KAC3E;;;IAID,MAAM,YAAY,GAAmB;MACnC,KAAK,EAAE;QACL,UAAU,CAAC;UACT,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;SAC7B,EAAE,EAAE,CAAC,CAAC;OACR;MACD,MAAM,EAAE,IAAI,CAAC,iBAAiB;MAC9B,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI;MAClC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI;MAClC,MAAM,EAAE,IAAI,CAAC,uBAAuB,CAAC,IAAI;MACzC,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI;MACxC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI;MACtC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI;MACpC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI;MACpC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;KACxC,CAAC;IAEF,MAAM,YAAY,GAChB,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;;IAE7D,MAAM,kBAAkB,GAAG,EAAE,EAAE,kCAAO,YAAY,GAAK,YAAY,CAAE,EAAE,CAAC;;;IAGxE,qDAAY,eAAe,GAAK,kBAAkB,GAAK,IAAI,CAAC,OAAO,EAAG;GACvE;EAED,gBAAgB;IACd,IAEE,OAAO,MAAM,KAAK,WAAW;MAC5B,MAAc,CAAC,gBAAgB,EAChC;MACA,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,CAChD,CAAC,CAAmB;QAClB,IACE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;UAClB,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,YAAY;UAC1D,IAAI,CAAC,aAAa,EAClB;UACA,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;OACF,CACF,CAAC,CAAC;MAEH,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE;QACrB,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,IAAI;OACd,CAAC,CAAC;KACJ;GACF;EAED,iBAAiB;IACf,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;IAE9B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;MACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;MACpB,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;GACF;EAED,oBAAoB;IAClB,IAAI,IAAI,CAAC,SAAS,EAAE;MAClB,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;MAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;KAC5B;IACD,IAAI,IAAI,CAAC,OAAO;MAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;IAC5C,IAAI,CAAC,eAAe,EAAE,CAAC;GACxB;EAED,MAAM;IACJ,QACE,EAAC,IAAI,QACH,WAAK,KAAK,EAAC,WAAW,IACpB,WACE,GAAG,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,EACrC,KAAK,EAAE;QACL,oBAAoB,EAAE,IAAI;QAC1B,cAAc,EAAE,IAAI,CAAC,WAAW;QAChC,kBAAkB,EAAE,CAAC,IAAI,CAAC,WAAW;OACtC,IAED,eAAQ,CACJ,EACN,WAAK,KAAK,EAAC,WAAW,IACpB,YAAM,IAAI,EAAC,IAAI,GAAG,CACd,CACF,CACD,EACP;GACH;;;;;;;;;;;;;;AAGH,MAAM,aAAa,GAAG,CAAC,IAAiB;EACtC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;EAClE,IAAI,YAAY,GAAG,SAAS,CAAC,MAAM,CACjC,CAAC,GAAyB,KAAK,CAAC,GAAG,CAAC,KAAK,CAC1C,CAAC;EAEF,IAAI,CAAC,YAAY,CAAC,MAAM;IAAE,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;EAE5D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO;IACzB,MAAM,aAAa,GAAG,CAAC,EAAe;MACpC,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC;MAC/D,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;QACxB,OAAO,CAAC,SAAS,CAAC,CAAC;QACnB,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;OAC3D;KACF,CAAC;IACF,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC;;IAEvD,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;GAC1D,CAAC,CAAC;AACL,CAAC,CAAC;;;;;","names":["this","require$$0","proto","Slide","getComputedStyle","console","EvEmitter","animatePrototype","Unidragger","svgURI","Unipointer"],"sources":["./node_modules/ev-emitter/ev-emitter.js","./node_modules/get-size/get-size.js","./node_modules/desandro-matches-selector/matches-selector.js","./node_modules/fizzy-ui-utils/utils.js","./src/components/slides/lib/js/cell.js","./src/components/slides/lib/js/slide.js","./src/components/slides/lib/js/animate.js","./src/components/slides/lib/js/flickity.js","./node_modules/unipointer/unipointer.js","./node_modules/unidragger/unidragger.js","./src/components/slides/lib/js/drag.js","./src/components/slides/lib/js/prev-next-button.js","./src/components/slides/lib/js/page-dots.js","./src/components/slides/lib/js/player.js","./src/components/slides/lib/js/add-remove-cell.js","./src/components/slides/lib/js/lazyload.js","./src/components/slides/lib/js/fullscreen.js","./src/components/slides/lib/js/fade.js","./src/components/slides/lib/js/index.js","./src/components/slides/slides.scss?tag=nano-slides&encapsulation=shadow","./src/components/slides/slides.tsx"],"sourcesContent":["/**\n * EvEmitter v1.1.0\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n\n( function( global, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define, module, window */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory();\n } else {\n // Browser globals\n global.EvEmitter = factory();\n }\n\n}( typeof window != 'undefined' ? window : this, function() {\n\n\"use strict\";\n\nfunction EvEmitter() {}\n\nvar proto = EvEmitter.prototype;\n\nproto.on = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // set events hash\n var events = this._events = this._events || {};\n // set listeners array\n var listeners = events[ eventName ] = events[ eventName ] || [];\n // only add once\n if ( listeners.indexOf( listener ) == -1 ) {\n listeners.push( listener );\n }\n\n return this;\n};\n\nproto.once = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // add event\n this.on( eventName, listener );\n // set once flag\n // set onceEvents hash\n var onceEvents = this._onceEvents = this._onceEvents || {};\n // set onceListeners object\n var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\n // set flag\n onceListeners[ listener ] = true;\n\n return this;\n};\n\nproto.off = function( eventName, listener ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n var index = listeners.indexOf( listener );\n if ( index != -1 ) {\n listeners.splice( index, 1 );\n }\n\n return this;\n};\n\nproto.emitEvent = function( eventName, args ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n // copy over to avoid interference if .off() in listener\n listeners = listeners.slice(0);\n args = args || [];\n // once stuff\n var onceListeners = this._onceEvents && this._onceEvents[ eventName ];\n\n for ( var i=0; i < listeners.length; i++ ) {\n var listener = listeners[i]\n var isOnce = onceListeners && onceListeners[ listener ];\n if ( isOnce ) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off( eventName, listener );\n // unset once flag\n delete onceListeners[ listener ];\n }\n // trigger listener\n listener.apply( this, args );\n }\n\n return this;\n};\n\nproto.allOff = function() {\n delete this._events;\n delete this._onceEvents;\n};\n\nreturn EvEmitter;\n\n}));\n","/*!\n * getSize v2.0.3\n * measure size of elements\n * MIT license\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n/* globals console: false */\n\n( function( window, factory ) {\n /* jshint strict: false */ /* globals define, module */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.getSize = factory();\n }\n\n})( window, function factory() {\n'use strict';\n\n// -------------------------- helpers -------------------------- //\n\n// get a number from a string, not a percentage\nfunction getStyleSize( value ) {\n var num = parseFloat( value );\n // not a percent like '100%', and a number\n var isValid = value.indexOf('%') == -1 && !isNaN( num );\n return isValid && num;\n}\n\nfunction noop() {}\n\nvar logError = typeof console == 'undefined' ? noop :\n function( message ) {\n console.error( message );\n };\n\n// -------------------------- measurements -------------------------- //\n\nvar measurements = [\n 'paddingLeft',\n 'paddingRight',\n 'paddingTop',\n 'paddingBottom',\n 'marginLeft',\n 'marginRight',\n 'marginTop',\n 'marginBottom',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderTopWidth',\n 'borderBottomWidth'\n];\n\nvar measurementsLength = measurements.length;\n\nfunction getZeroSize() {\n var size = {\n width: 0,\n height: 0,\n innerWidth: 0,\n innerHeight: 0,\n outerWidth: 0,\n outerHeight: 0\n };\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n size[ measurement ] = 0;\n }\n return size;\n}\n\n// -------------------------- getStyle -------------------------- //\n\n/**\n * getStyle, get style of element, check for Firefox bug\n * https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n */\nfunction getStyle( elem ) {\n var style = getComputedStyle( elem );\n if ( !style ) {\n logError( 'Style returned ' + style +\n '. Are you running this code in a hidden iframe on Firefox? ' +\n 'See https://bit.ly/getsizebug1' );\n }\n return style;\n}\n\n// -------------------------- setup -------------------------- //\n\nvar isSetup = false;\n\nvar isBoxSizeOuter;\n\n/**\n * setup\n * check isBoxSizerOuter\n * do on first getSize() rather than on page load for Firefox bug\n */\nfunction setup() {\n // setup once\n if ( isSetup ) {\n return;\n }\n isSetup = true;\n\n // -------------------------- box sizing -------------------------- //\n\n /**\n * Chrome & Safari measure the outer-width on style.width on border-box elems\n * IE11 & Firefox<29 measures the inner-width\n */\n var div = document.createElement('div');\n div.style.width = '200px';\n div.style.padding = '1px 2px 3px 4px';\n div.style.borderStyle = 'solid';\n div.style.borderWidth = '1px 2px 3px 4px';\n div.style.boxSizing = 'border-box';\n\n var body = document.body || document.documentElement;\n body.appendChild( div );\n var style = getStyle( div );\n // round value for browser zoom. desandro/masonry#928\n isBoxSizeOuter = Math.round( getStyleSize( style.width ) ) == 200;\n getSize.isBoxSizeOuter = isBoxSizeOuter;\n\n body.removeChild( div );\n}\n\n// -------------------------- getSize -------------------------- //\n\nfunction getSize( elem ) {\n setup();\n\n // use querySeletor if elem is string\n if ( typeof elem == 'string' ) {\n elem = document.querySelector( elem );\n }\n\n // do not proceed on non-objects\n if ( !elem || typeof elem != 'object' || !elem.nodeType ) {\n return;\n }\n\n var style = getStyle( elem );\n\n // if hidden, everything is 0\n if ( style.display == 'none' ) {\n return getZeroSize();\n }\n\n var size = {};\n size.width = elem.offsetWidth;\n size.height = elem.offsetHeight;\n\n var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';\n\n // get all measurements\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n var value = style[ measurement ];\n var num = parseFloat( value );\n // any 'auto', 'medium' value will be 0\n size[ measurement ] = !isNaN( num ) ? num : 0;\n }\n\n var paddingWidth = size.paddingLeft + size.paddingRight;\n var paddingHeight = size.paddingTop + size.paddingBottom;\n var marginWidth = size.marginLeft + size.marginRight;\n var marginHeight = size.marginTop + size.marginBottom;\n var borderWidth = size.borderLeftWidth + size.borderRightWidth;\n var borderHeight = size.borderTopWidth + size.borderBottomWidth;\n\n var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;\n\n // overwrite width and height if we can get it from style\n var styleWidth = getStyleSize( style.width );\n if ( styleWidth !== false ) {\n size.width = styleWidth +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth );\n }\n\n var styleHeight = getStyleSize( style.height );\n if ( styleHeight !== false ) {\n size.height = styleHeight +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight );\n }\n\n size.innerWidth = size.width - ( paddingWidth + borderWidth );\n size.innerHeight = size.height - ( paddingHeight + borderHeight );\n\n size.outerWidth = size.width + marginWidth;\n size.outerHeight = size.height + marginHeight;\n\n return size;\n}\n\nreturn getSize;\n\n});\n","/**\n * matchesSelector v2.0.2\n * matchesSelector( element, '.selector' )\n * MIT license\n */\n\n/*jshint browser: true, strict: true, undef: true, unused: true */\n\n( function( window, factory ) {\n /*global define: false, module: false */\n 'use strict';\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.matchesSelector = factory();\n }\n\n}( window, function factory() {\n 'use strict';\n\n var matchesMethod = ( function() {\n var ElemProto = window.Element.prototype;\n // check for the standard method name first\n if ( ElemProto.matches ) {\n return 'matches';\n }\n // check un-prefixed\n if ( ElemProto.matchesSelector ) {\n return 'matchesSelector';\n }\n // check vendor prefixes\n var prefixes = [ 'webkit', 'moz', 'ms', 'o' ];\n\n for ( var i=0; i < prefixes.length; i++ ) {\n var prefix = prefixes[i];\n var method = prefix + 'MatchesSelector';\n if ( ElemProto[ method ] ) {\n return method;\n }\n }\n })();\n\n return function matchesSelector( elem, selector ) {\n return elem[ matchesMethod ]( selector );\n };\n\n}));\n","/**\n * Fizzy UI utils v2.0.7\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'desandro-matches-selector/matches-selector'\n ], function( matchesSelector ) {\n return factory( window, matchesSelector );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('desandro-matches-selector')\n );\n } else {\n // browser global\n window.fizzyUIUtils = factory(\n window,\n window.matchesSelector\n );\n }\n\n}( window, function factory( window, matchesSelector ) {\n\n'use strict';\n\nvar utils = {};\n\n// ----- extend ----- //\n\n// extends objects\nutils.extend = function( a, b ) {\n for ( var prop in b ) {\n a[ prop ] = b[ prop ];\n }\n return a;\n};\n\n// ----- modulo ----- //\n\nutils.modulo = function( num, div ) {\n return ( ( num % div ) + div ) % div;\n};\n\n// ----- makeArray ----- //\n\nvar arraySlice = Array.prototype.slice;\n\n// turn element or nodeList into an array\nutils.makeArray = function( obj ) {\n if ( Array.isArray( obj ) ) {\n // use object if already an array\n return obj;\n }\n // return empty array if undefined or null. #6\n if ( obj === null || obj === undefined ) {\n return [];\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n if ( isArrayLike ) {\n // convert nodeList to array\n return arraySlice.call( obj );\n }\n\n // array of single index\n return [ obj ];\n};\n\n// ----- removeFrom ----- //\n\nutils.removeFrom = function( ary, obj ) {\n var index = ary.indexOf( obj );\n if ( index != -1 ) {\n ary.splice( index, 1 );\n }\n};\n\n// ----- getParent ----- //\n\nutils.getParent = function( elem, selector ) {\n while ( elem.parentNode && elem != document.body ) {\n elem = elem.parentNode;\n if ( matchesSelector( elem, selector ) ) {\n return elem;\n }\n }\n};\n\n// ----- getQueryElement ----- //\n\n// use element as selector string\nutils.getQueryElement = function( elem ) {\n if ( typeof elem == 'string' ) {\n return document.querySelector( elem );\n }\n return elem;\n};\n\n// ----- handleEvent ----- //\n\n// enable .ontype to trigger from .addEventListener( elem, 'type' )\nutils.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// ----- filterFindElements ----- //\n\nutils.filterFindElements = function( elems, selector ) {\n // make array of elems\n elems = utils.makeArray( elems );\n var ffElems = [];\n\n elems.forEach( function( elem ) {\n // check that elem is an actual element\n if ( !( elem instanceof HTMLElement ) ) {\n return;\n }\n // add elem if no selector\n if ( !selector ) {\n ffElems.push( elem );\n return;\n }\n // filter & find items if we have a selector\n // filter\n if ( matchesSelector( elem, selector ) ) {\n ffElems.push( elem );\n }\n // find children\n var childElems = elem.querySelectorAll( selector );\n // concat childElems to filterFound array\n for ( var i=0; i < childElems.length; i++ ) {\n ffElems.push( childElems[i] );\n }\n });\n\n return ffElems;\n};\n\n// ----- debounceMethod ----- //\n\nutils.debounceMethod = function( _class, methodName, threshold ) {\n threshold = threshold || 100;\n // original method\n var method = _class.prototype[ methodName ];\n var timeoutName = methodName + 'Timeout';\n\n _class.prototype[ methodName ] = function() {\n var timeout = this[ timeoutName ];\n clearTimeout( timeout );\n\n var args = arguments;\n var _this = this;\n this[ timeoutName ] = setTimeout( function() {\n method.apply( _this, args );\n delete _this[ timeoutName ];\n }, threshold );\n };\n};\n\n// ----- docReady ----- //\n\nutils.docReady = function( callback ) {\n var readyState = document.readyState;\n if ( readyState == 'complete' || readyState == 'interactive' ) {\n // do async to allow for other scripts to run. metafizzy/flickity#441\n setTimeout( callback );\n } else {\n document.addEventListener( 'DOMContentLoaded', callback );\n }\n};\n\n// ----- htmlInit ----- //\n\n// http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/\nutils.toDashed = function( str ) {\n return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) {\n return $1 + '-' + $2;\n }).toLowerCase();\n};\n\nvar console = window.console;\n/**\n * allow user to initialize classes via [data-namespace] or .js-namespace class\n * htmlInit( Widget, 'widgetName' )\n * options are parsed from data-namespace-options\n */\nutils.htmlInit = function( WidgetClass, namespace ) {\n utils.docReady( function() {\n var dashedNamespace = utils.toDashed( namespace );\n var dataAttr = 'data-' + dashedNamespace;\n var dataAttrElems = document.querySelectorAll( '[' + dataAttr + ']' );\n var jsDashElems = document.querySelectorAll( '.js-' + dashedNamespace );\n var elems = utils.makeArray( dataAttrElems )\n .concat( utils.makeArray( jsDashElems ) );\n var dataOptionsAttr = dataAttr + '-options';\n var jQuery = window.jQuery;\n\n elems.forEach( function( elem ) {\n var attr = elem.getAttribute( dataAttr ) ||\n elem.getAttribute( dataOptionsAttr );\n var options;\n try {\n options = attr && JSON.parse( attr );\n } catch ( error ) {\n // log error, do not initialize\n if ( console ) {\n console.error( 'Error parsing ' + dataAttr + ' on ' + elem.className +\n ': ' + error );\n }\n return;\n }\n // initialize\n var instance = new WidgetClass( elem, options );\n // make available via $().data('namespace')\n if ( jQuery ) {\n jQuery.data( elem, namespace, instance );\n }\n });\n\n });\n};\n\n// ----- ----- //\n\nreturn utils;\n\n}));\n","import getSize from 'get-size';\n\n('use strict');\n\nexport default function Cell(elem, parent) {\n this.element = elem;\n this.parent = parent;\n\n this.create();\n}\n\nvar proto = Cell.prototype;\n\nproto.create = function () {\n this.element.style.position = 'absolute';\n this.element.setAttribute('aria-hidden', 'true');\n this.x = 0;\n this.shift = 0;\n Array.from(this.element.querySelectorAll('*')).forEach((element) => {\n element.setAttribute('tabindex', '-1');\n });\n};\n\nproto.destroy = function () {\n // reset style\n this.unselect();\n this.element.style.position = '';\n var side = this.parent.originSide;\n this.element.style[side] = '';\n};\n\nproto.getSize = function () {\n this.size = getSize(this.element);\n};\n\nproto.setPosition = function (x) {\n this.x = x;\n this.updateTarget();\n this.renderPosition(x);\n};\n\n// setDefaultTarget v1 method, backwards compatibility, remove in v3\nproto.updateTarget = proto.setDefaultTarget = function () {\n var marginProperty =\n this.parent.originSide == 'left' ? 'marginLeft' : 'marginRight';\n this.target =\n this.x +\n this.size[marginProperty] +\n this.size.width * this.parent.cellAlign;\n};\n\nproto.renderPosition = function (x) {\n // render position of cell with in slider\n var side = this.parent.originSide;\n this.element.style[side] = this.parent.getPositionValue(x);\n};\n\nproto.select = function () {\n this.element.classList.add('is-selected');\n this.element.removeAttribute('aria-hidden');\n Array.from(this.element.querySelectorAll('*')).forEach((element) => {\n element.removeAttribute('tabindex');\n });\n};\n\nproto.unselect = function () {\n this.element.classList.remove('is-selected');\n this.element.setAttribute('aria-hidden', 'true');\n Array.from(this.element.querySelectorAll('*')).forEach((element) => {\n element.setAttribute('tabindex', '-1');\n });\n};\n\n/**\n * @param {Integer} factor - 0, 1, or -1\n **/\nproto.wrapShift = function (shift) {\n this.shift = shift;\n this.renderPosition(this.x + this.parent.slideableWidth * shift);\n};\n\nproto.remove = function () {\n this.element.parentNode.removeChild(this.element);\n};\n","'use strict';\n\nexport default function Slide(parent) {\n this.parent = parent;\n this.isOriginLeft = parent.originSide == 'left';\n this.cells = [];\n this.outerWidth = 0;\n this.height = 0;\n}\n\nvar proto = Slide.prototype;\n\nproto.addCell = function (cell) {\n this.cells.push(cell);\n this.outerWidth += cell.size.outerWidth;\n this.height = Math.max(cell.size.outerHeight, this.height);\n // first cell stuff\n if (this.cells.length == 1) {\n this.x = cell.x; // x comes from first cell\n var beginMargin = this.isOriginLeft ? 'marginLeft' : 'marginRight';\n this.firstMargin = cell.size[beginMargin];\n }\n};\n\nproto.updateTarget = function () {\n var endMargin = this.isOriginLeft ? 'marginRight' : 'marginLeft';\n var lastCell = this.getLastCell();\n var lastMargin = lastCell ? lastCell.size[endMargin] : 0;\n var slideWidth = this.outerWidth - (this.firstMargin + lastMargin);\n this.target = this.x + this.firstMargin + slideWidth * this.parent.cellAlign;\n};\n\nproto.getLastCell = function () {\n return this.cells[this.cells.length - 1];\n};\n\nproto.select = function () {\n this.cells.forEach(function (cell) {\n cell.select();\n });\n};\n\nproto.unselect = function () {\n this.cells.forEach(function (cell) {\n cell.unselect();\n });\n};\n\nproto.getCellElements = function () {\n return this.cells.map(function (cell) {\n return cell.element;\n });\n};\n","import utils from 'fizzy-ui-utils';\n\nconst proto = {};\n\nproto.startAnimation = function () {\n if (this.isAnimating) {\n return;\n }\n\n this.isAnimating = true;\n this.restingFrames = 0;\n this.animate();\n};\n\nproto.animate = function () {\n this.applyDragForce();\n this.applySelectedAttraction();\n\n var previousX = this.x;\n\n this.integratePhysics();\n this.positionSlider();\n this.settle(previousX);\n // animate next frame\n if (this.isAnimating) {\n var _this = this;\n requestAnimationFrame(function animateFrame() {\n _this.animate();\n });\n }\n};\n\nproto.positionSlider = function () {\n var x = this.x;\n // wrap position around\n if (this.options.wrapAround && this.cells.length > 1) {\n x = utils.modulo(x, this.slideableWidth);\n x = x - this.slideableWidth;\n this.shiftWrapCells(x);\n }\n\n this.setTranslateX(x, this.isAnimating);\n this.dispatchScrollEvent();\n};\n\nproto.setTranslateX = function (x, is3d) {\n x += this.cursorPosition;\n // reverse if right-to-left and using transform\n x = this.options.rightToLeft ? -x : x;\n var translateX = this.getPositionValue(x);\n // use 3D tranforms for hardware acceleration on iOS\n // but use 2D when settled, for better font-rendering\n this.slider.style.transform = is3d\n ? 'translate3d(' + translateX + ',0,0)'\n : 'translateX(' + translateX + ')';\n};\n\nproto.dispatchScrollEvent = function () {\n var firstSlide = this.slides[0];\n if (!firstSlide) {\n return;\n }\n var positionX = -this.x - firstSlide.target;\n var progress = positionX / this.slidesWidth;\n this.dispatchEvent('scroll', null, [progress, positionX]);\n};\n\nproto.positionSliderAtSelected = function () {\n if (!this.cells.length) {\n return;\n }\n this.x = -this.selectedSlide.target;\n this.velocity = 0; // stop wobble\n this.positionSlider();\n};\n\nproto.getPositionValue = function (position) {\n if (this.options.percentPosition) {\n // percent position, round to 2 digits, like 12.34%\n return Math.round((position / this.size.innerWidth) * 10000) * 0.01 + '%';\n } else {\n // pixel positioning\n return Math.round(position) + 'px';\n }\n};\n\nproto.settle = function (previousX) {\n // keep track of frames where x hasn't moved\n if (\n !this.isPointerDown &&\n Math.round(this.x * 100) == Math.round(previousX * 100)\n ) {\n this.restingFrames++;\n }\n // stop animating if resting for 3 or more frames\n if (this.restingFrames > 2) {\n this.isAnimating = false;\n delete this.isFreeScrolling;\n // render position with translateX when settled\n this.positionSlider();\n this.dispatchEvent('settle', null, [this.selectedIndex]);\n }\n};\n\nproto.shiftWrapCells = function (x) {\n // shift before cells\n var beforeGap = this.cursorPosition + x;\n this._shiftCells(this.beforeShiftCells, beforeGap, -1);\n // shift after cells\n var afterGap =\n this.size.innerWidth - (x + this.slideableWidth + this.cursorPosition);\n this._shiftCells(this.afterShiftCells, afterGap, 1);\n};\n\nproto._shiftCells = function (cells, gap, shift) {\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n var cellShift = gap > 0 ? shift : 0;\n cell.wrapShift(cellShift);\n gap -= cell.size.outerWidth;\n }\n};\n\nproto._unshiftCells = function (cells) {\n if (!cells || !cells.length) {\n return;\n }\n for (var i = 0; i < cells.length; i++) {\n cells[i].wrapShift(0);\n }\n};\n\n// -------------------------- physics -------------------------- //\n\nproto.integratePhysics = function () {\n this.x += this.velocity;\n this.velocity *= this.getFrictionFactor();\n};\n\nproto.applyForce = function (force) {\n this.velocity += force;\n};\n\nproto.getFrictionFactor = function () {\n return (\n 1 - this.options[this.isFreeScrolling ? 'freeScrollFriction' : 'friction']\n );\n};\n\nproto.getRestingPosition = function () {\n // my thanks to Steven Wittens, who simplified this math greatly\n return this.x + this.velocity / (1 - this.getFrictionFactor());\n};\n\nproto.applyDragForce = function () {\n if (!this.isDraggable || !this.isPointerDown) {\n return;\n }\n // change the position to drag position by applying force\n var dragVelocity = this.dragX - this.x;\n var dragForce = dragVelocity - this.velocity;\n this.applyForce(dragForce);\n};\n\nproto.applySelectedAttraction = function () {\n // do not attract if pointer down or no slides\n var dragDown = this.isDraggable && this.isPointerDown;\n if (dragDown || this.isFreeScrolling || !this.slides.length) {\n return;\n }\n var distance = this.selectedSlide.target * -1 - this.x;\n var force = distance * this.options.selectedAttraction;\n this.applyForce(force);\n};\n\nexport default proto;\n","import EvEmitter from 'ev-emitter';\nimport getSize from 'get-size';\nimport utils from 'fizzy-ui-utils';\nimport Cell from './cell';\nimport Slide from './slide';\nimport animatePrototype from './animate';\n\n('use strict');\n\n// vars\nvar getComputedStyle = window.getComputedStyle;\nvar console = window.console;\n\nfunction moveElements(elems, toElem) {\n elems = utils.makeArray(elems);\n while (elems.length) {\n toElem.appendChild(elems.shift());\n }\n}\n\n// -------------------------- Flickity -------------------------- //\n\n// globally unique identifiers\nvar GUID = 0;\n// internal store of all Flickity intances\nvar instances = {};\n\nexport default function Flickity(element, options) {\n var queryElement = utils.getQueryElement(element);\n if (!queryElement) {\n if (console) {\n console.error('Bad element for Flickity: ' + (queryElement || element));\n }\n return;\n }\n this.element = queryElement;\n // do not initialize twice on same element\n if (this.element.flickityGUID) {\n var instance = instances[this.element.flickityGUID];\n if (!instances[this.element.flickityGUID]) return;\n instance.option(options);\n return instance;\n }\n\n // options\n this.options = utils.extend({}, this.constructor.defaults);\n this.option(options);\n\n // kick things off\n this._create();\n}\n\nFlickity.defaults = {\n accessibility: true,\n // adaptiveHeight: false,\n cellAlign: 'center',\n // cellSelector: undefined,\n // contain: false,\n freeScrollFriction: 0.075, // friction when free-scrolling\n friction: 0.28, // friction when selecting\n namespaceJQueryEvents: true,\n // initialIndex: 0,\n percentPosition: true,\n resize: true,\n selectedAttraction: 0.025,\n setGallerySize: true,\n // watchCSS: false,\n // wrapAround: false\n};\n\n// hash of methods triggered on _create()\nFlickity.createMethods = [];\n\nvar proto = Flickity.prototype;\n// inherit EventEmitter\nutils.extend(proto, EvEmitter.prototype);\n\nproto._create = function () {\n // add id for Flickity.data\n var id = (this.guid = ++GUID);\n this.element.flickityGUID = id; // expando\n instances[id] = this; // associate via id\n // initial properties\n this.selectedIndex = 0;\n // how many frames slider has been in same position\n this.restingFrames = 0;\n // initial physics properties\n this.x = 0;\n this.velocity = 0;\n this.originSide = this.options.rightToLeft ? 'right' : 'left';\n // create viewport & slider\n this.viewport = document.createElement('div');\n this.viewport.className = 'flickity-viewport';\n this._createSlider();\n\n if (this.options.resize || this.options.watchCSS) {\n window.addEventListener('resize', this);\n }\n\n // add listeners from on option\n for (var eventName in this.options.on) {\n var listener = this.options.on[eventName];\n this.on(eventName, listener);\n }\n\n Flickity.createMethods.forEach(function (method) {\n this[method]();\n }, this);\n\n if (this.options.watchCSS) {\n this.watchCSS();\n } else {\n this.activate();\n }\n};\n\n/**\n * set options\n * @param {Object} opts\n */\nproto.option = function (opts) {\n utils.extend(this.options, opts);\n};\n\nproto.activate = function () {\n if (this.isActive) {\n return;\n }\n this.isActive = true;\n this.element.classList.add('flickity-enabled');\n if (this.options.rightToLeft) {\n this.element.classList.add('flickity-rtl');\n }\n\n this.getSize();\n // move initial cell elements so they can be loaded as cells\n var cellElems = this.element.children; //this._filterFindCellElements( this.element.children );\n moveElements(cellElems, this.slider);\n this.viewport.appendChild(this.slider);\n this.element.appendChild(this.viewport);\n // get cells from children\n this.reloadCells();\n\n if (this.options.accessibility) {\n // allow element to focusable\n this.element.tabIndex = 0;\n // listen for key presses\n this.element.addEventListener('keydown', this);\n }\n\n this.emitEvent('activate');\n this.selectInitialIndex();\n // flag for initial activation, for using initialIndex\n this.isInitActivated = true;\n // ready event. #493\n this.dispatchEvent('ready');\n};\n\n// slider positions the cells\nproto._createSlider = function () {\n // slider element does all the positioning\n var slider = document.createElement('div');\n slider.className = 'flickity-slider';\n slider.style[this.originSide] = 0;\n this.slider = slider;\n};\n\nproto._filterFindCellElements = function (elems) {\n return utils.filterFindElements(elems, this.options.cellSelector);\n};\n\n// goes through all children\nproto.reloadCells = function () {\n // collection of item elements\n this.cells = this._makeCells(\n this.slider.getRootNode().host\n ? this.slider.getRootNode().host.children\n : this.slider.children\n );\n this.positionCells();\n this._getWrapShiftCells();\n this.setGallerySize();\n};\n\n/**\n * turn elements into Flickity.Cells\n * @param {Array or NodeList or HTMLElement} elems\n * @returns {Array} items - collection of new Flickity Cells\n */\nproto._makeCells = function (elems) {\n var cellElems = this._filterFindCellElements(elems);\n\n // create new Flickity for collection\n var cells = cellElems.map(function (cellElem) {\n return new Cell(cellElem, this);\n }, this);\n\n return cells;\n};\n\nproto.getLastCell = function () {\n return this.cells[this.cells.length - 1];\n};\n\nproto.getLastSlide = function () {\n return this.slides[this.slides.length - 1];\n};\n\n// positions all cells\nproto.positionCells = function () {\n // size all cells\n this._sizeCells(this.cells);\n // position all cells\n this._positionCells(0);\n};\n\n/**\n * position certain cells\n * @param {Integer} index - which cell to start with\n */\nproto._positionCells = function (index) {\n index = index || 0;\n // also measure maxCellHeight\n // start 0 if positioning all cells\n this.maxCellHeight = index ? this.maxCellHeight || 0 : 0;\n var cellX = 0;\n // get cellX\n if (index > 0) {\n var startCell = this.cells[index - 1];\n cellX = startCell.x + startCell.size.outerWidth;\n }\n var len = this.cells.length;\n for (var i = index; i < len; i++) {\n var cell = this.cells[i];\n cell.setPosition(cellX);\n cellX += cell.size.outerWidth;\n this.maxCellHeight = Math.max(cell.size.outerHeight, this.maxCellHeight);\n }\n // keep track of cellX for wrap-around\n this.slideableWidth = cellX;\n // slides\n this.updateSlides();\n // contain slides target\n this._containSlides();\n // update slidesWidth\n this.slidesWidth = len\n ? this.getLastSlide().target - this.slides[0].target\n : 0;\n};\n\n/**\n * cell.getSize() on multiple cells\n * @param {Array} cells\n */\nproto._sizeCells = function (cells) {\n cells.forEach(function (cell) {\n cell.getSize();\n });\n};\n\n// -------------------------- -------------------------- //\n\nproto.updateSlides = function () {\n this.slides = [];\n if (!this.cells.length) {\n return;\n }\n\n var slide = new Slide(this);\n this.slides.push(slide);\n var isOriginLeft = this.originSide == 'left';\n var nextMargin = isOriginLeft ? 'marginRight' : 'marginLeft';\n\n var canCellFit = this._getCanCellFit();\n\n this.cells.forEach(function (cell, i) {\n // just add cell if first cell in slide\n if (!slide.cells.length) {\n slide.addCell(cell);\n return;\n }\n\n var slideWidth =\n slide.outerWidth -\n slide.firstMargin +\n (cell.size.outerWidth - cell.size[nextMargin]);\n\n if (canCellFit.call(this, i, slideWidth)) {\n slide.addCell(cell);\n } else {\n // doesn't fit, new slide\n slide.updateTarget();\n\n slide = new Slide(this);\n this.slides.push(slide);\n slide.addCell(cell);\n }\n }, this);\n // last slide\n slide.updateTarget();\n // update .selectedSlide\n this.updateSelectedSlide();\n};\n\nproto._getCanCellFit = function () {\n var groupCells = this.options.groupCells;\n if (!groupCells) {\n return function () {\n return false;\n };\n } else if (typeof groupCells == 'number') {\n // group by number. 3 -> [0,1,2], [3,4,5], ...\n var number = parseInt(groupCells, 10);\n return function (i) {\n return i % number !== 0;\n };\n }\n // default, group by width of slide\n // parse '75%\n var percentMatch =\n typeof groupCells == 'string' && groupCells.match(/^(\\d+)%$/);\n var percent = percentMatch ? parseInt(percentMatch[1], 10) / 100 : 1;\n return function (i, slideWidth) {\n return slideWidth <= (this.size.innerWidth + 1) * percent;\n };\n};\n\n// alias _init for jQuery plugin .flickity()\nproto._init = proto.reposition = function () {\n this.positionCells();\n this.positionSliderAtSelected();\n};\n\nproto.getSize = function () {\n this.size = getSize(this.element);\n this.setCellAlign();\n this.cursorPosition = this.size.innerWidth * this.cellAlign;\n};\n\nvar cellAlignShorthands = {\n // cell align, then based on origin side\n center: {\n left: 0.5,\n right: 0.5,\n },\n left: {\n left: 0,\n right: 1,\n },\n right: {\n right: 0,\n left: 1,\n },\n};\n\nproto.setCellAlign = function () {\n var shorthand = cellAlignShorthands[this.options.cellAlign];\n this.cellAlign = shorthand\n ? shorthand[this.originSide]\n : this.options.cellAlign;\n};\n\nproto.setGallerySize = function () {\n if (this.options.setGallerySize) {\n var height =\n this.options.adaptiveHeight && this.selectedSlide\n ? this.selectedSlide.height\n : this.maxCellHeight;\n this.viewport.style.height = height + 'px';\n }\n};\n\nproto._getWrapShiftCells = function () {\n // only for wrap-around\n if (!this.options.wrapAround) {\n return;\n }\n // unshift previous cells\n this._unshiftCells(this.beforeShiftCells);\n this._unshiftCells(this.afterShiftCells);\n // get before cells\n // initial gap\n var gapX = this.cursorPosition;\n var cellIndex = this.cells.length - 1;\n this.beforeShiftCells = this._getGapCells(gapX, cellIndex, -1);\n // get after cells\n // ending gap between last cell and end of gallery viewport\n gapX = this.size.innerWidth - this.cursorPosition;\n // start cloning at first cell, working forwards\n this.afterShiftCells = this._getGapCells(gapX, 0, 1);\n};\n\nproto._getGapCells = function (gapX, cellIndex, increment) {\n // keep adding cells until the cover the initial gap\n var cells = [];\n while (gapX > 0) {\n var cell = this.cells[cellIndex];\n if (!cell) {\n break;\n }\n cells.push(cell);\n cellIndex += increment;\n gapX -= cell.size.outerWidth;\n }\n return cells;\n};\n\n// ----- contain ----- //\n\n// contain cell targets so no excess sliding\nproto._containSlides = function () {\n if (!this.options.contain || this.options.wrapAround || !this.cells.length) {\n return;\n }\n var isRightToLeft = this.options.rightToLeft;\n var beginMargin = isRightToLeft ? 'marginRight' : 'marginLeft';\n var endMargin = isRightToLeft ? 'marginLeft' : 'marginRight';\n var contentWidth = this.slideableWidth - this.getLastCell().size[endMargin];\n // content is less than gallery size\n var isContentSmaller = contentWidth < this.size.innerWidth;\n // bounds\n var beginBound = this.cursorPosition + this.cells[0].size[beginMargin];\n var endBound = contentWidth - this.size.innerWidth * (1 - this.cellAlign);\n // contain each cell target\n this.slides.forEach(function (slide) {\n if (isContentSmaller) {\n // all cells fit inside gallery\n slide.target = contentWidth * this.cellAlign;\n } else {\n // contain to bounds\n slide.target = Math.max(slide.target, beginBound);\n slide.target = Math.min(slide.target, endBound);\n }\n }, this);\n};\n\n// ----- ----- //\n\n/**\n * emits events via eventEmitter and jQuery events\n * @param {String} type - name of event\n * @param {Event} event - original event\n * @param {Array} args - extra arguments\n */\nproto.dispatchEvent = function (type, event, args) {\n var emitArgs = event ? [event].concat(args) : args;\n this.emitEvent(type, emitArgs);\n};\n\n// -------------------------- select -------------------------- //\n\n/**\n * @param {Integer} index - index of the slide\n * @param {Boolean} isWrap - will wrap-around to last/first if at the end\n * @param {Boolean} isInstant - will immediately set position at selected cell\n */\nproto.select = function (index, isWrap, isInstant) {\n if (!this.isActive) {\n return;\n }\n index = parseInt(index, 10);\n this._wrapSelect(index);\n\n if (this.options.wrapAround || isWrap) {\n index = utils.modulo(index, this.slides.length);\n }\n // bail if invalid index\n if (!this.slides[index]) {\n return;\n }\n var prevIndex = this.selectedIndex;\n this.selectedIndex = index;\n this.updateSelectedSlide();\n if (isInstant) {\n this.positionSliderAtSelected();\n } else {\n this.startAnimation();\n }\n if (this.options.adaptiveHeight) {\n this.setGallerySize();\n }\n // events\n this.dispatchEvent('select', null, [index]);\n // change event if new index\n if (index != prevIndex) {\n this.dispatchEvent('change', null, [index]);\n }\n // old v1 event name, remove in v3\n this.dispatchEvent('cellSelect');\n};\n\n// wraps position for wrapAround, to move to closest slide. #113\nproto._wrapSelect = function (index) {\n var len = this.slides.length;\n var isWrapping = this.options.wrapAround && len > 1;\n if (!isWrapping) {\n return index;\n }\n var wrapIndex = utils.modulo(index, len);\n // go to shortest\n var delta = Math.abs(wrapIndex - this.selectedIndex);\n var backWrapDelta = Math.abs(wrapIndex + len - this.selectedIndex);\n var forewardWrapDelta = Math.abs(wrapIndex - len - this.selectedIndex);\n if (!this.isDragSelect && backWrapDelta < delta) {\n index += len;\n } else if (!this.isDragSelect && forewardWrapDelta < delta) {\n index -= len;\n }\n // wrap position so slider is within normal area\n if (index < 0) {\n this.x -= this.slideableWidth;\n } else if (index >= len) {\n this.x += this.slideableWidth;\n }\n};\n\nproto.previous = function (isWrap, isInstant) {\n this.select(this.selectedIndex - 1, isWrap, isInstant);\n};\n\nproto.next = function (isWrap, isInstant) {\n this.select(this.selectedIndex + 1, isWrap, isInstant);\n};\n\nproto.updateSelectedSlide = function () {\n var slide = this.slides[this.selectedIndex];\n // selectedIndex could be outside of slides, if triggered before resize()\n if (!slide) {\n return;\n }\n // unselect previous selected slide\n this.unselectSelectedSlide();\n // update new selected slide\n this.selectedSlide = slide;\n slide.select();\n this.selectedCells = slide.cells;\n this.selectedElements = slide.getCellElements();\n // HACK: selectedCell & selectedElement is first cell in slide, backwards compatibility\n // Remove in v3?\n this.selectedCell = slide.cells[0];\n this.selectedElement = this.selectedElements[0];\n};\n\nproto.unselectSelectedSlide = function () {\n if (this.selectedSlide) {\n this.selectedSlide.unselect();\n }\n};\n\nproto.selectInitialIndex = function () {\n var initialIndex = this.options.initialIndex;\n // already activated, select previous selectedIndex\n if (this.isInitActivated) {\n this.select(this.selectedIndex, false, true);\n return;\n }\n // select with selector string\n if (initialIndex && typeof initialIndex == 'string') {\n var cell = this.queryCell(initialIndex);\n if (cell) {\n this.selectCell(initialIndex, false, true);\n return;\n }\n }\n\n var index = 0;\n // select with number\n if (initialIndex && this.slides[initialIndex]) {\n index = initialIndex;\n }\n // select instantly\n this.select(index, false, true);\n};\n\n/**\n * select slide from number or cell element\n * @param {Element or Number} elem\n */\nproto.selectCell = function (value, isWrap, isInstant) {\n // get cell\n var cell = this.queryCell(value);\n if (!cell) {\n return;\n }\n\n var index = this.getCellSlideIndex(cell);\n this.select(index, isWrap, isInstant);\n};\n\nproto.getCellSlideIndex = function (cell) {\n // get index of slides that has cell\n for (var i = 0; i < this.slides.length; i++) {\n var slide = this.slides[i];\n var index = slide.cells.indexOf(cell);\n if (index != -1) {\n return i;\n }\n }\n};\n\n// -------------------------- get cells -------------------------- //\n\n/**\n * get Flickity.Cell, given an Element\n * @param {Element} elem\n * @returns {Flickity.Cell} item\n */\nproto.getCell = function (elem) {\n // loop through cells to get the one that matches\n for (var i = 0; i < this.cells.length; i++) {\n var cell = this.cells[i];\n if (cell.element == elem) {\n return cell;\n }\n }\n};\n\n/**\n * get collection of Flickity.Cells, given Elements\n * @param {Element, Array, NodeList} elems\n * @returns {Array} cells - Flickity.Cells\n */\nproto.getCells = function (elems) {\n elems = utils.makeArray(elems);\n var cells = [];\n elems.forEach(function (elem) {\n var cell = this.getCell(elem);\n if (cell) {\n cells.push(cell);\n }\n }, this);\n return cells;\n};\n\n/**\n * get cell elements\n * @returns {Array} cellElems\n */\nproto.getCellElements = function () {\n return this.cells.map(function (cell) {\n return cell.element;\n });\n};\n\n/**\n * get parent cell from an element\n * @param {Element} elem\n * @returns {Flickit.Cell} cell\n */\nproto.getParentCell = function (elem) {\n // first check if elem is cell\n var cell = this.getCell(elem);\n if (cell) {\n return cell;\n }\n // try to get parent cell elem\n elem = utils.getParent(elem, '.flickity-slider > *');\n return this.getCell(elem);\n};\n\n/**\n * get cells adjacent to a slide\n * @param {Integer} adjCount - number of adjacent slides\n * @param {Integer} index - index of slide to start\n * @returns {Array} cells - array of Flickity.Cells\n */\nproto.getAdjacentCellElements = function (adjCount, index) {\n if (!adjCount) {\n return this.selectedSlide.getCellElements();\n }\n index = index === undefined ? this.selectedIndex : index;\n\n var len = this.slides.length;\n if (1 + adjCount * 2 >= len) {\n return this.getCellElements();\n }\n\n var cellElems = [];\n for (var i = index - adjCount; i <= index + adjCount; i++) {\n var slideIndex = this.options.wrapAround ? utils.modulo(i, len) : i;\n var slide = this.slides[slideIndex];\n if (slide) {\n cellElems = cellElems.concat(slide.getCellElements());\n }\n }\n return cellElems;\n};\n\n/**\n * select slide from number or cell element\n * @param {Element, Selector String, or Number} selector\n */\nproto.queryCell = function (selector) {\n if (typeof selector == 'number') {\n // use number as index\n return this.cells[selector];\n }\n if (typeof selector == 'string') {\n // do not select invalid selectors from hash: #123, #/. #791\n if (selector.match(/^[#\\.]?[\\d\\/]/)) {\n return;\n }\n // use string as selector, get element\n selector = this.element.querySelector(selector);\n }\n // get cell from element\n return this.getCell(selector);\n};\n\n// -------------------------- events -------------------------- //\n\nproto.uiChange = function () {\n this.emitEvent('uiChange');\n};\n\n// keep focus on element when child UI elements are clicked\nproto.childUIPointerDown = function (event) {\n // HACK iOS does not allow touch events to bubble up?!\n if (event.type != 'touchstart') {\n event.preventDefault();\n }\n this.focus();\n};\n\n// ----- resize ----- //\n\nproto.onresize = function () {\n this.watchCSS();\n this.resize();\n};\n\nutils.debounceMethod(Flickity, 'onresize', 150);\n\nproto.resize = function () {\n if (!this.isActive) {\n return;\n }\n this.getSize();\n // wrap values\n if (this.options.wrapAround) {\n this.x = utils.modulo(this.x, this.slideableWidth);\n }\n this.positionCells();\n this._getWrapShiftCells();\n this.setGallerySize();\n this.emitEvent('resize');\n // update selected index for group slides, instant\n // TODO: position can be lost between groups of various numbers\n var selectedElement = this.selectedElements && this.selectedElements[0];\n this.selectCell(selectedElement, false, true);\n};\n\n// watches the :after property, activates/deactivates\nproto.watchCSS = function () {\n var watchOption = this.options.watchCSS;\n if (!watchOption) {\n return;\n }\n\n var afterContent = getComputedStyle(this.element, ':after').content;\n // activate if :after { content: 'flickity' }\n if (afterContent.indexOf('flickity') != -1) {\n this.activate();\n } else {\n this.deactivate();\n }\n};\n\n// ----- keydown ----- //\n\n// go previous/next if left/right keys pressed\nproto.onkeydown = function (event) {\n // only work if element is in focus\n var isNotFocused =\n document.activeElement && document.activeElement != this.element;\n if (!this.options.accessibility || isNotFocused) {\n return;\n }\n\n var handler = Flickity.keyboardHandlers[event.keyCode];\n if (handler) {\n handler.call(this);\n }\n};\n\nFlickity.keyboardHandlers = {\n // left arrow\n 37: function () {\n var leftMethod = this.options.rightToLeft ? 'next' : 'previous';\n this.uiChange();\n this[leftMethod]();\n },\n // right arrow\n 39: function () {\n var rightMethod = this.options.rightToLeft ? 'previous' : 'next';\n this.uiChange();\n this[rightMethod]();\n },\n};\n\n// ----- focus ----- //\n\nproto.focus = function () {\n // TODO remove scrollTo once focus options gets more support\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#Browser_compatibility\n var prevScrollY = window.pageYOffset;\n this.element.focus({ preventScroll: true });\n // hack to fix scroll jump after focus, #76\n if (window.pageYOffset != prevScrollY) {\n window.scrollTo(window.pageXOffset, prevScrollY);\n }\n};\n\n// -------------------------- destroy -------------------------- //\n\n// deactivate all Flickity functionality, but keep stuff available\nproto.deactivate = function () {\n if (!this.isActive) {\n return;\n }\n this.element.classList.remove('flickity-enabled');\n this.element.classList.remove('flickity-rtl');\n this.unselectSelectedSlide();\n // destroy cells\n this.cells.forEach(function (cell) {\n cell.destroy();\n });\n this.element.removeChild(this.viewport);\n // move child elements back into element\n moveElements(this.slider.children, this.element);\n if (this.options.accessibility) {\n this.element.removeAttribute('tabIndex');\n this.element.removeEventListener('keydown', this);\n }\n // set flags\n this.isActive = false;\n this.emitEvent('deactivate');\n};\n\nproto.destroy = function () {\n this.deactivate();\n window.removeEventListener('resize', this);\n this.allOff();\n this.emitEvent('destroy');\n delete this.element.flickityGUID;\n delete instances[this.guid];\n};\n\n// -------------------------- prototype -------------------------- //\n\nutils.extend(proto, animatePrototype);\n\n// -------------------------- extras -------------------------- //\n\n/**\n * get Flickity instance from element\n * @param {Element} elem\n * @returns {Flickity}\n */\nFlickity.data = function (elem) {\n elem = utils.getQueryElement(elem);\n var id = elem && elem.flickityGUID;\n return id && instances[id];\n};\n\nutils.htmlInit(Flickity, 'flickity');\n\nFlickity.Cell = Cell;\nFlickity.Slide = Slide;\n","/*!\n * Unipointer v2.4.0\n * base class for doing one thing with pointer event\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*global define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter'\n ], function( EvEmitter ) {\n return factory( window, EvEmitter );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter')\n );\n } else {\n // browser global\n window.Unipointer = factory(\n window,\n window.EvEmitter\n );\n }\n\n}( window, function factory( window, EvEmitter ) {\n\n'use strict';\n\nfunction noop() {}\n\nfunction Unipointer() {}\n\n// inherit EvEmitter\nvar proto = Unipointer.prototype = Object.create( EvEmitter.prototype );\n\nproto.bindStartEvent = function( elem ) {\n this._bindStartEvent( elem, true );\n};\n\nproto.unbindStartEvent = function( elem ) {\n this._bindStartEvent( elem, false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd - remove if falsey\n */\nproto._bindStartEvent = function( elem, isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n\n // default to mouse events\n var startEvent = 'mousedown';\n if ( 'ontouchstart' in window ) {\n // HACK prefer Touch Events as you can preventDefault on touchstart to\n // disable scroll in iOS & mobile Chrome metafizzy/flickity#1177\n startEvent = 'touchstart';\n } else if ( window.PointerEvent ) {\n // Pointer Events\n startEvent = 'pointerdown';\n }\n elem[ bindMethod ]( startEvent, this );\n};\n\n// trigger handler methods for events\nproto.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// returns the touch that we're keeping track of\nproto.getTouch = function( touches ) {\n for ( var i=0; i < touches.length; i++ ) {\n var touch = touches[i];\n if ( touch.identifier == this.pointerIdentifier ) {\n return touch;\n }\n }\n};\n\n// ----- start event ----- //\n\nproto.onmousedown = function( event ) {\n // dismiss clicks from right or middle buttons\n var button = event.button;\n if ( button && ( button !== 0 && button !== 1 ) ) {\n return;\n }\n this._pointerDown( event, event );\n};\n\nproto.ontouchstart = function( event ) {\n this._pointerDown( event, event.changedTouches[0] );\n};\n\nproto.onpointerdown = function( event ) {\n this._pointerDown( event, event );\n};\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto._pointerDown = function( event, pointer ) {\n // dismiss right click and other pointers\n // button = 0 is okay, 1-4 not\n if ( event.button || this.isPointerDown ) {\n return;\n }\n\n this.isPointerDown = true;\n // save pointer identifier to match up touch events\n this.pointerIdentifier = pointer.pointerId !== undefined ?\n // pointerId for pointer events, touch.indentifier for touch events\n pointer.pointerId : pointer.identifier;\n\n this.pointerDown( event, pointer );\n};\n\nproto.pointerDown = function( event, pointer ) {\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// hash of events to be bound after start event\nvar postStartEvents = {\n mousedown: [ 'mousemove', 'mouseup' ],\n touchstart: [ 'touchmove', 'touchend', 'touchcancel' ],\n pointerdown: [ 'pointermove', 'pointerup', 'pointercancel' ],\n};\n\nproto._bindPostStartEvents = function( event ) {\n if ( !event ) {\n return;\n }\n // get proper events to match start event\n var events = postStartEvents[ event.type ];\n // bind events to node\n events.forEach( function( eventName ) {\n window.addEventListener( eventName, this );\n }, this );\n // save these arguments\n this._boundPointerEvents = events;\n};\n\nproto._unbindPostStartEvents = function() {\n // check for _boundEvents, in case dragEnd triggered twice (old IE8 bug)\n if ( !this._boundPointerEvents ) {\n return;\n }\n this._boundPointerEvents.forEach( function( eventName ) {\n window.removeEventListener( eventName, this );\n }, this );\n\n delete this._boundPointerEvents;\n};\n\n// ----- move event ----- //\n\nproto.onmousemove = function( event ) {\n this._pointerMove( event, event );\n};\n\nproto.onpointermove = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerMove( event, event );\n }\n};\n\nproto.ontouchmove = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerMove( event, touch );\n }\n};\n\n/**\n * pointer move\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerMove = function( event, pointer ) {\n this.pointerMove( event, pointer );\n};\n\n// public\nproto.pointerMove = function( event, pointer ) {\n this.emitEvent( 'pointerMove', [ event, pointer ] );\n};\n\n// ----- end event ----- //\n\n\nproto.onmouseup = function( event ) {\n this._pointerUp( event, event );\n};\n\nproto.onpointerup = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerUp( event, event );\n }\n};\n\nproto.ontouchend = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerUp( event, touch );\n }\n};\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerUp = function( event, pointer ) {\n this._pointerDone();\n this.pointerUp( event, pointer );\n};\n\n// public\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n};\n\n// ----- pointer done ----- //\n\n// triggered on pointer up & pointer cancel\nproto._pointerDone = function() {\n this._pointerReset();\n this._unbindPostStartEvents();\n this.pointerDone();\n};\n\nproto._pointerReset = function() {\n // reset properties\n this.isPointerDown = false;\n delete this.pointerIdentifier;\n};\n\nproto.pointerDone = noop;\n\n// ----- pointer cancel ----- //\n\nproto.onpointercancel = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerCancel( event, event );\n }\n};\n\nproto.ontouchcancel = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerCancel( event, touch );\n }\n};\n\n/**\n * pointer cancel\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerCancel = function( event, pointer ) {\n this._pointerDone();\n this.pointerCancel( event, pointer );\n};\n\n// public\nproto.pointerCancel = function( event, pointer ) {\n this.emitEvent( 'pointerCancel', [ event, pointer ] );\n};\n\n// ----- ----- //\n\n// utility function for getting x/y coords from event\nUnipointer.getPointerPoint = function( pointer ) {\n return {\n x: pointer.pageX,\n y: pointer.pageY\n };\n};\n\n// ----- ----- //\n\nreturn Unipointer;\n\n}));\n","/*!\n * Unidragger v2.4.0\n * Draggable base class\n * MIT license\n */\n\n/*jshint browser: true, unused: true, undef: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'unipointer/unipointer'\n ], function( Unipointer ) {\n return factory( window, Unipointer );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('unipointer')\n );\n } else {\n // browser global\n window.Unidragger = factory(\n window,\n window.Unipointer\n );\n }\n\n}( window, function factory( window, Unipointer ) {\n\n'use strict';\n\n// -------------------------- Unidragger -------------------------- //\n\nfunction Unidragger() {}\n\n// inherit Unipointer & EvEmitter\nvar proto = Unidragger.prototype = Object.create( Unipointer.prototype );\n\n// ----- bind start ----- //\n\nproto.bindHandles = function() {\n this._bindHandles( true );\n};\n\nproto.unbindHandles = function() {\n this._bindHandles( false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd\n */\nproto._bindHandles = function( isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n // bind each handle\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n var touchAction = isAdd ? this._touchActionValue : '';\n for ( var i=0; i < this.handles.length; i++ ) {\n var handle = this.handles[i];\n this._bindStartEvent( handle, isAdd );\n handle[ bindMethod ]( 'click', this );\n // touch-action: none to override browser touch gestures. metafizzy/flickity#540\n if ( window.PointerEvent ) {\n handle.style.touchAction = touchAction;\n }\n }\n};\n\n// prototype so it can be overwriteable by Flickity\nproto._touchActionValue = 'none';\n\n// ----- start event ----- //\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerDown = function( event, pointer ) {\n var isOkay = this.okayPointerDown( event );\n if ( !isOkay ) {\n return;\n }\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. flickity#842\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n\n event.preventDefault();\n this.pointerDownBlur();\n // bind move and end events\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// nodes that have text fields\nvar cursorNodes = {\n TEXTAREA: true,\n INPUT: true,\n SELECT: true,\n OPTION: true,\n};\n\n// input types that do not have text fields\nvar clickTypes = {\n radio: true,\n checkbox: true,\n button: true,\n submit: true,\n image: true,\n file: true,\n};\n\n// dismiss inputs with text fields. flickity#403, flickity#404\nproto.okayPointerDown = function( event ) {\n var isCursorNode = cursorNodes[ event.target.nodeName ];\n var isClickType = clickTypes[ event.target.type ];\n var isOkay = !isCursorNode || isClickType;\n if ( !isOkay ) {\n this._pointerReset();\n }\n return isOkay;\n};\n\n// kludge to blur previously focused input\nproto.pointerDownBlur = function() {\n var focused = document.activeElement;\n // do not blur body for IE10, metafizzy/flickity#117\n var canBlur = focused && focused.blur && focused != document.body;\n if ( canBlur ) {\n focused.blur();\n }\n};\n\n// ----- move event ----- //\n\n/**\n * drag move\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerMove = function( event, pointer ) {\n var moveVector = this._dragPointerMove( event, pointer );\n this.emitEvent( 'pointerMove', [ event, pointer, moveVector ] );\n this._dragMove( event, pointer, moveVector );\n};\n\n// base pointer move logic\nproto._dragPointerMove = function( event, pointer ) {\n var moveVector = {\n x: pointer.pageX - this.pointerDownPointer.pageX,\n y: pointer.pageY - this.pointerDownPointer.pageY\n };\n // start drag if pointer has moved far enough to start drag\n if ( !this.isDragging && this.hasDragStarted( moveVector ) ) {\n this._dragStart( event, pointer );\n }\n return moveVector;\n};\n\n// condition if pointer has moved far enough to start drag\nproto.hasDragStarted = function( moveVector ) {\n return Math.abs( moveVector.x ) > 3 || Math.abs( moveVector.y ) > 3;\n};\n\n// ----- end event ----- //\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n this._dragPointerUp( event, pointer );\n};\n\nproto._dragPointerUp = function( event, pointer ) {\n if ( this.isDragging ) {\n this._dragEnd( event, pointer );\n } else {\n // pointer didn't move enough for drag to start\n this._staticClick( event, pointer );\n }\n};\n\n// -------------------------- drag -------------------------- //\n\n// dragStart\nproto._dragStart = function( event, pointer ) {\n this.isDragging = true;\n // prevent clicks\n this.isPreventingClicks = true;\n this.dragStart( event, pointer );\n};\n\nproto.dragStart = function( event, pointer ) {\n this.emitEvent( 'dragStart', [ event, pointer ] );\n};\n\n// dragMove\nproto._dragMove = function( event, pointer, moveVector ) {\n // do not drag if not dragging yet\n if ( !this.isDragging ) {\n return;\n }\n\n this.dragMove( event, pointer, moveVector );\n};\n\nproto.dragMove = function( event, pointer, moveVector ) {\n event.preventDefault();\n this.emitEvent( 'dragMove', [ event, pointer, moveVector ] );\n};\n\n// dragEnd\nproto._dragEnd = function( event, pointer ) {\n // set flags\n this.isDragging = false;\n // re-enable clicking async\n setTimeout( function() {\n delete this.isPreventingClicks;\n }.bind( this ) );\n\n this.dragEnd( event, pointer );\n};\n\nproto.dragEnd = function( event, pointer ) {\n this.emitEvent( 'dragEnd', [ event, pointer ] );\n};\n\n// ----- onclick ----- //\n\n// handle all clicks and prevent clicks when dragging\nproto.onclick = function( event ) {\n if ( this.isPreventingClicks ) {\n event.preventDefault();\n }\n};\n\n// ----- staticClick ----- //\n\n// triggered after pointer down & up with no/tiny movement\nproto._staticClick = function( event, pointer ) {\n // ignore emulated mouse up clicks\n if ( this.isIgnoringMouseUp && event.type == 'mouseup' ) {\n return;\n }\n\n this.staticClick( event, pointer );\n\n // set flag for emulated clicks 300ms after touchend\n if ( event.type != 'mouseup' ) {\n this.isIgnoringMouseUp = true;\n // reset flag after 300ms\n setTimeout( function() {\n delete this.isIgnoringMouseUp;\n }.bind( this ), 400 );\n }\n};\n\nproto.staticClick = function( event, pointer ) {\n this.emitEvent( 'staticClick', [ event, pointer ] );\n};\n\n// ----- utils ----- //\n\nUnidragger.getPointerPoint = Unipointer.getPointerPoint;\n\n// ----- ----- //\n\nreturn Unidragger;\n\n}));\n","import Flickity from './flickity';\nimport utils from 'fizzy-ui-utils';\nimport Unidragger from 'unidragger';\n\n('use strict');\n\n// ----- defaults ----- //\n\nutils.extend(Flickity.defaults, {\n draggable: '>1',\n dragThreshold: 3,\n});\n\n// ----- create ----- //\n\nFlickity.createMethods.push('_createDrag');\n\n// -------------------------- drag prototype -------------------------- //\n\nvar proto = Flickity.prototype;\nutils.extend(proto, Unidragger.prototype);\nproto._touchActionValue = 'pan-y';\n\n// -------------------------- -------------------------- //\n\nvar isTouch = 'createTouch' in document;\nvar isTouchmoveScrollCanceled = false;\n\nproto._createDrag = function () {\n this.on('activate', this.onActivateDrag);\n this.on('uiChange', this._uiChangeDrag);\n this.on('deactivate', this.onDeactivateDrag);\n this.on('cellChange', this.updateDraggable);\n // TODO updateDraggable on resize? if groupCells & slides change\n // HACK - add seemingly innocuous handler to fix iOS 10 scroll behavior\n // #457, RubaXa/Sortable#973\n if (isTouch && !isTouchmoveScrollCanceled) {\n window.addEventListener('touchmove', function () {});\n isTouchmoveScrollCanceled = true;\n }\n};\n\nproto.onActivateDrag = function () {\n this.handles = [this.viewport];\n this.bindHandles();\n this.updateDraggable();\n};\n\nproto.onDeactivateDrag = function () {\n this.unbindHandles();\n this.element.classList.remove('is-draggable');\n};\n\nproto.updateDraggable = function () {\n // disable dragging if less than 2 slides. #278\n if (this.options.draggable == '>1') {\n this.isDraggable = this.slides.length > 1;\n } else {\n this.isDraggable = this.options.draggable;\n }\n if (this.isDraggable) {\n this.element.classList.add('is-draggable');\n } else {\n this.element.classList.remove('is-draggable');\n }\n};\n\n// backwards compatibility\nproto.bindDrag = function () {\n this.options.draggable = true;\n this.updateDraggable();\n};\n\nproto.unbindDrag = function () {\n this.options.draggable = false;\n this.updateDraggable();\n};\n\nproto._uiChangeDrag = function () {\n delete this.isFreeScrolling;\n};\n\n// -------------------------- pointer events -------------------------- //\n\nproto.pointerDown = function (event, pointer) {\n if (!this.isDraggable) {\n this._pointerDownDefault(event, pointer);\n return;\n }\n var isOkay = this.okayPointerDown(event);\n if (!isOkay) {\n return;\n }\n\n this._pointerDownPreventDefault(event);\n this.pointerDownFocus(event);\n // blur\n if (document.activeElement != this.element) {\n // do not blur if already focused\n this.pointerDownBlur();\n }\n\n // stop if it was moving\n this.dragX = this.x;\n this.viewport.classList.add('is-pointer-down');\n // track scrolling\n this.pointerDownScroll = getScrollPosition();\n window.addEventListener('scroll', this);\n\n this._pointerDownDefault(event, pointer);\n};\n\n// default pointerDown logic, used for staticClick\nproto._pointerDownDefault = function (event, pointer) {\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. #779\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n // bind move and end events\n this._bindPostStartEvents(event);\n this.dispatchEvent('pointerDown', event, [pointer]);\n};\n\nvar focusNodes = {\n INPUT: true,\n TEXTAREA: true,\n SELECT: true,\n};\n\nproto.pointerDownFocus = function (event) {\n var isFocusNode = focusNodes[event.target.nodeName];\n if (!isFocusNode) {\n this.focus();\n }\n};\n\nproto._pointerDownPreventDefault = function (event) {\n var isTouchStart = event.type == 'touchstart';\n var isTouchPointer = event.pointerType == 'touch';\n var isFocusNode = focusNodes[event.target.nodeName];\n if (!isTouchStart && !isTouchPointer && !isFocusNode) {\n event.preventDefault();\n }\n};\n\n// ----- move ----- //\n\nproto.hasDragStarted = function (moveVector) {\n return Math.abs(moveVector.x) > this.options.dragThreshold;\n};\n\n// ----- up ----- //\n\nproto.pointerUp = function (event, pointer) {\n delete this.isTouchScrolling;\n this.viewport.classList.remove('is-pointer-down');\n this.dispatchEvent('pointerUp', event, [pointer]);\n this._dragPointerUp(event, pointer);\n};\n\nproto.pointerDone = function () {\n window.removeEventListener('scroll', this);\n delete this.pointerDownScroll;\n};\n\n// -------------------------- dragging -------------------------- //\n\nproto.dragStart = function (event, pointer) {\n if (!this.isDraggable) {\n return;\n }\n this.dragStartPosition = this.x;\n this.startAnimation();\n window.removeEventListener('scroll', this);\n this.dispatchEvent('dragStart', event, [pointer]);\n};\n\nproto.pointerMove = function (event, pointer) {\n var moveVector = this._dragPointerMove(event, pointer);\n this.dispatchEvent('pointerMove', event, [pointer, moveVector]);\n this._dragMove(event, pointer, moveVector);\n};\n\nproto.dragMove = function (event, pointer, moveVector) {\n if (!this.isDraggable) {\n return;\n }\n event.preventDefault();\n\n this.previousDragX = this.dragX;\n // reverse if right-to-left\n var direction = this.options.rightToLeft ? -1 : 1;\n if (this.options.wrapAround) {\n // wrap around move. #589\n moveVector.x = moveVector.x % this.slideableWidth;\n }\n var dragX = this.dragStartPosition + moveVector.x * direction;\n\n if (!this.options.wrapAround && this.slides.length) {\n // slow drag\n var originBound = Math.max(-this.slides[0].target, this.dragStartPosition);\n dragX = dragX > originBound ? (dragX + originBound) * 0.5 : dragX;\n var endBound = Math.min(\n -this.getLastSlide().target,\n this.dragStartPosition\n );\n dragX = dragX < endBound ? (dragX + endBound) * 0.5 : dragX;\n }\n\n this.dragX = dragX;\n\n this.dragMoveTime = new Date();\n this.dispatchEvent('dragMove', event, [pointer, moveVector]);\n};\n\nproto.dragEnd = function (event, pointer) {\n if (!this.isDraggable) {\n return;\n }\n if (this.options.freeScroll) {\n this.isFreeScrolling = true;\n }\n // set selectedIndex based on where flick will end up\n var index = this.dragEndRestingSelect();\n\n if (this.options.freeScroll && !this.options.wrapAround) {\n // if free-scroll & not wrap around\n // do not free-scroll if going outside of bounding slides\n // so bounding slides can attract slider, and keep it in bounds\n var restingX = this.getRestingPosition();\n this.isFreeScrolling =\n -restingX > this.slides[0].target &&\n -restingX < this.getLastSlide().target;\n } else if (!this.options.freeScroll && index == this.selectedIndex) {\n // boost selection if selected index has not changed\n index += this.dragEndBoostSelect();\n }\n delete this.previousDragX;\n // apply selection\n // TODO refactor this, selecting here feels weird\n // HACK, set flag so dragging stays in correct direction\n this.isDragSelect = this.options.wrapAround;\n this.select(index);\n delete this.isDragSelect;\n this.dispatchEvent('dragEnd', event, [pointer]);\n};\n\nproto.dragEndRestingSelect = function () {\n var restingX = this.getRestingPosition();\n // how far away from selected slide\n var distance = Math.abs(this.getSlideDistance(-restingX, this.selectedIndex));\n // get closet resting going up and going down\n var positiveResting = this._getClosestResting(restingX, distance, 1);\n var negativeResting = this._getClosestResting(restingX, distance, -1);\n // use closer resting for wrap-around\n var index =\n positiveResting.distance < negativeResting.distance\n ? positiveResting.index\n : negativeResting.index;\n return index;\n};\n\n/**\n * given resting X and distance to selected cell\n * get the distance and index of the closest cell\n * @param {Number} restingX - estimated post-flick resting position\n * @param {Number} distance - distance to selected cell\n * @param {Integer} increment - +1 or -1, going up or down\n * @returns {Object} - { distance: {Number}, index: {Integer} }\n */\nproto._getClosestResting = function (restingX, distance, increment) {\n var index = this.selectedIndex;\n var minDistance = Infinity;\n var condition =\n this.options.contain && !this.options.wrapAround\n ? // if contain, keep going if distance is equal to minDistance\n function (d, md) {\n return d <= md;\n }\n : function (d, md) {\n return d < md;\n };\n while (condition(distance, minDistance)) {\n // measure distance to next cell\n index += increment;\n minDistance = distance;\n distance = this.getSlideDistance(-restingX, index);\n if (distance === null) {\n break;\n }\n distance = Math.abs(distance);\n }\n return {\n distance: minDistance,\n // selected was previous index\n index: index - increment,\n };\n};\n\n/**\n * measure distance between x and a slide target\n * @param {Number} x\n * @param {Integer} index - slide index\n */\nproto.getSlideDistance = function (x, index) {\n var len = this.slides.length;\n // wrap around if at least 2 slides\n var isWrapAround = this.options.wrapAround && len > 1;\n var slideIndex = isWrapAround ? utils.modulo(index, len) : index;\n var slide = this.slides[slideIndex];\n if (!slide) {\n return null;\n }\n // add distance for wrap-around slides\n var wrap = isWrapAround ? this.slideableWidth * Math.floor(index / len) : 0;\n return x - (slide.target + wrap);\n};\n\nproto.dragEndBoostSelect = function () {\n // do not boost if no previousDragX or dragMoveTime\n if (\n this.previousDragX === undefined ||\n !this.dragMoveTime ||\n // or if drag was held for 100 ms\n new Date() - this.dragMoveTime > 100\n ) {\n return 0;\n }\n\n var distance = this.getSlideDistance(-this.dragX, this.selectedIndex);\n var delta = this.previousDragX - this.dragX;\n if (distance > 0 && delta > 0) {\n // boost to next if moving towards the right, and positive velocity\n return 1;\n } else if (distance < 0 && delta < 0) {\n // boost to previous if moving towards the left, and negative velocity\n return -1;\n }\n return 0;\n};\n\n// ----- staticClick ----- //\n\nproto.staticClick = function (event, pointer) {\n // get clickedCell, if cell was clicked\n var clickedCell = this.getParentCell(event.target);\n var cellElem = clickedCell && clickedCell.element;\n var cellIndex = clickedCell && this.cells.indexOf(clickedCell);\n this.dispatchEvent('staticClick', event, [pointer, cellElem, cellIndex]);\n};\n\n// ----- scroll ----- //\n\nproto.onscroll = function () {\n var scroll = getScrollPosition();\n var scrollMoveX = this.pointerDownScroll.x - scroll.x;\n var scrollMoveY = this.pointerDownScroll.y - scroll.y;\n // cancel click/tap if scroll is too much\n if (Math.abs(scrollMoveX) > 3 || Math.abs(scrollMoveY) > 3) {\n this._pointerDone();\n }\n};\n\n// ----- utils ----- //\n\nfunction getScrollPosition() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset,\n };\n}\n\n// ----- ----- //\n","import Flickity from './flickity';\nimport Unipointer from 'unipointer';\nimport utils from 'fizzy-ui-utils';\n\n('use strict');\n\nvar svgURI = 'http://www.w3.org/2000/svg';\n\n// -------------------------- PrevNextButton -------------------------- //\n\nfunction PrevNextButton(direction, parent) {\n this.direction = direction;\n this.parent = parent;\n this.parentElement = this.parent.element.shadowRoot || this.parent.element;\n this._create();\n}\n\nPrevNextButton.prototype = Object.create(Unipointer.prototype);\n\nPrevNextButton.prototype._create = function () {\n // properties\n this.isEnabled = true;\n this.isPrevious = this.direction == -1;\n var leftDirection = this.parent.options.rightToLeft ? 1 : -1;\n this.isLeft = this.direction == leftDirection;\n\n var element = (this.element = document.createElement('button'));\n element.className = 'flickity-button flickity-prev-next-button';\n element.className += this.isPrevious ? ' previous' : ' next';\n // prevent button from submitting form http://stackoverflow.com/a/10836076/182183\n element.setAttribute('type', 'button');\n // init as disabled\n this.disable();\n\n element.setAttribute('aria-label', this.isPrevious ? 'Previous' : 'Next');\n\n // create arrow\n var svg = this.createSVG();\n element.appendChild(svg);\n // events\n this.parent.on('select', this.update.bind(this));\n this.on('pointerDown', this.parent.childUIPointerDown.bind(this.parent));\n};\n\nPrevNextButton.prototype.activate = function () {\n this.bindStartEvent(this.element);\n this.element.addEventListener('click', this);\n // add to DOM\n this.parentElement.appendChild(this.element);\n};\n\nPrevNextButton.prototype.deactivate = function () {\n // remove from DOM\n this.parentElement.removeChild(this.element);\n // click events\n this.unbindStartEvent(this.element);\n this.element.removeEventListener('click', this);\n};\n\nPrevNextButton.prototype.createSVG = function () {\n var svg = document.createElementNS(svgURI, 'svg');\n svg.setAttribute('class', 'flickity-button-icon');\n svg.setAttribute('viewBox', '0 0 100 100');\n var path = document.createElementNS(svgURI, 'path');\n var pathMovements = getArrowMovements(this.parent.options.arrowShape);\n path.setAttribute('d', pathMovements);\n path.setAttribute('class', 'arrow');\n // rotate arrow\n if (!this.isLeft) {\n path.setAttribute('transform', 'translate(100, 100) rotate(180) ');\n }\n svg.appendChild(path);\n return svg;\n};\n\n// get SVG path movmement\nfunction getArrowMovements(shape) {\n // use shape as movement if string\n if (typeof shape == 'string') {\n return shape;\n }\n // create movement string\n return (\n 'M ' +\n shape.x0 +\n ',50' +\n ' L ' +\n shape.x1 +\n ',' +\n (shape.y1 + 50) +\n ' L ' +\n shape.x2 +\n ',' +\n (shape.y2 + 50) +\n ' L ' +\n shape.x3 +\n ',50 ' +\n ' L ' +\n shape.x2 +\n ',' +\n (50 - shape.y2) +\n ' L ' +\n shape.x1 +\n ',' +\n (50 - shape.y1) +\n ' Z'\n );\n}\n\nPrevNextButton.prototype.handleEvent = utils.handleEvent;\n\nPrevNextButton.prototype.onclick = function () {\n if (!this.isEnabled) {\n return;\n }\n this.parent.uiChange();\n var method = this.isPrevious ? 'previous' : 'next';\n this.parent[method]();\n};\n\n// ----- ----- //\n\nPrevNextButton.prototype.enable = function () {\n if (this.isEnabled) {\n return;\n }\n this.element.disabled = false;\n this.isEnabled = true;\n};\n\nPrevNextButton.prototype.disable = function () {\n if (!this.isEnabled) {\n return;\n }\n this.element.disabled = true;\n this.isEnabled = false;\n};\n\nPrevNextButton.prototype.update = function () {\n // index of first or last slide, if previous or next\n var slides = this.parent.slides;\n // enable is wrapAround and at least 2 slides\n if (this.parent.options.wrapAround && slides.length > 1) {\n this.enable();\n return;\n }\n var lastIndex = slides.length ? slides.length - 1 : 0;\n var boundIndex = this.isPrevious ? 0 : lastIndex;\n var method = this.parent.selectedIndex == boundIndex ? 'disable' : 'enable';\n this[method]();\n};\n\nPrevNextButton.prototype.destroy = function () {\n this.deactivate();\n this.allOff();\n};\n\n// -------------------------- Flickity prototype -------------------------- //\n\nutils.extend(Flickity.defaults, {\n prevNextButtons: true,\n arrowShape: {\n x0: 10,\n x1: 60,\n y1: 50,\n x2: 70,\n y2: 40,\n x3: 30,\n },\n});\n\nFlickity.createMethods.push('_createPrevNextButtons');\nvar proto = Flickity.prototype;\n\nproto._createPrevNextButtons = function () {\n if (!this.options.prevNextButtons) {\n return;\n }\n\n this.prevButton = new PrevNextButton(-1, this);\n this.nextButton = new PrevNextButton(1, this);\n\n this.on('activate', this.activatePrevNextButtons);\n};\n\nproto.activatePrevNextButtons = function () {\n this.prevButton.activate();\n this.nextButton.activate();\n this.on('deactivate', this.deactivatePrevNextButtons);\n};\n\nproto.deactivatePrevNextButtons = function () {\n this.prevButton.deactivate();\n this.nextButton.deactivate();\n this.off('deactivate', this.deactivatePrevNextButtons);\n};\n\n// -------------------------- -------------------------- //\n\nFlickity.PrevNextButton = PrevNextButton;\n","import Flickity from './flickity';\nimport Unipointer from 'unipointer';\nimport utils from 'fizzy-ui-utils';\n\n// -------------------------- PageDots -------------------------- //\n\n('use strict');\n\nfunction PageDots(parent) {\n this.parent = parent;\n this.parentElement = this.parent.element.shadowRoot || this.parent.element;\n this._create();\n}\n\nPageDots.prototype = Object.create(Unipointer.prototype);\n\nPageDots.prototype._create = function () {\n // create holder element\n this.holder = document.createElement('ol');\n this.holder.className = 'flickity-page-dots';\n // create dots, array of elements\n this.dots = [];\n // events\n this.handleClick = this.onClick.bind(this);\n this.on('pointerDown', this.parent.childUIPointerDown.bind(this.parent));\n};\n\nPageDots.prototype.activate = function () {\n this.setDots();\n this.holder.addEventListener('click', this.handleClick);\n this.bindStartEvent(this.holder);\n // add to DOM\n this.parentElement.appendChild(this.holder);\n};\n\nPageDots.prototype.deactivate = function () {\n this.holder.removeEventListener('click', this.handleClick);\n this.unbindStartEvent(this.holder);\n // remove from DOM\n this.parentElement.removeChild(this.holder);\n};\n\nPageDots.prototype.setDots = function () {\n // get difference between number of slides and number of dots\n var delta = this.parent.slides.length - this.dots.length;\n if (delta > 0) {\n this.addDots(delta);\n } else if (delta < 0) {\n this.removeDots(-delta);\n }\n};\n\nPageDots.prototype.addDots = function (count) {\n var fragment = document.createDocumentFragment();\n var newDots = [];\n var length = this.dots.length;\n var max = length + count;\n\n for (var i = length; i < max; i++) {\n var dot = document.createElement('li');\n dot.classList.add('dot');\n dot.setAttribute('aria-label', 'Page dot ' + (i + 1));\n fragment.appendChild(dot);\n newDots.push(dot);\n }\n\n this.holder.appendChild(fragment);\n this.dots = this.dots.concat(newDots);\n};\n\nPageDots.prototype.removeDots = function (count) {\n // remove from this.dots collection\n var removeDots = this.dots.splice(this.dots.length - count, count);\n // remove from DOM\n removeDots.forEach(function (dot) {\n this.holder.removeChild(dot);\n }, this);\n};\n\nPageDots.prototype.updateSelected = function () {\n // remove selected class on previous\n if (this.selectedDot) {\n this.selectedDot.classList.remove('is-selected');\n this.selectedDot.removeAttribute('aria-current');\n }\n // don't proceed if no dots\n if (!this.dots.length) {\n return;\n }\n this.selectedDot = this.dots[this.parent.selectedIndex];\n this.selectedDot.classList.add('is-selected');\n this.selectedDot.setAttribute('aria-current', 'step');\n};\n\nPageDots.prototype.onTap = PageDots.prototype.onClick = function (event) {\n // old method name, backwards-compatible\n var target = event.target;\n // only care about dot clicks\n if (target.nodeName != 'LI') {\n return;\n }\n\n this.parent.uiChange();\n var index = this.dots.indexOf(target);\n this.parent.select(index);\n};\n\nPageDots.prototype.destroy = function () {\n this.deactivate();\n this.allOff();\n};\n\nFlickity.PageDots = PageDots;\n\n// -------------------------- Flickity -------------------------- //\n\nutils.extend(Flickity.defaults, {\n pageDots: true,\n});\n\nFlickity.createMethods.push('_createPageDots');\n\nvar proto = Flickity.prototype;\n\nproto._createPageDots = function () {\n if (!this.options.pageDots) {\n return;\n }\n this.pageDots = new PageDots(this);\n // events\n this.on('activate', this.activatePageDots);\n this.on('select', this.updateSelectedPageDots);\n this.on('cellChange', this.updatePageDots);\n this.on('resize', this.updatePageDots);\n this.on('deactivate', this.deactivatePageDots);\n};\n\nproto.activatePageDots = function () {\n this.pageDots.activate();\n};\n\nproto.updateSelectedPageDots = function () {\n this.pageDots.updateSelected();\n};\n\nproto.updatePageDots = function () {\n this.pageDots.setDots();\n};\n\nproto.deactivatePageDots = function () {\n this.pageDots.deactivate();\n};\n\n// ----- ----- //\n\nFlickity.PageDots = PageDots;\n","import EvEmitter from 'ev-emitter';\nimport utils from 'fizzy-ui-utils';\nimport Flickity from './flickity';\n\n('use strict');\n\n// -------------------------- Player -------------------------- //\n\nfunction Player(parent) {\n this.parent = parent;\n this.state = 'stopped';\n // visibility change event handler\n this.onVisibilityChange = this.visibilityChange.bind(this);\n this.onVisibilityPlay = this.visibilityPlay.bind(this);\n}\n\nPlayer.prototype = Object.create(EvEmitter.prototype);\n\n// start play\nPlayer.prototype.play = function () {\n if (this.state == 'playing') {\n return;\n }\n // do not play if page is hidden, start playing when page is visible\n var isPageHidden = document.hidden;\n if (isPageHidden) {\n document.addEventListener('visibilitychange', this.onVisibilityPlay);\n return;\n }\n\n this.state = 'playing';\n // listen to visibility change\n document.addEventListener('visibilitychange', this.onVisibilityChange);\n // start ticking\n this.tick();\n};\n\nPlayer.prototype.tick = function () {\n // do not tick if not playing\n if (this.state != 'playing') {\n return;\n }\n\n var time = this.parent.options.autoPlay;\n // default to 3 seconds\n time = typeof time == 'number' ? time : 3000;\n var _this = this;\n // HACK: reset ticks if stopped and started within interval\n this.clear();\n this.timeout = setTimeout(function () {\n _this.parent.next(true);\n _this.tick();\n }, time);\n};\n\nPlayer.prototype.stop = function () {\n this.state = 'stopped';\n this.clear();\n // remove visibility change event\n document.removeEventListener('visibilitychange', this.onVisibilityChange);\n};\n\nPlayer.prototype.clear = function () {\n clearTimeout(this.timeout);\n};\n\nPlayer.prototype.pause = function () {\n if (this.state == 'playing') {\n this.state = 'paused';\n this.clear();\n }\n};\n\nPlayer.prototype.unpause = function () {\n // re-start play if paused\n if (this.state == 'paused') {\n this.play();\n }\n};\n\n// pause if page visibility is hidden, unpause if visible\nPlayer.prototype.visibilityChange = function () {\n var isPageHidden = document.hidden;\n this[isPageHidden ? 'pause' : 'unpause']();\n};\n\nPlayer.prototype.visibilityPlay = function () {\n this.play();\n document.removeEventListener('visibilitychange', this.onVisibilityPlay);\n};\n\n// -------------------------- Flickity -------------------------- //\n\nutils.extend(Flickity.defaults, {\n pauseAutoPlayOnHover: true,\n});\n\nFlickity.createMethods.push('_createPlayer');\nvar proto = Flickity.prototype;\n\nproto._createPlayer = function () {\n this.player = new Player(this);\n\n this.on('activate', this.activatePlayer);\n this.on('uiChange', this.stopPlayer);\n this.on('pointerDown', this.stopPlayer);\n this.on('deactivate', this.deactivatePlayer);\n};\n\nproto.activatePlayer = function () {\n if (!this.options.autoPlay) {\n return;\n }\n this.player.play();\n this.element.addEventListener('mouseenter', this);\n};\n\n// Player API, don't hate the ... thanks I know where the door is\n\nproto.playPlayer = function () {\n this.player.play();\n};\n\nproto.stopPlayer = function () {\n this.player.stop();\n};\n\nproto.pausePlayer = function () {\n this.player.pause();\n};\n\nproto.unpausePlayer = function () {\n this.player.unpause();\n};\n\nproto.deactivatePlayer = function () {\n this.player.stop();\n this.element.removeEventListener('mouseenter', this);\n};\n\n// ----- mouseenter/leave ----- //\n\n// pause auto-play on hover\nproto.onmouseenter = function () {\n if (!this.options.pauseAutoPlayOnHover) {\n return;\n }\n this.player.pause();\n this.element.addEventListener('mouseleave', this);\n};\n\n// resume auto-play on hover off\nproto.onmouseleave = function () {\n this.player.unpause();\n this.element.removeEventListener('mouseleave', this);\n};\n\n// ----- ----- //\n\nFlickity.Player = Player;\n","import Flickity from './flickity';\nimport utils from 'fizzy-ui-utils';\n\n('use strict');\n\n// append cells to a document fragment\nfunction getCellsFragment(cells) {\n var fragment = document.createDocumentFragment();\n cells.forEach(function (cell) {\n fragment.appendChild(cell.element);\n });\n return fragment;\n}\n\n// -------------------------- add/remove cell prototype -------------------------- //\n\nvar proto = Flickity.prototype;\n\n/**\n * Insert, prepend, or append cells\n * @param {Element, Array, NodeList} elems\n * @param {Integer} index\n */\nproto.insert = function (elems, index) {\n var cells = this._makeCells(elems);\n if (!cells || !cells.length) {\n return;\n }\n var len = this.cells.length;\n // default to append\n index = index === undefined ? len : index;\n // add cells with document fragment\n var fragment = getCellsFragment(cells);\n // append to slider\n var isAppend = index == len;\n if (isAppend) {\n this.slider.appendChild(fragment);\n } else {\n var insertCellElement = this.cells[index].element;\n this.slider.insertBefore(fragment, insertCellElement);\n }\n // add to this.cells\n if (index === 0) {\n // prepend, add to start\n this.cells = cells.concat(this.cells);\n } else if (isAppend) {\n // append, add to end\n this.cells = this.cells.concat(cells);\n } else {\n // insert in this.cells\n var endCells = this.cells.splice(index, len - index);\n this.cells = this.cells.concat(cells).concat(endCells);\n }\n\n this._sizeCells(cells);\n this.cellChange(index, true);\n};\n\nproto.append = function (elems) {\n this.insert(elems, this.cells.length);\n};\n\nproto.prepend = function (elems) {\n this.insert(elems, 0);\n};\n\n/**\n * Remove cells\n * @param {Element, Array, NodeList} elems\n */\nproto.remove = function (elems) {\n var cells = this.getCells(elems);\n if (!cells || !cells.length) {\n return;\n }\n\n var minCellIndex = this.cells.length - 1;\n // remove cells from collection & DOM\n cells.forEach(function (cell) {\n cell.remove();\n var index = this.cells.indexOf(cell);\n minCellIndex = Math.min(index, minCellIndex);\n utils.removeFrom(this.cells, cell);\n }, this);\n\n this.cellChange(minCellIndex, true);\n};\n\n/**\n * logic to be run after a cell's size changes\n * @param {Element} elem - cell's element\n */\nproto.cellSizeChange = function (elem) {\n var cell = this.getCell(elem);\n if (!cell) {\n return;\n }\n cell.getSize();\n\n var index = this.cells.indexOf(cell);\n this.cellChange(index);\n};\n\n/**\n * logic any time a cell is changed: added, removed, or size changed\n * @param {Integer} changedCellIndex - index of the changed cell, optional\n */\nproto.cellChange = function (changedCellIndex, isPositioningSlider) {\n var prevSelectedElem = this.selectedElement;\n this._positionCells(changedCellIndex);\n this._getWrapShiftCells();\n this.setGallerySize();\n // update selectedIndex\n // try to maintain position & select previous selected element\n var cell = this.getCell(prevSelectedElem);\n if (cell) {\n this.selectedIndex = this.getCellSlideIndex(cell);\n }\n this.selectedIndex = Math.min(this.slides.length - 1, this.selectedIndex);\n\n this.emitEvent('cellChange', [changedCellIndex]);\n // position slider\n this.select(this.selectedIndex);\n // do not position slider after lazy load\n if (isPositioningSlider) {\n this.positionSliderAtSelected();\n }\n};\n","import Flickity from './flickity';\nimport utils from 'fizzy-ui-utils';\n\n('use strict');\n\nFlickity.createMethods.push('_createLazyload');\nvar proto = Flickity.prototype;\n\nproto._createLazyload = function () {\n this.on('select', this.lazyLoad);\n};\n\nproto.lazyLoad = function () {\n var lazyLoad = this.options.lazyLoad;\n if (!lazyLoad) {\n return;\n }\n // get adjacent cells, use lazyLoad option for adjacent count\n var adjCount = typeof lazyLoad == 'number' ? lazyLoad : 0;\n var cellElems = this.getAdjacentCellElements(adjCount);\n // get lazy images in those cells\n var lazyImages = [];\n cellElems.forEach(function (cellElem) {\n var lazyCellImages = getCellLazyImages(cellElem);\n lazyImages = lazyImages.concat(lazyCellImages);\n });\n // load lazy images\n lazyImages.forEach(function (img) {\n new LazyLoader(img, this);\n }, this);\n};\n\nfunction getCellLazyImages(cellElem) {\n // check if cell element is lazy image\n if (cellElem.nodeName == 'IMG') {\n var lazyloadAttr = cellElem.getAttribute('data-flickity-lazyload');\n var srcAttr = cellElem.getAttribute('data-flickity-lazyload-src');\n var srcsetAttr = cellElem.getAttribute('data-flickity-lazyload-srcset');\n if (lazyloadAttr || srcAttr || srcsetAttr) {\n return [cellElem];\n }\n }\n // select lazy images in cell\n var lazySelector =\n 'img[data-flickity-lazyload], ' +\n 'img[data-flickity-lazyload-src], img[data-flickity-lazyload-srcset]';\n var imgs = cellElem.querySelectorAll(lazySelector);\n return utils.makeArray(imgs);\n}\n\n// -------------------------- LazyLoader -------------------------- //\n\n/**\n * class to handle loading images\n */\nfunction LazyLoader(img, flickity) {\n this.img = img;\n this.flickity = flickity;\n this.load();\n}\n\nLazyLoader.prototype.handleEvent = utils.handleEvent;\n\nLazyLoader.prototype.load = function () {\n this.img.addEventListener('load', this);\n this.img.addEventListener('error', this);\n // get src & srcset\n var src =\n this.img.getAttribute('data-flickity-lazyload') ||\n this.img.getAttribute('data-flickity-lazyload-src');\n var srcset = this.img.getAttribute('data-flickity-lazyload-srcset');\n // set src & serset\n this.img.src = src;\n if (srcset) {\n this.img.setAttribute('srcset', srcset);\n }\n // remove attr\n this.img.removeAttribute('data-flickity-lazyload');\n this.img.removeAttribute('data-flickity-lazyload-src');\n this.img.removeAttribute('data-flickity-lazyload-srcset');\n};\n\nLazyLoader.prototype.onload = function (event) {\n this.complete(event, 'flickity-lazyloaded');\n};\n\nLazyLoader.prototype.onerror = function (event) {\n this.complete(event, 'flickity-lazyerror');\n};\n\nLazyLoader.prototype.complete = function (event, className) {\n // unbind events\n this.img.removeEventListener('load', this);\n this.img.removeEventListener('error', this);\n\n var cell = this.flickity.getParentCell(this.img);\n var cellElem = cell && cell.element;\n this.flickity.cellSizeChange(cellElem);\n\n this.img.classList.add(className);\n this.flickity.dispatchEvent('lazyLoad', event, cellElem);\n};\n\n// ----- ----- //\n\nFlickity.LazyLoader = LazyLoader;\n","import Flickity from './flickity';\n\nFlickity.createMethods.push('_createFullscreen');\nvar proto = Flickity.prototype;\n\nproto._createFullscreen = function () {\n this.isFullscreen = false;\n\n if (!this.options.fullscreen) {\n return;\n }\n // buttons\n this.viewFullscreenButton = new FullscreenButton('view', this);\n this.exitFullscreenButton = new FullscreenButton('exit', this);\n\n this.on('activate', this._changeFullscreenActive);\n this.on('deactivate', this._changeFullscreenActive);\n};\n\n// ----- activation ----- //\n\nproto._changeFullscreenActive = function () {\n var childMethod = this.isActive ? 'appendChild' : 'removeChild';\n this.element[childMethod](this.viewFullscreenButton.element);\n this.element[childMethod](this.exitFullscreenButton.element);\n // activate or deactivate buttons\n var activeMethod = this.isActive ? 'activate' : 'deactivate';\n this.viewFullscreenButton[activeMethod]();\n this.exitFullscreenButton[activeMethod]();\n};\n\n// ----- view, exit, toggle ----- //\n\nproto.viewFullscreen = function () {\n this._changeFullscreen(true);\n this.focus();\n};\n\nproto.exitFullscreen = function () {\n this._changeFullscreen(false);\n};\n\nproto._changeFullscreen = function (isView) {\n if (this.isFullscreen == isView) {\n return;\n }\n this.isFullscreen = isView;\n var classMethod = isView ? 'add' : 'remove';\n document.documentElement.classList[classMethod]('is-flickity-fullscreen');\n this.element.classList[classMethod]('is-fullscreen');\n this.resize();\n // HACK extra reposition on fullscreen for images\n if (this.isFullscreen) {\n this.reposition();\n }\n this.dispatchEvent('fullscreenChange', null, [isView]);\n};\n\nproto.toggleFullscreen = function () {\n this._changeFullscreen(!this.isFullscreen);\n};\n\n// ----- setGallerySize ----- //\n\n// overwrite so fullscreen cells are full height\nvar setGallerySize = proto.setGallerySize;\nproto.setGallerySize = function () {\n if (!this.options.setGallerySize) {\n return;\n }\n if (this.isFullscreen) {\n // remove height style on fullscreen\n this.viewport.style.height = '';\n } else {\n // otherwise, do normal\n setGallerySize.call(this);\n }\n};\n\n// ----- keyboard ----- //\n\n// ESC key closes full screen\nFlickity.keyboardHandlers[27] = function () {\n this.exitFullscreen();\n};\n\n// ----- FullscreenButton ----- //\n\nfunction FullscreenButton(name, flickity) {\n this.name = name;\n this.createButton();\n this.createIcon();\n // events\n // trigger viewFullscreen or exitFullscreen on click\n this.onClick = function () {\n flickity[name + 'Fullscreen']();\n };\n this.clickHandler = this.onClick.bind(this);\n}\n\nFullscreenButton.prototype.createButton = function () {\n var element = (this.element = document.createElement('button'));\n element.className =\n 'flickity-button flickity-fullscreen-button ' +\n 'flickity-fullscreen-button-' +\n this.name;\n // prevent button from submitting form\n element.setAttribute('type', 'button');\n // set label\n var label = capitalize(this.name + ' full-screen');\n element.setAttribute('aria-label', label);\n element.title = label;\n};\n\nfunction capitalize(text) {\n return text[0].toUpperCase() + text.slice(1);\n}\n\nvar svgURI = 'http://www.w3.org/2000/svg';\n\nvar pathDirections = {\n view: 'M15,20,7,28h5v4H0V20H4v5l8-8Zm5-5,8-8v5h4V0H20V4h5l-8,8Z',\n exit: 'M32,3l-7,7h5v4H18V2h4V7l7-7ZM3,32l7-7v5h4V18H2v4H7L0,29Z',\n};\n\nFullscreenButton.prototype.createIcon = function () {\n var svg = document.createElementNS(svgURI, 'svg');\n svg.setAttribute('class', 'flickity-button-icon');\n svg.setAttribute('viewBox', '0 0 32 32');\n // path & direction\n var path = document.createElementNS(svgURI, 'path');\n var direction = pathDirections[this.name];\n path.setAttribute('d', direction);\n // put it together\n svg.appendChild(path);\n this.element.appendChild(svg);\n};\n\nFullscreenButton.prototype.activate = function () {\n this.element.addEventListener('click', this.clickHandler);\n};\n\nFullscreenButton.prototype.deactivate = function () {\n this.element.removeEventListener('click', this.clickHandler);\n};\n\nFlickity.FullscreenButton = FullscreenButton;\n","import Flickity from './flickity';\nimport utils from 'fizzy-ui-utils';\n\nvar Slide = Flickity.Slide;\n\nvar slideUpdateTarget = Slide.prototype.updateTarget;\nSlide.prototype.updateTarget = function () {\n slideUpdateTarget.apply(this, arguments);\n if (!this.parent.options.fade) {\n return;\n }\n // position cells at selected target\n var slideTargetX = this.target - this.x;\n var firstCellX = this.cells[0].x;\n this.cells.forEach(function (cell) {\n var targetX = cell.x - firstCellX - slideTargetX;\n cell.renderPosition(targetX);\n });\n};\n\nSlide.prototype.setOpacity = function (alpha) {\n this.cells.forEach(function (cell) {\n cell.element.style.opacity = alpha;\n });\n};\n\n// ---- Flickity ---- //\n\nvar proto = Flickity.prototype;\n\nFlickity.createMethods.push('_createFade');\n\nproto._createFade = function () {\n this.fadeIndex = this.selectedIndex;\n this.prevSelectedIndex = this.selectedIndex;\n this.on('select', this.onSelectFade);\n this.on('dragEnd', this.onDragEndFade);\n this.on('settle', this.onSettleFade);\n this.on('activate', this.onActivateFade);\n this.on('deactivate', this.onDeactivateFade);\n};\n\nvar updateSlides = proto.updateSlides;\nproto.updateSlides = function () {\n updateSlides.apply(this, arguments);\n if (!this.options.fade) {\n return;\n }\n // set initial opacity\n this.slides.forEach(function (slide, i) {\n var alpha = i == this.selectedIndex ? 1 : 0;\n slide.setOpacity(alpha);\n }, this);\n};\n\n/* ---- events ---- */\n\nproto.onSelectFade = function () {\n // in case of resize, keep fadeIndex within current count\n this.fadeIndex = Math.min(this.prevSelectedIndex, this.slides.length - 1);\n this.prevSelectedIndex = this.selectedIndex;\n};\n\nproto.onSettleFade = function () {\n delete this.didDragEnd;\n if (!this.options.fade) {\n return;\n }\n // set full and 0 opacity on selected & faded slides\n this.selectedSlide.setOpacity(1);\n var fadedSlide = this.slides[this.fadeIndex];\n if (fadedSlide && this.fadeIndex != this.selectedIndex) {\n this.slides[this.fadeIndex].setOpacity(0);\n }\n};\n\nproto.onDragEndFade = function () {\n // set flag\n this.didDragEnd = true;\n};\n\nproto.onActivateFade = function () {\n if (this.options.fade) {\n this.element.classList.add('is-fade');\n }\n};\n\nproto.onDeactivateFade = function () {\n if (!this.options.fade) {\n return;\n }\n this.element.classList.remove('is-fade');\n // reset opacity\n this.slides.forEach(function (slide) {\n slide.setOpacity('');\n });\n};\n\n/* ---- position & fading ---- */\n\nvar positionSlider = proto.positionSlider;\nproto.positionSlider = function () {\n if (!this.options.fade) {\n positionSlider.apply(this, arguments);\n return;\n }\n\n this.fadeSlides();\n this.dispatchScrollEvent();\n};\n\nvar positionSliderAtSelected = proto.positionSliderAtSelected;\nproto.positionSliderAtSelected = function () {\n if (this.options.fade) {\n // position fade slider at origin\n this.setTranslateX(0);\n }\n positionSliderAtSelected.apply(this, arguments);\n};\n\nproto.fadeSlides = function () {\n if (this.slides.length < 2) {\n return;\n }\n // get slides to fade-in & fade-out\n var indexes = this.getFadeIndexes();\n var fadeSlideA = this.slides[indexes.a];\n var fadeSlideB = this.slides[indexes.b];\n var distance = this.wrapDifference(fadeSlideA.target, fadeSlideB.target);\n var progress = this.wrapDifference(fadeSlideA.target, -this.x);\n progress = progress / distance;\n\n fadeSlideA.setOpacity(1 - progress);\n fadeSlideB.setOpacity(progress);\n\n // hide previous slide\n var fadeHideIndex = indexes.a;\n if (this.isDragging) {\n fadeHideIndex = progress > 0.5 ? indexes.a : indexes.b;\n }\n var isNewHideIndex =\n this.fadeHideIndex != undefined &&\n this.fadeHideIndex != fadeHideIndex &&\n this.fadeHideIndex != indexes.a &&\n this.fadeHideIndex != indexes.b;\n if (isNewHideIndex) {\n // new fadeHideSlide set, hide previous\n this.slides[this.fadeHideIndex].setOpacity(0);\n }\n this.fadeHideIndex = fadeHideIndex;\n};\n\nproto.getFadeIndexes = function () {\n if (!this.isDragging && !this.didDragEnd) {\n return {\n a: this.fadeIndex,\n b: this.selectedIndex,\n };\n }\n if (this.options.wrapAround) {\n return this.getFadeDragWrapIndexes();\n } else {\n return this.getFadeDragLimitIndexes();\n }\n};\n\nproto.getFadeDragWrapIndexes = function () {\n var distances = this.slides.map(function (slide, i) {\n return this.getSlideDistance(-this.x, i);\n }, this);\n var absDistances = distances.map(function (distance) {\n return Math.abs(distance);\n });\n var minDistance = Math.min.apply(Math, absDistances);\n var closestIndex = absDistances.indexOf(minDistance);\n var distance = distances[closestIndex];\n var len = this.slides.length;\n\n var delta = distance >= 0 ? 1 : -1;\n return {\n a: closestIndex,\n b: utils.modulo(closestIndex + delta, len),\n };\n};\n\nproto.getFadeDragLimitIndexes = function () {\n // calculate closest previous slide\n var dragIndex = 0;\n for (var i = 0; i < this.slides.length - 1; i++) {\n var slide = this.slides[i];\n if (-this.x < slide.target) {\n break;\n }\n dragIndex = i;\n }\n return {\n a: dragIndex,\n b: dragIndex + 1,\n };\n};\n\nproto.wrapDifference = function (a, b) {\n var diff = b - a;\n\n if (!this.options.wrapAround) {\n return diff;\n }\n\n var diffPlus = diff + this.slideableWidth;\n var diffMinus = diff - this.slideableWidth;\n if (Math.abs(diffPlus) < Math.abs(diff)) {\n diff = diffPlus;\n }\n if (Math.abs(diffMinus) < Math.abs(diff)) {\n diff = diffMinus;\n }\n return diff;\n};\n\n// ---- wrapAround ---- //\n\nvar _getWrapShiftCells = proto._getWrapShiftCells;\nproto._getWrapShiftCells = function () {\n if (!this.options.fade) {\n _getWrapShiftCells.apply(this, arguments);\n }\n};\n\nvar shiftWrapCells = proto.shiftWrapCells;\nproto.shiftWrapCells = function () {\n if (!this.options.fade) {\n shiftWrapCells.apply(this, arguments);\n }\n};\n","import Flickity from './flickity';\nimport './drag';\nimport './prev-next-button';\nimport './page-dots';\nimport './player';\nimport './add-remove-cell';\nimport './lazyload';\nimport './fullscreen';\nimport './fade';\n\nexport const flickity = Flickity;\n","@import '../../global/style/nano-theme/colours';\n\n:host {\n /**\n * @prop --dot-color: inactive colour of pager bullets. Default #cccccc;\n * @prop --dot-color-active: active colour of pager bullets. Default #{nano-color(primary, base)};\n *\n * @prop --navbtns-icon-color: next / prev icon color. Default var(--dot-color-active);\n * @prop --navbtns-bg-color: next / prev bg color. Default white;\n * @prop --navbtns-icon-color-disabled: next / prev icon color. Default var(--dot-color-active);\n * @prop --navbtns-bg-color-disabled: next / prev bg color. Default white;\n *\n * @prop --fsbtn-icon-color: fullscreen btn icon color. Default var(--dot-color-active);\n * @prop --fsbtn-bg-color: fullscreen bg color. Default white;\n */\n --dot-color: #ccc;\n --dot-color-active: #{nano-color(primary, base)};\n --navbtns-icon-color: var(--dot-color-active);\n --navbtns-bg-color: white;\n --navbtns-icon-color-disabled: var(--dot-color-active);\n --navbtns-bg-color-disabled: white;\n --fsbtn-icon-color: var(--dot-color-active);\n --fsbtn-bg-color: white;\n\n display: block;\n user-select: none;\n overflow: hidden;\n transition: opacity 0.2s;\n opacity: 0;\n}\n\n:host([ready]) {\n opacity: 1;\n}\n\n.slideshow {\n block-size: 100%;\n position: relative;\n}\n\n.flickity-container {\n block-size: 0;\n opacity: 0;\n transition: opacity 0.2s;\n\n &.slides-ready {\n block-size: 100%;\n }\n}\n\n[hidden] {\n display: none !important;\n}\n\n.ui-extras {\n pointer-events: none;\n position: absolute;\n block-size: 100%;\n inline-size: 100%;\n inset-block-start: 0;\n inset-inline-start: 0;\n\n * {\n pointer-events: all;\n }\n}\n\n/*! Flickity v2.2.1\nhttps://flickity.metafizzy.co\n---------------------------------------------- */\n\n.flickity-enabled {\n position: relative;\n opacity: 1;\n}\n\n.flickity-enabled:focus {\n outline: none;\n}\n\n.flickity-viewport {\n overflow: hidden;\n position: relative;\n block-size: 100% !important;\n}\n\n.flickity-slider {\n position: absolute;\n inline-size: 100%;\n block-size: 100%;\n}\n\n/* draggable */\n\n.flickity-enabled.is-draggable {\n -webkit-tap-highlight-color: transparent;\n user-select: none;\n}\n\n.flickity-enabled.is-draggable .flickity-viewport {\n cursor: move;\n cursor: grab;\n cursor: grab;\n}\n\n.flickity-enabled.is-draggable .flickity-viewport.is-pointer-down {\n cursor: grabbing;\n}\n\n/* ---- flickity-button ---- */\n\n.flickity-button {\n position: absolute;\n background: var(--navbtns-bg-color);\n border: none;\n color: #333;\n opacity: 0.75;\n}\n\n.flickity-button:hover {\n opacity: 1;\n cursor: pointer;\n}\n\n.flickity-button:focus {\n outline: none;\n box-shadow: 0 0 0 5px #19f;\n}\n\n.flickity-button:active {\n opacity: 0.6;\n}\n\n.flickity-button:disabled {\n opacity: 0.3;\n cursor: auto;\n\n /* prevent disabled button from capturing pointer up event. #716 */\n pointer-events: none;\n background: var(--navbtns-bg-color-disabled);\n}\n\n.flickity-button-icon {\n fill: var(--navbtns-icon-color);\n}\n\n.flickity-button:disabled .flickity-button-icon {\n fill: var(--navbtns-icon-color-disabled);\n}\n\n/* ---- previous/next buttons ---- */\n\n.flickity-prev-next-button {\n inset-block-start: 50%;\n inline-size: 44px;\n block-size: 44px;\n border-radius: 50%;\n\n /* vertically center */\n transform: translateY(-50%);\n}\n\n.flickity-prev-next-button.previous {\n inset-inline-start: 10px;\n}\n\n.flickity-prev-next-button.next {\n inset-inline-end: 10px;\n}\n\n/* right to left */\n.flickity-rtl .flickity-prev-next-button.previous {\n inset-inline: auto 10px;\n}\n\n.flickity-rtl .flickity-prev-next-button.next {\n inset-inline: 10px auto;\n}\n\n.flickity-prev-next-button .flickity-button-icon {\n position: absolute;\n inset-inline-start: 20%;\n inset-block-start: 20%;\n inline-size: 60%;\n block-size: 60%;\n}\n\n/* ---- page dots ---- */\n\n.flickity-page-dots {\n position: absolute;\n inline-size: 100%;\n inset-block-end: 10px;\n padding: 0;\n margin: 0;\n list-style: none;\n text-align: center;\n line-height: 1;\n z-index: 4;\n}\n\n.flickity-rtl .flickity-page-dots {\n direction: rtl;\n}\n\n.flickity-page-dots .dot {\n display: inline-block;\n inline-size: 10px;\n block-size: 10px;\n margin-block: 0;\n margin-inline: 8px;\n border-radius: 50%;\n cursor: pointer;\n background: var(--dot-color);\n\n // Pagination Bullets\n // --------------------------------------------------\n}\n\n.flickity-page-dots .dot.is-selected {\n opacity: 1;\n background: var(--dot-color-active);\n}\n\n// fullscreen\n\n.flickity-enabled.is-fullscreen {\n position: fixed;\n inset-inline-start: 0;\n inset-block-start: 0;\n inline-size: 100%;\n block-size: 100%;\n background: hsl(0deg 0% 0% / 90%);\n padding-block-end: 35px;\n z-index: 100;\n}\n\n.flickity-enabled.is-fullscreen .flickity-page-dots {\n inset-block-end: 45px;\n}\n\n/* prevent page scrolling when flickity is fullscreen */\nhtml.is-flickity-fullscreen {\n overflow: hidden;\n}\n\n/* ---- flickity-fullscreen-button ---- */\n\n.flickity-fullscreen-button {\n display: block;\n inset-inline-end: 10px;\n inset-block-start: 10px;\n inline-size: 24px;\n block-size: 24px;\n border-radius: 4px;\n background: var(--fsbtn-bg-color);\n fill: var(--fsbtn-icon-color);\n}\n\n/* right-to-left */\n.flickity-rtl .flickity-fullscreen-button {\n inset-inline: 10px auto;\n}\n\n.flickity-fullscreen-button-exit {\n display: none;\n}\n\n.flickity-enabled.is-fullscreen .flickity-fullscreen-button-exit {\n display: block;\n}\n\n.flickity-enabled.is-fullscreen .flickity-fullscreen-button-view {\n display: none;\n}\n\n.flickity-fullscreen-button .flickity-button-icon {\n position: absolute;\n inline-size: 16px;\n block-size: 16px;\n inset-inline-start: 4px;\n inset-block-start: 4px;\n}\n\n// fade\n\n/* flickity-fade */\n\n.flickity-enabled.is-fade .flickity-slider > * {\n pointer-events: none;\n z-index: 0;\n}\n\n.flickity-enabled.is-fade .flickity-slider ::slotted(.is-selected) {\n pointer-events: auto;\n z-index: 1;\n}\n","import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n Prop,\n h,\n Host,\n Watch,\n Method,\n State,\n Build,\n} from '@stencil/core';\nimport { flickity } from './lib/js';\nimport type {\n FlickityOptions,\n FlickityEvents,\n Flickity,\n DragEvent,\n FlickitySlide,\n SlideAnimation,\n} from '../../interface';\n\n/**\n * The Slides component is a multi-section container. Each section can be swiped or dragged between.\n * It contains any number of Slide components.\n *\n * Uses [Flickity](https://flickity.metafizzy.co/) under the hood. A good balance of options, flexibility and IE11 compatibility.\n *\n * @slot - default slot of nano-slide components\n * @slot ui - An absolutely positioned element that will be placed over the slider. Any custom ui can be housed here.\n */\n@Component({\n tag: 'nano-slides',\n styleUrl: 'slides.scss',\n shadow: true,\n})\nexport class Slides implements ComponentInterface {\n private flickityEl: HTMLElement;\n private flickityReady = false;\n private mutationO?: MutationObserver;\n private resizeO?: ResizeObserver;\n private readyflickity!: (slider: Flickity) => void;\n private flickity: Promise<Flickity> = new Promise((resolve) => {\n this.readyflickity = resolve;\n });\n private syncflickity?: Flickity;\n private childrenEles: NodeList;\n\n @State() iCurrentSlide: number;\n @State() slidesReady: boolean;\n @State() didInit = false;\n\n @Element() host!: HTMLNanoSlidesElement;\n\n /**\n * Options to pass to the flickity instance.\n * See https://flickity.metafizzy.co/options.html for valid options\n */\n @Prop({ mutable: true }) options: FlickityOptions = {};\n\n @Watch('options')\n async optionsChanged() {\n if (this.flickityReady) {\n const flickity = await this.getflickity();\n Object.assign(flickity.options, this.options);\n await this.update();\n }\n }\n\n /**\n * If `true`, show the next / prev buttons.\n */\n @Prop() navbtns = false;\n\n @Watch('navbtns')\n async navbtnsChanged() {\n Array.from(\n this._getRoot().querySelectorAll('.flickity-prev-next-button')\n ).forEach((btn) => {\n (btn as HTMLElement).hidden = !this.navbtns;\n });\n }\n\n /**\n * If `true`, show the pagination.\n */\n @Prop() pager = false;\n\n @Watch('pager')\n async pagerChanged() {\n const dots = this._getRoot().querySelector(\n '.flickity-page-dots'\n ) as HTMLElement;\n dots.hidden = !this.pager;\n }\n\n /**\n * If `true`, show a fullscreen button.\n */\n @Prop() fullscreenbtn = false;\n\n @Watch('fullscreenbtn')\n async fullscreenBtnChanged() {\n const btn = this._getRoot().querySelector(\n '.flickity-fullscreen-button'\n ) as HTMLElement;\n btn.hidden = !this.fullscreenbtn;\n }\n\n /**\n * If `true`, make the slider fullscreen.\n */\n @Prop({ reflect: true, mutable: true }) fullscreen = false;\n\n @Watch('fullscreen')\n async fullscreenChanged(_?, oldFs?: boolean) {\n const flickity = await this.getflickity();\n if (this.fullscreen) flickity.viewFullscreen();\n else if (typeof oldFs !== 'undefined') flickity.exitFullscreen();\n }\n\n /**\n * Animation presets.\n */\n @Prop({ reflect: true }) animation: SlideAnimation = 'scroll';\n\n @Watch('animation')\n async animationChange(_?, oldAnim?: SlideAnimation) {\n const [flkty, slides] = await Promise.all([\n this.getflickity(),\n waitForSlides(this.host),\n ]);\n\n // clear old stuff\n slides.forEach((slide) => {\n slide.style['left'] = undefined;\n });\n\n if (oldAnim === 'parallax') {\n flkty.off('scroll', this.parralax);\n slides.forEach((_, i) => {\n if (this.childrenEles && this.childrenEles[i])\n (this.childrenEles[i] as HTMLElement).style['transform'] = undefined;\n });\n this.update();\n }\n\n // setup new stuff\n switch (this.animation) {\n case 'fade':\n this.options = { fade: true, percentPosition: true };\n break;\n case 'parallax':\n this.options = { fade: false, percentPosition: false };\n flkty.on('scroll', this.parralax);\n break;\n default:\n this.options = { fade: false, percentPosition: true };\n break;\n }\n }\n\n /**\n * Zero-based index of the selected cell.\n */\n @Prop({ reflect: true, mutable: true }) currentSlide: number = 0;\n\n @Watch('currentSlide')\n currentSlideChange() {\n if (this.currentSlide !== this.iCurrentSlide)\n this.slideTo(this.currentSlide);\n }\n\n @Watch('iCurrentSlide')\n internalSlideChange() {\n this.currentSlide = this.iCurrentSlide;\n }\n\n /**\n * time duration, in ms, to automatically advance slides\n */\n @Prop() autoplay: string | false | number = false;\n\n @Watch('autoplay')\n async autoPlayChange() {\n await this.stopAutoplay();\n if (this.autoplay) {\n if (typeof this.autoplay === 'string')\n this.autoplay = parseInt(this.autoplay);\n if (this.autoplay > 0) this.startAutoplay(this.autoplay as number);\n }\n }\n\n /**\n * @internal\n */\n @Prop({ reflect: true, mutable: true }) ready = false;\n\n /**\n * Emitted after component initialization\n */\n @Event() nanoSlidesDidLoad!: EventEmitter<void>;\n\n /**\n * Emitted after flickity initialization\n */\n @Event() nanoSlidesReady!: EventEmitter<void>;\n\n /**\n * Emitted when a slide is selected, even on the same slide\n */\n @Event() nanoSlidesSelect!: EventEmitter<number>;\n\n /**\n * Emitted when the selected slide is changed.\n */\n @Event() nanoSlidesChange!: EventEmitter<number>;\n\n /**\n * Emitted when the slider moves.\n */\n @Event() nanoSlidesScroll!: EventEmitter<number>;\n\n /**\n * Emitted when the slide transition has finished.\n */\n @Event() nanoSlidesTransitionEnd!: EventEmitter<number>;\n\n /**\n * Emitted when the slider starts actively being moved.\n */\n @Event() nanoSlidesDragStart!: EventEmitter<DragEvent>;\n\n /**\n * Emitted when the slider is being dragged.\n */\n @Event() nanoSlidesDragMove!: EventEmitter<DragEvent>;\n\n /**\n * Emitted when the slider has finished being dragged.\n */\n @Event() nanoSlidesDragEnd!: EventEmitter<DragEvent>;\n\n /**\n * Emitted when the user taps/clicks on the slide's container.\n */\n @Event() nanoSlidesTap!: EventEmitter<DragEvent>;\n\n /**\n * Emitted when the user taps/clicks on the slide's container.\n */\n @Event() nanoSlidesFullscreenChange!: EventEmitter<boolean>;\n\n /**\n * Update the underlying flickity implementation. Call this if you've added or removed\n * child slides.\n */\n @Method()\n async update() {\n const [flickity] = await Promise.all([\n this.getflickity(),\n waitForSlides(this.host),\n ]);\n this.childrenEles = this.host.querySelectorAll('nano-slide > *');\n flickity.reloadCells();\n flickity.resize();\n flickity.reposition();\n }\n\n /**\n * Force flickity to update its height (when adaptiveHeight is enabled) for the duration\n * equal to 'speed' parameter.\n *\n * @param speed The transition duration (in ms).\n */\n @Method()\n async updateAutoHeight(speed?: number) {\n const vp = document.querySelector('.flickity-viewport') as HTMLElement;\n if (vp) vp.style.transition = speed + 'ms';\n }\n\n /**\n * Transition to the specified slide.\n *\n * @param index The index of the slide to transition to.\n * @param instant Immediately view the selected slide without animation.\n */\n @Method()\n async slideTo(index: number, instant?: boolean) {\n const flickity = await this.getflickity();\n flickity.select(index, instant);\n }\n\n /**\n * Transition to the next slide.\n *\n * @param instant The transition duration (in ms).\n * @param wrap If true, the first slide will be selected if at the last slide.\n */\n @Method()\n async slideNext(instant?: boolean, wrap?: boolean) {\n const flickity = await this.getflickity();\n flickity.next(wrap, instant);\n }\n\n /**\n * Transition to the previous slide.\n *\n * @param instant The transition duration (in ms).\n * @param wrap If true, the last slide will be selected if at the first slide.\n */\n @Method()\n async slidePrev(instant?: boolean, wrap?: boolean) {\n const flickity = await this.getflickity();\n flickity.previous(instant, wrap);\n }\n\n /**\n * Get the index of the active slide.\n */\n @Method()\n async getActiveIndex() {\n const flickity = await this.getflickity();\n return flickity.selectedIndex;\n }\n\n /**\n * Get the total number of slides.\n */\n @Method()\n async length() {\n const flickity = await this.getflickity();\n return flickity.slides.length;\n }\n\n /**\n * Get whether or not the current slide is the last slide.\n */\n @Method()\n async isEnd() {\n const flickity = await this.getflickity();\n return flickity.selectedIndex === flickity.slides.length - 1;\n }\n\n /**\n * Get whether or not the current slide is the first slide.\n */\n @Method()\n async isBeginning() {\n const flickity = await this.getflickity();\n return flickity.selectedIndex === 0;\n }\n\n /**\n * Start auto play.\n * @param time - optional time duration to show slides\n */\n @Method()\n async startAutoplay(time?: number) {\n const flickity = await this.getflickity();\n if (time) this.options = { autoPlay: time };\n setTimeout(() => flickity.playPlayer());\n }\n\n /**\n * Stop auto play.\n */\n @Method()\n async stopAutoplay() {\n const flickity = await this.getflickity();\n flickity.stopPlayer();\n }\n\n /**\n * Lock or unlock the ability to slide to the next slide.\n *\n * @param lock If `true`, disable swiping\n */\n @Method()\n async lockSwipes(lock: boolean) {\n const flickity = await this.getflickity();\n flickity.options.draggable = !lock;\n flickity.updateDraggable();\n }\n\n /**\n * Get the flickity instance.\n * Use this to access the full flickity API.\n * See https://flickity.metafizzy.co/ for all API options.\n */\n @Method()\n async getflickity() {\n return this.flickity;\n }\n\n /**\n * Hard destroy / create.\n * Certain flickity options, you will require the instance to be re-initialised\n */\n @Method()\n async reload() {\n this.destroyflickity();\n setTimeout(() => this.initflickity(), 20);\n }\n\n private _getRoot() {\n return this.host.shadowRoot ? this.host.shadowRoot : this.host;\n }\n\n private parralax = async () => {\n const flkty = await this.flickity;\n flkty.slides.forEach((slide: FlickitySlide, i) => {\n const ele = this.childrenEles[i] as HTMLElement;\n const x = ((slide.target + flkty.x) * -1) / 3;\n ele.style['transform'] = 'translateX(' + x + 'px)';\n });\n };\n\n private handleFullscreen = (isFullScreen: boolean) => {\n this.fullscreen = isFullScreen;\n this.nanoSlidesFullscreenChange.emit(isFullScreen);\n };\n\n private handleSlideSelect = (slide: number) => {\n this.iCurrentSlide = slide;\n this.nanoSlidesSelect.emit(slide);\n };\n\n private destroyflickity() {\n /**\n * We need to synchronously destroy\n * flickity otherwise it is possible\n * that it will be left in a\n * destroyed state if connectedCallback\n * is called multiple times\n */\n const flickity = this.syncflickity;\n\n if (flickity !== undefined) {\n flickity.destroy();\n this.flickity = new Promise((resolve) => {\n this.readyflickity = resolve;\n });\n this.flickityReady = false;\n this.syncflickity = undefined;\n this.ready = false;\n }\n this.didInit = false;\n }\n\n private async initflickity() {\n const finalOptions = this.normalizeOptions();\n\n // init flickity core\n await waitForSlides(this.host);\n this.slidesReady = true;\n\n this.flickityEl =\n this.flickityEl || this._getRoot().querySelector('.flickity-container');\n if (\n this.flickityEl &&\n this.flickityEl.classList.contains('flickity-enabled')\n )\n this.destroyflickity();\n\n setTimeout(() => {\n const flick = new flickity(this.flickityEl, finalOptions) as Flickity;\n this.flickityReady = true;\n\n this.syncflickity = flick;\n\n this.animationChange();\n this.navbtnsChanged();\n this.pagerChanged();\n this.fullscreenChanged();\n this.fullscreenBtnChanged();\n\n this.readyflickity(flick);\n this.ready = true;\n // the slideshow has been initialised without any dimensions - let's add a one show\n // resize observer to kick it off when it gets some dimensions\n if (!this.host.getBoundingClientRect().height) {\n if (!window['ResizeObserver']) return;\n\n const ro = (this.resizeO = new ResizeObserver(() => {\n flick.resize();\n this.resizeO.disconnect();\n }));\n ro.observe(this.host);\n }\n }, 100);\n }\n\n private normalizeOptions(): FlickityOptions {\n // Base options, can be changed\n const flickityOptions: FlickityOptions = {\n cellSelector: 'nano-slide',\n contain: true,\n prevNextButtons: true,\n fullscreen: true,\n accessibility: true,\n imagesLoaded: true,\n pageDots: true,\n };\n\n if (this.animation === 'fade') {\n flickityOptions.fade = true;\n }\n if (this.currentSlide > 0) {\n flickityOptions.initialIndex = this.currentSlide;\n }\n if (this.autoplay) {\n if (typeof this.autoplay === 'string')\n this.autoplay = parseInt(this.autoplay);\n if (this.autoplay > 0) flickityOptions.autoPlay = this.autoplay as number;\n }\n\n // Keep the event options separate, we dont want users\n // overwriting these\n const eventOptions: FlickityEvents = {\n ready: () => {\n setTimeout(() => {\n this.nanoSlidesReady.emit();\n }, 20);\n },\n select: this.handleSlideSelect,\n change: this.nanoSlidesChange.emit,\n scroll: this.nanoSlidesScroll.emit,\n settle: this.nanoSlidesTransitionEnd.emit,\n dragStart: this.nanoSlidesDragStart.emit,\n dragMove: this.nanoSlidesDragMove.emit,\n dragEnd: this.nanoSlidesDragEnd.emit,\n staticClick: this.nanoSlidesTap.emit,\n fullscreenChange: this.handleFullscreen,\n };\n\n const customEvents =\n !!this.options && !!this.options.on ? this.options.on : {};\n // merge \"on\" event listeners, while giving our event listeners priority\n const mergedEventOptions = { on: { ...customEvents, ...eventOptions } };\n // Merge the base, user options, and events together then pass to flickity\n // @ts-ignore\n return { ...flickityOptions, ...mergedEventOptions, ...this.options };\n }\n\n componentDidLoad() {\n if (\n Build.isBrowser &&\n typeof window !== 'undefined' &&\n (window as any).MutationObserver\n ) {\n const mut = (this.mutationO = new MutationObserver(\n (e: MutationRecord[]) => {\n if (\n e[0].addedNodes[0] &&\n e[0].addedNodes[0].nodeName.toLowerCase() === 'nano-slide' &&\n this.flickityReady\n ) {\n this.update();\n }\n }\n ));\n\n mut.observe(this.host, {\n childList: true,\n subtree: true,\n });\n }\n }\n\n componentWillLoad() {\n this.nanoSlidesDidLoad.emit();\n\n if (!this.didInit) {\n this.didInit = true;\n this.initflickity();\n }\n }\n\n disconnectedCallback() {\n if (this.mutationO) {\n this.mutationO.disconnect();\n this.mutationO = undefined;\n }\n if (this.resizeO) this.resizeO.disconnect();\n this.destroyflickity();\n }\n\n render() {\n return (\n <Host>\n <div class=\"slideshow\">\n <div\n ref={(div) => (this.flickityEl = div)}\n class={{\n 'flickity-container': true,\n 'slides-ready': this.slidesReady,\n 'slides-not-ready': !this.slidesReady,\n }}\n >\n <slot />\n </div>\n <div class=\"ui-extras\">\n <slot name=\"ui\" />\n </div>\n </div>\n </Host>\n );\n }\n}\n\nconst waitForSlides = (host: HTMLElement): Promise<HTMLNanoSlideElement[]> => {\n const allSlides = Array.from(host.querySelectorAll('nano-slide'));\n let toLoadSlides = allSlides.filter(\n (ele: HTMLNanoSlideElement) => !ele.ready\n );\n\n if (!toLoadSlides.length) return Promise.resolve(allSlides);\n\n return new Promise((resolve) => {\n const slideResolver = (ev: CustomEvent) => {\n toLoadSlides = toLoadSlides.filter((ele) => ele !== ev.target);\n if (!toLoadSlides.length) {\n resolve(allSlides);\n host.removeEventListener('nanoSlideReady', slideResolver);\n }\n };\n host.addEventListener('nanoSlideReady', slideResolver);\n // fallback for vue who can't handle camelcase event names\n host.addEventListener('nano-slide-ready', slideResolver);\n });\n};\n"],"version":3}