agor-live 0.21.2 → 0.22.0

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 (431) hide show
  1. package/dist/cli/commands/branch/env/restart.js +1 -1
  2. package/dist/cli/commands/branch/env/start.js +1 -1
  3. package/dist/cli/commands/branch/env/stop.js +1 -1
  4. package/dist/core/api/index.cjs +5 -1
  5. package/dist/core/api/index.d.ts +6 -1
  6. package/dist/core/api/index.d.ts.map +1 -1
  7. package/dist/core/api/index.js +5 -1
  8. package/dist/core/claude/index.cjs +162 -14
  9. package/dist/core/claude/index.js +166 -18
  10. package/dist/core/client/index.cjs +43 -3
  11. package/dist/core/client/index.js +37 -3
  12. package/dist/core/config/browser.cjs +2 -2
  13. package/dist/core/config/browser.js +2 -2
  14. package/dist/core/config/config-manager.d.ts.map +1 -1
  15. package/dist/core/config/constants.d.ts +1 -1
  16. package/dist/core/config/index.cjs +174 -20
  17. package/dist/core/config/index.js +178 -24
  18. package/dist/core/config/types.d.ts +8 -0
  19. package/dist/core/config/types.d.ts.map +1 -1
  20. package/dist/core/db/index.cjs +495 -86
  21. package/dist/core/db/index.js +482 -75
  22. package/dist/core/db/repositories/artifacts.d.ts.map +1 -1
  23. package/dist/core/db/repositories/branches.d.ts +13 -1
  24. package/dist/core/db/repositories/branches.d.ts.map +1 -1
  25. package/dist/core/db/repositories/gateway-channels.d.ts.map +1 -1
  26. package/dist/core/db/repositories/index.d.ts +1 -0
  27. package/dist/core/db/repositories/index.d.ts.map +1 -1
  28. package/dist/core/db/repositories/session-relationships.d.ts +30 -0
  29. package/dist/core/db/repositories/session-relationships.d.ts.map +1 -0
  30. package/dist/core/db/repositories/users.d.ts +11 -0
  31. package/dist/core/db/repositories/users.d.ts.map +1 -1
  32. package/dist/core/db/schema.d.ts +421 -4
  33. package/dist/core/db/schema.d.ts.map +1 -1
  34. package/dist/core/db/schema.postgres.d.ts +226 -2
  35. package/dist/core/db/schema.postgres.d.ts.map +1 -1
  36. package/dist/core/db/schema.sqlite.d.ts +228 -2
  37. package/dist/core/db/schema.sqlite.d.ts.map +1 -1
  38. package/dist/core/drizzle/postgres/0050_artifact_source_session.sql +3 -0
  39. package/dist/core/drizzle/postgres/0051_session_relationships.sql +26 -0
  40. package/dist/core/drizzle/postgres/meta/_journal.json +14 -0
  41. package/dist/core/drizzle/sqlite/0059_artifact_source_session.sql +2 -0
  42. package/dist/core/drizzle/sqlite/0060_session_relationships.sql +23 -0
  43. package/dist/core/drizzle/sqlite/meta/_journal.json +14 -0
  44. package/dist/core/gateway/connector-registry.d.ts.map +1 -1
  45. package/dist/core/gateway/connector.d.ts +22 -0
  46. package/dist/core/gateway/connector.d.ts.map +1 -1
  47. package/dist/core/gateway/connectors/slack.d.ts +35 -3
  48. package/dist/core/gateway/connectors/slack.d.ts.map +1 -1
  49. package/dist/core/gateway/connectors/teams.d.ts +107 -0
  50. package/dist/core/gateway/connectors/teams.d.ts.map +1 -0
  51. package/dist/core/gateway/context.d.ts.map +1 -1
  52. package/dist/core/gateway/index.cjs +552 -52
  53. package/dist/core/gateway/index.d.ts +3 -2
  54. package/dist/core/gateway/index.d.ts.map +1 -1
  55. package/dist/core/gateway/index.js +544 -52
  56. package/dist/core/gateway/system-message.d.ts +21 -0
  57. package/dist/core/gateway/system-message.d.ts.map +1 -1
  58. package/dist/core/index.cjs +616 -127
  59. package/dist/core/index.js +597 -116
  60. package/dist/core/mcp/index.cjs +146 -9
  61. package/dist/core/mcp/index.js +146 -9
  62. package/dist/core/mcp/template-resolver.d.ts.map +1 -1
  63. package/dist/core/seed/index.cjs +375 -59
  64. package/dist/core/seed/index.js +378 -62
  65. package/dist/core/sessions/index.cjs +19 -0
  66. package/dist/core/sessions/index.js +19 -0
  67. package/dist/core/templates/agor-system-prompt.md +21 -53
  68. package/dist/core/templates/session-context.cjs +2 -73
  69. package/dist/core/templates/session-context.d.ts +9 -53
  70. package/dist/core/templates/session-context.d.ts.map +1 -1
  71. package/dist/core/templates/session-context.js +2 -72
  72. package/dist/core/tools/mcp/jwt-auth.cjs +2 -20
  73. package/dist/core/tools/mcp/jwt-auth.d.ts.map +1 -1
  74. package/dist/core/tools/mcp/jwt-auth.js +2 -20
  75. package/dist/core/tools/mcp/oauth-mcp-transport.cjs +2 -15
  76. package/dist/core/tools/mcp/oauth-mcp-transport.d.ts.map +1 -1
  77. package/dist/core/tools/mcp/oauth-mcp-transport.js +2 -15
  78. package/dist/core/tools/mcp/oauth-refresh.cjs +167 -19
  79. package/dist/core/tools/mcp/oauth-refresh.js +167 -19
  80. package/dist/core/types/artifact.d.ts +5 -1
  81. package/dist/core/types/artifact.d.ts.map +1 -1
  82. package/dist/core/types/branch.d.ts +14 -0
  83. package/dist/core/types/branch.d.ts.map +1 -1
  84. package/dist/core/types/gateway.d.ts +1 -1
  85. package/dist/core/types/gateway.d.ts.map +1 -1
  86. package/dist/core/types/id.d.ts +1 -0
  87. package/dist/core/types/id.d.ts.map +1 -1
  88. package/dist/core/types/index.cjs +36 -0
  89. package/dist/core/types/index.js +30 -0
  90. package/dist/core/types/session.d.ts +65 -1
  91. package/dist/core/types/session.d.ts.map +1 -1
  92. package/dist/core/types/task.d.ts +9 -0
  93. package/dist/core/types/task.d.ts.map +1 -1
  94. package/dist/core/unix/index.cjs +371 -55
  95. package/dist/core/unix/index.js +374 -58
  96. package/dist/core/unix/unix-integration-service.d.ts +10 -7
  97. package/dist/core/unix/unix-integration-service.d.ts.map +1 -1
  98. package/dist/core/utils/permission-mode-mapper.cjs +19 -0
  99. package/dist/core/utils/permission-mode-mapper.js +19 -0
  100. package/dist/daemon/declarations.d.ts +7 -0
  101. package/dist/daemon/declarations.d.ts.map +1 -1
  102. package/dist/daemon/hooks/gateway-route.d.ts.map +1 -1
  103. package/dist/daemon/hooks/gateway-route.js +53 -1
  104. package/dist/daemon/index.js +3760 -2107
  105. package/dist/daemon/main.js +3760 -2107
  106. package/dist/daemon/mcp/server.js +155 -17
  107. package/dist/daemon/mcp/tools/analytics.js +6 -7
  108. package/dist/daemon/mcp/tools/artifacts.d.ts.map +1 -1
  109. package/dist/daemon/mcp/tools/artifacts.js +7 -7
  110. package/dist/daemon/mcp/tools/boards.js +6 -7
  111. package/dist/daemon/mcp/tools/branches.js +6 -7
  112. package/dist/daemon/mcp/tools/card-types.js +6 -7
  113. package/dist/daemon/mcp/tools/cards.js +6 -7
  114. package/dist/daemon/mcp/tools/environment.d.ts.map +1 -1
  115. package/dist/daemon/mcp/tools/environment.js +19 -12
  116. package/dist/daemon/mcp/tools/knowledge.js +6 -7
  117. package/dist/daemon/mcp/tools/mcp-servers.js +6 -7
  118. package/dist/daemon/mcp/tools/messages.js +6 -7
  119. package/dist/daemon/mcp/tools/proxies.js +6 -7
  120. package/dist/daemon/mcp/tools/repos.js +6 -7
  121. package/dist/daemon/mcp/tools/schedules.js +6 -7
  122. package/dist/daemon/mcp/tools/search.js +6 -7
  123. package/dist/daemon/mcp/tools/sessions.d.ts.map +1 -1
  124. package/dist/daemon/mcp/tools/sessions.js +140 -11
  125. package/dist/daemon/mcp/tools/tasks.js +6 -7
  126. package/dist/daemon/mcp/tools/users.js +6 -7
  127. package/dist/daemon/mcp/tools/widgets.js +7 -8
  128. package/dist/daemon/register-hooks.d.ts +5 -1
  129. package/dist/daemon/register-hooks.d.ts.map +1 -1
  130. package/dist/daemon/register-hooks.js +404 -179
  131. package/dist/daemon/register-routes.d.ts.map +1 -1
  132. package/dist/daemon/register-routes.js +360 -162
  133. package/dist/daemon/register-services.d.ts.map +1 -1
  134. package/dist/daemon/register-services.js +1928 -671
  135. package/dist/daemon/services/artifacts.d.ts +10 -1
  136. package/dist/daemon/services/artifacts.d.ts.map +1 -1
  137. package/dist/daemon/services/artifacts.js +25 -1
  138. package/dist/daemon/services/branches.d.ts +11 -1
  139. package/dist/daemon/services/branches.d.ts.map +1 -1
  140. package/dist/daemon/services/branches.js +470 -184
  141. package/dist/daemon/services/claude-models.js +879 -339
  142. package/dist/daemon/services/gateway.d.ts +58 -2
  143. package/dist/daemon/services/gateway.d.ts.map +1 -1
  144. package/dist/daemon/services/gateway.js +590 -47
  145. package/dist/daemon/services/groups.d.ts +2 -0
  146. package/dist/daemon/services/groups.d.ts.map +1 -1
  147. package/dist/daemon/services/groups.js +56 -0
  148. package/dist/daemon/services/mcp-servers.d.ts.map +1 -1
  149. package/dist/daemon/services/mcp-servers.js +0 -6
  150. package/dist/daemon/services/scheduler.d.ts.map +1 -1
  151. package/dist/daemon/services/scheduler.js +6 -2
  152. package/dist/daemon/services/sessions.d.ts +11 -3
  153. package/dist/daemon/services/sessions.d.ts.map +1 -1
  154. package/dist/daemon/services/sessions.js +68 -7
  155. package/dist/daemon/services/tasks.d.ts +13 -2
  156. package/dist/daemon/services/tasks.d.ts.map +1 -1
  157. package/dist/daemon/services/tasks.js +42 -26
  158. package/dist/daemon/startup.js +6 -2
  159. package/dist/daemon/utils/session-stop.d.ts +43 -0
  160. package/dist/daemon/utils/session-stop.d.ts.map +1 -0
  161. package/dist/daemon/utils/session-stop.js +102 -0
  162. package/dist/daemon/utils/session-task-state.d.ts +7 -2
  163. package/dist/daemon/utils/session-task-state.d.ts.map +1 -1
  164. package/dist/daemon/utils/session-task-state.js +9 -3
  165. package/dist/daemon/utils/session-tasks.d.ts +4 -4
  166. package/dist/daemon/utils/session-tasks.d.ts.map +1 -1
  167. package/dist/daemon/utils/session-tasks.js +4 -8
  168. package/dist/executor/commands/environment.d.ts +13 -0
  169. package/dist/executor/commands/environment.d.ts.map +1 -0
  170. package/dist/executor/commands/environment.js +287 -0
  171. package/dist/executor/commands/index.d.ts.map +1 -1
  172. package/dist/executor/commands/index.js +5 -1
  173. package/dist/executor/commands/unix.d.ts +8 -1
  174. package/dist/executor/commands/unix.d.ts.map +1 -1
  175. package/dist/executor/commands/unix.js +157 -2
  176. package/dist/executor/payload-types.d.ts +201 -5
  177. package/dist/executor/payload-types.d.ts.map +1 -1
  178. package/dist/executor/payload-types.js +98 -0
  179. package/dist/executor/sdk-handlers/base/mcp-scoping.d.ts.map +1 -1
  180. package/dist/executor/sdk-handlers/base/mcp-scoping.js +14 -0
  181. package/dist/executor/sdk-handlers/claude/message-processor.d.ts.map +1 -1
  182. package/dist/executor/sdk-handlers/claude/message-processor.js +0 -1
  183. package/dist/executor/sdk-handlers/claude/query-builder.d.ts +1 -0
  184. package/dist/executor/sdk-handlers/claude/query-builder.d.ts.map +1 -1
  185. package/dist/executor/sdk-handlers/claude/query-builder.js +91 -39
  186. package/dist/executor/sdk-handlers/codex/prompt-service.d.ts +12 -5
  187. package/dist/executor/sdk-handlers/codex/prompt-service.d.ts.map +1 -1
  188. package/dist/executor/sdk-handlers/codex/prompt-service.js +72 -30
  189. package/dist/executor/sdk-handlers/copilot/prompt-service.d.ts +2 -4
  190. package/dist/executor/sdk-handlers/copilot/prompt-service.d.ts.map +1 -1
  191. package/dist/executor/sdk-handlers/copilot/prompt-service.js +4 -13
  192. package/dist/executor/sdk-handlers/gemini/prompt-service.d.ts +2 -4
  193. package/dist/executor/sdk-handlers/gemini/prompt-service.d.ts.map +1 -1
  194. package/dist/executor/sdk-handlers/gemini/prompt-service.js +4 -13
  195. package/dist/ui/assets/App-DcEY8Ota.js +3 -0
  196. package/dist/ui/assets/App-DcEY8Ota.js.gz +0 -0
  197. package/dist/ui/assets/{ArtifactConsentModal-ParNk5kW.js → ArtifactConsentModal-CiCbK9iv.js} +1 -1
  198. package/dist/ui/assets/ArtifactConsentModal-CiCbK9iv.js.gz +0 -0
  199. package/dist/ui/assets/ArtifactFullscreenPage-CfsTEGKd.js +9 -0
  200. package/dist/ui/assets/ArtifactFullscreenPage-CfsTEGKd.js.gz +0 -0
  201. package/dist/ui/assets/AutocompleteTextarea-BAFFH_5e.js +18 -0
  202. package/dist/ui/assets/AutocompleteTextarea-BAFFH_5e.js.gz +0 -0
  203. package/dist/ui/assets/BoardObjectNodes-D-O6bZIG.js +34 -0
  204. package/dist/ui/assets/BoardObjectNodes-D-O6bZIG.js.gz +0 -0
  205. package/dist/ui/assets/{CodeEditor.inner-D51Z_CLQ.js → CodeEditor.inner-DBgsP4tn.js} +2 -2
  206. package/dist/ui/assets/CodeEditor.inner-DBgsP4tn.js.gz +0 -0
  207. package/dist/ui/assets/ConversationView-CUWR0gR6.js +1 -0
  208. package/dist/ui/assets/ConversationView-CUWR0gR6.js.gz +0 -0
  209. package/dist/ui/assets/KnowledgePage-B2bzlXfn.js +24 -0
  210. package/dist/ui/assets/KnowledgePage-B2bzlXfn.js.gz +0 -0
  211. package/dist/ui/assets/MarketingScreenshotPage-9Qd7eZsm.css +1 -0
  212. package/dist/ui/assets/MarketingScreenshotPage-zv5RUCuV.js +143 -0
  213. package/dist/ui/assets/MarketingScreenshotPage-zv5RUCuV.js.gz +0 -0
  214. package/dist/ui/assets/MobileApp-VgVnsnsN.js +1 -0
  215. package/dist/ui/assets/MobileApp-VgVnsnsN.js.gz +0 -0
  216. package/dist/ui/assets/SessionCanvas-f1-1Gbcw.js +20 -0
  217. package/dist/ui/assets/SessionCanvas-f1-1Gbcw.js.gz +0 -0
  218. package/dist/ui/assets/{App-BAdBsEnV.css → SessionCanvas-mEmYGZhC.css} +1 -1
  219. package/dist/ui/assets/SessionCanvas-mEmYGZhC.css.gz +0 -0
  220. package/dist/ui/assets/{StreamdownDemoPage-B9wbgp2s.js → StreamdownDemoPage-wzWaqWwr.js} +1 -1
  221. package/dist/ui/assets/StreamdownDemoPage-wzWaqWwr.js.gz +0 -0
  222. package/dist/ui/assets/{ThemeSwitcher-ubn6IOz9.js → ThemeSwitcher-Dly2y9pi.js} +1 -1
  223. package/dist/ui/assets/ThemeSwitcher-Dly2y9pi.js.gz +0 -0
  224. package/dist/ui/assets/antd-CfbbHJOz.js +401 -0
  225. package/dist/ui/assets/antd-CfbbHJOz.js.gz +0 -0
  226. package/dist/ui/assets/architecture-U656AL7Q-CykGFbQU.js +1 -0
  227. package/dist/ui/assets/{architectureDiagram-VXUJARFQ-ChmZt3zk.js → architectureDiagram-VXUJARFQ-C8HXAenz.js} +1 -1
  228. package/dist/ui/assets/architectureDiagram-VXUJARFQ-C8HXAenz.js.gz +0 -0
  229. package/dist/ui/assets/{blockDiagram-VD42YOAC-CzGHAHao.js → blockDiagram-VD42YOAC-BhZaEN19.js} +1 -1
  230. package/dist/ui/assets/blockDiagram-VD42YOAC-BhZaEN19.js.gz +0 -0
  231. package/dist/ui/assets/{c4Diagram-YG6GDRKO-DscJyaWN.js → c4Diagram-YG6GDRKO-Dk_UH-sY.js} +1 -1
  232. package/dist/ui/assets/c4Diagram-YG6GDRKO-Dk_UH-sY.js.gz +0 -0
  233. package/dist/ui/assets/channel-D6_nUWlW.js +1 -0
  234. package/dist/ui/assets/{chunk-4BX2VUAB-DoWpTvP8.js → chunk-4BX2VUAB-XprbG2TG.js} +1 -1
  235. package/dist/ui/assets/chunk-55IACEB6-ByzqIgSb.js +1 -0
  236. package/dist/ui/assets/{chunk-ABZYJK2D-RzDCrjE6.js → chunk-ABZYJK2D-BJcrryHK.js} +1 -1
  237. package/dist/ui/assets/chunk-ABZYJK2D-BJcrryHK.js.gz +0 -0
  238. package/dist/ui/assets/{chunk-AGHRB4JF-jidCS5Of.js → chunk-AGHRB4JF-DvxmfbM0.js} +1 -1
  239. package/dist/ui/assets/chunk-AGHRB4JF-DvxmfbM0.js.gz +0 -0
  240. package/dist/ui/assets/{chunk-ATLVNIR6-BEIIfJtC.js → chunk-ATLVNIR6-DbeJ0OrR.js} +1 -1
  241. package/dist/ui/assets/chunk-ATLVNIR6-DbeJ0OrR.js.gz +0 -0
  242. package/dist/ui/assets/{chunk-B4BG7PRW-B8b6dQQ2.js → chunk-B4BG7PRW-C53q2ggf.js} +1 -1
  243. package/dist/ui/assets/chunk-B4BG7PRW-C53q2ggf.js.gz +0 -0
  244. package/dist/ui/assets/{chunk-CVBHYZKI-D-mQAfrk.js → chunk-CVBHYZKI-B3EBSlb3.js} +1 -1
  245. package/dist/ui/assets/{chunk-DI55MBZ5-BfATX3V8.js → chunk-DI55MBZ5-vIyNEQN-.js} +1 -1
  246. package/dist/ui/assets/chunk-DI55MBZ5-vIyNEQN-.js.gz +0 -0
  247. package/dist/ui/assets/chunk-EXTU4WIE-B3ObkuOm.js +1 -0
  248. package/dist/ui/assets/{chunk-FMBD7UC4-fqXscNvc.js → chunk-FMBD7UC4-rddmfK-Z.js} +1 -1
  249. package/dist/ui/assets/{chunk-HN2XXSSU-BCHvD80g.js → chunk-HN2XXSSU-Dttqcg3b.js} +1 -1
  250. package/dist/ui/assets/chunk-HN2XXSSU-Dttqcg3b.js.gz +0 -0
  251. package/dist/ui/assets/{chunk-JA3XYJ7Z-Cp6dqHnY.js → chunk-JA3XYJ7Z-DbNDev3D.js} +1 -1
  252. package/dist/ui/assets/chunk-JA3XYJ7Z-DbNDev3D.js.gz +0 -0
  253. package/dist/ui/assets/{chunk-JZLCHNYA-cKMooY3y.js → chunk-JZLCHNYA-EUmx2y4H.js} +1 -1
  254. package/dist/ui/assets/chunk-JZLCHNYA-EUmx2y4H.js.gz +0 -0
  255. package/dist/ui/assets/{chunk-MI3HLSF2-BlzO5wOE.js → chunk-MI3HLSF2-65n9Mkyc.js} +1 -1
  256. package/dist/ui/assets/chunk-MI3HLSF2-65n9Mkyc.js.gz +0 -0
  257. package/dist/ui/assets/chunk-N4CR4FBY-mv5koXqW.js +2 -0
  258. package/dist/ui/assets/chunk-N4CR4FBY-mv5koXqW.js.gz +0 -0
  259. package/dist/ui/assets/{chunk-QN33PNHL-DIHGQ_pd.js → chunk-QN33PNHL-DsRKK6NR.js} +1 -1
  260. package/dist/ui/assets/{chunk-QXUST7PY-C9l0muI0.js → chunk-QXUST7PY-BCYnMiS3.js} +1 -1
  261. package/dist/ui/assets/chunk-QXUST7PY-BCYnMiS3.js.gz +0 -0
  262. package/dist/ui/assets/chunk-QZHKN3VN-HucAw4xW.js +1 -0
  263. package/dist/ui/assets/{chunk-S3R3BYOJ-VJiLzt2o.js → chunk-S3R3BYOJ-CWMEa9Dc.js} +1 -1
  264. package/dist/ui/assets/chunk-S3R3BYOJ-CWMEa9Dc.js.gz +0 -0
  265. package/dist/ui/assets/{chunk-TZMSLE5B-DZwI0C_2.js → chunk-TZMSLE5B-BuQUQcTr.js} +1 -1
  266. package/dist/ui/assets/chunk-TZMSLE5B-BuQUQcTr.js.gz +0 -0
  267. package/dist/ui/assets/classDiagram-2ON5EDUG-CUT3rPTB.js +1 -0
  268. package/dist/ui/assets/classDiagram-v2-WZHVMYZB-CUT3rPTB.js +1 -0
  269. package/dist/ui/assets/{cose-bilkent-S5V4N54A-Ipik-oSD.js → cose-bilkent-S5V4N54A-CnPB3ARO.js} +1 -1
  270. package/dist/ui/assets/cose-bilkent-S5V4N54A-CnPB3ARO.js.gz +0 -0
  271. package/dist/ui/assets/cursor-QEb7m-rN.png +0 -0
  272. package/dist/ui/assets/{dagre-6UL2VRFP-BDpyWQnh.js → dagre-6UL2VRFP-DhS-k_Se.js} +1 -1
  273. package/dist/ui/assets/dagre-6UL2VRFP-DhS-k_Se.js.gz +0 -0
  274. package/dist/ui/assets/{dagre-CgA4KhUX.js → dagre-KgLoHEuy.js} +1 -1
  275. package/dist/ui/assets/dagre-KgLoHEuy.js.gz +0 -0
  276. package/dist/ui/assets/{diagram-PSM6KHXK-B4GRzxLJ.js → diagram-PSM6KHXK-BZg3MJmb.js} +1 -1
  277. package/dist/ui/assets/diagram-PSM6KHXK-BZg3MJmb.js.gz +0 -0
  278. package/dist/ui/assets/{diagram-QEK2KX5R-BWPW28XI.js → diagram-QEK2KX5R-BPCitvbo.js} +1 -1
  279. package/dist/ui/assets/diagram-QEK2KX5R-BPCitvbo.js.gz +0 -0
  280. package/dist/ui/assets/{diagram-S2PKOQOG-BIHhcGoV.js → diagram-S2PKOQOG-NW4uK6sx.js} +1 -1
  281. package/dist/ui/assets/diagram-S2PKOQOG-NW4uK6sx.js.gz +0 -0
  282. package/dist/ui/assets/{editor-C-HJ7Yw0.js → editor-CzFWIUw2.js} +1 -1
  283. package/dist/ui/assets/editor-CzFWIUw2.js.gz +0 -0
  284. package/dist/ui/assets/{emoji-D8F6B62m.js → emoji-Dkz4Zzv_.js} +1 -1
  285. package/dist/ui/assets/emoji-Dkz4Zzv_.js.gz +0 -0
  286. package/dist/ui/assets/{erDiagram-Q2GNP2WA-ubTaAFcK.js → erDiagram-Q2GNP2WA-me1fboaf.js} +1 -1
  287. package/dist/ui/assets/erDiagram-Q2GNP2WA-me1fboaf.js.gz +0 -0
  288. package/dist/ui/assets/{flowDiagram-NV44I4VS-BHLCTYjI.js → flowDiagram-NV44I4VS-DzE8dGsh.js} +1 -1
  289. package/dist/ui/assets/flowDiagram-NV44I4VS-DzE8dGsh.js.gz +0 -0
  290. package/dist/ui/assets/{ganttDiagram-LVOFAZNH-ClC3pay1.js → ganttDiagram-LVOFAZNH-CFQD09Mi.js} +2 -2
  291. package/dist/ui/assets/ganttDiagram-LVOFAZNH-CFQD09Mi.js.gz +0 -0
  292. package/dist/ui/assets/{gitGraph-F6HP7TQM-DghoobE6.js → gitGraph-F6HP7TQM-CfFE_uAC.js} +1 -1
  293. package/dist/ui/assets/{gitGraphDiagram-NY62KEGX-Clqpiswu.js → gitGraphDiagram-NY62KEGX-CaVoxU4C.js} +1 -1
  294. package/dist/ui/assets/gitGraphDiagram-NY62KEGX-CaVoxU4C.js.gz +0 -0
  295. package/dist/ui/assets/index-BN5_Qq7R.js +324 -0
  296. package/dist/ui/assets/index-BN5_Qq7R.js.gz +0 -0
  297. package/dist/ui/assets/index-DxuPq13l.css +1 -0
  298. package/dist/ui/assets/index-DxuPq13l.css.gz +0 -0
  299. package/dist/ui/assets/{info-NVLQJR56-0ZldEXPQ.js → info-NVLQJR56-i_xHYg3f.js} +1 -1
  300. package/dist/ui/assets/{infoDiagram-ER5ION4S-DMmPX-il.js → infoDiagram-ER5ION4S-2NL93b78.js} +1 -1
  301. package/dist/ui/assets/{journeyDiagram-XKPGCS4Q-CrVickA2.js → journeyDiagram-XKPGCS4Q-CZF-2DHU.js} +1 -1
  302. package/dist/ui/assets/journeyDiagram-XKPGCS4Q-CZF-2DHU.js.gz +0 -0
  303. package/dist/ui/assets/{kanban-definition-3W4ZIXB7-C_BsdHYL.js → kanban-definition-3W4ZIXB7-CfvJIOny.js} +1 -1
  304. package/dist/ui/assets/kanban-definition-3W4ZIXB7-CfvJIOny.js.gz +0 -0
  305. package/dist/ui/assets/{line-CfBP7Yic.js → line-DDv8kOJk.js} +1 -1
  306. package/dist/ui/assets/{linear-BsjageUB.js → linear-Daef-l29.js} +1 -1
  307. package/dist/ui/assets/linear-Daef-l29.js.gz +0 -0
  308. package/dist/ui/assets/{mermaid-parser.core-DZdP-NFq.js → mermaid-parser.core-CdK9QgYV.js} +2 -2
  309. package/dist/ui/assets/mermaid-parser.core-CdK9QgYV.js.gz +0 -0
  310. package/dist/ui/assets/{mermaid.core-TNrI0pHG.js → mermaid.core-D6GS9mU-.js} +3 -3
  311. package/dist/ui/assets/mermaid.core-D6GS9mU-.js.gz +0 -0
  312. package/dist/ui/assets/message-SqLqNYcv.js +36 -0
  313. package/dist/ui/assets/message-SqLqNYcv.js.gz +0 -0
  314. package/dist/ui/assets/{mindmap-definition-VGOIOE7T-BbmaUjMY.js → mindmap-definition-VGOIOE7T-Cb3QMflX.js} +1 -1
  315. package/dist/ui/assets/mindmap-definition-VGOIOE7T-Cb3QMflX.js.gz +0 -0
  316. package/dist/ui/assets/{packet-BFZMPI3H-D_ZhkXuT.js → packet-BFZMPI3H-Bm2uwz4i.js} +1 -1
  317. package/dist/ui/assets/{particles-Dv28pjOd.js → particles-DsJFOarW.js} +1 -1
  318. package/dist/ui/assets/particles-DsJFOarW.js.gz +0 -0
  319. package/dist/ui/assets/{pie-7BOR55EZ-Dn0Q3qNx.js → pie-7BOR55EZ-5i17tVnF.js} +1 -1
  320. package/dist/ui/assets/{pieDiagram-ADFJNKIX-BbyjfYu8.js → pieDiagram-ADFJNKIX-BxIwQWvw.js} +1 -1
  321. package/dist/ui/assets/pieDiagram-ADFJNKIX-BxIwQWvw.js.gz +0 -0
  322. package/dist/ui/assets/{quadrantDiagram-AYHSOK5B-Bc3GqMKz.js → quadrantDiagram-AYHSOK5B-B5HPe4ga.js} +1 -1
  323. package/dist/ui/assets/quadrantDiagram-AYHSOK5B-B5HPe4ga.js.gz +0 -0
  324. package/dist/ui/assets/{radar-NHE76QYJ-BHwoAy1q.js → radar-NHE76QYJ-BTn-tq0k.js} +1 -1
  325. package/dist/ui/assets/{reactflow-BVYPxNhc.js → reactflow-Bf74ngoo.js} +2 -2
  326. package/dist/ui/assets/reactflow-Bf74ngoo.js.gz +0 -0
  327. package/dist/ui/assets/{requirementDiagram-UZGBJVZJ-BQaKKL09.js → requirementDiagram-UZGBJVZJ-YfI6llkX.js} +1 -1
  328. package/dist/ui/assets/requirementDiagram-UZGBJVZJ-YfI6llkX.js.gz +0 -0
  329. package/dist/ui/assets/{sandpack-BQW_FQ7G.js → sandpack-D7koO5op.js} +1 -1
  330. package/dist/ui/assets/sandpack-D7koO5op.js.gz +0 -0
  331. package/dist/ui/assets/{sankeyDiagram-TZEHDZUN-DiJvDvhb.js → sankeyDiagram-TZEHDZUN-DOk_B10B.js} +1 -1
  332. package/dist/ui/assets/sankeyDiagram-TZEHDZUN-DOk_B10B.js.gz +0 -0
  333. package/dist/ui/assets/{sequenceDiagram-WL72ISMW-Dw32824o.js → sequenceDiagram-WL72ISMW-DAe4Um17.js} +1 -1
  334. package/dist/ui/assets/sequenceDiagram-WL72ISMW-DAe4Um17.js.gz +0 -0
  335. package/dist/ui/assets/{stateDiagram-FKZM4ZOC-BCOpNdHV.js → stateDiagram-FKZM4ZOC-CCesDu_C.js} +1 -1
  336. package/dist/ui/assets/stateDiagram-FKZM4ZOC-CCesDu_C.js.gz +0 -0
  337. package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-CMlIrsoO.js +1 -0
  338. package/dist/ui/assets/{syntax-VJrU5BEu.js → syntax-C-M-8jOU.js} +1 -1
  339. package/dist/ui/assets/syntax-C-M-8jOU.js.gz +0 -0
  340. package/dist/ui/assets/{theme-DZtFA8b4.js → theme-BQZdiqwv.js} +1 -1
  341. package/dist/ui/assets/{timeline-definition-IT6M3QCI-Jh_WZzXv.js → timeline-definition-IT6M3QCI-D6P5txjT.js} +1 -1
  342. package/dist/ui/assets/timeline-definition-IT6M3QCI-D6P5txjT.js.gz +0 -0
  343. package/dist/ui/assets/{treemap-KMMF4GRG-CPYIgjxE.js → treemap-KMMF4GRG-Bitm3gy4.js} +1 -1
  344. package/dist/ui/assets/{knowledgeRoutes-CivaUqha.js → useUserLocalStorage-Ckb8HsIw.js} +1 -1
  345. package/dist/ui/assets/useUserLocalStorage-Ckb8HsIw.js.gz +0 -0
  346. package/dist/ui/assets/{xychartDiagram-PRI3JC2R-CERc7Rdb.js → xychartDiagram-PRI3JC2R-CsybjUbd.js} +1 -1
  347. package/dist/ui/assets/xychartDiagram-PRI3JC2R-CsybjUbd.js.gz +0 -0
  348. package/dist/ui/index.html +13 -11
  349. package/dist/ui/index.html.gz +0 -0
  350. package/package.json +10 -9
  351. package/dist/ui/assets/App-9s2WHM6S.js +0 -22
  352. package/dist/ui/assets/App-9s2WHM6S.js.gz +0 -0
  353. package/dist/ui/assets/App-BAdBsEnV.css.gz +0 -0
  354. package/dist/ui/assets/ArtifactConsentModal-ParNk5kW.js.gz +0 -0
  355. package/dist/ui/assets/ArtifactFullscreenPage-VQxLMCiN.js +0 -9
  356. package/dist/ui/assets/ArtifactFullscreenPage-VQxLMCiN.js.gz +0 -0
  357. package/dist/ui/assets/AutocompleteTextarea-3RchrIgk.js +0 -18
  358. package/dist/ui/assets/AutocompleteTextarea-3RchrIgk.js.gz +0 -0
  359. package/dist/ui/assets/CodeEditor.inner-D51Z_CLQ.js.gz +0 -0
  360. package/dist/ui/assets/ConversationView-Dyddw2b1.js +0 -34
  361. package/dist/ui/assets/ConversationView-Dyddw2b1.js.gz +0 -0
  362. package/dist/ui/assets/KnowledgePage-CdftslnF.js +0 -24
  363. package/dist/ui/assets/KnowledgePage-CdftslnF.js.gz +0 -0
  364. package/dist/ui/assets/MobileApp-BdBMpnJ1.js +0 -1
  365. package/dist/ui/assets/MobileApp-BdBMpnJ1.js.gz +0 -0
  366. package/dist/ui/assets/StreamdownDemoPage-B9wbgp2s.js.gz +0 -0
  367. package/dist/ui/assets/ThemeSwitcher-ubn6IOz9.js.gz +0 -0
  368. package/dist/ui/assets/antd-C-HfEC4E.js +0 -400
  369. package/dist/ui/assets/antd-C-HfEC4E.js.gz +0 -0
  370. package/dist/ui/assets/architecture-U656AL7Q-dkBewUpN.js +0 -1
  371. package/dist/ui/assets/architectureDiagram-VXUJARFQ-ChmZt3zk.js.gz +0 -0
  372. package/dist/ui/assets/blockDiagram-VD42YOAC-CzGHAHao.js.gz +0 -0
  373. package/dist/ui/assets/c4Diagram-YG6GDRKO-DscJyaWN.js.gz +0 -0
  374. package/dist/ui/assets/channel-DvRQqEqC.js +0 -1
  375. package/dist/ui/assets/chunk-55IACEB6-DojF2pZN.js +0 -1
  376. package/dist/ui/assets/chunk-ABZYJK2D-RzDCrjE6.js.gz +0 -0
  377. package/dist/ui/assets/chunk-AGHRB4JF-jidCS5Of.js.gz +0 -0
  378. package/dist/ui/assets/chunk-ATLVNIR6-BEIIfJtC.js.gz +0 -0
  379. package/dist/ui/assets/chunk-B4BG7PRW-B8b6dQQ2.js.gz +0 -0
  380. package/dist/ui/assets/chunk-DI55MBZ5-BfATX3V8.js.gz +0 -0
  381. package/dist/ui/assets/chunk-EXTU4WIE-BKt6lPJM.js +0 -1
  382. package/dist/ui/assets/chunk-HN2XXSSU-BCHvD80g.js.gz +0 -0
  383. package/dist/ui/assets/chunk-JA3XYJ7Z-Cp6dqHnY.js.gz +0 -0
  384. package/dist/ui/assets/chunk-JZLCHNYA-cKMooY3y.js.gz +0 -0
  385. package/dist/ui/assets/chunk-MI3HLSF2-BlzO5wOE.js.gz +0 -0
  386. package/dist/ui/assets/chunk-N4CR4FBY-pASDorUx.js +0 -2
  387. package/dist/ui/assets/chunk-N4CR4FBY-pASDorUx.js.gz +0 -0
  388. package/dist/ui/assets/chunk-QXUST7PY-C9l0muI0.js.gz +0 -0
  389. package/dist/ui/assets/chunk-QZHKN3VN-CZskCFCf.js +0 -1
  390. package/dist/ui/assets/chunk-S3R3BYOJ-VJiLzt2o.js.gz +0 -0
  391. package/dist/ui/assets/chunk-TZMSLE5B-DZwI0C_2.js.gz +0 -0
  392. package/dist/ui/assets/classDiagram-2ON5EDUG-BFASUbmZ.js +0 -1
  393. package/dist/ui/assets/classDiagram-v2-WZHVMYZB-BFASUbmZ.js +0 -1
  394. package/dist/ui/assets/cose-bilkent-S5V4N54A-Ipik-oSD.js.gz +0 -0
  395. package/dist/ui/assets/dagre-6UL2VRFP-BDpyWQnh.js.gz +0 -0
  396. package/dist/ui/assets/dagre-CgA4KhUX.js.gz +0 -0
  397. package/dist/ui/assets/diagram-PSM6KHXK-B4GRzxLJ.js.gz +0 -0
  398. package/dist/ui/assets/diagram-QEK2KX5R-BWPW28XI.js.gz +0 -0
  399. package/dist/ui/assets/diagram-S2PKOQOG-BIHhcGoV.js.gz +0 -0
  400. package/dist/ui/assets/editor-C-HJ7Yw0.js.gz +0 -0
  401. package/dist/ui/assets/emoji-D8F6B62m.js.gz +0 -0
  402. package/dist/ui/assets/erDiagram-Q2GNP2WA-ubTaAFcK.js.gz +0 -0
  403. package/dist/ui/assets/flowDiagram-NV44I4VS-BHLCTYjI.js.gz +0 -0
  404. package/dist/ui/assets/ganttDiagram-LVOFAZNH-ClC3pay1.js.gz +0 -0
  405. package/dist/ui/assets/gitGraphDiagram-NY62KEGX-Clqpiswu.js.gz +0 -0
  406. package/dist/ui/assets/index-D9OElx9A.css +0 -1
  407. package/dist/ui/assets/index-D9OElx9A.css.gz +0 -0
  408. package/dist/ui/assets/index-DxPuzG7E.js +0 -350
  409. package/dist/ui/assets/index-DxPuzG7E.js.gz +0 -0
  410. package/dist/ui/assets/journeyDiagram-XKPGCS4Q-CrVickA2.js.gz +0 -0
  411. package/dist/ui/assets/kanban-definition-3W4ZIXB7-C_BsdHYL.js.gz +0 -0
  412. package/dist/ui/assets/knowledgeRoutes-CivaUqha.js.gz +0 -0
  413. package/dist/ui/assets/linear-BsjageUB.js.gz +0 -0
  414. package/dist/ui/assets/mermaid-parser.core-DZdP-NFq.js.gz +0 -0
  415. package/dist/ui/assets/mermaid.core-TNrI0pHG.js.gz +0 -0
  416. package/dist/ui/assets/message-BtWWJ9Af.js +0 -36
  417. package/dist/ui/assets/message-BtWWJ9Af.js.gz +0 -0
  418. package/dist/ui/assets/mindmap-definition-VGOIOE7T-BbmaUjMY.js.gz +0 -0
  419. package/dist/ui/assets/particles-Dv28pjOd.js.gz +0 -0
  420. package/dist/ui/assets/pieDiagram-ADFJNKIX-BbyjfYu8.js.gz +0 -0
  421. package/dist/ui/assets/quadrantDiagram-AYHSOK5B-Bc3GqMKz.js.gz +0 -0
  422. package/dist/ui/assets/reactflow-BVYPxNhc.js.gz +0 -0
  423. package/dist/ui/assets/requirementDiagram-UZGBJVZJ-BQaKKL09.js.gz +0 -0
  424. package/dist/ui/assets/sandpack-BQW_FQ7G.js.gz +0 -0
  425. package/dist/ui/assets/sankeyDiagram-TZEHDZUN-DiJvDvhb.js.gz +0 -0
  426. package/dist/ui/assets/sequenceDiagram-WL72ISMW-Dw32824o.js.gz +0 -0
  427. package/dist/ui/assets/stateDiagram-FKZM4ZOC-BCOpNdHV.js.gz +0 -0
  428. package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-Cuqwvgfg.js +0 -1
  429. package/dist/ui/assets/syntax-VJrU5BEu.js.gz +0 -0
  430. package/dist/ui/assets/timeline-definition-IT6M3QCI-Jh_WZzXv.js.gz +0 -0
  431. package/dist/ui/assets/xychartDiagram-PRI3JC2R-CERc7Rdb.js.gz +0 -0
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime--c01j_DQ.js";import{Xn as t}from"./antd-C-HfEC4E.js";import{N as n}from"./editor-C-HJ7Yw0.js";var r=`generated`,i=`pointerdown`,a=`pointerup`,o=`pointerleave`,s=`pointerout`,c=`pointermove`,l=`touchstart`,u=`touchend`,d=`touchmove`,f=`touchcancel`,p=`resize`,m=`visibilitychange`,h=`tsParticles - Error`,g=.5,_=1e3,v={x:0,y:0,z:0},ee={a:1,b:0,c:0,d:1},y=`random`,b=Math.PI*2,te=`true`,ne=`false`,re=`canvas`,ie=.25,ae=.75,oe=-.25,se=1.5,x;(function(e){e.bottom=`bottom`,e.bottomLeft=`bottom-left`,e.bottomRight=`bottom-right`,e.left=`left`,e.none=`none`,e.right=`right`,e.top=`top`,e.topLeft=`top-left`,e.topRight=`top-right`,e.outside=`outside`,e.inside=`inside`})(x||={});function ce(e){return typeof e==`boolean`}function le(e){return typeof e==`string`}function ue(e){return typeof e==`number`}function de(e){return typeof e==`object`&&!!e}function S(e){return Array.isArray(e)}function C(e){return e==null}var fe=class e{constructor(e,t,n){if(this._updateFromAngle=(e,t)=>{this.x=Math.cos(e)*t,this.y=Math.sin(e)*t},!ue(e)&&e){this.x=e.x,this.y=e.y;let t=e;this.z=t.z?t.z:v.z}else if(e!==void 0&&t!==void 0)this.x=e,this.y=t,this.z=n??v.z;else throw Error(`${h} Vector3d not initialized correctly`)}static get origin(){return e.create(v.x,v.y,v.z)}get angle(){return Math.atan2(this.y,this.x)}set angle(e){this._updateFromAngle(e,this.length)}get length(){return Math.sqrt(this.getLengthSq())}set length(e){this._updateFromAngle(this.angle,e)}static clone(t){return e.create(t.x,t.y,t.z)}static create(t,n,r){return new e(t,n,r)}add(t){return e.create(this.x+t.x,this.y+t.y,this.z+t.z)}addTo(e){this.x+=e.x,this.y+=e.y,this.z+=e.z}copy(){return e.clone(this)}distanceTo(e){return this.sub(e).length}distanceToSq(e){return this.sub(e).getLengthSq()}div(t){return e.create(this.x/t,this.y/t,this.z/t)}divTo(e){this.x/=e,this.y/=e,this.z/=e}getLengthSq(){return this.x**2+this.y**2}mult(t){return e.create(this.x*t,this.y*t,this.z*t)}multTo(e){this.x*=e,this.y*=e,this.z*=e}normalize(){let e=this.length;e!=0&&this.multTo(1/e)}rotate(t){return e.create(this.x*Math.cos(t)-this.y*Math.sin(t),this.x*Math.sin(t)+this.y*Math.cos(t),v.z)}setTo(e){this.x=e.x,this.y=e.y;let t=e;this.z=t.z?t.z:v.z}sub(t){return e.create(this.x-t.x,this.y-t.y,this.z-t.z)}subFrom(e){this.x-=e.x,this.y-=e.y,this.z-=e.z}},w=class e extends fe{constructor(e,t){super(e,t,v.z)}static get origin(){return e.create(v.x,v.y)}static clone(t){return e.create(t.x,t.y)}static create(t,n){return new e(t,n)}},pe=Math.random,me={nextFrame:e=>requestAnimationFrame(e),cancel:e=>cancelAnimationFrame(e)};function T(){return E(pe(),0,1-2**-52)}function he(e){return me.nextFrame(e)}function ge(e){me.cancel(e)}function E(e,t,n){return Math.min(Math.max(e,t),n)}function _e(e,t,n,r){return Math.floor((e*n+t*r)/(n+r))}function D(e){let t=k(e),n=ve(e);return t===n&&(n=0),T()*(t-n)+n}function O(e){return ue(e)?e:D(e)}function ve(e){return ue(e)?e:e.min}function k(e){return ue(e)?e:e.max}function A(e,t){if(e===t||t===void 0&&ue(e))return e;let n=ve(e),r=k(e);return t===void 0?A(n,r):{min:Math.min(n,t),max:Math.max(r,t)}}function j(e,t){let n=e.x-t.x,r=e.y-t.y;return{dx:n,dy:r,distance:Math.sqrt(n**2+r**2)}}function M(e,t){return j(e,t).distance}function ye(e){return e*Math.PI/180}function be(e,t,n){if(ue(e))return ye(e);switch(e){case x.top:return-Math.PI*g;case x.topRight:return-Math.PI*ie;case x.right:return 0;case x.bottomRight:return Math.PI*ie;case x.bottom:return Math.PI*g;case x.bottomLeft:return Math.PI*ae;case x.left:return Math.PI;case x.topLeft:return-Math.PI*ae;case x.inside:return Math.atan2(n.y-t.y,n.x-t.x);case x.outside:return Math.atan2(t.y-n.y,t.x-n.x);default:return T()*b}}function xe(e){let t=w.origin;return t.length=1,t.angle=e,t}function Se(e,t,n,r){return w.create(e.x*(n-r)/(n+r)+t.x*2*r/(n+r),e.y)}function Ce(e){return{x:e.position?.x??T()*e.size.width,y:e.position?.y??T()*e.size.height}}function we(e){return e?e.endsWith(`%`)?parseFloat(e)/100:parseFloat(e):1}var Te;(function(e){e.auto=`auto`,e.increase=`increase`,e.decrease=`decrease`,e.random=`random`})(Te||={});var N;(function(e){e.increasing=`increasing`,e.decreasing=`decreasing`})(N||={});var Ee;(function(e){e.none=`none`,e.max=`max`,e.min=`min`})(Ee||={});var P;(function(e){e.bottom=`bottom`,e.left=`left`,e.right=`right`,e.top=`top`})(P||={});var De;(function(e){e.precise=`precise`,e.percent=`percent`})(De||={});var Oe;(function(e){e.max=`max`,e.min=`min`,e.random=`random`})(Oe||={});var ke={debug:console.debug,error:console.error,info:console.info,log:console.log,verbose:console.log,warning:console.warn};function Ae(){return ke}function je(e){let t=new Map;return(...n)=>{let r=JSON.stringify(n);if(t.has(r))return t.get(r);let i=e(...n);return t.set(r,i),i}}function Me(e){let t={bounced:!1},{pSide:n,pOtherSide:r,rectSide:i,rectOtherSide:a,velocity:o,factor:s}=e;return r.min<a.min||r.min>a.max||r.max<a.min||r.max>a.max||(n.max>=i.min&&n.max<=(i.max+i.min)*.5&&o>0||n.min<=i.max&&n.min>(i.max+i.min)*.5&&o<0)&&(t.velocity=o*-s,t.bounced=!0),t}function Ne(e,t){let n=L(t,t=>e.matches(t));return S(n)?n.some(e=>e):n}function Pe(){return typeof window>`u`||!window||window.document===void 0||!window.document}function Fe(){return!Pe()&&typeof matchMedia<`u`}function Ie(e){if(Fe())return matchMedia(e)}function Le(e){if(!(Pe()||typeof IntersectionObserver>`u`))return new IntersectionObserver(e)}function Re(e){if(!(Pe()||typeof MutationObserver>`u`))return new MutationObserver(e)}function F(e,t){return e===t||S(t)&&t.indexOf(e)>-1}async function ze(e,t){try{await document.fonts.load(`${t??`400`} 36px '${e??`Verdana`}'`)}catch{}}function Be(e){return Math.floor(T()*e.length)}function Ve(e,t,n=!0){return e[t!==void 0&&n?t%e.length:Be(e)]}function He(e,t,n,r,i){return Ue(We(e,r??0),t,n,i)}function Ue(e,t,n,r){let i=!0;return(!r||r===P.bottom)&&(i=e.top<t.height+n.x),i&&(!r||r===P.left)&&(i=e.right>n.x),i&&(!r||r===P.right)&&(i=e.left<t.width+n.y),i&&(!r||r===P.top)&&(i=e.bottom>n.y),i}function We(e,t){return{bottom:e.y+t,left:e.x-t,right:e.x+t,top:e.y-t}}function I(e,...t){for(let n of t){if(n==null)continue;if(!de(n)){e=n;continue}let t=Array.isArray(n);t&&(de(e)||!e||!Array.isArray(e))?e=[]:!t&&(de(e)||!e||Array.isArray(e))&&(e={});for(let t in n){if(t===`__proto__`)continue;let r=n[t],i=e;i[t]=de(r)&&Array.isArray(r)?r.map(e=>I(i[t],e)):I(i[t],r)}}return e}function Ge(e,t){return!!Qe(t,t=>t.enable&&F(e,t.mode))}function Ke(e,t,n){L(t,t=>{let r=t.mode;t.enable&&F(e,r)&&qe(t,n)})}function qe(e,t){let n=e.selectors;L(n,n=>{t(n,e)})}function Je(e,t){if(!(!t||!e))return Qe(e,e=>Ne(t,e.selectors))}function Ye(e){return{position:e.getPosition(),radius:e.getRadius(),mass:e.getMass(),velocity:e.velocity,factor:w.create(O(e.options.bounce.horizontal.value),O(e.options.bounce.vertical.value))}}function Xe(e,t){let{x:n,y:r}=e.velocity.sub(t.velocity),[i,a]=[e.position,t.position],{dx:o,dy:s}=j(a,i);if(n*o+r*s<0)return;let c=-Math.atan2(s,o),l=e.mass,u=t.mass,d=e.velocity.rotate(c),f=t.velocity.rotate(c),p=Se(d,f,l,u),m=Se(f,d,l,u),h=p.rotate(-c),g=m.rotate(-c);e.velocity.x=h.x*e.factor.x,e.velocity.y=h.y*e.factor.y,t.velocity.x=g.x*t.factor.x,t.velocity.y=g.y*t.factor.y}function Ze(e,t){let n=We(e.getPosition(),e.getRadius()),r=e.options.bounce,i=Me({pSide:{min:n.left,max:n.right},pOtherSide:{min:n.top,max:n.bottom},rectSide:{min:t.left,max:t.right},rectOtherSide:{min:t.top,max:t.bottom},velocity:e.velocity.x,factor:O(r.horizontal.value)});i.bounced&&(i.velocity!==void 0&&(e.velocity.x=i.velocity),i.position!==void 0&&(e.position.x=i.position));let a=Me({pSide:{min:n.top,max:n.bottom},pOtherSide:{min:n.left,max:n.right},rectSide:{min:t.top,max:t.bottom},rectOtherSide:{min:t.left,max:t.right},velocity:e.velocity.y,factor:O(r.vertical.value)});a.bounced&&(a.velocity!==void 0&&(e.velocity.y=a.velocity),a.position!==void 0&&(e.position.y=a.position))}function L(e,t){return S(e)?e.map((e,n)=>t(e,n)):t(e,0)}function R(e,t,n){return S(e)?Ve(e,t,n):e}function Qe(e,t){return S(e)?e.find((e,n)=>t(e,n)):t(e,0)?e:void 0}function $e(e,t){let n=e.value,r=e.animation,i={delayTime:O(r.delay)*_,enable:r.enable,value:O(e.value)*t,max:k(n)*t,min:ve(n)*t,loops:0,maxLoops:O(r.count),time:0};if(r.enable){switch(i.decay=1-O(r.decay),r.mode){case Te.increase:i.status=N.increasing;break;case Te.decrease:i.status=N.decreasing;break;case Te.random:i.status=T()>=.5?N.increasing:N.decreasing;break}let e=r.mode===Te.auto;switch(r.startValue){case Oe.min:i.value=i.min,e&&(i.status=N.increasing);break;case Oe.max:i.value=i.max,e&&(i.status=N.decreasing);break;case Oe.random:default:i.value=D(i),e&&(i.status=T()>=.5?N.increasing:N.decreasing);break}}return i.initialValue=i.value,i}function et(e,t){if(e.mode!==De.percent){let{mode:t,...n}=e;return n}return`x`in e?{x:e.x/100*t.width,y:e.y/100*t.height}:{width:e.width/100*t.width,height:e.height/100*t.height}}function tt(e,t){return et(e,t)}function nt(e,t,n,r,i){switch(t){case Ee.max:n>=i&&e.destroy();break;case Ee.min:n<=r&&e.destroy();break}}function rt(e,t,n,r,i){if(e.destroyed||!t||!t.enable||(t.maxLoops??0)>0&&(t.loops??0)>(t.maxLoops??0))return;let a=(t.velocity??0)*i.factor,o=t.min,s=t.max,c=t.decay??1;if(t.time||=0,(t.delayTime??0)>0&&t.time<(t.delayTime??0)&&(t.time+=i.value),!((t.delayTime??0)>0&&t.time<(t.delayTime??0))){switch(t.status){case N.increasing:t.value>=s?(n?t.status=N.decreasing:t.value-=s,t.loops||=0,t.loops++):t.value+=a;break;case N.decreasing:t.value<=o?(n?t.status=N.increasing:t.value+=s,t.loops||=0,t.loops++):t.value-=a}t.velocity&&c!==1&&(t.velocity*=c),nt(e,r,t.value,o,s),e.destroyed||(t.value=E(t.value,o,s))}}function it(e){let t=document.createElement(`div`).style;if(!e)return t;for(let n in e){let r=e[n];if(!Object.prototype.hasOwnProperty.call(e,n)||C(r))continue;let i=e.getPropertyValue?.(r);if(!i)continue;let a=e.getPropertyPriority?.(r);a?t.setProperty?.(r,i,a):t.setProperty?.(r,i)}return t}function at(e){let t=document.createElement(`div`).style,n={width:`100%`,height:`100%`,margin:`0`,padding:`0`,borderWidth:`0`,position:`fixed`,zIndex:e.toString(10),"z-index":e.toString(10),top:`0`,left:`0`};for(let e in n){let r=n[e];t.setProperty(e,r)}return t}var ot=je(at),st;(function(e){e.darken=`darken`,e.enlighten=`enlighten`})(st||={});function ct(e,t){if(t){for(let n of e.colorManagers.values())if(t.startsWith(n.stringPrefix))return n.parseString(t)}}function z(e,t,n,r=!0){if(!t)return;let i=le(t)?{value:t}:t;if(le(i.value))return lt(e,i.value,n,r);if(S(i.value))return z(e,{value:Ve(i.value,n,r)});for(let t of e.colorManagers.values()){let e=t.handleRangeColor(i);if(e)return e}}function lt(e,t,n,r=!0){if(!t)return;let i=le(t)?{value:t}:t;if(le(i.value))return i.value===`random`?ht():ft(e,i.value);if(S(i.value))return lt(e,{value:Ve(i.value,n,r)});for(let t of e.colorManagers.values()){let e=t.handleColor(i);if(e)return e}}function ut(e,t,n,r=!0){let i=z(e,t,n,r);return i?dt(i):void 0}function dt(e){let t=e.r/255,n=e.g/255,r=e.b/255,i=Math.max(t,n,r),a=Math.min(t,n,r),o={h:0,l:(i+a)*g,s:0};return i!==a&&(o.s=o.l<.5?(i-a)/(i+a):(i-a)/(2-i-a),o.h=t===i?(n-r)/(i-a):o.h=n===i?2+(r-t)/(i-a):4+(t-n)/(i-a)),o.l*=100,o.s*=100,o.h*=60,o.h<0&&(o.h+=360),o.h>=360&&(o.h-=360),o}function ft(e,t){return ct(e,t)}function pt(e){let t=(e.h%360+360)%360,n=Math.max(0,Math.min(100,e.s)),r=Math.max(0,Math.min(100,e.l)),i=t/360,a=n/100,o=r/100;if(n===0){let e=Math.round(o*255);return{r:e,g:e,b:e}}let s=(e,t,n)=>(n<0&&n++,n>1&&n--,n*6<1?e+(t-e)*6*n:n*2<1?t:n*3<2?e+(t-e)*(.6666666666666666-n)*6:e),c=o<.5?o*(1+a):o+a-o*a,l=2*o-c,u=1/3,d=Math.min(255,255*s(l,c,i+u)),f=Math.min(255,255*s(l,c,i)),p=Math.min(255,255*s(l,c,i-u));return{r:Math.round(d),g:Math.round(f),b:Math.round(p)}}function mt(e){let t=pt(e);return{a:e.a,b:t.b,g:t.g,r:t.r}}function ht(e){let t=e??0;return{b:Math.floor(D(A(t,256))),g:Math.floor(D(A(t,256))),r:Math.floor(D(A(t,256)))}}function B(e,t){return`rgba(${e.r}, ${e.g}, ${e.b}, ${t??1})`}function gt(e,t){return`hsla(${e.h}, ${e.s}%, ${e.l}%, ${t??1})`}function _t(e,t,n,r){let i=e,a=t;return i.r===void 0&&(i=pt(e)),a.r===void 0&&(a=pt(t)),{b:_e(i.b,a.b,n,r),g:_e(i.g,a.g,n,r),r:_e(i.r,a.r,n,r)}}function vt(e,t,n){if(n===`random`)return ht();if(n===`mid`){let n=e.getFillColor()??e.getStrokeColor(),r=t?.getFillColor()??t?.getStrokeColor();if(n&&r&&t)return _t(n,r,e.getRadius(),t.getRadius());{let e=n??r;if(e)return pt(e)}}else return n}function yt(e,t,n,r){let i=le(t)?t:t.value;return i===`random`?r?z(e,{value:i}):n?y:`mid`:i===`mid`?`mid`:z(e,{value:i})}function bt(e){return e===void 0?void 0:{h:e.h.value,s:e.s.value,l:e.l.value}}function xt(e,t,n){let r={h:{enable:!1,value:e.h},s:{enable:!1,value:e.s},l:{enable:!1,value:e.l}};return t&&(St(r.h,t.h,n),St(r.s,t.s,n),St(r.l,t.l,n)),r}function St(e,t,n){e.enable=t.enable,e.enable?(e.velocity=O(t.speed)/100*n,e.decay=1-O(t.decay),e.status=N.increasing,e.loops=0,e.maxLoops=O(t.count),e.time=0,e.delayTime=O(t.delay)*_,t.sync||(e.velocity*=T(),e.value*=T()),e.initialValue=e.value,e.offset=A(t.offset)):e.velocity=0}function Ct(e,t,n,r){if(!e||!e.enable||(e.maxLoops??0)>0&&(e.loops??0)>(e.maxLoops??0)||(e.time||=0,(e.delayTime??0)>0&&e.time<(e.delayTime??0)&&(e.time+=r.value),(e.delayTime??0)>0&&e.time<(e.delayTime??0)))return;let i=e.offset?D(e.offset):0,a=(e.velocity??0)*r.factor+i*3.6,o=e.decay??1,s=k(t),c=ve(t);!n||e.status===N.increasing?(e.value+=a,e.value>s&&(e.loops||=0,e.loops++,n?e.status=N.decreasing:e.value-=s)):(e.value-=a,e.value<0&&(e.loops||=0,e.loops++,e.status=N.increasing)),e.velocity&&o!==1&&(e.velocity*=o),e.value=E(e.value,c,s)}function wt(e,t){if(!e)return;let{h:n,s:r,l:i}=e,a={h:{min:0,max:360},s:{min:0,max:100},l:{min:0,max:100}};n&&Ct(n,a.h,!1,t),r&&Ct(r,a.s,!0,t),i&&Ct(i,a.l,!0,t)}function Tt(e,t,n){e.beginPath(),e.moveTo(t.x,t.y),e.lineTo(n.x,n.y),e.closePath()}function Et(e,t,n){e.fillStyle=n??`rgba(0,0,0,0)`,e.fillRect(v.x,v.y,t.width,t.height)}function Dt(e,t,n,r){n&&(e.globalAlpha=r,e.drawImage(n,v.x,v.y,t.width,t.height),e.globalAlpha=1)}function Ot(e,t){e.clearRect(v.x,v.y,t.width,t.height)}function kt(e){let{container:t,context:n,particle:r,delta:i,colorStyles:a,backgroundMask:o,composite:s,radius:c,opacity:l,shadow:u,transform:d}=e,f=r.getPosition(),p=r.rotation+(r.pathRotation?r.velocity.angle:0),m={sin:Math.sin(p),cos:Math.cos(p)},h=!!p,g={a:m.cos*(d.a??ee.a),b:h?m.sin*(d.b??1):d.b??ee.b,c:h?-m.sin*(d.c??1):d.c??ee.c,d:m.cos*(d.d??ee.d)};n.setTransform(g.a,g.b,g.c,g.d,f.x,f.y),o&&(n.globalCompositeOperation=s);let _=r.shadowColor;u.enable&&_&&(n.shadowBlur=u.blur,n.shadowColor=B(_),n.shadowOffsetX=u.offset.x,n.shadowOffsetY=u.offset.y),a.fill&&(n.fillStyle=a.fill);let v=r.strokeWidth??0;n.lineWidth=v,a.stroke&&(n.strokeStyle=a.stroke);let y={container:t,context:n,particle:r,radius:c,opacity:l,delta:i,transformData:g,strokeWidth:v};jt(y),Mt(y),At(y),n.globalCompositeOperation=`source-over`,n.resetTransform()}function At(e){let{container:t,context:n,particle:r,radius:i,opacity:a,delta:o,transformData:s}=e;if(!r.effect)return;let c=t.effectDrawers.get(r.effect);c&&c.draw({context:n,particle:r,radius:i,opacity:a,delta:o,pixelRatio:t.retina.pixelRatio,transformData:{...s}})}function jt(e){let{container:t,context:n,particle:r,radius:i,opacity:a,delta:o,strokeWidth:s,transformData:c}=e;if(!r.shape)return;let l=t.shapeDrawers.get(r.shape);l&&(n.beginPath(),l.draw({context:n,particle:r,radius:i,opacity:a,delta:o,pixelRatio:t.retina.pixelRatio,transformData:{...c}}),r.shapeClose&&n.closePath(),s>0&&n.stroke(),r.shapeFill&&n.fill())}function Mt(e){let{container:t,context:n,particle:r,radius:i,opacity:a,delta:o,transformData:s}=e;if(!r.shape)return;let c=t.shapeDrawers.get(r.shape);c?.afterDraw&&c.afterDraw({context:n,particle:r,radius:i,opacity:a,delta:o,pixelRatio:t.retina.pixelRatio,transformData:{...s}})}function Nt(e,t,n){t.draw&&t.draw(e,n)}function Pt(e,t,n,r){t.drawParticle&&t.drawParticle(e,n,r)}function Ft(e,t,n){return{h:e.h,s:e.s,l:e.l+(t===st.darken?-1:1)*n}}function It(e,t,n){let r=t[n];r!==void 0&&(e[n]=(e[n]??1)*r)}function Lt(e,t,n=!1){if(!t)return;let r=e;if(!r)return;let i=r.style;if(!i)return;let a=new Set;for(let e in i)Object.prototype.hasOwnProperty.call(i,e)&&a.add(i[e]);for(let e in t)Object.prototype.hasOwnProperty.call(t,e)&&a.add(t[e]);for(let e of a){let r=t.getPropertyValue(e);r?i.setProperty(e,r,n?`important`:``):i.removeProperty(e)}}var Rt=class{constructor(e,t){this.container=e,this._applyPostDrawUpdaters=e=>{for(let t of this._postDrawUpdaters)t.afterDraw?.(e)},this._applyPreDrawUpdaters=(e,t,n,r,i,a)=>{for(let o of this._preDrawUpdaters){if(o.getColorStyles){let{fill:a,stroke:s}=o.getColorStyles(t,e,n,r);a&&(i.fill=a),s&&(i.stroke=s)}if(o.getTransformValues){let e=o.getTransformValues(t);for(let t in e)It(a,e,t)}o.beforeDraw?.(t)}},this._applyResizePlugins=()=>{for(let e of this._resizePlugins)e.resize?.()},this._getPluginParticleColors=e=>{let t,n;for(let r of this._colorPlugins)if(!t&&r.particleFillColor&&(t=ut(this._engine,r.particleFillColor(e))),!n&&r.particleStrokeColor&&(n=ut(this._engine,r.particleStrokeColor(e))),t&&n)break;return[t,n]},this._initCover=async()=>{let e=this.container.actualOptions.backgroundMask.cover,t=e.color;if(t){let n=z(this._engine,t);if(n){let t={...n,a:e.opacity};this._coverColorStyle=B(t,t.a)}}else await new Promise((t,n)=>{if(!e.image)return;let r=document.createElement(`img`);r.addEventListener(`load`,()=>{this._coverImage={image:r,opacity:e.opacity},t()}),r.addEventListener(`error`,e=>{n(e.error)}),r.src=e.image})},this._initStyle=()=>{let e=this.element,t=this.container.actualOptions;if(e){this._fullScreen?this._setFullScreenStyle():this._resetOriginalStyle();for(let n in t.style){if(!n||!t.style||!Object.prototype.hasOwnProperty.call(t.style,n))continue;let r=t.style[n];r&&e.style.setProperty(n,r,`important`)}}},this._initTrail=async()=>{let e=this.container.actualOptions.particles.move.trail,t=e.fill;if(!e.enable)return;let n=1/e.length;if(t.color){let e=z(this._engine,t.color);if(!e)return;this._trailFill={color:{...e},opacity:n}}else await new Promise((e,r)=>{if(!t.image)return;let i=document.createElement(`img`);i.addEventListener(`load`,()=>{this._trailFill={image:i,opacity:n},e()}),i.addEventListener(`error`,e=>{r(e.error)}),i.src=t.image})},this._paintBase=e=>{this.draw(t=>Et(t,this.size,e))},this._paintImage=(e,t)=>{this.draw(n=>Dt(n,this.size,e,t))},this._repairStyle=()=>{let e=this.element;if(!e)return;this._safeMutationObserver(e=>e.disconnect()),this._initStyle(),this.initBackground();let t=this._pointerEvents;e.style.pointerEvents=t,e.setAttribute(`pointer-events`,t),this._safeMutationObserver(t=>{!e||!(e instanceof Node)||t.observe(e,{attributes:!0})})},this._resetOriginalStyle=()=>{let e=this.element,t=this._originalStyle;!e||!t||Lt(e,t,!0)},this._safeMutationObserver=e=>{this._mutationObserver&&e(this._mutationObserver)},this._setFullScreenStyle=()=>{let e=this.element;e&&Lt(e,ot(this.container.actualOptions.fullScreen.zIndex),!0)},this._engine=t,this._standardSize={height:0,width:0};let n=e.retina.pixelRatio,r=this._standardSize;this.size={height:r.height*n,width:r.width*n},this._context=null,this._generated=!1,this._preDrawUpdaters=[],this._postDrawUpdaters=[],this._resizePlugins=[],this._colorPlugins=[],this._pointerEvents=`none`}get _fullScreen(){return this.container.actualOptions.fullScreen.enable}clear(){let e=this.container.actualOptions,t=e.particles.move.trail,n=this._trailFill;e.backgroundMask.enable?this.paint():t.enable&&t.length>0&&n?n.color?this._paintBase(B(n.color,n.opacity)):n.image&&this._paintImage(n.image,n.opacity):e.clear&&this.draw(e=>{Ot(e,this.size)})}destroy(){this.stop(),this._generated?(this.element?.remove(),this.element=void 0):this._resetOriginalStyle(),this._preDrawUpdaters=[],this._postDrawUpdaters=[],this._resizePlugins=[],this._colorPlugins=[]}draw(e){let t=this._context;if(t)return e(t)}drawAsync(e){let t=this._context;if(t)return e(t)}drawParticle(e,t){if(e.spawning||e.destroyed)return;let n=e.getRadius();if(n<=0)return;let r=e.getFillColor(),i=e.getStrokeColor()??r,[a,o]=this._getPluginParticleColors(e);a||=r,o||=i,!(!a&&!o)&&this.draw(r=>{let i=this.container,s=i.actualOptions,c=e.options.zIndex,l=1-e.zIndexFactor,u=l**c.opacityRate,d=e.bubble.opacity??e.opacity?.value??1,f=e.strokeOpacity??d,p=d*u,m=f*u,h={},g={fill:a?gt(a,p):void 0};g.stroke=o?gt(o,m):g.fill,this._applyPreDrawUpdaters(r,e,n,p,g,h),kt({container:i,context:r,particle:e,delta:t,colorStyles:g,backgroundMask:s.backgroundMask.enable,composite:s.backgroundMask.composite,radius:n*l**c.sizeRate,opacity:p,shadow:e.options.shadow,transform:h}),this._applyPostDrawUpdaters(e)})}drawParticlePlugin(e,t,n){this.draw(r=>Pt(r,e,t,n))}drawPlugin(e,t){this.draw(n=>Nt(n,e,t))}async init(){this._safeMutationObserver(e=>e.disconnect()),this._mutationObserver=Re(e=>{for(let t of e)t.type===`attributes`&&t.attributeName===`style`&&this._repairStyle()}),this.resize(),this._initStyle(),await this._initCover();try{await this._initTrail()}catch(e){Ae().error(e)}this.initBackground(),this._safeMutationObserver(e=>{!this.element||!(this.element instanceof Node)||e.observe(this.element,{attributes:!0})}),this.initUpdaters(),this.initPlugins(),this.paint()}initBackground(){let e=this.container.actualOptions.background,t=this.element;if(!t)return;let n=t.style;if(n){if(e.color){let t=z(this._engine,e.color);n.backgroundColor=t?B(t,e.opacity):``}else n.backgroundColor=``;n.backgroundImage=e.image||``,n.backgroundPosition=e.position||``,n.backgroundRepeat=e.repeat||``,n.backgroundSize=e.size||``}}initPlugins(){this._resizePlugins=[];for(let e of this.container.plugins.values())e.resize&&this._resizePlugins.push(e),(e.particleFillColor??e.particleStrokeColor)&&this._colorPlugins.push(e)}initUpdaters(){this._preDrawUpdaters=[],this._postDrawUpdaters=[];for(let e of this.container.particles.updaters)e.afterDraw&&this._postDrawUpdaters.push(e),(e.getColorStyles??e.getTransformValues??e.beforeDraw)&&this._preDrawUpdaters.push(e)}loadCanvas(e){this._generated&&this.element&&this.element.remove(),this._generated=e.dataset&&`generated`in e.dataset?e.dataset[r]===`true`:this._generated,this.element=e,this.element.ariaHidden=`true`,this._originalStyle=it(this.element.style);let t=this._standardSize;t.height=e.offsetHeight,t.width=e.offsetWidth;let n=this.container.retina.pixelRatio,i=this.size;e.height=i.height=t.height*n,e.width=i.width=t.width*n,this._context=this.element.getContext(`2d`),this._safeMutationObserver(e=>e.disconnect()),this.container.retina.init(),this.initBackground(),this._safeMutationObserver(e=>{!this.element||!(this.element instanceof Node)||e.observe(this.element,{attributes:!0})})}paint(){let e=this.container.actualOptions;this.draw(t=>{e.backgroundMask.enable&&e.backgroundMask.cover?(Ot(t,this.size),this._coverImage?this._paintImage(this._coverImage.image,this._coverImage.opacity):this._coverColorStyle?this._paintBase(this._coverColorStyle):this._paintBase()):this._paintBase()})}resize(){if(!this.element)return!1;let e=this.container,t=e.canvas._standardSize,n={width:this.element.offsetWidth,height:this.element.offsetHeight},r=e.retina.pixelRatio,i={width:n.width*r,height:n.height*r};if(n.height===t.height&&n.width===t.width&&i.height===this.element.height&&i.width===this.element.width)return!1;let a={...t};t.height=n.height,t.width=n.width;let o=this.size;return this.element.width=o.width=i.width,this.element.height=o.height=i.height,this.container.started&&e.particles.setResizeFactor({width:t.width/a.width,height:t.height/a.height}),!0}setPointerEvents(e){this.element&&(this._pointerEvents=e,this._repairStyle())}stop(){this._safeMutationObserver(e=>e.disconnect()),this._mutationObserver=void 0,this.draw(e=>Ot(e,this.size))}async windowResize(){if(!this.element||!this.resize())return;let e=this.container,t=e.updateActualOptions();e.particles.setDensity(),this._applyResizePlugins(),t&&await e.refresh()}},zt;(function(e){e.canvas=`canvas`,e.parent=`parent`,e.window=`window`})(zt||={});function V(e,t,n,r,i){if(r){let r={passive:!0};ce(i)?r.capture=i:i!==void 0&&(r=i),e.addEventListener(t,n,r)}else{let r=i;e.removeEventListener(t,n,r)}}var Bt=class{constructor(e){this.container=e,this._doMouseTouchClick=e=>{let t=this.container,n=t.actualOptions;if(this._canPush){let e=t.interactivity.mouse,r=e.position;if(!r)return;e.clickPosition={...r},e.clickTime=new Date().getTime();let i=n.interactivity.events.onClick;L(i.mode,e=>this.container.handleClickMode(e))}e.type===`touchend`&&setTimeout(()=>this._mouseTouchFinish(),500)},this._handleThemeChange=e=>{let t=e,n=this.container,r=n.options,i=r.defaultThemes,a=t.matches?i.dark:i.light;r.themes.find(e=>e.name===a)?.default.auto&&n.loadTheme(a)},this._handleVisibilityChange=()=>{let e=this.container,t=e.actualOptions;this._mouseTouchFinish(),t.pauseOnBlur&&(document?.hidden?(e.pageHidden=!0,e.pause()):(e.pageHidden=!1,e.animationStatus?e.play(!0):e.draw(!0)))},this._handleWindowResize=()=>{this._resizeTimeout&&(clearTimeout(this._resizeTimeout),delete this._resizeTimeout);let e=async()=>{await this.container.canvas?.windowResize()};this._resizeTimeout=setTimeout(()=>void e(),this.container.actualOptions.interactivity.events.resize.delay*_)},this._manageInteractivityListeners=(e,t)=>{let n=this._handlers,r=this.container,o=r.actualOptions,s=r.interactivity.element;if(!s)return;let p=s,m=r.canvas;m.setPointerEvents(p===m.element?`initial`:`none`),(o.interactivity.events.onHover.enable||o.interactivity.events.onClick.enable)&&(V(s,c,n.mouseMove,t),V(s,l,n.touchStart,t),V(s,d,n.touchMove,t),o.interactivity.events.onClick.enable?(V(s,u,n.touchEndClick,t),V(s,a,n.mouseUp,t),V(s,i,n.mouseDown,t)):V(s,u,n.touchEnd,t),V(s,e,n.mouseLeave,t),V(s,f,n.touchCancel,t))},this._manageListeners=e=>{let t=this._handlers,n=this.container,r=n.actualOptions.interactivity.detectsOn,i=n.canvas.element,a=o;r===zt.window?(n.interactivity.element=window,a=s):r===zt.parent&&i?n.interactivity.element=i.parentElement??i.parentNode:n.interactivity.element=i,this._manageMediaMatch(e),this._manageResize(e),this._manageInteractivityListeners(a,e),document&&V(document,m,t.visibilityChange,e,!1)},this._manageMediaMatch=e=>{let t=this._handlers,n=Ie(`(prefers-color-scheme: dark)`);if(n){if(n.addEventListener!==void 0){V(n,`change`,t.themeChange,e);return}n.addListener!==void 0&&(e?n.addListener(t.oldThemeChange):n.removeListener(t.oldThemeChange))}},this._manageResize=e=>{let t=this._handlers,n=this.container;if(!n.actualOptions.interactivity.events.resize)return;if(typeof ResizeObserver>`u`){V(window,p,t.resize,e);return}let r=n.canvas.element;this._resizeObserver&&!e?(r&&this._resizeObserver.unobserve(r),this._resizeObserver.disconnect(),delete this._resizeObserver):!this._resizeObserver&&e&&r&&(this._resizeObserver=new ResizeObserver(e=>{e.find(e=>e.target===r)&&this._handleWindowResize()}),this._resizeObserver.observe(r))},this._mouseDown=()=>{let{interactivity:e}=this.container;if(!e)return;let{mouse:t}=e;t.clicking=!0,t.downPosition=t.position},this._mouseTouchClick=e=>{let t=this.container,n=t.actualOptions,{mouse:r}=t.interactivity;r.inside=!0;let i=!1,a=r.position;if(!(!a||!n.interactivity.events.onClick.enable)){for(let e of t.plugins.values())if(e.clickPositionValid&&(i=e.clickPositionValid(a),i))break;i||this._doMouseTouchClick(e),r.clicking=!1}},this._mouseTouchFinish=()=>{let e=this.container.interactivity;if(!e)return;let t=e.mouse;delete t.position,delete t.clickPosition,delete t.downPosition,e.status=o,t.inside=!1,t.clicking=!1},this._mouseTouchMove=e=>{let t=this.container,n=t.actualOptions,r=t.interactivity,i=t.canvas.element;if(!r?.element)return;r.mouse.inside=!0;let a;if(e.type.startsWith(`pointer`)){this._canPush=!0;let t=e;if(r.element===window){if(i){let e=i.getBoundingClientRect();a={x:t.clientX-e.left,y:t.clientY-e.top}}}else if(n.interactivity.detectsOn===zt.parent){let e=t.target,n=t.currentTarget;if(e&&n&&i){let r=e.getBoundingClientRect(),o=n.getBoundingClientRect(),s=i.getBoundingClientRect();a={x:t.offsetX+2*r.left-(o.left+s.left),y:t.offsetY+2*r.top-(o.top+s.top)}}else a={x:t.offsetX??t.clientX,y:t.offsetY??t.clientY}}else t.target===i&&(a={x:t.offsetX??t.clientX,y:t.offsetY??t.clientY})}else if(this._canPush=e.type!==`touchmove`,i){let t=e,n=t.touches[t.touches.length-1],r=i.getBoundingClientRect();a={x:n.clientX-(r.left??0),y:n.clientY-(r.top??0)}}let o=t.retina.pixelRatio;a&&(a.x*=o,a.y*=o),r.mouse.position=a,r.status=c},this._touchEnd=e=>{let t=e,n=Array.from(t.changedTouches);for(let e of n)this._touches.delete(e.identifier);this._mouseTouchFinish()},this._touchEndClick=e=>{let t=e,n=Array.from(t.changedTouches);for(let e of n)this._touches.delete(e.identifier);this._mouseTouchClick(e)},this._touchStart=e=>{let t=e,n=Array.from(t.changedTouches);for(let e of n)this._touches.set(e.identifier,performance.now());this._mouseTouchMove(e)},this._canPush=!0,this._touches=new Map,this._handlers={mouseDown:()=>this._mouseDown(),mouseLeave:()=>this._mouseTouchFinish(),mouseMove:e=>this._mouseTouchMove(e),mouseUp:e=>this._mouseTouchClick(e),touchStart:e=>this._touchStart(e),touchMove:e=>this._mouseTouchMove(e),touchEnd:e=>this._touchEnd(e),touchCancel:e=>this._touchEnd(e),touchEndClick:e=>this._touchEndClick(e),visibilityChange:()=>this._handleVisibilityChange(),themeChange:e=>this._handleThemeChange(e),oldThemeChange:e=>this._handleThemeChange(e),resize:()=>{this._handleWindowResize()}}}addListeners(){this._manageListeners(!0)}removeListeners(){this._manageListeners(!1)}},H;(function(e){e.configAdded=`configAdded`,e.containerInit=`containerInit`,e.particlesSetup=`particlesSetup`,e.containerStarted=`containerStarted`,e.containerStopped=`containerStopped`,e.containerDestroyed=`containerDestroyed`,e.containerPaused=`containerPaused`,e.containerPlay=`containerPlay`,e.containerBuilt=`containerBuilt`,e.particleAdded=`particleAdded`,e.particleDestroyed=`particleDestroyed`,e.particleRemoved=`particleRemoved`})(H||={});var U=class e{constructor(){this.value=``}static create(t,n){let r=new e;return r.load(t),n!==void 0&&(le(n)||S(n)?r.load({value:n}):r.load(n)),r}load(e){C(e)||C(e.value)||(this.value=e.value)}},Vt=class{constructor(){this.color=new U,this.color.value=``,this.image=``,this.position=``,this.repeat=``,this.size=``,this.opacity=1}load(e){C(e)||(e.color!==void 0&&(this.color=U.create(this.color,e.color)),e.image!==void 0&&(this.image=e.image),e.position!==void 0&&(this.position=e.position),e.repeat!==void 0&&(this.repeat=e.repeat),e.size!==void 0&&(this.size=e.size),e.opacity!==void 0&&(this.opacity=e.opacity))}},Ht=class{constructor(){this.opacity=1}load(e){C(e)||(e.color!==void 0&&(this.color=U.create(this.color,e.color)),e.image!==void 0&&(this.image=e.image),e.opacity!==void 0&&(this.opacity=e.opacity))}},Ut=class{constructor(){this.composite=`destination-out`,this.cover=new Ht,this.enable=!1}load(e){if(!C(e)){if(e.composite!==void 0&&(this.composite=e.composite),e.cover!==void 0){let t=e.cover,n=le(e.cover)?{color:e.cover}:e.cover;this.cover.load(t.color!==void 0||t.image!==void 0?t:{color:n})}e.enable!==void 0&&(this.enable=e.enable)}}},Wt=class{constructor(){this.enable=!0,this.zIndex=0}load(e){C(e)||(e.enable!==void 0&&(this.enable=e.enable),e.zIndex!==void 0&&(this.zIndex=e.zIndex))}},Gt=class{constructor(){this.enable=!1,this.mode=[]}load(e){C(e)||(e.enable!==void 0&&(this.enable=e.enable),e.mode!==void 0&&(this.mode=e.mode))}},Kt;(function(e){e.circle=`circle`,e.rectangle=`rectangle`})(Kt||={});var qt=class{constructor(){this.selectors=[],this.enable=!1,this.mode=[],this.type=Kt.circle}load(e){C(e)||(e.selectors!==void 0&&(this.selectors=e.selectors),e.enable!==void 0&&(this.enable=e.enable),e.mode!==void 0&&(this.mode=e.mode),e.type!==void 0&&(this.type=e.type))}},Jt=class{constructor(){this.enable=!1,this.force=2,this.smooth=10}load(e){C(e)||(e.enable!==void 0&&(this.enable=e.enable),e.force!==void 0&&(this.force=e.force),e.smooth!==void 0&&(this.smooth=e.smooth))}},Yt=class{constructor(){this.enable=!1,this.mode=[],this.parallax=new Jt}load(e){C(e)||(e.enable!==void 0&&(this.enable=e.enable),e.mode!==void 0&&(this.mode=e.mode),this.parallax.load(e.parallax))}},Xt=class{constructor(){this.delay=.5,this.enable=!0}load(e){C(e)||(e.delay!==void 0&&(this.delay=e.delay),e.enable!==void 0&&(this.enable=e.enable))}},Zt=class{constructor(){this.onClick=new Gt,this.onDiv=new qt,this.onHover=new Yt,this.resize=new Xt}load(e){if(C(e))return;this.onClick.load(e.onClick);let t=e.onDiv;t!==void 0&&(this.onDiv=L(t,e=>{let t=new qt;return t.load(e),t})),this.onHover.load(e.onHover),this.resize.load(e.resize)}},Qt=class{constructor(e,t){this._engine=e,this._container=t}load(e){if(C(e)||!this._container)return;let t=this._engine.interactors.get(this._container);if(t)for(let n of t)n.loadModeOptions&&n.loadModeOptions(this,e)}},$t=class{constructor(e,t){this.detectsOn=zt.window,this.events=new Zt,this.modes=new Qt(e,t)}load(e){if(C(e))return;let t=e.detectsOn;t!==void 0&&(this.detectsOn=t),this.events.load(e.events),this.modes.load(e.modes)}},en=class{load(e){C(e)||(e.position&&(this.position={x:e.position.x??50,y:e.position.y??50,mode:e.position.mode??De.percent}),e.options&&(this.options=I({},e.options)))}},tn;(function(e){e.screen=`screen`,e.canvas=`canvas`})(tn||={});var nn=class{constructor(){this.maxWidth=1/0,this.options={},this.mode=tn.canvas}load(e){C(e)||(C(e.maxWidth)||(this.maxWidth=e.maxWidth),C(e.mode)||(e.mode===tn.screen?this.mode=tn.screen:this.mode=tn.canvas),C(e.options)||(this.options=I({},e.options)))}},rn;(function(e){e.any=`any`,e.dark=`dark`,e.light=`light`})(rn||={});var an=class{constructor(){this.auto=!1,this.mode=rn.any,this.value=!1}load(e){C(e)||(e.auto!==void 0&&(this.auto=e.auto),e.mode!==void 0&&(this.mode=e.mode),e.value!==void 0&&(this.value=e.value))}},on=class{constructor(){this.name=``,this.default=new an}load(e){C(e)||(e.name!==void 0&&(this.name=e.name),this.default.load(e.default),e.options!==void 0&&(this.options=I({},e.options)))}},sn=class{constructor(){this.count=0,this.enable=!1,this.speed=1,this.decay=0,this.delay=0,this.sync=!1}load(e){C(e)||(e.count!==void 0&&(this.count=A(e.count)),e.enable!==void 0&&(this.enable=e.enable),e.speed!==void 0&&(this.speed=A(e.speed)),e.decay!==void 0&&(this.decay=A(e.decay)),e.delay!==void 0&&(this.delay=A(e.delay)),e.sync!==void 0&&(this.sync=e.sync))}},cn=class extends sn{constructor(){super(),this.mode=Te.auto,this.startValue=Oe.random}load(e){super.load(e),!C(e)&&(e.mode!==void 0&&(this.mode=e.mode),e.startValue!==void 0&&(this.startValue=e.startValue))}},ln=class extends sn{constructor(){super(),this.offset=0,this.sync=!0}load(e){super.load(e),!C(e)&&e.offset!==void 0&&(this.offset=A(e.offset))}},un=class{constructor(){this.h=new ln,this.s=new ln,this.l=new ln}load(e){C(e)||(this.h.load(e.h),this.s.load(e.s),this.l.load(e.l))}},dn=class e extends U{constructor(){super(),this.animation=new un}static create(t,n){let r=new e;return r.load(t),n!==void 0&&(le(n)||S(n)?r.load({value:n}):r.load(n)),r}load(e){if(super.load(e),C(e))return;let t=e.animation;t!==void 0&&(t.enable===void 0?this.animation.load(e.animation):this.animation.h.load(t))}},fn;(function(e){e.absorb=`absorb`,e.bounce=`bounce`,e.destroy=`destroy`})(fn||={});var pn=class{constructor(){this.speed=2}load(e){C(e)||e.speed!==void 0&&(this.speed=e.speed)}},mn=class{constructor(){this.enable=!0,this.retries=0}load(e){C(e)||(e.enable!==void 0&&(this.enable=e.enable),e.retries!==void 0&&(this.retries=e.retries))}},hn=class{constructor(){this.value=0}load(e){C(e)||C(e.value)||(this.value=A(e.value))}},gn=class extends hn{constructor(){super(),this.animation=new sn}load(e){if(super.load(e),C(e))return;let t=e.animation;t!==void 0&&this.animation.load(t)}},_n=class extends gn{constructor(){super(),this.animation=new cn}load(e){super.load(e)}},vn=class extends hn{constructor(){super(),this.value=1}},yn=class{constructor(){this.horizontal=new vn,this.vertical=new vn}load(e){C(e)||(this.horizontal.load(e.horizontal),this.vertical.load(e.vertical))}},bn=class{constructor(){this.absorb=new pn,this.bounce=new yn,this.enable=!1,this.maxSpeed=50,this.mode=fn.bounce,this.overlap=new mn}load(e){C(e)||(this.absorb.load(e.absorb),this.bounce.load(e.bounce),e.enable!==void 0&&(this.enable=e.enable),e.maxSpeed!==void 0&&(this.maxSpeed=A(e.maxSpeed)),e.mode!==void 0&&(this.mode=e.mode),this.overlap.load(e.overlap))}},xn=class{constructor(){this.close=!0,this.fill=!0,this.options={},this.type=[]}load(e){if(C(e))return;let t=e.options;if(t!==void 0)for(let e in t){let n=t[e];n&&(this.options[e]=I(this.options[e]??{},n))}e.close!==void 0&&(this.close=e.close),e.fill!==void 0&&(this.fill=e.fill),e.type!==void 0&&(this.type=e.type)}},Sn=class{constructor(){this.offset=0,this.value=90}load(e){C(e)||(e.offset!==void 0&&(this.offset=A(e.offset)),e.value!==void 0&&(this.value=A(e.value)))}},Cn=class{constructor(){this.distance=200,this.enable=!1,this.rotate={x:3e3,y:3e3}}load(e){if(!C(e)&&(e.distance!==void 0&&(this.distance=A(e.distance)),e.enable!==void 0&&(this.enable=e.enable),e.rotate)){let t=e.rotate.x;t!==void 0&&(this.rotate.x=t);let n=e.rotate.y;n!==void 0&&(this.rotate.y=n)}}},wn=class{constructor(){this.x=50,this.y=50,this.mode=De.percent,this.radius=0}load(e){C(e)||(e.x!==void 0&&(this.x=e.x),e.y!==void 0&&(this.y=e.y),e.mode!==void 0&&(this.mode=e.mode),e.radius!==void 0&&(this.radius=e.radius))}},Tn=class{constructor(){this.acceleration=9.81,this.enable=!1,this.inverse=!1,this.maxSpeed=50}load(e){C(e)||(e.acceleration!==void 0&&(this.acceleration=A(e.acceleration)),e.enable!==void 0&&(this.enable=e.enable),e.inverse!==void 0&&(this.inverse=e.inverse),e.maxSpeed!==void 0&&(this.maxSpeed=A(e.maxSpeed)))}},En=class{constructor(){this.clamp=!0,this.delay=new hn,this.enable=!1,this.options={}}load(e){C(e)||(e.clamp!==void 0&&(this.clamp=e.clamp),this.delay.load(e.delay),e.enable!==void 0&&(this.enable=e.enable),this.generator=e.generator,e.options&&(this.options=I(this.options,e.options)))}},Dn=class{load(e){C(e)||(e.color!==void 0&&(this.color=U.create(this.color,e.color)),e.image!==void 0&&(this.image=e.image))}},On=class{constructor(){this.enable=!1,this.length=10,this.fill=new Dn}load(e){C(e)||(e.enable!==void 0&&(this.enable=e.enable),e.fill!==void 0&&this.fill.load(e.fill),e.length!==void 0&&(this.length=e.length))}},W;(function(e){e.bounce=`bounce`,e.none=`none`,e.out=`out`,e.destroy=`destroy`,e.split=`split`})(W||={});var kn=class{constructor(){this.default=W.out}load(e){C(e)||(e.default!==void 0&&(this.default=e.default),this.bottom=e.bottom??e.default,this.left=e.left??e.default,this.right=e.right??e.default,this.top=e.top??e.default)}},An=class{constructor(){this.acceleration=0,this.enable=!1}load(e){C(e)||(e.acceleration!==void 0&&(this.acceleration=A(e.acceleration)),e.enable!==void 0&&(this.enable=e.enable),e.position&&(this.position=I({},e.position)))}},jn=class{constructor(){this.angle=new Sn,this.attract=new Cn,this.center=new wn,this.decay=0,this.distance={},this.direction=x.none,this.drift=0,this.enable=!1,this.gravity=new Tn,this.path=new En,this.outModes=new kn,this.random=!1,this.size=!1,this.speed=2,this.spin=new An,this.straight=!1,this.trail=new On,this.vibrate=!1,this.warp=!1}load(e){if(C(e))return;this.angle.load(ue(e.angle)?{value:e.angle}:e.angle),this.attract.load(e.attract),this.center.load(e.center),e.decay!==void 0&&(this.decay=A(e.decay)),e.direction!==void 0&&(this.direction=e.direction),e.distance!==void 0&&(this.distance=ue(e.distance)?{horizontal:e.distance,vertical:e.distance}:{...e.distance}),e.drift!==void 0&&(this.drift=A(e.drift)),e.enable!==void 0&&(this.enable=e.enable),this.gravity.load(e.gravity);let t=e.outModes;t!==void 0&&(de(t)?this.outModes.load(t):this.outModes.load({default:t})),this.path.load(e.path),e.random!==void 0&&(this.random=e.random),e.size!==void 0&&(this.size=e.size),e.speed!==void 0&&(this.speed=A(e.speed)),this.spin.load(e.spin),e.straight!==void 0&&(this.straight=e.straight),this.trail.load(e.trail),e.vibrate!==void 0&&(this.vibrate=e.vibrate),e.warp!==void 0&&(this.warp=e.warp)}},Mn=class extends cn{constructor(){super(),this.destroy=Ee.none,this.speed=2}load(e){super.load(e),!C(e)&&e.destroy!==void 0&&(this.destroy=e.destroy)}},Nn=class extends _n{constructor(){super(),this.animation=new Mn,this.value=1}load(e){if(C(e))return;super.load(e);let t=e.animation;t!==void 0&&this.animation.load(t)}},Pn=class{constructor(){this.enable=!1,this.width=1920,this.height=1080}load(e){if(C(e))return;e.enable!==void 0&&(this.enable=e.enable);let t=e.width;t!==void 0&&(this.width=t);let n=e.height;n!==void 0&&(this.height=n)}},Fn;(function(e){e.delete=`delete`,e.wait=`wait`})(Fn||={});var In=class{constructor(){this.mode=Fn.delete,this.value=0}load(e){C(e)||(e.mode!==void 0&&(this.mode=e.mode),e.value!==void 0&&(this.value=e.value))}},Ln=class{constructor(){this.density=new Pn,this.limit=new In,this.value=0}load(e){C(e)||(this.density.load(e.density),this.limit.load(e.limit),e.value!==void 0&&(this.value=e.value))}},Rn=class{constructor(){this.blur=0,this.color=new U,this.enable=!1,this.offset={x:0,y:0},this.color.value=`#000`}load(e){C(e)||(e.blur!==void 0&&(this.blur=e.blur),this.color=U.create(this.color,e.color),e.enable!==void 0&&(this.enable=e.enable),e.offset!==void 0&&(e.offset.x!==void 0&&(this.offset.x=e.offset.x),e.offset.y!==void 0&&(this.offset.y=e.offset.y)))}},zn=class{constructor(){this.close=!0,this.fill=!0,this.options={},this.type=`circle`}load(e){if(C(e))return;let t=e.options;if(t!==void 0)for(let e in t){let n=t[e];n&&(this.options[e]=I(this.options[e]??{},n))}e.close!==void 0&&(this.close=e.close),e.fill!==void 0&&(this.fill=e.fill),e.type!==void 0&&(this.type=e.type)}},Bn=class extends cn{constructor(){super(),this.destroy=Ee.none,this.speed=5}load(e){super.load(e),!C(e)&&e.destroy!==void 0&&(this.destroy=e.destroy)}},Vn=class extends _n{constructor(){super(),this.animation=new Bn,this.value=3}load(e){if(super.load(e),C(e))return;let t=e.animation;t!==void 0&&this.animation.load(t)}},Hn=class{constructor(){this.width=0}load(e){C(e)||(e.color!==void 0&&(this.color=dn.create(this.color,e.color)),e.width!==void 0&&(this.width=A(e.width)),e.opacity!==void 0&&(this.opacity=A(e.opacity)))}},Un=class extends hn{constructor(){super(),this.opacityRate=1,this.sizeRate=1,this.velocityRate=1}load(e){super.load(e),!C(e)&&(e.opacityRate!==void 0&&(this.opacityRate=e.opacityRate),e.sizeRate!==void 0&&(this.sizeRate=e.sizeRate),e.velocityRate!==void 0&&(this.velocityRate=e.velocityRate))}},Wn=class{constructor(e,t){this._engine=e,this._container=t,this.bounce=new yn,this.collisions=new bn,this.color=new dn,this.color.value=`#fff`,this.effect=new xn,this.groups={},this.move=new jn,this.number=new Ln,this.opacity=new Nn,this.reduceDuplicates=!1,this.shadow=new Rn,this.shape=new zn,this.size=new Vn,this.stroke=new Hn,this.zIndex=new Un}load(e){if(C(e))return;if(e.groups!==void 0)for(let t of Object.keys(e.groups)){if(!Object.hasOwn(e.groups,t))continue;let n=e.groups[t];n!==void 0&&(this.groups[t]=I(this.groups[t]??{},n))}e.reduceDuplicates!==void 0&&(this.reduceDuplicates=e.reduceDuplicates),this.bounce.load(e.bounce),this.color.load(dn.create(this.color,e.color)),this.effect.load(e.effect),this.move.load(e.move),this.number.load(e.number),this.opacity.load(e.opacity),this.shape.load(e.shape),this.size.load(e.size),this.shadow.load(e.shadow),this.zIndex.load(e.zIndex),this.collisions.load(e.collisions),e.interactivity!==void 0&&(this.interactivity=I({},e.interactivity));let t=e.stroke;if(t&&(this.stroke=L(t,e=>{let t=new Hn;return t.load(e),t})),this._container){let t=this._engine.updaters.get(this._container);if(t)for(let n of t)n.loadOptions&&n.loadOptions(this,e);let n=this._engine.interactors.get(this._container);if(n)for(let t of n)t.loadParticlesOptions&&t.loadParticlesOptions(this,e)}}};function Gn(e,...t){for(let n of t)e.load(n)}function Kn(e,t,...n){let r=new Wn(e,t);return Gn(r,...n),r}var qn=class{constructor(e,t){this._findDefaultTheme=e=>this.themes.find(t=>t.default.value&&t.default.mode===e)??this.themes.find(e=>e.default.value&&e.default.mode===rn.any),this._importPreset=e=>{this.load(this._engine.getPreset(e))},this._engine=e,this._container=t,this.autoPlay=!0,this.background=new Vt,this.backgroundMask=new Ut,this.clear=!0,this.defaultThemes={},this.delay=0,this.fullScreen=new Wt,this.detectRetina=!0,this.duration=0,this.fpsLimit=120,this.interactivity=new $t(e,t),this.manualParticles=[],this.particles=Kn(this._engine,this._container),this.pauseOnBlur=!0,this.pauseOnOutsideViewport=!0,this.responsive=[],this.smooth=!1,this.style={},this.themes=[],this.zLayers=100}load(e){if(C(e))return;e.preset!==void 0&&L(e.preset,e=>this._importPreset(e)),e.autoPlay!==void 0&&(this.autoPlay=e.autoPlay),e.clear!==void 0&&(this.clear=e.clear),e.key!==void 0&&(this.key=e.key),e.name!==void 0&&(this.name=e.name),e.delay!==void 0&&(this.delay=A(e.delay));let t=e.detectRetina;t!==void 0&&(this.detectRetina=t),e.duration!==void 0&&(this.duration=A(e.duration));let n=e.fpsLimit;n!==void 0&&(this.fpsLimit=n),e.pauseOnBlur!==void 0&&(this.pauseOnBlur=e.pauseOnBlur),e.pauseOnOutsideViewport!==void 0&&(this.pauseOnOutsideViewport=e.pauseOnOutsideViewport),e.zLayers!==void 0&&(this.zLayers=e.zLayers),this.background.load(e.background);let r=e.fullScreen;ce(r)?this.fullScreen.enable=r:this.fullScreen.load(r),this.backgroundMask.load(e.backgroundMask),this.interactivity.load(e.interactivity),e.manualParticles&&(this.manualParticles=e.manualParticles.map(e=>{let t=new en;return t.load(e),t})),this.particles.load(e.particles),this.style=I(this.style,e.style),this._engine.loadOptions(this,e),e.smooth!==void 0&&(this.smooth=e.smooth);let i=this._engine.interactors.get(this._container);if(i)for(let t of i)t.loadOptions&&t.loadOptions(this,e);if(e.responsive!==void 0)for(let t of e.responsive){let e=new nn;e.load(t),this.responsive.push(e)}if(this.responsive.sort((e,t)=>e.maxWidth-t.maxWidth),e.themes!==void 0)for(let t of e.themes){let e=this.themes.find(e=>e.name===t.name);if(e)e.load(t);else{let e=new on;e.load(t),this.themes.push(e)}}this.defaultThemes.dark=this._findDefaultTheme(rn.dark)?.name,this.defaultThemes.light=this._findDefaultTheme(rn.light)?.name}setResponsive(e,t,n){this.load(n);let r=this.responsive.find(n=>n.mode===tn.screen&&screen?n.maxWidth>screen.availWidth:n.maxWidth*t>e);return this.load(r?.options),r?.maxWidth}setTheme(e){if(e){let t=this.themes.find(t=>t.name===e);t&&this.load(t.options)}else{let e=Ie(`(prefers-color-scheme: dark)`)?.matches,t=this._findDefaultTheme(e?rn.dark:rn.light);t&&this.load(t.options)}}},Jn;(function(e){e.external=`external`,e.particles=`particles`})(Jn||={});var Yn=class{constructor(e,t){this.container=t,this._engine=e,this._interactors=[],this._externalInteractors=[],this._particleInteractors=[]}externalInteract(e){for(let t of this._externalInteractors)t.isEnabled()&&t.interact(e)}handleClickMode(e){for(let t of this._externalInteractors)t.handleClickMode?.(e)}async init(){this._interactors=await this._engine.getInteractors(this.container,!0),this._externalInteractors=[],this._particleInteractors=[];for(let e of this._interactors){switch(e.type){case Jn.external:this._externalInteractors.push(e);break;case Jn.particles:this._particleInteractors.push(e);break}e.init()}}particlesInteract(e,t){for(let n of this._externalInteractors)n.clear(e,t);for(let n of this._particleInteractors)n.isEnabled(e)&&n.interact(e,t)}reset(e){for(let t of this._externalInteractors)t.isEnabled()&&t.reset(e);for(let t of this._particleInteractors)t.isEnabled(e)&&t.reset(e)}},G;(function(e){e.normal=`normal`,e.inside=`inside`,e.outside=`outside`})(G||={});function Xn(e,t,n,r){let i=t.options[e];if(i)return I({close:t.close,fill:t.fill},R(i,n,r))}function Zn(e,t,n,r){let i=t.options[e];if(i)return I({close:t.close,fill:t.fill},R(i,n,r))}function Qn(e){if(!F(e.outMode,e.checkModes))return;let t=e.radius*2;e.coord>e.maxCoord-t?e.setCb(-e.radius):e.coord<t&&e.setCb(e.radius)}var $n=class{constructor(e,t){this.container=t,this._calcPosition=(e,t,n,r=0)=>{for(let r of e.plugins.values()){let e=r.particlePosition===void 0?void 0:r.particlePosition(t,this);if(e)return fe.create(e.x,e.y,n)}let i=e.canvas.size,a=Ce({size:i,position:t}),o=fe.create(a.x,a.y,n),s=this.getRadius(),c=this.options.move.outModes,l=t=>{Qn({outMode:t,checkModes:[W.bounce],coord:o.x,maxCoord:e.canvas.size.width,setCb:e=>o.x+=e,radius:s})},u=t=>{Qn({outMode:t,checkModes:[W.bounce],coord:o.y,maxCoord:e.canvas.size.height,setCb:e=>o.y+=e,radius:s})};return l(c.left??c.default),l(c.right??c.default),u(c.top??c.default),u(c.bottom??c.default),this._checkOverlap(o,r)?this._calcPosition(e,void 0,n,r+1):o},this._calculateVelocity=()=>{let e=xe(this.direction).copy(),t=this.options.move;if(t.direction===x.inside||t.direction===x.outside)return e;let n=ye(O(t.angle.value)),r=ye(O(t.angle.offset)),i={left:r-n*g,right:r+n*g};return t.straight||(e.angle+=D(A(i.left,i.right))),t.random&&typeof t.speed==`number`&&(e.length*=T()),e},this._checkOverlap=(e,t=0)=>{let n=this.options.collisions,r=this.getRadius();if(!n.enable)return!1;let i=n.overlap;if(i.enable)return!1;let a=i.retries;if(a>=0&&t>a)throw Error(`${h} particle is overlapping and can't be placed`);return!!this.container.particles.find(t=>M(e,t.position)<r+t.getRadius())},this._getRollColor=e=>{if(!e||!this.roll||!this.backColor&&!this.roll.alter)return e;let t=this.roll.horizontal&&this.roll.vertical?2:1,n=this.roll.horizontal?Math.PI*g:0;return Math.floor(((this.roll.angle??0)+n)/(Math.PI/t))%2?this.backColor?this.backColor:this.roll.alter?Ft(e,this.roll.alter.type,this.roll.alter.value):e:e},this._initPosition=e=>{let t=this.container,n=O(this.options.zIndex.value);this.position=this._calcPosition(t,e,E(n,0,t.zLayers)),this.initialPosition=this.position.copy();let r=t.canvas.size;switch(this.moveCenter={...tt(this.options.move.center,r),radius:this.options.move.center.radius??0,mode:this.options.move.center.mode??De.percent},this.direction=be(this.options.move.direction,this.position,this.moveCenter),this.options.move.direction){case x.inside:this.outType=G.inside;break;case x.outside:this.outType=G.outside;break}this.offset=w.origin},this._engine=e}destroy(e){if(this.unbreakable||this.destroyed)return;this.destroyed=!0,this.bubble.inRange=!1,this.slow.inRange=!1;let t=this.container,n=this.pathGenerator;t.shapeDrawers.get(this.shape)?.particleDestroy?.(this);for(let n of t.plugins.values())n.particleDestroyed?.(this,e);for(let n of t.particles.updaters)n.particleDestroyed?.(this,e);n?.reset(this),this._engine.dispatchEvent(H.particleDestroyed,{container:this.container,data:{particle:this}})}draw(e){let t=this.container,n=t.canvas;for(let r of t.plugins.values())n.drawParticlePlugin(r,this,e);n.drawParticle(this,e)}getFillColor(){return this._getRollColor(this.bubble.color??bt(this.color))}getMass(){return this.getRadius()**2*Math.PI*g}getPosition(){return{x:this.position.x+this.offset.x,y:this.position.y+this.offset.y,z:this.position.z}}getRadius(){return this.bubble.radius??this.size.value}getStrokeColor(){return this._getRollColor(this.bubble.color??bt(this.strokeColor))}init(e,t,n,r){let i=this.container,a=this._engine;this.id=e,this.group=r,this.effectClose=!0,this.effectFill=!0,this.shapeClose=!0,this.shapeFill=!0,this.pathRotation=!1,this.lastPathTime=0,this.destroyed=!1,this.unbreakable=!1,this.isRotating=!1,this.rotation=0,this.misplaced=!1,this.retina={maxDistance:{}},this.outType=G.normal,this.ignoresResizeRatio=!0;let o=i.retina.pixelRatio,s=i.actualOptions,c=Kn(this._engine,i,s.particles),{reduceDuplicates:l}=c,u=c.effect.type,d=c.shape.type;this.effect=R(u,this.id,l),this.shape=R(d,this.id,l);let f=c.effect,p=c.shape;if(n){if(n.effect?.type){let e=n.effect.type,t=R(e,this.id,l);t&&(this.effect=t,f.load(n.effect))}if(n.shape?.type){let e=n.shape.type,t=R(e,this.id,l);t&&(this.shape=t,p.load(n.shape))}}if(this.effect===`random`){let e=[...this.container.effectDrawers.keys()];this.effect=e[Math.floor(T()*e.length)]}if(this.shape===`random`){let e=[...this.container.shapeDrawers.keys()];this.shape=e[Math.floor(T()*e.length)]}this.effectData=Xn(this.effect,f,this.id,l),this.shapeData=Zn(this.shape,p,this.id,l),c.load(n);let m=this.effectData;m&&c.load(m.particles);let h=this.shapeData;h&&c.load(h.particles);let g=new $t(a,i);g.load(i.actualOptions.interactivity),g.load(c.interactivity),this.interactivity=g,this.effectFill=m?.fill??c.effect.fill,this.effectClose=m?.close??c.effect.close,this.shapeFill=h?.fill??c.shape.fill,this.shapeClose=h?.close??c.shape.close,this.options=c;let v=this.options.move.path;this.pathDelay=O(v.delay.value)*_,v.generator&&(this.pathGenerator=this._engine.getPathGenerator(v.generator),this.pathGenerator&&i.addPath(v.generator,this.pathGenerator)&&this.pathGenerator.init(i)),i.retina.initParticle(this),this.size=$e(this.options.size,o),this.bubble={inRange:!1},this.slow={inRange:!1,factor:1},this._initPosition(t),this.initialVelocity=this._calculateVelocity(),this.velocity=this.initialVelocity.copy(),this.moveDecay=1-O(this.options.move.decay);let ee=i.particles;ee.setLastZIndex(this.position.z),this.zIndexFactor=this.position.z/i.zLayers,this.sides=24;let y=i.effectDrawers.get(this.effect);y||(y=this._engine.getEffectDrawer(this.effect),y&&i.effectDrawers.set(this.effect,y)),y?.loadEffect&&y.loadEffect(this);let b=i.shapeDrawers.get(this.shape);b||(b=this._engine.getShapeDrawer(this.shape),b&&i.shapeDrawers.set(this.shape,b)),b?.loadShape&&b.loadShape(this);let te=b?.getSidesCount;te&&(this.sides=te(this)),this.spawning=!1,this.shadowColor=z(this._engine,this.options.shadow.color);for(let e of ee.updaters)e.init(this);for(let e of ee.movers)e.init?.(this);y?.particleInit?.(i,this),b?.particleInit?.(i,this);for(let e of i.plugins.values())e.particleCreated?.(this)}isInsideCanvas(){let e=this.getRadius(),t=this.container.canvas.size,n=this.position;return n.x>=-e&&n.y>=-e&&n.y<=t.height+e&&n.x<=t.width+e}isVisible(){return!this.destroyed&&!this.spawning&&this.isInsideCanvas()}reset(){for(let e of this.container.particles.updaters)e.reset?.(this)}},er=class{constructor(e,t){this.position=e,this.particle=t}},tr;(function(e){e.circle=`circle`,e.rectangle=`rectangle`})(tr||={});var nr=class{constructor(e,t,n){this.position={x:e,y:t},this.type=n}},K=class e extends nr{constructor(e,t,n){super(e,t,tr.circle),this.radius=n}contains(e){return M(e,this.position)<=this.radius}intersects(t){let n=this.position,r=t.position,i={x:Math.abs(r.x-n.x),y:Math.abs(r.y-n.y)},a=this.radius;if(t instanceof e||t.type===tr.circle)return a+t.radius>Math.sqrt(i.x**2+i.y**2);if(t instanceof q||t.type===tr.rectangle){let{width:e,height:n}=t.size;return(i.x-e)**2+(i.y-n)**2<=a**2||i.x<=a+e&&i.y<=a+n||i.x<=e||i.y<=n}return!1}},q=class e extends nr{constructor(e,t,n,r){super(e,t,tr.rectangle),this.size={height:r,width:n}}contains(e){let t=this.size.width,n=this.size.height,r=this.position;return e.x>=r.x&&e.x<=r.x+t&&e.y>=r.y&&e.y<=r.y+n}intersects(t){if(t instanceof K)return t.intersects(this);let n=this.size.width,r=this.size.height,i=this.position,a=t.position,o=t instanceof e?t.size:{width:0,height:0},s=o.width,c=o.height;return a.x<i.x+n&&a.x+s>i.x&&a.y<i.y+r&&a.y+c>i.y}},rr=class e{constructor(t,n){this.rectangle=t,this.capacity=n,this._subdivide=()=>{let{x:t,y:n}=this.rectangle.position,{width:r,height:i}=this.rectangle.size,{capacity:a}=this;for(let o=0;o<4;o++){let s=o%2;this._subs.push(new e(new q(t+r*g*s,n+i*g*(Math.round(o*g)-s),r*g,i*g),a))}this._divided=!0},this._points=[],this._divided=!1,this._subs=[]}insert(e){return this.rectangle.contains(e.position)?this._points.length<this.capacity?(this._points.push(e),!0):(this._divided||this._subdivide(),this._subs.some(t=>t.insert(e))):!1}query(e,t){let n=[];if(!e.intersects(this.rectangle))return[];for(let r of this._points)!e.contains(r.position)&&M(e.position,r.position)>r.particle.getRadius()&&(!t||t(r.particle))||n.push(r.particle);if(this._divided)for(let r of this._subs)n.push(...r.query(e,t));return n}queryCircle(e,t,n){return this.query(new K(e.x,e.y,t),n)}queryRectangle(e,t,n){return this.query(new q(e.x,e.y,t.width,t.height),n)}},ir=e=>{let{height:t,width:n}=e;return new q(oe*n,oe*t,se*n,se*t)},ar=class{constructor(e,t){this._addToPool=(...e)=>{this._pool.push(...e)},this._applyDensity=(e,t,n,r)=>{let i=e.number;if(!e.number.density?.enable){n===void 0?this._limit=i.limit.value:(r?.number.limit?.value??i.limit.value)&&this._groupLimits.set(n,r?.number.limit?.value??i.limit.value);return}let a=this._initDensityFactor(i.density),o=i.value,s=i.limit.value>0?i.limit.value:o,c=Math.min(o,s)*a+t,l=Math.min(this.count,this.filter(e=>e.group===n).length);n===void 0?this._limit=i.limit.value*a:this._groupLimits.set(n,i.limit.value*a),l<c?this.push(Math.abs(c-l),void 0,e,n):l>c&&this.removeQuantity(l-c,n)},this._initDensityFactor=e=>{let t=this._container;if(!t.canvas.element||!e.enable)return 1;let n=t.canvas.element,r=t.retina.pixelRatio;return n.width*n.height/(e.height*e.width*r**2)},this._pushParticle=(e,t,n,r)=>{try{let i=this._pool.pop();i||=new $n(this._engine,this._container),i.init(this._nextId,e,t,n);let a=!0;return r&&(a=r(i)),a?(this._array.push(i),this._zArray.push(i),this._nextId++,this._engine.dispatchEvent(H.particleAdded,{container:this._container,data:{particle:i}}),i):void 0}catch(e){Ae().warning(`${h} adding particle: ${e}`)}},this._removeParticle=(e,t,n)=>{let r=this._array[e];if(!r||r.group!==t)return!1;let i=this._zArray.indexOf(r);return this._array.splice(e,1),this._zArray.splice(i,1),r.destroy(n),this._engine.dispatchEvent(H.particleRemoved,{container:this._container,data:{particle:r}}),this._addToPool(r),!0},this._engine=e,this._container=t,this._nextId=0,this._array=[],this._zArray=[],this._pool=[],this._limit=0,this._groupLimits=new Map,this._needsSort=!1,this._lastZIndex=0,this._interactionManager=new Yn(e,t),this._pluginsInitialized=!1;let n=t.canvas.size;this.quadTree=new rr(ir(n),4),this.movers=[],this.updaters=[]}get count(){return this._array.length}addManualParticles(){let e=this._container;e.actualOptions.manualParticles.forEach(t=>this.addParticle(t.position?tt(t.position,e.canvas.size):void 0,t.options))}addParticle(e,t,n,r){let i=this._container.actualOptions.particles.number.limit.mode,a=n===void 0?this._limit:this._groupLimits.get(n)??this._limit,o=this.count;if(a>0)switch(i){case Fn.delete:{let e=o+1-a;e>0&&this.removeQuantity(e);break}case Fn.wait:if(o>=a)return;break}return this._pushParticle(e,t,n,r)}clear(){this._array=[],this._zArray=[],this._pluginsInitialized=!1}destroy(){this._array=[],this._zArray=[],this.movers=[],this.updaters=[]}draw(e){let t=this._container,n=t.canvas;n.clear(),this.update(e);for(let r of t.plugins.values())n.drawPlugin(r,e);for(let t of this._zArray)t.draw(e)}filter(e){return this._array.filter(e)}find(e){return this._array.find(e)}get(e){return this._array[e]}handleClickMode(e){this._interactionManager.handleClickMode(e)}async init(){let e=this._container,t=e.actualOptions;this._lastZIndex=0,this._needsSort=!1,await this.initPlugins();let n=!1;for(let t of e.plugins.values())if(n=t.particlesInitialization?.()??n,n)break;if(this.addManualParticles(),!n){let e=t.particles,n=e.groups;for(let t in n){let r=n[t];for(let n=this.count,i=0;i<r.number?.value&&n<e.number.value;n++,i++)this.addParticle(void 0,r,t)}for(let t=this.count;t<e.number.value;t++)this.addParticle()}}async initPlugins(){if(this._pluginsInitialized)return;let e=this._container;this.movers=await this._engine.getMovers(e,!0),this.updaters=await this._engine.getUpdaters(e,!0),await this._interactionManager.init();for(let t of e.pathGenerators.values())t.init(e)}push(e,t,n,r){for(let i=0;i<e;i++)this.addParticle(t?.position,n,r)}async redraw(){this.clear(),await this.init(),this.draw({value:0,factor:0})}remove(e,t,n){this.removeAt(this._array.indexOf(e),void 0,t,n)}removeAt(e,t=1,n,r){if(e<0||e>this.count)return;let i=0;for(let a=e;i<t&&a<this.count;a++)this._removeParticle(a,n,r)&&(a--,i++)}removeQuantity(e,t){this.removeAt(0,e,t)}setDensity(){let e=this._container.actualOptions,t=e.particles.groups,n=e.manualParticles.length;for(let e in t)this._applyDensity(t[e],n,e);this._applyDensity(e.particles,n)}setLastZIndex(e){this._lastZIndex=e,this._needsSort=this._needsSort||this._lastZIndex<e}setResizeFactor(e){this._resizeFactor=e}update(e){let t=this._container,n=new Set;this.quadTree=new rr(ir(t.canvas.size),4);for(let e of t.pathGenerators.values())e.update();for(let n of t.plugins.values())n.update?.(e);let r=this._resizeFactor;for(let t of this._array){r&&!t.ignoresResizeRatio&&(t.position.x*=r.width,t.position.y*=r.height,t.initialPosition.x*=r.width,t.initialPosition.y*=r.height),t.ignoresResizeRatio=!1,this._interactionManager.reset(t);for(let n of this._container.plugins.values()){if(t.destroyed)break;n.particleUpdate?.(t,e)}for(let n of this.movers)n.isEnabled(t)&&n.move(t,e);if(t.destroyed){n.add(t);continue}this.quadTree.insert(new er(t.getPosition(),t))}if(n.size){let e=e=>!n.has(e);this._array=this.filter(e),this._zArray=this._zArray.filter(e);for(let e of n)this._engine.dispatchEvent(H.particleRemoved,{container:this._container,data:{particle:e}});this._addToPool(...n)}this._interactionManager.externalInteract(e);for(let t of this._array){for(let n of this.updaters)n.update(t,e);!t.destroyed&&!t.spawning&&this._interactionManager.particlesInteract(t,e)}if(delete this._resizeFactor,this._needsSort){let e=this._zArray;e.sort((e,t)=>t.position.z-e.position.z||e.id-t.id),this._lastZIndex=e[e.length-1].position.z,this._needsSort=!1}}},or=class{constructor(e){this.container=e,this.pixelRatio=1,this.reduceFactor=1}init(){let e=this.container,t=e.actualOptions;this.pixelRatio=!t.detectRetina||Pe()?1:devicePixelRatio,this.reduceFactor=1;let n=this.pixelRatio,r=e.canvas;if(r.element){let e=r.element;r.size.width=e.offsetWidth*n,r.size.height=e.offsetHeight*n}let i=t.particles,a=i.move;this.maxSpeed=O(a.gravity.maxSpeed)*n,this.sizeAnimationSpeed=O(i.size.animation.speed)*n}initParticle(e){let t=e.options,n=this.pixelRatio,r=t.move,i=r.distance,a=e.retina;a.moveDrift=O(r.drift)*n,a.moveSpeed=O(r.speed)*n,a.sizeAnimationSpeed=O(t.size.animation.speed)*n;let o=a.maxDistance;o.horizontal=i.horizontal===void 0?void 0:i.horizontal*n,o.vertical=i.vertical===void 0?void 0:i.vertical*n,a.maxSpeed=O(r.gravity.maxSpeed)*n}};function J(e){return e&&!e.destroyed}function sr(e,t=60,n=!1){return{value:e,factor:n?60/t:60*e/_}}function cr(e,t,...n){let r=new qn(e,t);return Gn(r,...n),r}var lr=class{constructor(e,t,n){this._intersectionManager=e=>{if(!(!J(this)||!this.actualOptions.pauseOnOutsideViewport))for(let t of e)t.target===this.interactivity.element&&(t.isIntersecting?this.play():this.pause())},this._nextFrame=e=>{try{if(!this._smooth&&this._lastFrameTime!==void 0&&e<this._lastFrameTime+1e3/this.fpsLimit){this.draw(!1);return}this._lastFrameTime??=e;let t=sr(e-this._lastFrameTime,this.fpsLimit,this._smooth);if(this.addLifeTime(t.value),this._lastFrameTime=e,t.value>1e3){this.draw(!1);return}if(this.particles.draw(t),!this.alive()){this.destroy();return}this.animationStatus&&this.draw(!1)}catch(e){Ae().error(`${h} in animation loop`,e)}},this._engine=e,this.id=Symbol(t),this.fpsLimit=120,this._smooth=!1,this._delay=0,this._duration=0,this._lifeTime=0,this._firstStart=!0,this.started=!1,this.destroyed=!1,this._paused=!0,this._lastFrameTime=0,this.zLayers=100,this.pageHidden=!1,this._clickHandlers=new Map,this._sourceOptions=n,this._initialSourceOptions=n,this.retina=new or(this),this.canvas=new Rt(this,this._engine),this.particles=new ar(this._engine,this),this.pathGenerators=new Map,this.interactivity={mouse:{clicking:!1,inside:!1}},this.plugins=new Map,this.effectDrawers=new Map,this.shapeDrawers=new Map,this._options=cr(this._engine,this),this.actualOptions=cr(this._engine,this),this._eventListeners=new Bt(this),this._intersectionObserver=Le(e=>this._intersectionManager(e)),this._engine.dispatchEvent(H.containerBuilt,{container:this})}get animationStatus(){return!this._paused&&!this.pageHidden&&J(this)}get options(){return this._options}get sourceOptions(){return this._sourceOptions}addClickHandler(e){if(!J(this))return;let t=this.interactivity.element;if(!t)return;let n=(t,n,r)=>{if(!J(this))return;let i=this.retina.pixelRatio,a={x:n.x*i,y:n.y*i};e(t,this.particles.quadTree.queryCircle(a,r*i))},r=e=>{if(!J(this))return;let t=e;n(e,{x:t.offsetX||t.clientX,y:t.offsetY||t.clientY},1)},i=()=>{J(this)&&(c=!0,l=!1)},a=()=>{J(this)&&(l=!0)},o=e=>{if(J(this)){if(c&&!l){let t=e,r=t.touches[t.touches.length-1];if(!r&&(r=t.changedTouches[t.changedTouches.length-1],!r))return;let i=this.canvas.element,a=i?i.getBoundingClientRect():void 0;n(e,{x:r.clientX-(a?a.left:0),y:r.clientY-(a?a.top:0)},Math.max(r.radiusX,r.radiusY))}c=!1,l=!1}},s=()=>{J(this)&&(c=!1,l=!1)},c=!1,l=!1;this._clickHandlers.set(`click`,r),this._clickHandlers.set(`touchstart`,i),this._clickHandlers.set(`touchmove`,a),this._clickHandlers.set(`touchend`,o),this._clickHandlers.set(`touchcancel`,s);for(let[e,n]of this._clickHandlers)t.addEventListener(e,n)}addLifeTime(e){this._lifeTime+=e}addPath(e,t,n=!1){return!J(this)||!n&&this.pathGenerators.has(e)?!1:(this.pathGenerators.set(e,t),!0)}alive(){return!this._duration||this._lifeTime<=this._duration}clearClickHandlers(){if(J(this)){for(let[e,t]of this._clickHandlers)this.interactivity.element?.removeEventListener(e,t);this._clickHandlers.clear()}}destroy(e=!0){if(J(this)){this.stop(),this.clearClickHandlers(),this.particles.destroy(),this.canvas.destroy();for(let e of this.effectDrawers.values())e.destroy?.(this);for(let e of this.shapeDrawers.values())e.destroy?.(this);for(let e of this.effectDrawers.keys())this.effectDrawers.delete(e);for(let e of this.shapeDrawers.keys())this.shapeDrawers.delete(e);if(this._engine.clearPlugins(this),this.destroyed=!0,e){let e=this._engine.items,t=e.findIndex(e=>e===this);t>=0&&e.splice(t,1)}this._engine.dispatchEvent(H.containerDestroyed,{container:this})}}draw(e){if(!J(this))return;let t=e,n=e=>{t&&=(this._lastFrameTime=void 0,!1),this._nextFrame(e)};this._drawAnimationFrame=he(e=>n(e))}async export(e,t={}){for(let n of this.plugins.values()){if(!n.export)continue;let r=await n.export(e,t);if(r.supported)return r.blob}Ae().error(`${h} - Export plugin with type ${e} not found`)}handleClickMode(e){if(J(this)){this.particles.handleClickMode(e);for(let t of this.plugins.values())t.handleClickMode?.(e)}}async init(){if(!J(this))return;let e=this._engine.getSupportedEffects();for(let t of e){let e=this._engine.getEffectDrawer(t);e&&this.effectDrawers.set(t,e)}let t=this._engine.getSupportedShapes();for(let e of t){let t=this._engine.getShapeDrawer(e);t&&this.shapeDrawers.set(e,t)}await this.particles.initPlugins(),this._options=cr(this._engine,this,this._initialSourceOptions,this.sourceOptions),this.actualOptions=cr(this._engine,this,this._options);let n=await this._engine.getAvailablePlugins(this);for(let[e,t]of n)this.plugins.set(e,t);this.retina.init(),await this.canvas.init(),this.updateActualOptions(),this.canvas.initBackground(),this.canvas.resize();let{zLayers:r,duration:i,delay:a,fpsLimit:o,smooth:s}=this.actualOptions;this.zLayers=r,this._duration=O(i)*_,this._delay=O(a)*_,this._lifeTime=0,this.fpsLimit=o>0?o:120,this._smooth=s;for(let e of this.effectDrawers.values())await e.init?.(this);for(let e of this.shapeDrawers.values())await e.init?.(this);for(let e of this.plugins.values())await e.init?.();this._engine.dispatchEvent(H.containerInit,{container:this}),await this.particles.init(),this.particles.setDensity();for(let e of this.plugins.values())e.particlesSetup?.();this._engine.dispatchEvent(H.particlesSetup,{container:this})}async loadTheme(e){J(this)&&(this._currentTheme=e,await this.refresh())}pause(){if(J(this)&&(this._drawAnimationFrame!==void 0&&(ge(this._drawAnimationFrame),delete this._drawAnimationFrame),!this._paused)){for(let e of this.plugins.values())e.pause?.();this.pageHidden||(this._paused=!0),this._engine.dispatchEvent(H.containerPaused,{container:this})}}play(e){if(!J(this))return;let t=this._paused||e;if(this._firstStart&&!this.actualOptions.autoPlay){this._firstStart=!1;return}if(this._paused&&=!1,t)for(let e of this.plugins.values())e.play&&e.play();this._engine.dispatchEvent(H.containerPlay,{container:this}),this.draw(t??!1)}async refresh(){if(J(this))return this.stop(),this.start()}async reset(e){if(J(this))return this._initialSourceOptions=e,this._sourceOptions=e,this._options=cr(this._engine,this,this._initialSourceOptions,this.sourceOptions),this.actualOptions=cr(this._engine,this,this._options),this.refresh()}async start(){!J(this)||this.started||(await this.init(),this.started=!0,await new Promise(e=>{let t=async()=>{this._eventListeners.addListeners(),this.interactivity.element instanceof HTMLElement&&this._intersectionObserver&&this._intersectionObserver.observe(this.interactivity.element);for(let e of this.plugins.values())await e.start?.();this._engine.dispatchEvent(H.containerStarted,{container:this}),this.play(),e()};this._delayTimeout=setTimeout(()=>void t(),this._delay)}))}stop(){if(!(!J(this)||!this.started)){this._delayTimeout&&(clearTimeout(this._delayTimeout),delete this._delayTimeout),this._firstStart=!0,this.started=!1,this._eventListeners.removeListeners(),this.pause(),this.particles.clear(),this.canvas.stop(),this.interactivity.element instanceof HTMLElement&&this._intersectionObserver&&this._intersectionObserver.unobserve(this.interactivity.element);for(let e of this.plugins.values())e.stop?.();for(let e of this.plugins.keys())this.plugins.delete(e);this._sourceOptions=this._options,this._engine.dispatchEvent(H.containerStopped,{container:this})}}updateActualOptions(){this.actualOptions.responsive=[];let e=this.actualOptions.setResponsive(this.canvas.size.width,this.retina.pixelRatio,this._options);return this.actualOptions.setTheme(this._currentTheme),this._responsiveMaxWidth===e?!1:(this._responsiveMaxWidth=e,!0)}},ur=class{constructor(){this._listeners=new Map}addEventListener(e,t){this.removeEventListener(e,t);let n=this._listeners.get(e);n||(n=[],this._listeners.set(e,n)),n.push(t)}dispatchEvent(e,t){this._listeners.get(e)?.forEach(e=>e(t))}hasEventListener(e){return!!this._listeners.get(e)}removeAllEventListeners(e){e?this._listeners.delete(e):this._listeners=new Map}removeEventListener(e,t){let n=this._listeners.get(e);if(!n)return;let r=n.length,i=n.indexOf(t);i<0||(r===1?this._listeners.delete(e):n.splice(i,1))}};async function dr(e,t,n,r=!1){let i=t.get(e);return(!i||r)&&(i=await Promise.all([...n.values()].map(t=>t(e))),t.set(e,i)),i}async function fr(e){let t=R(e.url,e.index);if(!t)return e.fallback;let n=await fetch(t);return n.ok?await n.json():(Ae().error(`${h} ${n.status} while retrieving config file`),e.fallback)}var pr=e=>{let t;if(e instanceof HTMLCanvasElement||e.tagName.toLowerCase()===`canvas`)t=e,t.dataset.generated||(t.dataset[r]=ne);else{let n=e.getElementsByTagName(re);n.length?(t=n[0],t.dataset[r]=ne):(t=document.createElement(re),t.dataset[r]=te,e.appendChild(t))}let n=`100%`;return t.style.width||(t.style.width=n),t.style.height||(t.style.height=n),t},mr=(e,t)=>{let n=t??document.getElementById(e);return n||(n=document.createElement(`div`),n.id=e,n.dataset[r]=te,document.body.append(n),n)},hr=class{constructor(){this._configs=new Map,this._domArray=[],this._eventDispatcher=new ur,this._initialized=!1,this.plugins=[],this.colorManagers=new Map,this.easingFunctions=new Map,this._initializers={interactors:new Map,movers:new Map,updaters:new Map},this.interactors=new Map,this.movers=new Map,this.updaters=new Map,this.presets=new Map,this.effectDrawers=new Map,this.shapeDrawers=new Map,this.pathGenerators=new Map}get configs(){let e={};for(let[t,n]of this._configs)e[t]=n;return e}get items(){return this._domArray}get version(){return`3.9.1`}async addColorManager(e,t=!0){this.colorManagers.set(e.key,e),await this.refresh(t)}addConfig(e){let t=e.key??e.name??`default`;this._configs.set(t,e),this._eventDispatcher.dispatchEvent(H.configAdded,{data:{name:t,config:e}})}async addEasing(e,t,n=!0){this.getEasing(e)||(this.easingFunctions.set(e,t),await this.refresh(n))}async addEffect(e,t,n=!0){L(e,e=>{this.getEffectDrawer(e)||this.effectDrawers.set(e,t)}),await this.refresh(n)}addEventListener(e,t){this._eventDispatcher.addEventListener(e,t)}async addInteractor(e,t,n=!0){this._initializers.interactors.set(e,t),await this.refresh(n)}async addMover(e,t,n=!0){this._initializers.movers.set(e,t),await this.refresh(n)}async addParticleUpdater(e,t,n=!0){this._initializers.updaters.set(e,t),await this.refresh(n)}async addPathGenerator(e,t,n=!0){this.getPathGenerator(e)||this.pathGenerators.set(e,t),await this.refresh(n)}async addPlugin(e,t=!0){this.getPlugin(e.id)||this.plugins.push(e),await this.refresh(t)}async addPreset(e,t,n=!1,r=!0){(n||!this.getPreset(e))&&this.presets.set(e,t),await this.refresh(r)}async addShape(e,t=!0){for(let t of e.validTypes)this.getShapeDrawer(t)||this.shapeDrawers.set(t,e);await this.refresh(t)}checkVersion(e){if(this.version!==e)throw Error(`The tsParticles version is different from the loaded plugins version. Engine version: ${this.version}. Plugin version: ${e}`)}clearPlugins(e){this.updaters.delete(e),this.movers.delete(e),this.interactors.delete(e)}dispatchEvent(e,t){this._eventDispatcher.dispatchEvent(e,t)}dom(){return this.items}domItem(e){return this.item(e)}async getAvailablePlugins(e){let t=new Map;for(let n of this.plugins)n.needsPlugin(e.actualOptions)&&t.set(n.id,await n.getPlugin(e));return t}getEasing(e){return this.easingFunctions.get(e)??(e=>e)}getEffectDrawer(e){return this.effectDrawers.get(e)}async getInteractors(e,t=!1){return dr(e,this.interactors,this._initializers.interactors,t)}async getMovers(e,t=!1){return dr(e,this.movers,this._initializers.movers,t)}getPathGenerator(e){return this.pathGenerators.get(e)}getPlugin(e){return this.plugins.find(t=>t.id===e)}getPreset(e){return this.presets.get(e)}getShapeDrawer(e){return this.shapeDrawers.get(e)}getSupportedEffects(){return this.effectDrawers.keys()}getSupportedShapes(){return this.shapeDrawers.keys()}async getUpdaters(e,t=!1){return dr(e,this.updaters,this._initializers.updaters,t)}init(){this._initialized||=!0}item(e){let{items:t}=this,n=t[e];if(!n||n.destroyed){t.splice(e,1);return}return n}async load(e){let t=e.id??e.element?.id??`tsparticles${Math.floor(T()*1e4)}`,{index:n,url:r}=e,i=R(r?await fr({fallback:e.options,url:r,index:n}):e.options,n),{items:a}=this,o=a.findIndex(e=>e.id.description===t),s=new lr(this,t,i);if(o>=0){let e=this.item(o),t=+!!e;e&&!e.destroyed&&e.destroy(!1),a.splice(o,t,s)}else a.push(s);let c=pr(mr(t,e.element));return s.canvas.loadCanvas(c),await s.start(),s}loadOptions(e,t){this.plugins.forEach(n=>n.loadOptions?.(e,t))}loadParticlesOptions(e,t,...n){let r=this.updaters.get(e);r&&r.forEach(e=>e.loadOptions?.(t,...n))}async refresh(e=!0){e&&await Promise.all(this.items.map(e=>e.refresh()))}removeEventListener(e,t){this._eventDispatcher.removeEventListener(e,t)}setOnClickHandler(e){let{items:t}=this;if(!t.length)throw Error(`${h} can only set click handlers after calling tsParticles.load()`);t.forEach(t=>t.addClickHandler(e))}};function gr(){let e=new hr;return e.init(),e}var Y=class{constructor(e){this.type=Jn.external,this.container=e}},_r=class{constructor(e){this.type=Jn.particles,this.container=e}},X;(function(e){e.clockwise=`clockwise`,e.counterClockwise=`counter-clockwise`,e.random=`random`})(X||={});var vr;(function(e){e.easeInBack=`ease-in-back`,e.easeInCirc=`ease-in-circ`,e.easeInCubic=`ease-in-cubic`,e.easeInLinear=`ease-in-linear`,e.easeInQuad=`ease-in-quad`,e.easeInQuart=`ease-in-quart`,e.easeInQuint=`ease-in-quint`,e.easeInExpo=`ease-in-expo`,e.easeInSine=`ease-in-sine`,e.easeOutBack=`ease-out-back`,e.easeOutCirc=`ease-out-circ`,e.easeOutCubic=`ease-out-cubic`,e.easeOutLinear=`ease-out-linear`,e.easeOutQuad=`ease-out-quad`,e.easeOutQuart=`ease-out-quart`,e.easeOutQuint=`ease-out-quint`,e.easeOutExpo=`ease-out-expo`,e.easeOutSine=`ease-out-sine`,e.easeInOutBack=`ease-in-out-back`,e.easeInOutCirc=`ease-in-out-circ`,e.easeInOutCubic=`ease-in-out-cubic`,e.easeInOutLinear=`ease-in-out-linear`,e.easeInOutQuad=`ease-in-out-quad`,e.easeInOutQuart=`ease-in-out-quart`,e.easeInOutQuint=`ease-in-out-quint`,e.easeInOutExpo=`ease-in-out-expo`,e.easeInOutSine=`ease-in-out-sine`})(vr||={});var yr=gr();Pe()||(window.tsParticles=yr);var br=n(),xr=e(t(),1),Sr=e=>{let t=e.id??`tsparticles`;return(0,xr.useEffect)(()=>{let n;return yr.load({id:t,url:e.url,options:e.options}).then(t=>{var r;n=t,(r=e.particlesLoaded)==null||r.call(e,t)}),()=>{n?.destroy()}},[t,e,e.url,e.options]),(0,br.jsx)(`div`,{id:t,className:e.className})};async function Cr(e){await e(yr)}var wr=.5,Tr=2,Er=0,Dr=1,Or=60,kr=0,Ar=.01,jr=Math.PI*Tr;function Mr(e){let t=e.initialPosition,{dx:n,dy:r}=j(t,e.position),i=Math.abs(n),a=Math.abs(r),{maxDistance:o}=e.retina,s=o.horizontal,c=o.vertical;if(!(!s&&!c)){if((((s&&i>=s)??!1)||((c&&a>=c)??!1))&&!e.misplaced)e.misplaced=!!s&&i>s||!!c&&a>c,s&&(e.velocity.x=e.velocity.y*wr-e.velocity.x),c&&(e.velocity.y=e.velocity.x*wr-e.velocity.y);else if((!s||i<s)&&(!c||a<c)&&e.misplaced)e.misplaced=!1;else if(e.misplaced){let n=e.position,r=e.velocity;s&&(n.x<t.x&&r.x<Er||n.x>t.x&&r.x>Er)&&(r.x*=-T()),c&&(n.y<t.y&&r.y<Er||n.y>t.y&&r.y>Er)&&(r.y*=-T())}}}function Nr(e,t,n,r,i,a,o){Fr(e,o);let s=e.gravity,c=s?.enable&&s.inverse?-1:Dr;i&&n&&(e.velocity.x+=i*o.factor/(Or*n)),s?.enable&&n&&(e.velocity.y+=c*(s.acceleration*o.factor)/(Or*n));let l=e.moveDecay;e.velocity.multTo(l);let u=e.velocity.mult(n);s?.enable&&r>Er&&(!s.inverse&&u.y>=Er&&u.y>=r||s.inverse&&u.y<=Er&&u.y<=-r)&&(u.y=c*r,n&&(e.velocity.y=u.y/n));let d=e.options.zIndex,f=(Dr-e.zIndexFactor)**d.velocityRate;u.multTo(f),u.multTo(a);let{position:p}=e;p.addTo(u),t.vibrate&&(p.x+=Math.sin(p.x*Math.cos(p.y))*a,p.y+=Math.cos(p.y*Math.sin(p.x))*a)}function Pr(e,t,n){let r=e.container;if(!e.spin)return;let i=e.spin.direction===X.clockwise,a={x:i?Math.cos:Math.sin,y:i?Math.sin:Math.cos};e.position.x=e.spin.center.x+e.spin.radius*a.x(e.spin.angle)*n,e.position.y=e.spin.center.y+e.spin.radius*a.y(e.spin.angle)*n,e.spin.radius+=e.spin.acceleration*n;let o=Math.max(r.canvas.size.width,r.canvas.size.height),s=o*wr;e.spin.radius>s?(e.spin.radius=s,e.spin.acceleration*=-1):e.spin.radius<kr&&(e.spin.radius=kr,e.spin.acceleration*=-1),e.spin.angle+=t*Ar*(Dr-e.spin.radius/o)}function Fr(e,t){let n=e.options.move.path;if(!n.enable)return;if(e.lastPathTime<=e.pathDelay){e.lastPathTime+=t.value;return}let r=e.pathGenerator?.generate(e,t);r&&e.velocity.addTo(r),n.clamp&&(e.velocity.x=E(e.velocity.x,-1,Dr),e.velocity.y=E(e.velocity.y,-1,Dr)),e.lastPathTime-=e.pathDelay}function Ir(e){return e.slow.inRange?e.slow.factor:Dr}function Lr(e){let t=e.container,n=e.options.move.spin;if(!n.enable)return;let r=n.position??{x:50,y:50},i=.01,a={x:r.x*i*t.canvas.size.width,y:r.y*i*t.canvas.size.height},o=M(e.getPosition(),a),s=O(n.acceleration);e.retina.spinAcceleration=s*t.retina.pixelRatio,e.spin={center:a,direction:e.velocity.x>=Er?X.clockwise:X.counterClockwise,angle:T()*jr,radius:o,acceleration:e.retina.spinAcceleration}}var Rr=2,zr=1,Br=1,Vr=class{init(e){let t=e.options.move.gravity;e.gravity={enable:t.enable,acceleration:O(t.acceleration),inverse:t.inverse},Lr(e)}isEnabled(e){return!e.destroyed&&e.options.move.enable}move(e,t){let n=e.options,r=n.move;if(!r.enable)return;let i=e.container,a=i.retina.pixelRatio;e.retina.moveSpeed??=O(r.speed)*a,e.retina.moveDrift??=O(e.options.move.drift)*a;let o=Ir(e),s=i.retina.reduceFactor,c=e.retina.moveSpeed,l=e.retina.moveDrift,u=k(n.size.value)*a,d=r.size?e.getRadius()/u:zr,f=t.factor||Br,p=c*d*o*f/Rr,m=e.retina.maxSpeed??i.retina.maxSpeed;r.spin.enable?Pr(e,p,s):Nr(e,r,p,m,l,s,t),Mr(e)}};async function Hr(e,t=!0){e.checkVersion(`3.9.1`),await e.addMover(`base`,()=>Promise.resolve(new Vr),t)}var Ur=Math.PI*2,Wr=0,Gr={x:0,y:0};function Kr(e){let{context:t,particle:n,radius:r}=e;n.circleRange||={min:Wr,max:Ur};let i=n.circleRange;t.arc(Gr.x,Gr.y,r,i.min,i.max,!1)}var qr=12,Jr=360,Yr=0,Xr=class{constructor(){this.validTypes=[`circle`]}draw(e){Kr(e)}getSidesCount(){return qr}particleInit(e,t){let n=t.shapeData?.angle??{max:Jr,min:Yr};t.circleRange=de(n)?{min:ye(n.min),max:ye(n.max)}:{min:Yr,max:ye(n)}}};async function Zr(e,t=!0){e.checkVersion(`3.9.1`),await e.addShape(new Xr,t)}var Qr=class{constructor(e,t){this._container=e,this._engine=t}init(e){let t=ut(this._engine,e.options.color,e.id,e.options.reduceDuplicates);t&&(e.color=xt(t,e.options.color.animation,this._container.retina.reduceFactor))}isEnabled(e){let{h:t,s:n,l:r}=e.options.color.animation,{color:i}=e;return!e.destroyed&&!e.spawning&&(i?.h.value!==void 0&&t.enable||i?.s.value!==void 0&&n.enable||i?.l.value!==void 0&&r.enable)}update(e,t){wt(e.color,t)}};async function $r(e,t=!0){e.checkVersion(`3.9.1`),await e.addParticleUpdater(`color`,t=>Promise.resolve(new Qr(t,e)),t)}var ei;(function(e){e[e.r=1]=`r`,e[e.g=2]=`g`,e[e.b=3]=`b`,e[e.a=4]=`a`})(ei||={});var ti=/^#?([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,ni=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i,ri=16,ii=1,ai=255,oi=class{constructor(){this.key=`hex`,this.stringPrefix=`#`}handleColor(e){return this._parseString(e.value)}handleRangeColor(e){return this._parseString(e.value)}parseString(e){return this._parseString(e)}_parseString(e){if(typeof e!=`string`||!e?.startsWith(this.stringPrefix))return;let t=e.replace(ti,(e,t,n,r,i)=>t+t+n+n+r+r+(i===void 0?``:i+i)),n=ni.exec(t);return n?{a:n[ei.a]===void 0?ii:parseInt(n[ei.a],ri)/ai,b:parseInt(n[ei.b],ri),g:parseInt(n[ei.g],ri),r:parseInt(n[ei.r],ri)}:void 0}};async function si(e,t=!0){e.checkVersion(`3.9.1`),await e.addColorManager(new oi,t)}var ci;(function(e){e[e.h=1]=`h`,e[e.s=2]=`s`,e[e.l=3]=`l`,e[e.a=5]=`a`})(ci||={});var li=class{constructor(){this.key=`hsl`,this.stringPrefix=`hsl`}handleColor(e){let t=e.value.hsl??e.value;if(t.h!==void 0&&t.s!==void 0&&t.l!==void 0)return pt(t)}handleRangeColor(e){let t=e.value.hsl??e.value;if(t.h!==void 0&&t.l!==void 0)return pt({h:O(t.h),l:O(t.l),s:O(t.s)})}parseString(e){if(!e.startsWith(`hsl`))return;let t=/hsla?\(\s*(\d+)\s*[\s,]\s*(\d+)%\s*[\s,]\s*(\d+)%\s*([\s,]\s*(0|1|0?\.\d+|(\d{1,3})%)\s*)?\)/i.exec(e);return t?mt({a:t.length>4?we(t[ci.a]):1,h:parseInt(t[ci.h],10),l:parseInt(t[ci.l],10),s:parseInt(t[ci.s],10)}):void 0}};async function ui(e,t=!0){e.checkVersion(`3.9.1`),await e.addColorManager(new li,t)}var di=class{constructor(e){this.container=e}init(e){let t=e.options.opacity;e.opacity=$e(t,1);let n=t.animation;n.enable&&(e.opacity.velocity=O(n.speed)/100*this.container.retina.reduceFactor,n.sync||(e.opacity.velocity*=T()))}isEnabled(e){return!e.destroyed&&!e.spawning&&!!e.opacity&&e.opacity.enable&&((e.opacity.maxLoops??0)<=0||(e.opacity.maxLoops??0)>0&&(e.opacity.loops??0)<(e.opacity.maxLoops??0))}reset(e){e.opacity&&(e.opacity.time=0,e.opacity.loops=0)}update(e,t){!this.isEnabled(e)||!e.opacity||rt(e,e.opacity,!0,e.options.opacity.animation.destroy,t)}};async function fi(e,t=!0){e.checkVersion(`3.9.1`),await e.addParticleUpdater(`opacity`,e=>Promise.resolve(new di(e)),t)}var pi=0,mi=0;function hi(e){if(e.outMode!==W.bounce&&e.outMode!==W.split||e.direction!==P.left&&e.direction!==P.right)return;e.bounds.right<mi&&e.direction===P.left?e.particle.position.x=e.size+e.offset.x:e.bounds.left>e.canvasSize.width&&e.direction===P.right&&(e.particle.position.x=e.canvasSize.width-e.size-e.offset.x);let t=e.particle.velocity.x,n=!1;if(e.direction===P.right&&e.bounds.right>=e.canvasSize.width&&t>pi||e.direction===P.left&&e.bounds.left<=mi&&t<pi){let t=O(e.particle.options.bounce.horizontal.value);e.particle.velocity.x*=-t,n=!0}if(!n)return;let r=e.offset.x+e.size;e.bounds.right>=e.canvasSize.width&&e.direction===P.right?e.particle.position.x=e.canvasSize.width-r:e.bounds.left<=mi&&e.direction===P.left&&(e.particle.position.x=r),e.outMode===W.split&&e.particle.destroy()}function gi(e){if(e.outMode!==W.bounce&&e.outMode!==W.split||e.direction!==P.bottom&&e.direction!==P.top)return;e.bounds.bottom<mi&&e.direction===P.top?e.particle.position.y=e.size+e.offset.y:e.bounds.top>e.canvasSize.height&&e.direction===P.bottom&&(e.particle.position.y=e.canvasSize.height-e.size-e.offset.y);let t=e.particle.velocity.y,n=!1;if(e.direction===P.bottom&&e.bounds.bottom>=e.canvasSize.height&&t>pi||e.direction===P.top&&e.bounds.top<=mi&&t<pi){let t=O(e.particle.options.bounce.vertical.value);e.particle.velocity.y*=-t,n=!0}if(!n)return;let r=e.offset.y+e.size;e.bounds.bottom>=e.canvasSize.height&&e.direction===P.bottom?e.particle.position.y=e.canvasSize.height-r:e.bounds.top<=mi&&e.direction===P.top&&(e.particle.position.y=r),e.outMode===W.split&&e.particle.destroy()}var _i=class{constructor(e){this.container=e,this.modes=[W.bounce,W.split]}update(e,t,n,r){if(!this.modes.includes(r))return;let i=this.container,a=!1;for(let r of i.plugins.values())if(r.particleBounce!==void 0&&(a=r.particleBounce(e,n,t)),a)break;if(a)return;let o=e.getPosition(),s=e.offset,c=e.getRadius(),l=We(o,c),u=i.canvas.size;hi({particle:e,outMode:r,direction:t,bounds:l,canvasSize:u,offset:s,size:c}),gi({particle:e,outMode:r,direction:t,bounds:l,canvasSize:u,offset:s,size:c})}},vi=0,yi=class{constructor(e){this.container=e,this.modes=[W.destroy]}update(e,t,n,r){if(!this.modes.includes(r))return;let i=this.container;switch(e.outType){case G.normal:case G.outside:if(He(e.position,i.canvas.size,w.origin,e.getRadius(),t))return;break;case G.inside:{let{dx:t,dy:n}=j(e.position,e.moveCenter),{x:r,y:i}=e.velocity;if(r<vi&&t>e.moveCenter.radius||i<vi&&n>e.moveCenter.radius||r>=vi&&t<-e.moveCenter.radius||i>=vi&&n<-e.moveCenter.radius)return;break}}i.particles.remove(e,e.group,!0)}},bi=0,xi=class{constructor(e){this.container=e,this.modes=[W.none]}update(e,t,n,r){if(!this.modes.includes(r)||((e.options.move.distance.horizontal&&(t===P.left||t===P.right))??(e.options.move.distance.vertical&&(t===P.top||t===P.bottom))))return;let i=e.options.move.gravity,a=this.container,o=a.canvas.size,s=e.getRadius();if(i.enable){let n=e.position;(!i.inverse&&n.y>o.height+s&&t===P.bottom||i.inverse&&n.y<-s&&t===P.top)&&a.particles.remove(e)}else{if(e.velocity.y>bi&&e.position.y<=o.height+s||e.velocity.y<bi&&e.position.y>=-s||e.velocity.x>bi&&e.position.x<=o.width+s||e.velocity.x<bi&&e.position.x>=-s)return;He(e.position,a.canvas.size,w.origin,s,t)||a.particles.remove(e)}}},Si=0,Ci=0,wi=class{constructor(e){this.container=e,this.modes=[W.out]}update(e,t,n,r){if(!this.modes.includes(r))return;let i=this.container;switch(e.outType){case G.inside:{let{x:t,y:n}=e.velocity,r=w.origin;r.length=e.moveCenter.radius,r.angle=e.velocity.angle+Math.PI,r.addTo(w.create(e.moveCenter));let{dx:a,dy:o}=j(e.position,r);if(t<=Si&&a>=Ci||n<=Si&&o>=Ci||t>=Si&&a<=Ci||n>=Si&&o<=Ci)return;e.position.x=Math.floor(D({min:0,max:i.canvas.size.width})),e.position.y=Math.floor(D({min:0,max:i.canvas.size.height}));let{dx:s,dy:c}=j(e.position,e.moveCenter);e.direction=Math.atan2(-c,-s),e.velocity.angle=e.direction;break}default:if(He(e.position,i.canvas.size,w.origin,e.getRadius(),t))return;switch(e.outType){case G.outside:{e.position.x=Math.floor(D({min:-e.moveCenter.radius,max:e.moveCenter.radius}))+e.moveCenter.x,e.position.y=Math.floor(D({min:-e.moveCenter.radius,max:e.moveCenter.radius}))+e.moveCenter.y;let{dx:t,dy:n}=j(e.position,e.moveCenter);e.moveCenter.radius&&(e.direction=Math.atan2(n,t),e.velocity.angle=e.direction);break}case G.normal:{let n=e.options.move.warp,r=i.canvas.size,a={bottom:r.height+e.getRadius()+e.offset.y,left:-e.getRadius()-e.offset.x,right:r.width+e.getRadius()+e.offset.x,top:-e.getRadius()-e.offset.y},o=e.getRadius(),s=We(e.position,o);t===P.right&&s.left>r.width+e.offset.x?(e.position.x=a.left,e.initialPosition.x=e.position.x,n||(e.position.y=T()*r.height,e.initialPosition.y=e.position.y)):t===P.left&&s.right<-e.offset.x&&(e.position.x=a.right,e.initialPosition.x=e.position.x,n||(e.position.y=T()*r.height,e.initialPosition.y=e.position.y)),t===P.bottom&&s.top>r.height+e.offset.y?(n||(e.position.x=T()*r.width,e.initialPosition.x=e.position.x),e.position.y=a.top,e.initialPosition.y=e.position.y):t===P.top&&s.bottom<-e.offset.y&&(n||(e.position.x=T()*r.width,e.initialPosition.x=e.position.x),e.position.y=a.bottom,e.initialPosition.y=e.position.y);break}}break}}},Ti=(e,t)=>e.default===t||e.bottom===t||e.left===t||e.right===t||e.top===t,Ei=class{constructor(e){this._addUpdaterIfMissing=(e,t,n)=>{let r=e.options.move.outModes;!this.updaters.has(t)&&Ti(r,t)&&this.updaters.set(t,n(this.container))},this._updateOutMode=(e,t,n,r)=>{for(let i of this.updaters.values())i.update(e,r,t,n)},this.container=e,this.updaters=new Map}init(e){this._addUpdaterIfMissing(e,W.bounce,e=>new _i(e)),this._addUpdaterIfMissing(e,W.out,e=>new wi(e)),this._addUpdaterIfMissing(e,W.destroy,e=>new yi(e)),this._addUpdaterIfMissing(e,W.none,e=>new xi(e))}isEnabled(e){return!e.destroyed&&!e.spawning}update(e,t){let n=e.options.move.outModes;this._updateOutMode(e,t,n.bottom??n.default,P.bottom),this._updateOutMode(e,t,n.left??n.default,P.left),this._updateOutMode(e,t,n.right??n.default,P.right),this._updateOutMode(e,t,n.top??n.default,P.top)}};async function Di(e,t=!0){e.checkVersion(`3.9.1`),await e.addParticleUpdater(`outModes`,e=>Promise.resolve(new Ei(e)),t)}var Oi;(function(e){e[e.r=1]=`r`,e[e.g=2]=`g`,e[e.b=3]=`b`,e[e.a=5]=`a`})(Oi||={});var ki=class{constructor(){this.key=`rgb`,this.stringPrefix=`rgb`}handleColor(e){let t=e.value.rgb??e.value;if(t.r!==void 0)return t}handleRangeColor(e){let t=e.value.rgb??e.value;if(t.r!==void 0)return{r:O(t.r),g:O(t.g),b:O(t.b)}}parseString(e){if(!e.startsWith(this.stringPrefix))return;let t=/rgba?\(\s*(\d{1,3})\s*[\s,]\s*(\d{1,3})\s*[\s,]\s*(\d{1,3})\s*([\s,]\s*(0|1|0?\.\d+|(\d{1,3})%)\s*)?\)/i.exec(e);return t?{a:t.length>4?we(t[Oi.a]):1,b:parseInt(t[Oi.b],10),g:parseInt(t[Oi.g],10),r:parseInt(t[Oi.r],10)}:void 0}};async function Ai(e,t=!0){e.checkVersion(`3.9.1`),await e.addColorManager(new ki,t)}var ji=0,Mi=class{init(e){let t=e.container,n=e.options.size.animation;n.enable&&(e.size.velocity=(e.retina.sizeAnimationSpeed??t.retina.sizeAnimationSpeed)/100*t.retina.reduceFactor,n.sync||(e.size.velocity*=T()))}isEnabled(e){return!e.destroyed&&!e.spawning&&e.size.enable&&((e.size.maxLoops??ji)<=ji||(e.size.maxLoops??ji)>ji&&(e.size.loops??ji)<(e.size.maxLoops??ji))}reset(e){e.size.loops=ji}update(e,t){this.isEnabled(e)&&rt(e,e.size,!0,e.options.size.animation.destroy,t)}};async function Ni(e,t=!0){e.checkVersion(`3.9.1`),await e.addParticleUpdater(`size`,()=>Promise.resolve(new Mi),t)}async function Pi(e,t=!0){e.checkVersion(`3.9.1`),await si(e,!1),await ui(e,!1),await Ai(e,!1),await Hr(e,!1),await Zr(e,!1),await $r(e,!1),await fi(e,!1),await Di(e,!1),await Ni(e,!1),await e.refresh(t)}async function Fi(e,t=!0){e.checkVersion(`3.9.1`),await e.addEasing(vr.easeInQuad,e=>e**2,!1),await e.addEasing(vr.easeOutQuad,e=>1-(1-e)**2,!1),await e.addEasing(vr.easeInOutQuad,e=>e<.5?2*e**2:1-(-2*e+2)**2/2,!1),await e.refresh(t)}function Ii(e,t){let{context:n,opacity:r}=e,i=n.globalAlpha;if(!t)return;let a=t.width,o=a*.5;n.globalAlpha=r,n.drawImage(t,-o,-o,a,a),n.globalAlpha=i}var Li=`"Twemoji Mozilla", Apple Color Emoji, "Segoe UI Emoji", "Noto Color Emoji", "EmojiOne Color"`,Ri=0,zi=class{constructor(){this.validTypes=[`emoji`],this._emojiShapeDict=new Map}destroy(){for(let[e,t]of this._emojiShapeDict)t instanceof ImageBitmap&&t?.close(),this._emojiShapeDict.delete(e)}draw(e){let t=e.particle.emojiDataKey;if(!t)return;let n=this._emojiShapeDict.get(t);n&&Ii(e,n)}async init(e){let t=e.actualOptions,{validTypes:n}=this;if(!n.find(e=>F(e,t.particles.shape.type)))return;let r=[ze(Li)],i=n.map(e=>t.particles.shape.options[e]).find(e=>!!e);i&&L(i,e=>{e.font&&r.push(ze(e.font))}),await Promise.all(r)}particleDestroy(e){e.emojiDataKey=void 0}particleInit(e,t){let n=t.shapeData;if(!n?.value)return;let r=R(n.value,t.randomIndexData);if(!r)return;let i=typeof r==`string`?{font:n.font??Li,padding:n.padding??Ri,value:r}:{font:Li,padding:Ri,...n,...r},a=i.font,o=i.value,s=`${o}_${a}`;if(this._emojiShapeDict.has(s)){t.emojiDataKey=s;return}let c=i.padding*2,l=k(t.size.value),u=l+c,d=u*2,f;if(typeof OffscreenCanvas<`u`){let e=new OffscreenCanvas(d,d),t=e.getContext(`2d`);if(!t)return;t.font=`400 ${l*2}px ${a}`,t.textBaseline=`middle`,t.textAlign=`center`,t.fillText(o,u,u),f=e.transferToImageBitmap()}else{let e=document.createElement(`canvas`);e.width=d,e.height=d;let t=e.getContext(`2d`);if(!t)return;t.font=`400 ${l*2}px ${a}`,t.textBaseline=`middle`,t.textAlign=`center`,t.fillText(o,u,u),f=e}this._emojiShapeDict.set(s,f),t.emojiDataKey=s}};async function Bi(e,t=!0){e.checkVersion(`3.9.1`),await e.addShape(new zi,t)}var Vi=1,Hi=1,Ui=0;function Wi(e,t,n,r,i,a){let o=t.actualOptions.interactivity.modes.attract;if(!o)return;let s=t.particles.quadTree.query(i,a);for(let t of s){let{dx:i,dy:a,distance:s}=j(t.position,n),c=o.speed*o.factor,l=E(e.getEasing(o.easing)(Hi-s/r)*c,Vi,o.maxSpeed),u=w.create(s?i/s*l:c,s?a/s*l:c);t.position.subFrom(u)}}function Gi(e,t,n){t.attract||={particles:[]};let{attract:r}=t;if(r.finish||(r.count||=0,r.count++,r.count===t.particles.count&&(r.finish=!0)),r.clicking){let r=t.interactivity.mouse.clickPosition,i=t.retina.attractModeDistance;if(!i||i<Ui||!r)return;Wi(e,t,r,i,new K(r.x,r.y,i),e=>n(e))}else r.clicking===!1&&(r.particles=[])}function Ki(e,t,n){let r=t.interactivity.mouse.position,i=t.retina.attractModeDistance;!i||i<Ui||!r||Wi(e,t,r,i,new K(r.x,r.y,i),e=>n(e))}var qi=class{constructor(){this.distance=200,this.duration=.4,this.easing=vr.easeOutQuad,this.factor=1,this.maxSpeed=50,this.speed=1}load(e){C(e)||(e.distance!==void 0&&(this.distance=e.distance),e.duration!==void 0&&(this.duration=e.duration),e.easing!==void 0&&(this.easing=e.easing),e.factor!==void 0&&(this.factor=e.factor),e.maxSpeed!==void 0&&(this.maxSpeed=e.maxSpeed),e.speed!==void 0&&(this.speed=e.speed))}},Ji=`attract`,Yi=class extends Y{constructor(e,t){super(t),this._engine=e,t.attract||={particles:[]},this.handleClickMode=e=>{let n=this.container.actualOptions.interactivity.modes.attract;if(!(!n||e!==Ji)){t.attract||={particles:[]},t.attract.clicking=!0,t.attract.count=0;for(let e of t.attract.particles)this.isEnabled(e)&&e.velocity.setTo(e.initialVelocity);t.attract.particles=[],t.attract.finish=!1,setTimeout(()=>{t.destroyed||(t.attract||={particles:[]},t.attract.clicking=!1)},n.duration*_)}}}clear(){}init(){let e=this.container,t=e.actualOptions.interactivity.modes.attract;t&&(e.retina.attractModeDistance=t.distance*e.retina.pixelRatio)}interact(){let e=this.container,t=e.actualOptions,n=e.interactivity.status===c,r=t.interactivity.events,{enable:i,mode:a}=r.onHover,{enable:o,mode:s}=r.onClick;n&&i&&F(Ji,a)?Ki(this._engine,this.container,e=>this.isEnabled(e)):o&&F(Ji,s)&&Gi(this._engine,this.container,e=>this.isEnabled(e))}isEnabled(e){let t=this.container,n=t.actualOptions,r=t.interactivity.mouse,i=(e?.interactivity??n.interactivity).events;if((!r.position||!i.onHover.enable)&&(!r.clickPosition||!i.onClick.enable))return!1;let a=i.onHover.mode,o=i.onClick.mode;return F(Ji,a)||F(Ji,o)}loadModeOptions(e,...t){e.attract||=new qi;for(let n of t)e.attract.load(n?.attract)}reset(){}};async function Xi(e,t=!0){e.checkVersion(`3.9.1`),await e.addInteractor(`externalAttract`,t=>Promise.resolve(new Yi(e,t)),t)}var Zi=2,Qi=.5,$i=Math.PI*Qi,ea=2,ta=10,na=0;function ra(e,t,n,r,i){let a=e.particles.quadTree.query(r,i);for(let e of a)r instanceof K?Xe(Ye(e),{position:t,radius:n,mass:n**Zi*$i,velocity:w.origin,factor:w.origin}):r instanceof q&&Ze(e,We(t,n))}function ia(e,t,n,r){let i=document.querySelectorAll(t);i.length&&i.forEach(t=>{let i=t,a=e.retina.pixelRatio,o={x:(i.offsetLeft+i.offsetWidth*Qi)*a,y:(i.offsetTop+i.offsetHeight*Qi)*a},s=i.offsetWidth*Qi*a,c=ta*a;r(o,s,n.type===Kt.circle?new K(o.x,o.y,s+c):new q(i.offsetLeft*a-c,i.offsetTop*a-c,i.offsetWidth*a+c*ea,i.offsetHeight*a+c*ea))})}function aa(e,t,n,r){Ke(n,t,(t,n)=>ia(e,t,n,(t,n,i)=>ra(e,t,n,i,r)))}function oa(e,t){let n=ta*e.retina.pixelRatio,r=e.interactivity.mouse.position,i=e.retina.bounceModeDistance;!i||i<na||!r||ra(e,r,i,new K(r.x,r.y,i+n),t)}var sa=class{constructor(){this.distance=200}load(e){C(e)||e.distance!==void 0&&(this.distance=e.distance)}},ca=`bounce`,la=class extends Y{constructor(e){super(e)}clear(){}init(){let e=this.container,t=e.actualOptions.interactivity.modes.bounce;t&&(e.retina.bounceModeDistance=t.distance*e.retina.pixelRatio)}interact(){let e=this.container,t=e.actualOptions.interactivity.events,n=e.interactivity.status===c,r=t.onHover.enable,i=t.onHover.mode,a=t.onDiv;n&&r&&F(ca,i)?oa(this.container,e=>this.isEnabled(e)):aa(this.container,a,ca,e=>this.isEnabled(e))}isEnabled(e){let t=this.container,n=t.actualOptions,r=t.interactivity.mouse,i=(e?.interactivity??n.interactivity).events,a=i.onDiv;return!!r.position&&i.onHover.enable&&F(ca,i.onHover.mode)||Ge(ca,a)}loadModeOptions(e,...t){e.bounce||=new sa;for(let n of t)e.bounce.load(n?.bounce)}reset(){}};async function ua(e,t=!0){e.checkVersion(`3.9.1`),await e.addInteractor(`externalBounce`,e=>Promise.resolve(new la(e)),t)}var da=class{constructor(){this.distance=200,this.duration=.4,this.mix=!1}load(e){if(!C(e)){if(e.distance!==void 0&&(this.distance=e.distance),e.duration!==void 0&&(this.duration=e.duration),e.mix!==void 0&&(this.mix=e.mix),e.opacity!==void 0&&(this.opacity=e.opacity),e.color!==void 0){let t=S(this.color)?void 0:this.color;this.color=L(e.color,e=>U.create(t,e))}e.size!==void 0&&(this.size=e.size)}}},fa=class extends da{constructor(){super(),this.selectors=[]}load(e){super.load(e),!C(e)&&e.selectors!==void 0&&(this.selectors=e.selectors)}},pa=class extends da{load(e){super.load(e),!C(e)&&(this.divs=L(e.divs,e=>{let t=new fa;return t.load(e),t}))}},Z;(function(e){e.color=`color`,e.opacity=`opacity`,e.size=`size`})(Z||={});function ma(e,t,n,r){if(t>=n)return E(e+(t-n)*r,e,t);if(t<n)return E(e-(n-t)*r,t,e)}var ha=`bubble`,ga=0,_a=0,va=2,ya=1,ba=1,xa=0,Sa=0,Ca=.5,wa=1,Ta=class extends Y{constructor(e,t){super(e),this._clickBubble=()=>{let e=this.container,t=e.actualOptions,n=e.interactivity.mouse.clickPosition,r=t.interactivity.modes.bubble;if(!r||!n)return;e.bubble||={};let i=e.retina.bubbleModeDistance;if(!i||i<ga)return;let a=e.particles.quadTree.queryCircle(n,i,e=>this.isEnabled(e)),{bubble:o}=e;for(let t of a){if(!o.clicking)continue;t.bubble.inRange=!o.durationEnd;let a=M(t.getPosition(),n),s=(new Date().getTime()-(e.interactivity.mouse.clickTime??_a))/_;s>r.duration&&(o.durationEnd=!0),s>r.duration*va&&(o.clicking=!1,o.durationEnd=!1);let c={bubbleObj:{optValue:e.retina.bubbleModeSize,value:t.bubble.radius},particlesObj:{optValue:k(t.options.size.value)*e.retina.pixelRatio,value:t.size.value},type:Z.size};this._process(t,a,s,c);let l={bubbleObj:{optValue:r.opacity,value:t.bubble.opacity},particlesObj:{optValue:k(t.options.opacity.value),value:t.opacity?.value??ya},type:Z.opacity};this._process(t,a,s,l),!o.durationEnd&&a<=i?this._hoverBubbleColor(t,a):delete t.bubble.color}},this._hoverBubble=()=>{let e=this.container,t=e.interactivity.mouse.position,n=e.retina.bubbleModeDistance;if(!n||n<ga||!t)return;let r=e.particles.quadTree.queryCircle(t,n,e=>this.isEnabled(e));for(let i of r){i.bubble.inRange=!0;let r=M(i.getPosition(),t),a=ba-r/n;r<=n?a>=Sa&&e.interactivity.status===`pointermove`&&(this._hoverBubbleSize(i,a),this._hoverBubbleOpacity(i,a),this._hoverBubbleColor(i,a)):this.reset(i),e.interactivity.status===`pointerleave`&&this.reset(i)}},this._hoverBubbleColor=(e,t,n)=>{let r=this.container.actualOptions,i=n??r.interactivity.modes.bubble;if(i){if(!e.bubble.finalColor){let t=i.color;if(!t)return;let n=R(t);e.bubble.finalColor=ut(this._engine,n)}if(e.bubble.finalColor)if(i.mix){e.bubble.color=void 0;let n=e.getFillColor();e.bubble.color=n?dt(_t(n,e.bubble.finalColor,ba-t,t)):e.bubble.finalColor}else e.bubble.color=e.bubble.finalColor}},this._hoverBubbleOpacity=(e,t,n)=>{let r=this.container.actualOptions,i=n?.opacity??r.interactivity.modes.bubble?.opacity;if(!i)return;let a=e.options.opacity.value,o=ma(e.opacity?.value??ya,i,k(a),t);o!==void 0&&(e.bubble.opacity=o)},this._hoverBubbleSize=(e,t,n)=>{let r=this.container,i=n?.size?n.size*r.retina.pixelRatio:r.retina.bubbleModeSize;if(i===void 0)return;let a=k(e.options.size.value)*r.retina.pixelRatio,o=e.size.value,s=ma(o,i,a,t);s!==void 0&&(e.bubble.radius=s)},this._process=(e,t,n,r)=>{let i=this.container,a=r.bubbleObj.optValue,o=i.actualOptions.interactivity.modes.bubble;if(!o||a===void 0)return;let s=o.duration,c=i.retina.bubbleModeDistance,l=r.particlesObj.optValue,u=r.bubbleObj.value,d=r.particlesObj.value??xa,f=r.type;if(!(!c||c<ga||a===l))if(i.bubble||={},i.bubble.durationEnd)u&&(f===Z.size&&delete e.bubble.radius,f===Z.opacity&&delete e.bubble.opacity);else if(t<=c){if((u??d)!==a){let t=d-n*(d-a)/s;f===Z.size&&(e.bubble.radius=t),f===Z.opacity&&(e.bubble.opacity=t)}}else f===Z.size&&delete e.bubble.radius,f===Z.opacity&&delete e.bubble.opacity},this._singleSelectorHover=(e,t,n)=>{let r=this.container,i=document.querySelectorAll(t),a=r.actualOptions.interactivity.modes.bubble;!a||!i.length||i.forEach(t=>{let i=t,o=r.retina.pixelRatio,s={x:(i.offsetLeft+i.offsetWidth*Ca)*o,y:(i.offsetTop+i.offsetHeight*Ca)*o},c=i.offsetWidth*Ca*o,l=n.type===Kt.circle?new K(s.x,s.y,c):new q(i.offsetLeft*o,i.offsetTop*o,i.offsetWidth*o,i.offsetHeight*o),u=r.particles.quadTree.query(l,e=>this.isEnabled(e));for(let t of u){if(!l.contains(t.getPosition()))continue;t.bubble.inRange=!0;let n=a.divs,r=Je(n,i);(!t.bubble.div||t.bubble.div!==i)&&(this.clear(t,e,!0),t.bubble.div=i),this._hoverBubbleSize(t,wa,r),this._hoverBubbleOpacity(t,wa,r),this._hoverBubbleColor(t,wa,r)}})},this._engine=t,e.bubble||={},this.handleClickMode=t=>{t===ha&&(e.bubble||={},e.bubble.clicking=!0)}}clear(e,t,n){e.bubble.inRange&&!n||(delete e.bubble.div,delete e.bubble.opacity,delete e.bubble.radius,delete e.bubble.color)}init(){let e=this.container,t=e.actualOptions.interactivity.modes.bubble;t&&(e.retina.bubbleModeDistance=t.distance*e.retina.pixelRatio,t.size!==void 0&&(e.retina.bubbleModeSize=t.size*e.retina.pixelRatio))}interact(e){let t=this.container.actualOptions.interactivity.events,n=t.onHover,r=t.onClick,i=n.enable,a=n.mode,o=r.enable,s=r.mode,c=t.onDiv;i&&F(ha,a)?this._hoverBubble():o&&F(ha,s)?this._clickBubble():Ke(ha,c,(t,n)=>this._singleSelectorHover(e,t,n))}isEnabled(e){let t=this.container,n=t.actualOptions,r=t.interactivity.mouse,{onClick:i,onDiv:a,onHover:o}=(e?.interactivity??n.interactivity).events,s=Ge(ha,a);return s||o.enable&&r.position||i.enable&&r.clickPosition?F(ha,o.mode)||F(ha,i.mode)||s:!1}loadModeOptions(e,...t){e.bubble||=new pa;for(let n of t)e.bubble.load(n?.bubble)}reset(e){e.bubble.inRange=!1}};async function Ea(e,t=!0){e.checkVersion(`3.9.1`),await e.addInteractor(`externalBubble`,t=>Promise.resolve(new Ta(t,e)),t)}var Da=class{constructor(){this.opacity=.5}load(e){C(e)||e.opacity!==void 0&&(this.opacity=e.opacity)}},Oa=class{constructor(){this.distance=80,this.links=new Da,this.radius=60}load(e){C(e)||(e.distance!==void 0&&(this.distance=e.distance),this.links.load(e.links),e.radius!==void 0&&(this.radius=e.radius))}},ka=0,Aa=1,ja=0;function Ma(e,t,n,r){let i=Math.floor(n.getRadius()/t.getRadius()),a=t.getFillColor(),o=n.getFillColor();if(!a||!o)return;let s=t.getPosition(),c=n.getPosition(),l=_t(a,o,t.getRadius(),n.getRadius()),u=e.createLinearGradient(s.x,s.y,c.x,c.y);return u.addColorStop(ka,gt(a,r)),u.addColorStop(E(i,ka,Aa),B(l,r)),u.addColorStop(Aa,gt(o,r)),u}function Na(e,t,n,r,i){Tt(e,r,i),e.lineWidth=t,e.strokeStyle=n,e.stroke()}function Pa(e,t,n,r){let i=e.actualOptions.interactivity.modes.connect;if(i)return Ma(t,n,r,i.links.opacity)}function Fa(e,t,n){e.canvas.draw(r=>{let i=Pa(e,r,t,n);if(!i)return;let a=t.getPosition(),o=n.getPosition();Na(r,t.retina.linksWidth??ja,i,a,o)})}var Ia=`connect`,La=0,Ra=class extends Y{constructor(e){super(e)}clear(){}init(){let e=this.container,t=e.actualOptions.interactivity.modes.connect;t&&(e.retina.connectModeDistance=t.distance*e.retina.pixelRatio,e.retina.connectModeRadius=t.radius*e.retina.pixelRatio)}interact(){let e=this.container;if(e.actualOptions.interactivity.events.onHover.enable&&e.interactivity.status===`pointermove`){let t=e.interactivity.mouse.position,{connectModeDistance:n,connectModeRadius:r}=e.retina;if(!n||n<La||!r||r<La||!t)return;let i=Math.abs(r),a=e.particles.quadTree.queryCircle(t,i,e=>this.isEnabled(e));a.forEach((t,r)=>{let i=t.getPosition();for(let o of a.slice(r+1)){let r=o.getPosition(),a=Math.abs(n),s=Math.abs(i.x-r.x),c=Math.abs(i.y-r.y);s<a&&c<a&&Fa(e,t,o)}})}}isEnabled(e){let t=this.container,n=t.interactivity.mouse,r=(e?.interactivity??t.actualOptions.interactivity).events;return r.onHover.enable&&n.position?F(Ia,r.onHover.mode):!1}loadModeOptions(e,...t){e.connect||=new Oa;for(let n of t)e.connect.load(n?.connect)}reset(){}};async function za(e,t=!0){e.checkVersion(`3.9.1`),await e.addInteractor(`externalConnect`,e=>Promise.resolve(new Ra(e)),t)}var Ba=class{constructor(){this.blink=!1,this.consent=!1,this.opacity=1}load(e){C(e)||(e.blink!==void 0&&(this.blink=e.blink),e.color!==void 0&&(this.color=U.create(this.color,e.color)),e.consent!==void 0&&(this.consent=e.consent),e.opacity!==void 0&&(this.opacity=e.opacity))}},Va=class{constructor(){this.distance=100,this.links=new Ba}load(e){C(e)||(e.distance!==void 0&&(this.distance=e.distance),this.links.load(e.links))}},Ha=0;function Ua(e,t,n,r,i,a){Tt(e,n,r),e.strokeStyle=B(i,a),e.lineWidth=t,e.stroke()}function Wa(e,t,n,r,i){e.canvas.draw(e=>{let a=t.getPosition();Ua(e,t.retina.linksWidth??Ha,a,i,n,r)})}var Ga=`grab`,Ka=0,qa=0,Ja=class extends Y{constructor(e,t){super(e),this._engine=t}clear(){}init(){let e=this.container,t=e.actualOptions.interactivity.modes.grab;t&&(e.retina.grabModeDistance=t.distance*e.retina.pixelRatio)}interact(){let e=this.container,t=e.actualOptions.interactivity;if(!t.modes.grab||!t.events.onHover.enable||e.interactivity.status!==`pointermove`)return;let n=e.interactivity.mouse.position;if(!n)return;let r=e.retina.grabModeDistance;if(!r||r<Ka)return;let i=e.particles.quadTree.queryCircle(n,r,e=>this.isEnabled(e));for(let a of i){let i=M(a.getPosition(),n);if(i>r)continue;let o=t.modes.grab.links,s=o.opacity,c=s-i*s/r;if(c<=qa)continue;let l=o.color??a.options.links?.color;if(!e.particles.grabLineColor&&l){let n=t.modes.grab.links;e.particles.grabLineColor=yt(this._engine,l,n.blink,n.consent)}let u=vt(a,void 0,e.particles.grabLineColor);u&&Wa(e,a,u,c,n)}}isEnabled(e){let t=this.container,n=t.interactivity.mouse,r=(e?.interactivity??t.actualOptions.interactivity).events;return r.onHover.enable&&!!n.position&&F(Ga,r.onHover.mode)}loadModeOptions(e,...t){e.grab||=new Va;for(let n of t)e.grab.load(n?.grab)}reset(){}};async function Ya(e,t=!0){e.checkVersion(`3.9.1`),await e.addInteractor(`externalGrab`,t=>Promise.resolve(new Ja(t,e)),t)}var Xa=`pause`,Za=class extends Y{constructor(e){super(e),this.handleClickMode=e=>{if(e!==Xa)return;let t=this.container;t.animationStatus?t.pause():t.play()}}clear(){}init(){}interact(){}isEnabled(){return!0}reset(){}};async function Qa(e,t=!0){e.checkVersion(`3.9.1`),await e.addInteractor(`externalPause`,e=>Promise.resolve(new Za(e)),t)}var $a=class{constructor(){this.default=!0,this.groups=[],this.quantity=4}load(e){if(C(e))return;e.default!==void 0&&(this.default=e.default),e.groups!==void 0&&(this.groups=e.groups.map(e=>e)),this.groups.length||(this.default=!0);let t=e.quantity;t!==void 0&&(this.quantity=A(t)),this.particles=L(e.particles,e=>I({},e))}},eo=`push`,to=0,no=class extends Y{constructor(e){super(e),this.handleClickMode=e=>{if(e!==eo)return;let t=this.container,n=t.actualOptions.interactivity.modes.push;if(!n)return;let r=O(n.quantity);if(r<=to)return;let i=Ve([void 0,...n.groups]),a=I(i===void 0?void 0:t.actualOptions.particles.groups[i],R(n.particles));t.particles.push(r,t.interactivity.mouse,a,i)}}clear(){}init(){}interact(){}isEnabled(){return!0}loadModeOptions(e,...t){e.push||=new $a;for(let n of t)e.push.load(n?.push)}reset(){}};async function ro(e,t=!0){e.checkVersion(`3.9.1`),await e.addInteractor(`externalPush`,e=>Promise.resolve(new no(e)),t)}var io=class{constructor(){this.quantity=2}load(e){if(C(e))return;let t=e.quantity;t!==void 0&&(this.quantity=A(t))}},ao=`remove`,oo=class extends Y{constructor(e){super(e),this.handleClickMode=e=>{let t=this.container,n=t.actualOptions;if(!n.interactivity.modes.remove||e!==ao)return;let r=O(n.interactivity.modes.remove.quantity);t.particles.removeQuantity(r)}}clear(){}init(){}interact(){}isEnabled(){return!0}loadModeOptions(e,...t){e.remove||=new io;for(let n of t)e.remove.load(n?.remove)}reset(){}};async function so(e,t=!0){e.checkVersion(`3.9.1`),await e.addInteractor(`externalRemove`,e=>Promise.resolve(new oo(e)),t)}var co=class{constructor(){this.distance=200,this.duration=.4,this.factor=100,this.speed=1,this.maxSpeed=50,this.easing=vr.easeOutQuad}load(e){C(e)||(e.distance!==void 0&&(this.distance=e.distance),e.duration!==void 0&&(this.duration=e.duration),e.easing!==void 0&&(this.easing=e.easing),e.factor!==void 0&&(this.factor=e.factor),e.speed!==void 0&&(this.speed=e.speed),e.maxSpeed!==void 0&&(this.maxSpeed=e.maxSpeed))}},lo=class extends co{constructor(){super(),this.selectors=[]}load(e){super.load(e),!C(e)&&e.selectors!==void 0&&(this.selectors=e.selectors)}},uo=class extends co{load(e){super.load(e),!C(e)&&(this.divs=L(e.divs,e=>{let t=new lo;return t.load(e),t}))}},fo=`repulse`,po=0,mo=6,ho=3,go=2,_o=0,vo=0,yo=1,bo=.5,xo=class extends Y{constructor(e,t){super(t),this._clickRepulse=()=>{let e=this.container,t=e.actualOptions.interactivity.modes.repulse;if(!t)return;let n=e.repulse??{particles:[]};if(n.finish||(n.count||=0,n.count++,n.count===e.particles.count&&(n.finish=!0)),n.clicking){let r=e.retina.repulseModeDistance;if(!r||r<po)return;let i=(r/mo)**+ho,a=e.interactivity.mouse.clickPosition;if(a===void 0)return;let o=new K(a.x,a.y,i),s=e.particles.quadTree.query(o,e=>this.isEnabled(e));for(let e of s){let{dx:r,dy:o,distance:s}=j(a,e.position),c=s**go,l=t.speed,u=-i*l/c;if(c<=i){n.particles.push(e);let t=w.create(r,o);t.length=u,e.velocity.setTo(t)}}}else if(n.clicking===!1){for(let e of n.particles)e.velocity.setTo(e.initialVelocity);n.particles=[]}},this._hoverRepulse=()=>{let e=this.container,t=e.interactivity.mouse.position,n=e.retina.repulseModeDistance;!n||n<_o||!t||this._processRepulse(t,n,new K(t.x,t.y,n))},this._processRepulse=(e,t,n,r)=>{let i=this.container,a=i.particles.quadTree.query(n,e=>this.isEnabled(e)),o=i.actualOptions.interactivity.modes.repulse;if(!o)return;let{easing:s,speed:c,factor:l,maxSpeed:u}=o,d=this._engine.getEasing(s),f=(r?.speed??c)*l;for(let n of a){let{dx:r,dy:i,distance:a}=j(n.position,e),o=E(d(yo-a/t)*f,vo,u),s=w.create(a?r/a*o:f,a?i/a*o:f);n.position.addTo(s)}},this._singleSelectorRepulse=(e,t)=>{let n=this.container,r=n.actualOptions.interactivity.modes.repulse;if(!r)return;let i=document.querySelectorAll(e);i.length&&i.forEach(e=>{let i=e,a=n.retina.pixelRatio,o={x:(i.offsetLeft+i.offsetWidth*bo)*a,y:(i.offsetTop+i.offsetHeight*bo)*a},s=i.offsetWidth*bo*a,c=t.type===Kt.circle?new K(o.x,o.y,s):new q(i.offsetLeft*a,i.offsetTop*a,i.offsetWidth*a,i.offsetHeight*a),l=r.divs,u=Je(l,i);this._processRepulse(o,s,c,u)})},this._engine=e,t.repulse||={particles:[]},this.handleClickMode=e=>{let n=this.container.actualOptions.interactivity.modes.repulse;if(!n||e!==fo)return;t.repulse||={particles:[]};let r=t.repulse;r.clicking=!0,r.count=0;for(let e of t.repulse.particles)this.isEnabled(e)&&e.velocity.setTo(e.initialVelocity);r.particles=[],r.finish=!1,setTimeout(()=>{t.destroyed||(r.clicking=!1)},n.duration*_)}}clear(){}init(){let e=this.container,t=e.actualOptions.interactivity.modes.repulse;t&&(e.retina.repulseModeDistance=t.distance*e.retina.pixelRatio)}interact(){let e=this.container,t=e.actualOptions,n=e.interactivity.status===c,r=t.interactivity.events,i=r.onHover,a=i.enable,o=i.mode,s=r.onClick,l=s.enable,u=s.mode,d=r.onDiv;n&&a&&F(fo,o)?this._hoverRepulse():l&&F(fo,u)?this._clickRepulse():Ke(fo,d,(e,t)=>this._singleSelectorRepulse(e,t))}isEnabled(e){let t=this.container,n=t.actualOptions,r=t.interactivity.mouse,i=(e?.interactivity??n.interactivity).events,a=i.onDiv,o=i.onHover,s=i.onClick,c=Ge(fo,a);if(!(c||o.enable&&r.position||s.enable&&r.clickPosition))return!1;let l=o.mode,u=s.mode;return F(fo,l)||F(fo,u)||c}loadModeOptions(e,...t){e.repulse||=new uo;for(let n of t)e.repulse.load(n?.repulse)}reset(){}};async function So(e,t=!0){e.checkVersion(`3.9.1`),await e.addInteractor(`externalRepulse`,t=>Promise.resolve(new xo(e,t)),t)}var Co=class{constructor(){this.factor=3,this.radius=200}load(e){C(e)||(e.factor!==void 0&&(this.factor=e.factor),e.radius!==void 0&&(this.radius=e.radius))}},wo=`slow`,To=0,Eo=class extends Y{constructor(e){super(e)}clear(e,t,n){e.slow.inRange&&!n||(e.slow.factor=1)}init(){let e=this.container,t=e.actualOptions.interactivity.modes.slow;t&&(e.retina.slowModeRadius=t.radius*e.retina.pixelRatio)}interact(){}isEnabled(e){let t=this.container,n=t.interactivity.mouse,r=(e?.interactivity??t.actualOptions.interactivity).events;return r.onHover.enable&&!!n.position&&F(wo,r.onHover.mode)}loadModeOptions(e,...t){e.slow||=new Co;for(let n of t)e.slow.load(n?.slow)}reset(e){e.slow.inRange=!1;let t=this.container,n=t.actualOptions,r=t.interactivity.mouse.position,i=t.retina.slowModeRadius,a=n.interactivity.modes.slow;if(!a||!i||i<To||!r)return;let o=M(r,e.getPosition()),s=o/i,c=a.factor,{slow:l}=e;o>i||(l.inRange=!0,l.factor=s/c)}};async function Do(e,t=!0){e.checkVersion(`3.9.1`),await e.addInteractor(`externalSlow`,e=>Promise.resolve(new Eo(e)),t)}var Oo=0,ko=1,Ao=/(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d.]+%?\))|currentcolor/gi;function jo(e,t,n){let{svgData:r}=e;if(!r)return``;let i=gt(t,n);if(r.includes(`fill`))return r.replace(Ao,()=>i);let a=r.indexOf(`>`);return`${r.substring(Oo,a)} fill="${i}"${r.substring(a)}`}async function Mo(e){return new Promise(t=>{e.loading=!0;let n=new Image;e.element=n,n.addEventListener(`load`,()=>{e.loading=!1,t()}),n.addEventListener(`error`,()=>{e.element=void 0,e.error=!0,e.loading=!1,Ae().error(`${h} loading image: ${e.source}`),t()}),n.src=e.source})}async function No(e){if(e.type!==`svg`){await Mo(e);return}e.loading=!0;let t=await fetch(e.source);t.ok?e.svgData=await t.text():(Ae().error(`${h} Image not found`),e.error=!0),e.loading=!1}function Po(e,t,n,r){let i=jo(e,n,r.opacity?.value??ko),a={color:n,gif:t.gif,data:{...e,svgData:i},loaded:!1,ratio:t.width/t.height,replaceColor:t.replaceColor,source:t.src};return new Promise(t=>{let n=new Blob([i],{type:`image/svg+xml`}),r=URL||window.URL||window.webkitURL||window,o=r.createObjectURL(n),s=new Image;s.addEventListener(`load`,()=>{a.loaded=!0,a.element=s,t(a),r.revokeObjectURL(o)});let c=async()=>{r.revokeObjectURL(o);let n={...e,error:!1,loading:!0};await Mo(n),a.loaded=!0,a.element=n.element,t(a)};s.addEventListener(`error`,()=>void c()),s.src=o})}var Fo=[0,4,2,1],Io=[8,8,4,2],Lo=class{constructor(e){this.pos=0,this.data=new Uint8ClampedArray(e)}getString(e){let t=this.data.slice(this.pos,this.pos+e);return this.pos+=t.length,t.reduce((e,t)=>e+String.fromCharCode(t),``)}nextByte(){return this.data[this.pos++]}nextTwoBytes(){return this.pos+=2,this.data[this.pos-2]+(this.data[this.pos-1]<<8)}readSubBlocks(){let e=``,t=0;do{t=this.data[this.pos++];for(let n=t;--n>=0;e+=String.fromCharCode(this.data[this.pos++]));}while(t!==0);return e}readSubBlocksBin(){let e=this.data[this.pos],t=0;for(let n=0;e!==0;n+=e+1,e=this.data[this.pos+n])t+=e;let n=new Uint8Array(t);e=this.data[this.pos++];for(let t=0;e!==0;e=this.data[this.pos++])for(let r=e;--r>=0;n[t++]=this.data[this.pos++]);return n}skipSubBlocks(){for(;this.data[this.pos]!==0;this.pos+=this.data[this.pos]+1);this.pos++}},Q;(function(e){e[e.Replace=0]=`Replace`,e[e.Combine=1]=`Combine`,e[e.RestoreBackground=2]=`RestoreBackground`,e[e.RestorePrevious=3]=`RestorePrevious`,e[e.UndefinedA=4]=`UndefinedA`,e[e.UndefinedB=5]=`UndefinedB`,e[e.UndefinedC=6]=`UndefinedC`,e[e.UndefinedD=7]=`UndefinedD`})(Q||={});var Ro;(function(e){e[e.Extension=33]=`Extension`,e[e.ApplicationExtension=255]=`ApplicationExtension`,e[e.GraphicsControlExtension=249]=`GraphicsControlExtension`,e[e.PlainTextExtension=1]=`PlainTextExtension`,e[e.CommentExtension=254]=`CommentExtension`,e[e.Image=44]=`Image`,e[e.EndOfFile=59]=`EndOfFile`})(Ro||={});var $={x:0,y:0},zo=0,Bo=.5,Vo=0,Ho=0,Uo=0;function Wo(e,t){let n=[];for(let r=0;r<t;r++)n.push({r:e.data[e.pos],g:e.data[e.pos+1],b:e.data[e.pos+2]}),e.pos+=3;return n}function Go(e,t,n,r){switch(e.nextByte()){case Ro.GraphicsControlExtension:{let i=t.frames[n(!1)];e.pos++;let a=e.nextByte();i.GCreserved=(a&224)>>>5,i.disposalMethod=(a&28)>>>2,i.userInputDelayFlag=(a&2)==2;let o=(a&1)==1;i.delayTime=e.nextTwoBytes()*10;let s=e.nextByte();o&&r(s),e.pos++;break}case Ro.ApplicationExtension:{e.pos++;let n={identifier:e.getString(8),authenticationCode:e.getString(3),data:e.readSubBlocksBin()};t.applicationExtensions.push(n);break}case Ro.CommentExtension:t.comments.push([n(!1),e.readSubBlocks()]);break;case Ro.PlainTextExtension:if(t.globalColorTable.length===0)throw EvalError(`plain text extension without global color table`);e.pos++,t.frames[n(!1)].plainTextData={left:e.nextTwoBytes(),top:e.nextTwoBytes(),width:e.nextTwoBytes(),height:e.nextTwoBytes(),charSize:{width:e.nextTwoBytes(),height:e.nextTwoBytes()},foregroundColor:e.nextByte(),backgroundColor:e.nextByte(),text:e.readSubBlocks()};break;default:e.skipSubBlocks();break}}async function Ko(e,t,n,r,i,a){let o=t.frames[r(!0)];o.left=e.nextTwoBytes(),o.top=e.nextTwoBytes(),o.width=e.nextTwoBytes(),o.height=e.nextTwoBytes();let s=e.nextByte(),c=(s&128)==128,l=(s&64)==64;o.sortFlag=(s&32)==32,o.reserved=(s&24)>>>3;let u=1<<(s&7)+1;c&&(o.localColorTable=Wo(e,u));let d=e=>{let{r,g:a,b:s}=(c?o.localColorTable:t.globalColorTable)[e];return e===i(null)?{r,g:a,b:s,a:n?~~((r+a+s)/3):0}:{r,g:a,b:s,a:255}},f=(()=>{try{return new ImageData(o.width,o.height,{colorSpace:`srgb`})}catch(e){if(e instanceof DOMException&&e.name===`IndexSizeError`)return null;throw e}})();if(f==null)throw EvalError(`GIF frame size is to large`);let p=e.nextByte(),m=e.readSubBlocksBin(),h=1<<p,g=(e,t)=>{let n=e>>>3,r=e&7;return(m[n]+(m[n+1]<<8)+(m[n+2]<<16)&(1<<t)-1<<r)>>>r};if(l){for(let n=0,i=p+1,s=0,c=[[0]],l=0;l<4;l++){if(Fo[l]<o.height){let e=0,t=0,r=!1;for(;!r;){let a=n;if(n=g(s,i),s+=i+1,n===h){i=p+1,c.length=h+2;for(let e=0;e<c.length;e++)c[e]=e<h?[e]:[]}else{n>=c.length?c.push(c[a].concat(c[a][0])):a!==h&&c.push(c[a].concat(c[n][0]));for(let r of c[n]){let{r:n,g:i,b:a,a:s}=d(r);f.data.set([n,i,a,s],Fo[l]*o.width+Io[l]*t+e%(o.width*4)),e+=4}c.length===1<<i&&i<12&&i++}e===o.width*4*(t+1)&&(t++,Fo[l]+Io[l]*t>=o.height&&(r=!0))}}a?.(e.pos/(e.data.length-1),r(!1)+1,f,{x:o.left,y:o.top},{width:t.width,height:t.height})}o.image=f,o.bitmap=await createImageBitmap(f)}else{let n=0,i=p+1,s=0,c=-4,l=!1,u=[[0]];for(;!l;){let e=n;if(n=g(s,i),s+=i,n===h){i=p+1,u.length=h+2;for(let e=0;e<u.length;e++)u[e]=e<h?[e]:[]}else{if(n===h+1){l=!0;break}n>=u.length?u.push(u[e].concat(u[e][0])):e!==h&&u.push(u[e].concat(u[n][0]));for(let e of u[n]){let{r:t,g:n,b:r,a:i}=d(e);f.data.set([t,n,r,i],c+=4)}u.length>=1<<i&&i<12&&i++}}o.image=f,o.bitmap=await createImageBitmap(f),a?.((e.pos+1)/e.data.length,r(!1)+1,o.image,{x:o.left,y:o.top},{width:t.width,height:t.height})}}async function qo(e,t,n,r,i,a){switch(e.nextByte()){case Ro.EndOfFile:return!0;case Ro.Image:await Ko(e,t,n,r,i,a);break;case Ro.Extension:Go(e,t,r,i);break;default:throw EvalError(`undefined block found`)}return!1}function Jo(e){for(let t of e.applicationExtensions)if(t.identifier+t.authenticationCode===`NETSCAPE2.0`)return t.data[1]+(t.data[2]<<8);return NaN}async function Yo(e,t,n){n||=!1;let r=await fetch(e);if(!r.ok&&r.status===404)throw EvalError(`file not found`);let i=await r.arrayBuffer(),a={width:0,height:0,totalTime:0,colorRes:0,pixelAspectRatio:0,frames:[],sortFlag:!1,globalColorTable:[],backgroundImage:new ImageData(1,1,{colorSpace:`srgb`}),comments:[],applicationExtensions:[]},o=new Lo(new Uint8ClampedArray(i));if(o.getString(6)!==`GIF89a`)throw Error(`not a supported GIF file`);a.width=o.nextTwoBytes(),a.height=o.nextTwoBytes();let s=o.nextByte(),c=(s&128)==128;a.colorRes=(s&112)>>>4,a.sortFlag=(s&8)==8;let l=1<<(s&7)+1,u=o.nextByte();a.pixelAspectRatio=o.nextByte(),a.pixelAspectRatio!==0&&(a.pixelAspectRatio=(a.pixelAspectRatio+15)/64),c&&(a.globalColorTable=Wo(o,l));let d=(()=>{try{return new ImageData(a.width,a.height,{colorSpace:`srgb`})}catch(e){if(e instanceof DOMException&&e.name===`IndexSizeError`)return null;throw e}})();if(d==null)throw Error(`GIF frame size is to large`);let{r:f,g:p,b:m}=a.globalColorTable[u];d.data.set(c?[f,p,m,255]:[0,0,0,0]);for(let e=4;e<d.data.length;e*=2)d.data.copyWithin(e,0,e);a.backgroundImage=d;let h=-1,g=!0,_=-1,v=e=>(e&&(g=!0),h),ee=e=>(e!=null&&(_=e),_);try{do g&&=(a.frames.push({left:0,top:0,width:0,height:0,disposalMethod:Q.Replace,image:new ImageData(1,1,{colorSpace:`srgb`}),plainTextData:null,userInputDelayFlag:!1,delayTime:0,sortFlag:!1,localColorTable:[],reserved:0,GCreserved:0}),h++,_=-1,!1);while(!await qo(o,a,n,v,ee,t));a.frames.length--;for(let e of a.frames){if(e.userInputDelayFlag&&e.delayTime===0){a.totalTime=1/0;break}a.totalTime+=e.delayTime}return a}catch(e){throw e instanceof EvalError?Error(`error while parsing frame ${h} "${e.message}"`):e}}function Xo(e){let{context:t,radius:n,particle:r,delta:i}=e,a=r.image;if(!a?.gifData||!a.gif)return;let o=new OffscreenCanvas(a.gifData.width,a.gifData.height),s=o.getContext(`2d`);if(!s)throw Error(`could not create offscreen canvas context`);s.imageSmoothingQuality=`low`,s.imageSmoothingEnabled=!1,s.clearRect($.x,$.y,o.width,o.height),r.gifLoopCount===void 0&&(r.gifLoopCount=a.gifLoopCount??Uo);let c=r.gifFrame??zo,l={x:-a.gifData.width*Bo,y:-a.gifData.height*Bo},u=a.gifData.frames[c];if(r.gifTime===void 0&&(r.gifTime=Vo),u.bitmap){switch(t.scale(n/a.gifData.width,n/a.gifData.height),u.disposalMethod){case Q.UndefinedA:case Q.UndefinedB:case Q.UndefinedC:case Q.UndefinedD:case Q.Replace:s.drawImage(u.bitmap,u.left,u.top),t.drawImage(o,l.x,l.y),s.clearRect($.x,$.y,o.width,o.height);break;case Q.Combine:s.drawImage(u.bitmap,u.left,u.top),t.drawImage(o,l.x,l.y);break;case Q.RestoreBackground:s.drawImage(u.bitmap,u.left,u.top),t.drawImage(o,l.x,l.y),s.clearRect($.x,$.y,o.width,o.height),a.gifData.globalColorTable.length?s.putImageData(a.gifData.backgroundImage,l.x,l.y):s.putImageData(a.gifData.frames[Ho].image,l.x+u.left,l.y+u.top);break;case Q.RestorePrevious:{let e=s.getImageData($.x,$.y,o.width,o.height);s.drawImage(u.bitmap,u.left,u.top),t.drawImage(o,l.x,l.y),s.clearRect($.x,$.y,o.width,o.height),s.putImageData(e,$.x,$.y)}break}if(r.gifTime+=i.value,r.gifTime>u.delayTime){if(r.gifTime-=u.delayTime,++c>=a.gifData.frames.length){if(--r.gifLoopCount<=Uo)return;c=Ho,s.clearRect($.x,$.y,o.width,o.height)}r.gifFrame=c}t.scale(a.gifData.width/n,a.gifData.height/n)}}async function Zo(e){if(e.type!==`gif`){await Mo(e);return}e.loading=!0;try{e.gifData=await Yo(e.source),e.gifLoopCount=Jo(e.gifData)??Uo,e.gifLoopCount||=1/0}catch{e.error=!0}e.loading=!1}var Qo=2,$o=1,es=12,ts=1,ns=class{constructor(e){this.validTypes=[`image`,`images`],this.loadImageShape=async e=>{if(!this._engine.loadImage)throw Error(`${h} image shape not initialized`);await this._engine.loadImage({gif:e.gif,name:e.name,replaceColor:e.replaceColor??!1,src:e.src})},this._engine=e}addImage(e){this._engine.images||(this._engine.images=[]),this._engine.images.push(e)}draw(e){let{context:t,radius:n,particle:r,opacity:i}=e,a=r.image,o=a?.element;if(a){if(t.globalAlpha=i,a.gif&&a.gifData)Xo(e);else if(o){let e=a.ratio,r={x:-n,y:-n},i=n*Qo;t.drawImage(o,r.x,r.y,i,i/e)}t.globalAlpha=$o}}getSidesCount(){return es}async init(e){let t=e.actualOptions;if(!(!t.preload||!this._engine.loadImage))for(let e of t.preload)await this._engine.loadImage(e)}loadShape(e){if(e.shape!==`image`&&e.shape!==`images`)return;this._engine.images||(this._engine.images=[]);let t=e.shapeData;t&&(this._engine.images.find(e=>e.name===t.name||e.source===t.src)||this.loadImageShape(t).then(()=>{this.loadShape(e)}))}particleInit(e,t){if(t.shape!==`image`&&t.shape!==`images`)return;this._engine.images||(this._engine.images=[]);let n=this._engine.images,r=t.shapeData;if(!r)return;let i=t.getFillColor(),a=n.find(e=>e.name===r.name||e.source===r.src);if(!a)return;let o=r.replaceColor??a.replaceColor;if(a.loading){setTimeout(()=>{this.particleInit(e,t)});return}(async()=>{let e;e=a.svgData&&i?await Po(a,r,i,t):{color:i,data:a,element:a.element,gif:a.gif,gifData:a.gifData,gifLoopCount:a.gifLoopCount,loaded:!0,ratio:r.width&&r.height?r.width/r.height:a.ratio??ts,replaceColor:o,source:r.src},e.ratio||=1;let n=r.fill??t.shapeFill,s=r.close??t.shapeClose,c={image:e,fill:n,close:s};t.image=c.image,t.shapeFill=c.fill,t.shapeClose=c.close})()}},rs=class{constructor(){this.src=``,this.gif=!1}load(e){C(e)||(e.gif!==void 0&&(this.gif=e.gif),e.height!==void 0&&(this.height=e.height),e.name!==void 0&&(this.name=e.name),e.replaceColor!==void 0&&(this.replaceColor=e.replaceColor),e.src!==void 0&&(this.src=e.src),e.width!==void 0&&(this.width=e.width))}},is=class{constructor(e){this.id=`imagePreloader`,this._engine=e}async getPlugin(){return await Promise.resolve(),{}}loadOptions(e,t){if(!t?.preload)return;e.preload||=[];let n=e.preload;for(let e of t.preload){let t=n.find(t=>t.name===e.name||t.src===e.src);if(t)t.load(e);else{let t=new rs;t.load(e),n.push(t)}}}needsPlugin(){return!0}},as=3;function os(e){e.loadImage||=async t=>{if(!t.name&&!t.src)throw Error(`${h} no image source provided`);if(e.images||=[],!e.images.find(e=>e.name===t.name||e.source===t.src))try{let n={gif:t.gif??!1,name:t.name??t.src,source:t.src,type:t.src.substring(t.src.length-as),error:!1,loading:!0,replaceColor:t.replaceColor,ratio:t.width&&t.height?t.width/t.height:void 0};e.images.push(n);let r;r=t.gif?Zo:t.replaceColor?No:Mo,await r(n)}catch{throw Error(`${h} ${t.name??t.src} not found`)}}}async function ss(e,t=!0){e.checkVersion(`3.9.1`),os(e);let n=new is(e);await e.addPlugin(n,t),await e.addShape(new ns(e),t)}var cs=class extends hn{constructor(){super(),this.sync=!1}load(e){C(e)||(super.load(e),e.sync!==void 0&&(this.sync=e.sync))}},ls=class extends hn{constructor(){super(),this.sync=!1}load(e){C(e)||(super.load(e),e.sync!==void 0&&(this.sync=e.sync))}},us=class{constructor(){this.count=0,this.delay=new cs,this.duration=new ls}load(e){C(e)||(e.count!==void 0&&(this.count=e.count),this.delay.load(e.delay),this.duration.load(e.duration))}},ds=0,fs=-1,ps=0,ms=0;function hs(e,t,n){if(!e.life)return;let r=e.life,i=!1;if(e.spawning)if(r.delayTime+=t.value,r.delayTime>=e.life.delay)i=!0,e.spawning=!1,r.delayTime=ds,r.time=ds;else return;if(r.duration===fs||e.spawning||(i?r.time=ds:r.time+=t.value,r.time<r.duration))return;if(r.time=ds,e.life.count>ps&&e.life.count--,e.life.count===ps){e.destroy();return}let a=A(ms,n.width),o=A(ms,n.width);e.position.x=D(a),e.position.y=D(o),e.spawning=!0,r.delayTime=ds,r.time=ds,e.reset();let s=e.options.life;s&&(r.delay=O(s.delay.value)*_,r.duration=O(s.duration.value)*_)}var gs=0,_s=1,vs=-1,ys=class{constructor(e){this.container=e}init(e){let t=this.container,n=e.options.life;n&&(e.life={delay:t.retina.reduceFactor?O(n.delay.value)*(n.delay.sync?_s:T())/t.retina.reduceFactor*_:gs,delayTime:gs,duration:t.retina.reduceFactor?O(n.duration.value)*(n.duration.sync?_s:T())/t.retina.reduceFactor*_:gs,time:gs,count:n.count},e.life.duration<=gs&&(e.life.duration=vs),e.life.count<=gs&&(e.life.count=vs),e.life&&(e.spawning=e.life.delay>gs))}isEnabled(e){return!e.destroyed}loadOptions(e,...t){e.life||=new us;for(let n of t)e.life.load(n?.life)}update(e,t){!this.isEnabled(e)||!e.life||hs(e,t,this.container.canvas.size)}};async function bs(e,t=!0){e.checkVersion(`3.9.1`),await e.addParticleUpdater(`life`,async e=>Promise.resolve(new ys(e)),t)}function xs(e){let{context:t,particle:n,radius:r}=e,i=n.shapeData;t.moveTo(-r,0),t.lineTo(r,0),t.lineCap=i?.cap??`butt`}var Ss=1,Cs=class{constructor(){this.validTypes=[`line`]}draw(e){xs(e)}getSidesCount(){return Ss}};async function ws(e,t=!0){e.checkVersion(`3.9.1`),await e.addShape(new Cs,t)}var Ts=.5,Es=class{init(){}isEnabled(e){return!Pe()&&!e.destroyed&&e.container.actualOptions.interactivity.events.onHover.parallax.enable}move(e){let t=e.container,n=t.actualOptions.interactivity.events.onHover.parallax;if(Pe()||!n.enable)return;let r=n.force,i=t.interactivity.mouse.position;if(!i)return;let a=t.canvas.size,o={x:a.width*Ts,y:a.height*Ts},s=n.smooth,c=e.getRadius()/r,l={x:(i.x-o.x)*c,y:(i.y-o.y)*c},{offset:u}=e;u.x+=(l.x-u.x)/s,u.y+=(l.y-u.y)/s}};async function Ds(e,t=!0){e.checkVersion(`3.9.1`),await e.addMover(`parallax`,()=>Promise.resolve(new Es),t)}var Os=1e3,ks=1,As=class extends _r{constructor(e){super(e)}clear(){}init(){}interact(e){let t=this.container;e.attractDistance===void 0&&(e.attractDistance=O(e.options.move.attract.distance)*t.retina.pixelRatio);let n=e.attractDistance,r=e.getPosition(),i=t.particles.quadTree.queryCircle(r,n);for(let t of i){if(e===t||!t.options.move.attract.enable||t.destroyed||t.spawning)continue;let{dx:n,dy:i}=j(r,t.getPosition()),a=e.options.move.attract.rotate,o=n/(a.x*Os),s=i/(a.y*Os),c=t.size.value/e.size.value,l=ks/c;e.velocity.x-=o*c,e.velocity.y-=s*c,t.velocity.x+=o*l,t.velocity.y+=s*l}}isEnabled(e){return e.options.move.attract.enable}reset(){}};async function js(e,t=!0){e.checkVersion(`3.9.1`),await e.addInteractor(`particlesAttract`,e=>Promise.resolve(new As(e)),t)}var Ms=.5,Ns=10,Ps=0;function Fs(e,t,n,r,i,a){let o=E(e.options.collisions.absorb.speed*i.factor/Ns,Ps,r);e.size.value+=o*Ms,n.size.value-=o,r<=a&&(n.size.value=0,n.destroy())}function Is(e,t,n,r){let i=e.getRadius(),a=t.getRadius();i===void 0&&a!==void 0?e.destroy():i!==void 0&&a===void 0?t.destroy():i!==void 0&&a!==void 0&&(i>=a?Fs(e,i,t,a,n,r):Fs(t,a,e,i,n,r))}var Ls=e=>{e.collisionMaxSpeed===void 0&&(e.collisionMaxSpeed=O(e.options.collisions.maxSpeed)),e.velocity.length>e.collisionMaxSpeed&&(e.velocity.length=e.collisionMaxSpeed)};function Rs(e,t){Xe(Ye(e),Ye(t)),Ls(e),Ls(t)}function zs(e,t){!e.unbreakable&&!t.unbreakable&&Rs(e,t),e.getRadius()===void 0&&t.getRadius()!==void 0?e.destroy():e.getRadius()!==void 0&&t.getRadius()===void 0?t.destroy():e.getRadius()!==void 0&&t.getRadius()!==void 0&&(e.getRadius()>=t.getRadius()?t:e).destroy()}function Bs(e,t,n,r){switch(e.options.collisions.mode){case fn.absorb:Is(e,t,n,r);break;case fn.bounce:Rs(e,t);break;case fn.destroy:zs(e,t);break}}var Vs=2,Hs=class extends _r{constructor(e){super(e)}clear(){}init(){}interact(e,t){if(e.destroyed||e.spawning)return;let n=this.container,r=e.getPosition(),i=e.getRadius(),a=n.particles.quadTree.queryCircle(r,i*Vs);for(let o of a){if(e===o||!o.options.collisions.enable||e.options.collisions.mode!==o.options.collisions.mode||o.destroyed||o.spawning)continue;let a=o.getPosition(),s=o.getRadius();Math.abs(Math.round(r.z)-Math.round(a.z))>i+s||M(r,a)>i+s||Bs(e,o,t,n.retina.pixelRatio)}}isEnabled(e){return e.options.collisions.enable}reset(){}};async function Us(e,t=!0){e.checkVersion(`3.9.1`),await e.addInteractor(`particlesCollisions`,e=>Promise.resolve(new Hs(e)),t)}var Ws=2,Gs=class extends K{constructor(e,t,n,r){super(e,t,n),this.canvasSize=r,this.canvasSize={...r}}contains(e){let{width:t,height:n}=this.canvasSize,{x:r,y:i}=e;return super.contains(e)||super.contains({x:r-t,y:i})||super.contains({x:r-t,y:i-n})||super.contains({x:r,y:i-n})}intersects(e){if(super.intersects(e))return!0;let t=e,n=e,r={x:e.position.x-this.canvasSize.width,y:e.position.y-this.canvasSize.height};if(n.radius!==void 0){let e=new K(r.x,r.y,n.radius*Ws);return super.intersects(e)}else if(t.size!==void 0){let e=new q(r.x,r.y,t.size.width*Ws,t.size.height*Ws);return super.intersects(e)}return!1}},Ks=class{constructor(){this.blur=5,this.color=new U,this.color.value=`#000`,this.enable=!1}load(e){C(e)||(e.blur!==void 0&&(this.blur=e.blur),this.color=U.create(this.color,e.color),e.enable!==void 0&&(this.enable=e.enable))}},qs=class{constructor(){this.enable=!1,this.frequency=1}load(e){C(e)||(e.color!==void 0&&(this.color=U.create(this.color,e.color)),e.enable!==void 0&&(this.enable=e.enable),e.frequency!==void 0&&(this.frequency=e.frequency),e.opacity!==void 0&&(this.opacity=e.opacity))}},Js=class{constructor(){this.blink=!1,this.color=new U,this.color.value=`#fff`,this.consent=!1,this.distance=100,this.enable=!1,this.frequency=1,this.opacity=1,this.shadow=new Ks,this.triangles=new qs,this.width=1,this.warp=!1}load(e){C(e)||(e.id!==void 0&&(this.id=e.id),e.blink!==void 0&&(this.blink=e.blink),this.color=U.create(this.color,e.color),e.consent!==void 0&&(this.consent=e.consent),e.distance!==void 0&&(this.distance=e.distance),e.enable!==void 0&&(this.enable=e.enable),e.frequency!==void 0&&(this.frequency=e.frequency),e.opacity!==void 0&&(this.opacity=e.opacity),this.shadow.load(e.shadow),this.triangles.load(e.triangles),e.width!==void 0&&(this.width=e.width),e.warp!==void 0&&(this.warp=e.warp))}},Ys=2,Xs=1,Zs={x:0,y:0},Qs=0;function $s(e,t,n,r,i){let{dx:a,dy:o,distance:s}=j(e,t);if(!i||s<=n)return s;let c={x:Math.abs(a),y:Math.abs(o)},l={x:Math.min(c.x,r.width-c.x),y:Math.min(c.y,r.height-c.y)};return Math.sqrt(l.x**Ys+l.y**Ys)}var ec=class extends _r{constructor(e,t){super(e),this._setColor=e=>{if(!e.options.links)return;let t=this._linkContainer,n=e.options.links,r=n.id===void 0?t.particles.linksColor:t.particles.linksColors.get(n.id);if(r)return;let i=n.color;r=yt(this._engine,i,n.blink,n.consent),n.id===void 0?t.particles.linksColor=r:t.particles.linksColors.set(n.id,r)},this._linkContainer=e,this._engine=t}clear(){}init(){this._linkContainer.particles.linksColor=void 0,this._linkContainer.particles.linksColors=new Map}interact(e){if(!e.options.links)return;e.links=[];let t=e.getPosition(),n=this.container,r=n.canvas.size;if(t.x<Zs.x||t.y<Zs.y||t.x>r.width||t.y>r.height)return;let i=e.options.links,a=i.opacity,o=e.retina.linksDistance??Qs,s=i.warp,c;c=s?new Gs(t.x,t.y,o,r):new K(t.x,t.y,o);let l=n.particles.quadTree.query(c);for(let n of l){let c=n.options.links;if(e===n||!c?.enable||i.id!==c.id||n.spawning||n.destroyed||!n.links||e.links.some(e=>e.destination===n)||n.links.some(t=>t.destination===e))continue;let l=n.getPosition();if(l.x<Zs.x||l.y<Zs.y||l.x>r.width||l.y>r.height)continue;let u=$s(t,l,o,r,s&&c.warp);if(u>o)continue;let d=(Xs-u/o)*a;this._setColor(e),e.links.push({destination:n,opacity:d})}}isEnabled(e){return!!e.options.links?.enable}loadParticlesOptions(e,...t){e.links||=new Js;for(let n of t)e.links.load(n?.links)}reset(){}};async function tc(e,t=!0){await e.addInteractor(`particlesLinks`,async t=>Promise.resolve(new ec(t,e)),t)}function nc(e,t,n,r){e.beginPath(),e.moveTo(t.x,t.y),e.lineTo(n.x,n.y),e.lineTo(r.x,r.y),e.closePath()}function rc(e){let t=!1,{begin:n,end:r,engine:i,maxDistance:a,context:o,canvasSize:s,width:c,backgroundMask:l,colorLine:u,opacity:d,links:f}=e;if(M(n,r)<=a)Tt(o,n,r),t=!0;else if(f.warp){let e,i,c=j(n,{x:r.x-s.width,y:r.y});if(c.distance<=a){let t=n.y-c.dy/c.dx*n.x;e={x:0,y:t},i={x:s.width,y:t}}else{let t=j(n,{x:r.x,y:r.y-s.height});if(t.distance<=a){let r=-(n.y-t.dy/t.dx*n.x)/(t.dy/t.dx);e={x:r,y:0},i={x:r,y:s.height}}else{let t=j(n,{x:r.x-s.width,y:r.y-s.height});if(t.distance<=a){let r=n.y-t.dy/t.dx*n.x;e={x:-r/(t.dy/t.dx),y:r},i={x:e.x+s.width,y:e.y+s.height}}}}e&&i&&(Tt(o,n,e),Tt(o,r,i),t=!0)}if(!t)return;o.lineWidth=c,l.enable&&(o.globalCompositeOperation=l.composite),o.strokeStyle=B(u,d);let{shadow:p}=f;if(p.enable){let e=z(i,p.color);e&&(o.shadowBlur=p.blur,o.shadowColor=B(e))}o.stroke()}function ic(e){let{context:t,pos1:n,pos2:r,pos3:i,backgroundMask:a,colorTriangle:o,opacityTriangle:s}=e;nc(t,n,r,i),a.enable&&(t.globalCompositeOperation=a.composite),t.fillStyle=B(o,s),t.fill()}function ac(e){return e.sort((e,t)=>e-t),e.join(`_`)}function oc(e,t){let n=ac(e.map(e=>e.id)),r=t.get(n);return r===void 0&&(r=T(),t.set(n,r)),r}var sc=0,cc=0,lc=0,uc=.5,dc=1,fc=class{constructor(e,t){this._drawLinkLine=(e,t)=>{let n=e.options.links;if(!n?.enable)return;let r=this._container,i=r.actualOptions,a=t.destination,o=e.getPosition(),s=a.getPosition(),c=t.opacity;r.canvas.draw(t=>{let l,u=e.options.twinkle?.lines;if(u?.enable){let e=u.frequency,t=z(this._engine,u.color);T()<e&&t&&(l=t,c=O(u.opacity))}if(l||=vt(e,a,n.id===void 0?r.particles.linksColor:r.particles.linksColors.get(n.id)),!l)return;let d=e.retina.linksWidth??cc,f=e.retina.linksDistance??lc,{backgroundMask:p}=i;rc({context:t,width:d,begin:o,end:s,engine:this._engine,maxDistance:f,canvasSize:r.canvas.size,links:n,backgroundMask:p,colorLine:l,opacity:c})})},this._drawLinkTriangle=(e,t,n)=>{let r=e.options.links;if(!r?.enable)return;let i=r.triangles;if(!i.enable)return;let a=this._container,o=a.actualOptions,s=t.destination,c=n.destination,l=i.opacity??(t.opacity+n.opacity)*uc;l<=sc||a.canvas.draw(t=>{let n=e.getPosition(),u=s.getPosition(),d=c.getPosition(),f=e.retina.linksDistance??lc;if(M(n,u)>f||M(d,u)>f||M(d,n)>f)return;let p=z(this._engine,i.color);p||=vt(e,s,r.id===void 0?a.particles.linksColor:a.particles.linksColors.get(r.id)),p&&ic({context:t,pos1:n,pos2:u,pos3:d,backgroundMask:o.backgroundMask,colorTriangle:p,opacityTriangle:l})})},this._drawTriangles=(e,t,n,r)=>{let i=n.destination;if(!(e.links?.triangles.enable&&i.options.links?.triangles.enable))return;let a=i.links?.filter(e=>{let t=this._getLinkFrequency(i,e.destination);return i.options.links&&t<=i.options.links.frequency&&r.findIndex(t=>t.destination===e.destination)>=0});if(a?.length)for(let r of a){let a=r.destination;this._getTriangleFrequency(t,i,a)>e.links.triangles.frequency||this._drawLinkTriangle(t,n,r)}},this._getLinkFrequency=(e,t)=>oc([e,t],this._freqs.links),this._getTriangleFrequency=(e,t,n)=>oc([e,t,n],this._freqs.triangles),this._container=e,this._engine=t,this._freqs={links:new Map,triangles:new Map}}drawParticle(e,t){let{links:n,options:r}=t;if(!n?.length)return;let i=n.filter(e=>r.links&&(r.links.frequency>=dc||this._getLinkFrequency(t,e.destination)<=r.links.frequency));for(let e of i)this._drawTriangles(r,t,e,i),e.opacity>sc&&(t.retina.linksWidth??cc)>cc&&this._drawLinkLine(t,e)}async init(){this._freqs.links=new Map,this._freqs.triangles=new Map,await Promise.resolve()}particleCreated(e){if(e.links=[],!e.options.links)return;let t=this._container.retina.pixelRatio,{retina:n}=e,{distance:r,width:i}=e.options.links;n.linksDistance=r*t,n.linksWidth=i*t}particleDestroyed(e){e.links=[]}},pc=class{constructor(e){this.id=`links`,this._engine=e}getPlugin(e){return Promise.resolve(new fc(e,this._engine))}loadOptions(){}needsPlugin(){return!0}};async function mc(e,t=!0){let n=new pc(e);await e.addPlugin(n,t)}async function hc(e,t=!0){e.checkVersion(`3.9.1`),await tc(e,t),await mc(e,t)}var gc=180,_c={x:0,y:0},vc=2;function yc(e,t,n){let{context:r}=e,i=n.count.numerator*n.count.denominator,a=n.count.numerator/n.count.denominator,o=gc*(a-vc)/a,s=Math.PI-ye(o);if(r){r.beginPath(),r.translate(t.x,t.y),r.moveTo(_c.x,_c.y);for(let e=0;e<i;e++)r.lineTo(n.length,_c.y),r.translate(n.length,_c.y),r.rotate(s)}}var bc=5,xc=class{draw(e){let{particle:t,radius:n}=e;yc(e,this.getCenter(t,n),this.getSidesData(t,n))}getSidesCount(e){let t=e.shapeData;return Math.round(O(t?.sides??bc))}},Sc=3.5,Cc=2.66,wc=3,Tc=class extends xc{constructor(){super(...arguments),this.validTypes=[`polygon`]}getCenter(e,t){return{x:-t/(e.sides/Sc),y:-t/(Cc/Sc)}}getSidesData(e,t){let n=e.sides;return{count:{denominator:1,numerator:n},length:t*Cc/(n/wc)}}},Ec=1.66,Dc=3,Oc=2,kc=class extends xc{constructor(){super(...arguments),this.validTypes=[`triangle`]}getCenter(e,t){return{x:-t,y:t/Ec}}getSidesCount(){return Dc}getSidesData(e,t){return{count:{denominator:2,numerator:3},length:t*Oc}}};async function Ac(e,t=!0){e.checkVersion(`3.9.1`),await e.addShape(new Tc,t)}async function jc(e,t=!0){e.checkVersion(`3.9.1`),await e.addShape(new kc,t)}async function Mc(e,t=!0){e.checkVersion(`3.9.1`),await Ac(e,t),await jc(e,t)}var Nc=class{constructor(){this.enable=!1,this.speed=0,this.decay=0,this.sync=!1}load(e){C(e)||(e.enable!==void 0&&(this.enable=e.enable),e.speed!==void 0&&(this.speed=A(e.speed)),e.decay!==void 0&&(this.decay=A(e.decay)),e.sync!==void 0&&(this.sync=e.sync))}},Pc=class extends hn{constructor(){super(),this.animation=new Nc,this.direction=X.clockwise,this.path=!1,this.value=0}load(e){C(e)||(super.load(e),e.direction!==void 0&&(this.direction=e.direction),this.animation.load(e.animation),e.path!==void 0&&(this.path=e.path))}},Fc=2,Ic=Math.PI*Fc,Lc=1,Rc=360,zc=class{constructor(e){this.container=e}init(e){let t=e.options.rotate;if(!t)return;e.rotate={enable:t.animation.enable,value:ye(O(t.value)),min:0,max:Ic},e.pathRotation=t.path;let n=t.direction;switch(n===X.random&&(n=Math.floor(T()*Fc)>0?X.counterClockwise:X.clockwise),n){case X.counterClockwise:case`counterClockwise`:e.rotate.status=N.decreasing;break;case X.clockwise:e.rotate.status=N.increasing;break}let r=t.animation;r.enable&&(e.rotate.decay=Lc-O(r.decay),e.rotate.velocity=O(r.speed)/Rc*this.container.retina.reduceFactor,r.sync||(e.rotate.velocity*=T())),e.rotation=e.rotate.value}isEnabled(e){let t=e.options.rotate;return t?!e.destroyed&&!e.spawning&&(!!t.value||t.animation.enable||t.path):!1}loadOptions(e,...t){e.rotate||=new Pc;for(let n of t)e.rotate.load(n?.rotate)}update(e,t){this.isEnabled(e)&&(e.isRotating=!!e.rotate,e.rotate&&(rt(e,e.rotate,!1,Ee.none,t),e.rotation=e.rotate.value))}};async function Bc(e,t=!0){e.checkVersion(`3.9.1`),await e.addParticleUpdater(`rotate`,e=>Promise.resolve(new zc(e)),t)}var Vc=Math.sqrt(2),Hc=2;function Uc(e){let{context:t,radius:n}=e,r=n/Vc,i=r*Hc;t.rect(-r,-r,i,i)}var Wc=4,Gc=class{constructor(){this.validTypes=[`edge`,`square`]}draw(e){Uc(e)}getSidesCount(){return Wc}};async function Kc(e,t=!0){e.checkVersion(`3.9.1`),await e.addShape(new Gc,t)}var qc=2,Jc={x:0,y:0};function Yc(e){let{context:t,particle:n,radius:r}=e,i=n.sides,a=n.starInset??qc;t.moveTo(Jc.x,Jc.y-r);for(let e=0;e<i;e++)t.rotate(Math.PI/i),t.lineTo(Jc.x,Jc.y-r*a),t.rotate(Math.PI/i),t.lineTo(Jc.x,Jc.y-r)}var Xc=2,Zc=5,Qc=class{constructor(){this.validTypes=[`star`]}draw(e){Yc(e)}getSidesCount(e){let t=e.shapeData;return Math.round(O(t?.sides??Zc))}particleInit(e,t){let n=t.shapeData;t.starInset=O(n?.inset??Xc)}};async function $c(e,t=!0){e.checkVersion(`3.9.1`),await e.addShape(new Qc,t)}var el=1,tl=class{constructor(e,t){this._container=e,this._engine=t}init(e){let t=this._container,n=e.options,r=R(n.stroke,e.id,n.reduceDuplicates);e.strokeWidth=O(r.width)*t.retina.pixelRatio,e.strokeOpacity=O(r.opacity??el),e.strokeAnimation=r.color?.animation;let i=ut(this._engine,r.color)??e.getFillColor();i&&(e.strokeColor=xt(i,e.strokeAnimation,t.retina.reduceFactor))}isEnabled(e){let t=e.strokeAnimation,{strokeColor:n}=e;return!e.destroyed&&!e.spawning&&!!t&&(n?.h.value!==void 0&&n.h.enable||n?.s.value!==void 0&&n.s.enable||n?.l.value!==void 0&&n.l.enable)}update(e,t){this.isEnabled(e)&&wt(e.strokeColor,t)}};async function nl(e,t=!0){e.checkVersion(`3.9.1`),await e.addParticleUpdater(`strokeColor`,t=>Promise.resolve(new tl(t,e)),t)}async function rl(e,t=!0){e.checkVersion(`3.9.1`),await Ds(e,!1),await Xi(e,!1),await ua(e,!1),await Ea(e,!1),await za(e,!1),await Ya(e,!1),await Qa(e,!1),await ro(e,!1),await so(e,!1),await So(e,!1),await Do(e,!1),await js(e,!1),await Us(e,!1),await hc(e,!1),await Fi(e,!1),await Bi(e,!1),await ss(e,!1),await ws(e,!1),await Mc(e,!1),await Kc(e,!1),await $c(e,!1),await bs(e,!1),await Bc(e,!1),await nl(e,!1),await Pi(e,t)}export{Cr as n,Sr as r,rl as t};
1
+ import{o as e}from"./rolldown-runtime--c01j_DQ.js";import{Qn as t}from"./antd-CfbbHJOz.js";import{N as n}from"./editor-CzFWIUw2.js";var r=`generated`,i=`pointerdown`,a=`pointerup`,o=`pointerleave`,s=`pointerout`,c=`pointermove`,l=`touchstart`,u=`touchend`,d=`touchmove`,f=`touchcancel`,p=`resize`,m=`visibilitychange`,h=`tsParticles - Error`,g=.5,_=1e3,v={x:0,y:0,z:0},ee={a:1,b:0,c:0,d:1},y=`random`,b=Math.PI*2,te=`true`,ne=`false`,re=`canvas`,ie=.25,ae=.75,oe=-.25,se=1.5,x;(function(e){e.bottom=`bottom`,e.bottomLeft=`bottom-left`,e.bottomRight=`bottom-right`,e.left=`left`,e.none=`none`,e.right=`right`,e.top=`top`,e.topLeft=`top-left`,e.topRight=`top-right`,e.outside=`outside`,e.inside=`inside`})(x||={});function ce(e){return typeof e==`boolean`}function le(e){return typeof e==`string`}function ue(e){return typeof e==`number`}function de(e){return typeof e==`object`&&!!e}function S(e){return Array.isArray(e)}function C(e){return e==null}var fe=class e{constructor(e,t,n){if(this._updateFromAngle=(e,t)=>{this.x=Math.cos(e)*t,this.y=Math.sin(e)*t},!ue(e)&&e){this.x=e.x,this.y=e.y;let t=e;this.z=t.z?t.z:v.z}else if(e!==void 0&&t!==void 0)this.x=e,this.y=t,this.z=n??v.z;else throw Error(`${h} Vector3d not initialized correctly`)}static get origin(){return e.create(v.x,v.y,v.z)}get angle(){return Math.atan2(this.y,this.x)}set angle(e){this._updateFromAngle(e,this.length)}get length(){return Math.sqrt(this.getLengthSq())}set length(e){this._updateFromAngle(this.angle,e)}static clone(t){return e.create(t.x,t.y,t.z)}static create(t,n,r){return new e(t,n,r)}add(t){return e.create(this.x+t.x,this.y+t.y,this.z+t.z)}addTo(e){this.x+=e.x,this.y+=e.y,this.z+=e.z}copy(){return e.clone(this)}distanceTo(e){return this.sub(e).length}distanceToSq(e){return this.sub(e).getLengthSq()}div(t){return e.create(this.x/t,this.y/t,this.z/t)}divTo(e){this.x/=e,this.y/=e,this.z/=e}getLengthSq(){return this.x**2+this.y**2}mult(t){return e.create(this.x*t,this.y*t,this.z*t)}multTo(e){this.x*=e,this.y*=e,this.z*=e}normalize(){let e=this.length;e!=0&&this.multTo(1/e)}rotate(t){return e.create(this.x*Math.cos(t)-this.y*Math.sin(t),this.x*Math.sin(t)+this.y*Math.cos(t),v.z)}setTo(e){this.x=e.x,this.y=e.y;let t=e;this.z=t.z?t.z:v.z}sub(t){return e.create(this.x-t.x,this.y-t.y,this.z-t.z)}subFrom(e){this.x-=e.x,this.y-=e.y,this.z-=e.z}},w=class e extends fe{constructor(e,t){super(e,t,v.z)}static get origin(){return e.create(v.x,v.y)}static clone(t){return e.create(t.x,t.y)}static create(t,n){return new e(t,n)}},pe=Math.random,me={nextFrame:e=>requestAnimationFrame(e),cancel:e=>cancelAnimationFrame(e)};function T(){return E(pe(),0,1-2**-52)}function he(e){return me.nextFrame(e)}function ge(e){me.cancel(e)}function E(e,t,n){return Math.min(Math.max(e,t),n)}function _e(e,t,n,r){return Math.floor((e*n+t*r)/(n+r))}function D(e){let t=k(e),n=ve(e);return t===n&&(n=0),T()*(t-n)+n}function O(e){return ue(e)?e:D(e)}function ve(e){return ue(e)?e:e.min}function k(e){return ue(e)?e:e.max}function A(e,t){if(e===t||t===void 0&&ue(e))return e;let n=ve(e),r=k(e);return t===void 0?A(n,r):{min:Math.min(n,t),max:Math.max(r,t)}}function j(e,t){let n=e.x-t.x,r=e.y-t.y;return{dx:n,dy:r,distance:Math.sqrt(n**2+r**2)}}function M(e,t){return j(e,t).distance}function ye(e){return e*Math.PI/180}function be(e,t,n){if(ue(e))return ye(e);switch(e){case x.top:return-Math.PI*g;case x.topRight:return-Math.PI*ie;case x.right:return 0;case x.bottomRight:return Math.PI*ie;case x.bottom:return Math.PI*g;case x.bottomLeft:return Math.PI*ae;case x.left:return Math.PI;case x.topLeft:return-Math.PI*ae;case x.inside:return Math.atan2(n.y-t.y,n.x-t.x);case x.outside:return Math.atan2(t.y-n.y,t.x-n.x);default:return T()*b}}function xe(e){let t=w.origin;return t.length=1,t.angle=e,t}function Se(e,t,n,r){return w.create(e.x*(n-r)/(n+r)+t.x*2*r/(n+r),e.y)}function Ce(e){return{x:e.position?.x??T()*e.size.width,y:e.position?.y??T()*e.size.height}}function we(e){return e?e.endsWith(`%`)?parseFloat(e)/100:parseFloat(e):1}var Te;(function(e){e.auto=`auto`,e.increase=`increase`,e.decrease=`decrease`,e.random=`random`})(Te||={});var N;(function(e){e.increasing=`increasing`,e.decreasing=`decreasing`})(N||={});var Ee;(function(e){e.none=`none`,e.max=`max`,e.min=`min`})(Ee||={});var P;(function(e){e.bottom=`bottom`,e.left=`left`,e.right=`right`,e.top=`top`})(P||={});var De;(function(e){e.precise=`precise`,e.percent=`percent`})(De||={});var Oe;(function(e){e.max=`max`,e.min=`min`,e.random=`random`})(Oe||={});var ke={debug:console.debug,error:console.error,info:console.info,log:console.log,verbose:console.log,warning:console.warn};function Ae(){return ke}function je(e){let t=new Map;return(...n)=>{let r=JSON.stringify(n);if(t.has(r))return t.get(r);let i=e(...n);return t.set(r,i),i}}function Me(e){let t={bounced:!1},{pSide:n,pOtherSide:r,rectSide:i,rectOtherSide:a,velocity:o,factor:s}=e;return r.min<a.min||r.min>a.max||r.max<a.min||r.max>a.max||(n.max>=i.min&&n.max<=(i.max+i.min)*.5&&o>0||n.min<=i.max&&n.min>(i.max+i.min)*.5&&o<0)&&(t.velocity=o*-s,t.bounced=!0),t}function Ne(e,t){let n=L(t,t=>e.matches(t));return S(n)?n.some(e=>e):n}function Pe(){return typeof window>`u`||!window||window.document===void 0||!window.document}function Fe(){return!Pe()&&typeof matchMedia<`u`}function Ie(e){if(Fe())return matchMedia(e)}function Le(e){if(!(Pe()||typeof IntersectionObserver>`u`))return new IntersectionObserver(e)}function Re(e){if(!(Pe()||typeof MutationObserver>`u`))return new MutationObserver(e)}function F(e,t){return e===t||S(t)&&t.indexOf(e)>-1}async function ze(e,t){try{await document.fonts.load(`${t??`400`} 36px '${e??`Verdana`}'`)}catch{}}function Be(e){return Math.floor(T()*e.length)}function Ve(e,t,n=!0){return e[t!==void 0&&n?t%e.length:Be(e)]}function He(e,t,n,r,i){return Ue(We(e,r??0),t,n,i)}function Ue(e,t,n,r){let i=!0;return(!r||r===P.bottom)&&(i=e.top<t.height+n.x),i&&(!r||r===P.left)&&(i=e.right>n.x),i&&(!r||r===P.right)&&(i=e.left<t.width+n.y),i&&(!r||r===P.top)&&(i=e.bottom>n.y),i}function We(e,t){return{bottom:e.y+t,left:e.x-t,right:e.x+t,top:e.y-t}}function I(e,...t){for(let n of t){if(n==null)continue;if(!de(n)){e=n;continue}let t=Array.isArray(n);t&&(de(e)||!e||!Array.isArray(e))?e=[]:!t&&(de(e)||!e||Array.isArray(e))&&(e={});for(let t in n){if(t===`__proto__`)continue;let r=n[t],i=e;i[t]=de(r)&&Array.isArray(r)?r.map(e=>I(i[t],e)):I(i[t],r)}}return e}function Ge(e,t){return!!Qe(t,t=>t.enable&&F(e,t.mode))}function Ke(e,t,n){L(t,t=>{let r=t.mode;t.enable&&F(e,r)&&qe(t,n)})}function qe(e,t){let n=e.selectors;L(n,n=>{t(n,e)})}function Je(e,t){if(!(!t||!e))return Qe(e,e=>Ne(t,e.selectors))}function Ye(e){return{position:e.getPosition(),radius:e.getRadius(),mass:e.getMass(),velocity:e.velocity,factor:w.create(O(e.options.bounce.horizontal.value),O(e.options.bounce.vertical.value))}}function Xe(e,t){let{x:n,y:r}=e.velocity.sub(t.velocity),[i,a]=[e.position,t.position],{dx:o,dy:s}=j(a,i);if(n*o+r*s<0)return;let c=-Math.atan2(s,o),l=e.mass,u=t.mass,d=e.velocity.rotate(c),f=t.velocity.rotate(c),p=Se(d,f,l,u),m=Se(f,d,l,u),h=p.rotate(-c),g=m.rotate(-c);e.velocity.x=h.x*e.factor.x,e.velocity.y=h.y*e.factor.y,t.velocity.x=g.x*t.factor.x,t.velocity.y=g.y*t.factor.y}function Ze(e,t){let n=We(e.getPosition(),e.getRadius()),r=e.options.bounce,i=Me({pSide:{min:n.left,max:n.right},pOtherSide:{min:n.top,max:n.bottom},rectSide:{min:t.left,max:t.right},rectOtherSide:{min:t.top,max:t.bottom},velocity:e.velocity.x,factor:O(r.horizontal.value)});i.bounced&&(i.velocity!==void 0&&(e.velocity.x=i.velocity),i.position!==void 0&&(e.position.x=i.position));let a=Me({pSide:{min:n.top,max:n.bottom},pOtherSide:{min:n.left,max:n.right},rectSide:{min:t.top,max:t.bottom},rectOtherSide:{min:t.left,max:t.right},velocity:e.velocity.y,factor:O(r.vertical.value)});a.bounced&&(a.velocity!==void 0&&(e.velocity.y=a.velocity),a.position!==void 0&&(e.position.y=a.position))}function L(e,t){return S(e)?e.map((e,n)=>t(e,n)):t(e,0)}function R(e,t,n){return S(e)?Ve(e,t,n):e}function Qe(e,t){return S(e)?e.find((e,n)=>t(e,n)):t(e,0)?e:void 0}function $e(e,t){let n=e.value,r=e.animation,i={delayTime:O(r.delay)*_,enable:r.enable,value:O(e.value)*t,max:k(n)*t,min:ve(n)*t,loops:0,maxLoops:O(r.count),time:0};if(r.enable){switch(i.decay=1-O(r.decay),r.mode){case Te.increase:i.status=N.increasing;break;case Te.decrease:i.status=N.decreasing;break;case Te.random:i.status=T()>=.5?N.increasing:N.decreasing;break}let e=r.mode===Te.auto;switch(r.startValue){case Oe.min:i.value=i.min,e&&(i.status=N.increasing);break;case Oe.max:i.value=i.max,e&&(i.status=N.decreasing);break;case Oe.random:default:i.value=D(i),e&&(i.status=T()>=.5?N.increasing:N.decreasing);break}}return i.initialValue=i.value,i}function et(e,t){if(e.mode!==De.percent){let{mode:t,...n}=e;return n}return`x`in e?{x:e.x/100*t.width,y:e.y/100*t.height}:{width:e.width/100*t.width,height:e.height/100*t.height}}function tt(e,t){return et(e,t)}function nt(e,t,n,r,i){switch(t){case Ee.max:n>=i&&e.destroy();break;case Ee.min:n<=r&&e.destroy();break}}function rt(e,t,n,r,i){if(e.destroyed||!t||!t.enable||(t.maxLoops??0)>0&&(t.loops??0)>(t.maxLoops??0))return;let a=(t.velocity??0)*i.factor,o=t.min,s=t.max,c=t.decay??1;if(t.time||=0,(t.delayTime??0)>0&&t.time<(t.delayTime??0)&&(t.time+=i.value),!((t.delayTime??0)>0&&t.time<(t.delayTime??0))){switch(t.status){case N.increasing:t.value>=s?(n?t.status=N.decreasing:t.value-=s,t.loops||=0,t.loops++):t.value+=a;break;case N.decreasing:t.value<=o?(n?t.status=N.increasing:t.value+=s,t.loops||=0,t.loops++):t.value-=a}t.velocity&&c!==1&&(t.velocity*=c),nt(e,r,t.value,o,s),e.destroyed||(t.value=E(t.value,o,s))}}function it(e){let t=document.createElement(`div`).style;if(!e)return t;for(let n in e){let r=e[n];if(!Object.prototype.hasOwnProperty.call(e,n)||C(r))continue;let i=e.getPropertyValue?.(r);if(!i)continue;let a=e.getPropertyPriority?.(r);a?t.setProperty?.(r,i,a):t.setProperty?.(r,i)}return t}function at(e){let t=document.createElement(`div`).style,n={width:`100%`,height:`100%`,margin:`0`,padding:`0`,borderWidth:`0`,position:`fixed`,zIndex:e.toString(10),"z-index":e.toString(10),top:`0`,left:`0`};for(let e in n){let r=n[e];t.setProperty(e,r)}return t}var ot=je(at),st;(function(e){e.darken=`darken`,e.enlighten=`enlighten`})(st||={});function ct(e,t){if(t){for(let n of e.colorManagers.values())if(t.startsWith(n.stringPrefix))return n.parseString(t)}}function z(e,t,n,r=!0){if(!t)return;let i=le(t)?{value:t}:t;if(le(i.value))return lt(e,i.value,n,r);if(S(i.value))return z(e,{value:Ve(i.value,n,r)});for(let t of e.colorManagers.values()){let e=t.handleRangeColor(i);if(e)return e}}function lt(e,t,n,r=!0){if(!t)return;let i=le(t)?{value:t}:t;if(le(i.value))return i.value===`random`?ht():ft(e,i.value);if(S(i.value))return lt(e,{value:Ve(i.value,n,r)});for(let t of e.colorManagers.values()){let e=t.handleColor(i);if(e)return e}}function ut(e,t,n,r=!0){let i=z(e,t,n,r);return i?dt(i):void 0}function dt(e){let t=e.r/255,n=e.g/255,r=e.b/255,i=Math.max(t,n,r),a=Math.min(t,n,r),o={h:0,l:(i+a)*g,s:0};return i!==a&&(o.s=o.l<.5?(i-a)/(i+a):(i-a)/(2-i-a),o.h=t===i?(n-r)/(i-a):o.h=n===i?2+(r-t)/(i-a):4+(t-n)/(i-a)),o.l*=100,o.s*=100,o.h*=60,o.h<0&&(o.h+=360),o.h>=360&&(o.h-=360),o}function ft(e,t){return ct(e,t)}function pt(e){let t=(e.h%360+360)%360,n=Math.max(0,Math.min(100,e.s)),r=Math.max(0,Math.min(100,e.l)),i=t/360,a=n/100,o=r/100;if(n===0){let e=Math.round(o*255);return{r:e,g:e,b:e}}let s=(e,t,n)=>(n<0&&n++,n>1&&n--,n*6<1?e+(t-e)*6*n:n*2<1?t:n*3<2?e+(t-e)*(.6666666666666666-n)*6:e),c=o<.5?o*(1+a):o+a-o*a,l=2*o-c,u=1/3,d=Math.min(255,255*s(l,c,i+u)),f=Math.min(255,255*s(l,c,i)),p=Math.min(255,255*s(l,c,i-u));return{r:Math.round(d),g:Math.round(f),b:Math.round(p)}}function mt(e){let t=pt(e);return{a:e.a,b:t.b,g:t.g,r:t.r}}function ht(e){let t=e??0;return{b:Math.floor(D(A(t,256))),g:Math.floor(D(A(t,256))),r:Math.floor(D(A(t,256)))}}function B(e,t){return`rgba(${e.r}, ${e.g}, ${e.b}, ${t??1})`}function gt(e,t){return`hsla(${e.h}, ${e.s}%, ${e.l}%, ${t??1})`}function _t(e,t,n,r){let i=e,a=t;return i.r===void 0&&(i=pt(e)),a.r===void 0&&(a=pt(t)),{b:_e(i.b,a.b,n,r),g:_e(i.g,a.g,n,r),r:_e(i.r,a.r,n,r)}}function vt(e,t,n){if(n===`random`)return ht();if(n===`mid`){let n=e.getFillColor()??e.getStrokeColor(),r=t?.getFillColor()??t?.getStrokeColor();if(n&&r&&t)return _t(n,r,e.getRadius(),t.getRadius());{let e=n??r;if(e)return pt(e)}}else return n}function yt(e,t,n,r){let i=le(t)?t:t.value;return i===`random`?r?z(e,{value:i}):n?y:`mid`:i===`mid`?`mid`:z(e,{value:i})}function bt(e){return e===void 0?void 0:{h:e.h.value,s:e.s.value,l:e.l.value}}function xt(e,t,n){let r={h:{enable:!1,value:e.h},s:{enable:!1,value:e.s},l:{enable:!1,value:e.l}};return t&&(St(r.h,t.h,n),St(r.s,t.s,n),St(r.l,t.l,n)),r}function St(e,t,n){e.enable=t.enable,e.enable?(e.velocity=O(t.speed)/100*n,e.decay=1-O(t.decay),e.status=N.increasing,e.loops=0,e.maxLoops=O(t.count),e.time=0,e.delayTime=O(t.delay)*_,t.sync||(e.velocity*=T(),e.value*=T()),e.initialValue=e.value,e.offset=A(t.offset)):e.velocity=0}function Ct(e,t,n,r){if(!e||!e.enable||(e.maxLoops??0)>0&&(e.loops??0)>(e.maxLoops??0)||(e.time||=0,(e.delayTime??0)>0&&e.time<(e.delayTime??0)&&(e.time+=r.value),(e.delayTime??0)>0&&e.time<(e.delayTime??0)))return;let i=e.offset?D(e.offset):0,a=(e.velocity??0)*r.factor+i*3.6,o=e.decay??1,s=k(t),c=ve(t);!n||e.status===N.increasing?(e.value+=a,e.value>s&&(e.loops||=0,e.loops++,n?e.status=N.decreasing:e.value-=s)):(e.value-=a,e.value<0&&(e.loops||=0,e.loops++,e.status=N.increasing)),e.velocity&&o!==1&&(e.velocity*=o),e.value=E(e.value,c,s)}function wt(e,t){if(!e)return;let{h:n,s:r,l:i}=e,a={h:{min:0,max:360},s:{min:0,max:100},l:{min:0,max:100}};n&&Ct(n,a.h,!1,t),r&&Ct(r,a.s,!0,t),i&&Ct(i,a.l,!0,t)}function Tt(e,t,n){e.beginPath(),e.moveTo(t.x,t.y),e.lineTo(n.x,n.y),e.closePath()}function Et(e,t,n){e.fillStyle=n??`rgba(0,0,0,0)`,e.fillRect(v.x,v.y,t.width,t.height)}function Dt(e,t,n,r){n&&(e.globalAlpha=r,e.drawImage(n,v.x,v.y,t.width,t.height),e.globalAlpha=1)}function Ot(e,t){e.clearRect(v.x,v.y,t.width,t.height)}function kt(e){let{container:t,context:n,particle:r,delta:i,colorStyles:a,backgroundMask:o,composite:s,radius:c,opacity:l,shadow:u,transform:d}=e,f=r.getPosition(),p=r.rotation+(r.pathRotation?r.velocity.angle:0),m={sin:Math.sin(p),cos:Math.cos(p)},h=!!p,g={a:m.cos*(d.a??ee.a),b:h?m.sin*(d.b??1):d.b??ee.b,c:h?-m.sin*(d.c??1):d.c??ee.c,d:m.cos*(d.d??ee.d)};n.setTransform(g.a,g.b,g.c,g.d,f.x,f.y),o&&(n.globalCompositeOperation=s);let _=r.shadowColor;u.enable&&_&&(n.shadowBlur=u.blur,n.shadowColor=B(_),n.shadowOffsetX=u.offset.x,n.shadowOffsetY=u.offset.y),a.fill&&(n.fillStyle=a.fill);let v=r.strokeWidth??0;n.lineWidth=v,a.stroke&&(n.strokeStyle=a.stroke);let y={container:t,context:n,particle:r,radius:c,opacity:l,delta:i,transformData:g,strokeWidth:v};jt(y),Mt(y),At(y),n.globalCompositeOperation=`source-over`,n.resetTransform()}function At(e){let{container:t,context:n,particle:r,radius:i,opacity:a,delta:o,transformData:s}=e;if(!r.effect)return;let c=t.effectDrawers.get(r.effect);c&&c.draw({context:n,particle:r,radius:i,opacity:a,delta:o,pixelRatio:t.retina.pixelRatio,transformData:{...s}})}function jt(e){let{container:t,context:n,particle:r,radius:i,opacity:a,delta:o,strokeWidth:s,transformData:c}=e;if(!r.shape)return;let l=t.shapeDrawers.get(r.shape);l&&(n.beginPath(),l.draw({context:n,particle:r,radius:i,opacity:a,delta:o,pixelRatio:t.retina.pixelRatio,transformData:{...c}}),r.shapeClose&&n.closePath(),s>0&&n.stroke(),r.shapeFill&&n.fill())}function Mt(e){let{container:t,context:n,particle:r,radius:i,opacity:a,delta:o,transformData:s}=e;if(!r.shape)return;let c=t.shapeDrawers.get(r.shape);c?.afterDraw&&c.afterDraw({context:n,particle:r,radius:i,opacity:a,delta:o,pixelRatio:t.retina.pixelRatio,transformData:{...s}})}function Nt(e,t,n){t.draw&&t.draw(e,n)}function Pt(e,t,n,r){t.drawParticle&&t.drawParticle(e,n,r)}function Ft(e,t,n){return{h:e.h,s:e.s,l:e.l+(t===st.darken?-1:1)*n}}function It(e,t,n){let r=t[n];r!==void 0&&(e[n]=(e[n]??1)*r)}function Lt(e,t,n=!1){if(!t)return;let r=e;if(!r)return;let i=r.style;if(!i)return;let a=new Set;for(let e in i)Object.prototype.hasOwnProperty.call(i,e)&&a.add(i[e]);for(let e in t)Object.prototype.hasOwnProperty.call(t,e)&&a.add(t[e]);for(let e of a){let r=t.getPropertyValue(e);r?i.setProperty(e,r,n?`important`:``):i.removeProperty(e)}}var Rt=class{constructor(e,t){this.container=e,this._applyPostDrawUpdaters=e=>{for(let t of this._postDrawUpdaters)t.afterDraw?.(e)},this._applyPreDrawUpdaters=(e,t,n,r,i,a)=>{for(let o of this._preDrawUpdaters){if(o.getColorStyles){let{fill:a,stroke:s}=o.getColorStyles(t,e,n,r);a&&(i.fill=a),s&&(i.stroke=s)}if(o.getTransformValues){let e=o.getTransformValues(t);for(let t in e)It(a,e,t)}o.beforeDraw?.(t)}},this._applyResizePlugins=()=>{for(let e of this._resizePlugins)e.resize?.()},this._getPluginParticleColors=e=>{let t,n;for(let r of this._colorPlugins)if(!t&&r.particleFillColor&&(t=ut(this._engine,r.particleFillColor(e))),!n&&r.particleStrokeColor&&(n=ut(this._engine,r.particleStrokeColor(e))),t&&n)break;return[t,n]},this._initCover=async()=>{let e=this.container.actualOptions.backgroundMask.cover,t=e.color;if(t){let n=z(this._engine,t);if(n){let t={...n,a:e.opacity};this._coverColorStyle=B(t,t.a)}}else await new Promise((t,n)=>{if(!e.image)return;let r=document.createElement(`img`);r.addEventListener(`load`,()=>{this._coverImage={image:r,opacity:e.opacity},t()}),r.addEventListener(`error`,e=>{n(e.error)}),r.src=e.image})},this._initStyle=()=>{let e=this.element,t=this.container.actualOptions;if(e){this._fullScreen?this._setFullScreenStyle():this._resetOriginalStyle();for(let n in t.style){if(!n||!t.style||!Object.prototype.hasOwnProperty.call(t.style,n))continue;let r=t.style[n];r&&e.style.setProperty(n,r,`important`)}}},this._initTrail=async()=>{let e=this.container.actualOptions.particles.move.trail,t=e.fill;if(!e.enable)return;let n=1/e.length;if(t.color){let e=z(this._engine,t.color);if(!e)return;this._trailFill={color:{...e},opacity:n}}else await new Promise((e,r)=>{if(!t.image)return;let i=document.createElement(`img`);i.addEventListener(`load`,()=>{this._trailFill={image:i,opacity:n},e()}),i.addEventListener(`error`,e=>{r(e.error)}),i.src=t.image})},this._paintBase=e=>{this.draw(t=>Et(t,this.size,e))},this._paintImage=(e,t)=>{this.draw(n=>Dt(n,this.size,e,t))},this._repairStyle=()=>{let e=this.element;if(!e)return;this._safeMutationObserver(e=>e.disconnect()),this._initStyle(),this.initBackground();let t=this._pointerEvents;e.style.pointerEvents=t,e.setAttribute(`pointer-events`,t),this._safeMutationObserver(t=>{!e||!(e instanceof Node)||t.observe(e,{attributes:!0})})},this._resetOriginalStyle=()=>{let e=this.element,t=this._originalStyle;!e||!t||Lt(e,t,!0)},this._safeMutationObserver=e=>{this._mutationObserver&&e(this._mutationObserver)},this._setFullScreenStyle=()=>{let e=this.element;e&&Lt(e,ot(this.container.actualOptions.fullScreen.zIndex),!0)},this._engine=t,this._standardSize={height:0,width:0};let n=e.retina.pixelRatio,r=this._standardSize;this.size={height:r.height*n,width:r.width*n},this._context=null,this._generated=!1,this._preDrawUpdaters=[],this._postDrawUpdaters=[],this._resizePlugins=[],this._colorPlugins=[],this._pointerEvents=`none`}get _fullScreen(){return this.container.actualOptions.fullScreen.enable}clear(){let e=this.container.actualOptions,t=e.particles.move.trail,n=this._trailFill;e.backgroundMask.enable?this.paint():t.enable&&t.length>0&&n?n.color?this._paintBase(B(n.color,n.opacity)):n.image&&this._paintImage(n.image,n.opacity):e.clear&&this.draw(e=>{Ot(e,this.size)})}destroy(){this.stop(),this._generated?(this.element?.remove(),this.element=void 0):this._resetOriginalStyle(),this._preDrawUpdaters=[],this._postDrawUpdaters=[],this._resizePlugins=[],this._colorPlugins=[]}draw(e){let t=this._context;if(t)return e(t)}drawAsync(e){let t=this._context;if(t)return e(t)}drawParticle(e,t){if(e.spawning||e.destroyed)return;let n=e.getRadius();if(n<=0)return;let r=e.getFillColor(),i=e.getStrokeColor()??r,[a,o]=this._getPluginParticleColors(e);a||=r,o||=i,!(!a&&!o)&&this.draw(r=>{let i=this.container,s=i.actualOptions,c=e.options.zIndex,l=1-e.zIndexFactor,u=l**c.opacityRate,d=e.bubble.opacity??e.opacity?.value??1,f=e.strokeOpacity??d,p=d*u,m=f*u,h={},g={fill:a?gt(a,p):void 0};g.stroke=o?gt(o,m):g.fill,this._applyPreDrawUpdaters(r,e,n,p,g,h),kt({container:i,context:r,particle:e,delta:t,colorStyles:g,backgroundMask:s.backgroundMask.enable,composite:s.backgroundMask.composite,radius:n*l**c.sizeRate,opacity:p,shadow:e.options.shadow,transform:h}),this._applyPostDrawUpdaters(e)})}drawParticlePlugin(e,t,n){this.draw(r=>Pt(r,e,t,n))}drawPlugin(e,t){this.draw(n=>Nt(n,e,t))}async init(){this._safeMutationObserver(e=>e.disconnect()),this._mutationObserver=Re(e=>{for(let t of e)t.type===`attributes`&&t.attributeName===`style`&&this._repairStyle()}),this.resize(),this._initStyle(),await this._initCover();try{await this._initTrail()}catch(e){Ae().error(e)}this.initBackground(),this._safeMutationObserver(e=>{!this.element||!(this.element instanceof Node)||e.observe(this.element,{attributes:!0})}),this.initUpdaters(),this.initPlugins(),this.paint()}initBackground(){let e=this.container.actualOptions.background,t=this.element;if(!t)return;let n=t.style;if(n){if(e.color){let t=z(this._engine,e.color);n.backgroundColor=t?B(t,e.opacity):``}else n.backgroundColor=``;n.backgroundImage=e.image||``,n.backgroundPosition=e.position||``,n.backgroundRepeat=e.repeat||``,n.backgroundSize=e.size||``}}initPlugins(){this._resizePlugins=[];for(let e of this.container.plugins.values())e.resize&&this._resizePlugins.push(e),(e.particleFillColor??e.particleStrokeColor)&&this._colorPlugins.push(e)}initUpdaters(){this._preDrawUpdaters=[],this._postDrawUpdaters=[];for(let e of this.container.particles.updaters)e.afterDraw&&this._postDrawUpdaters.push(e),(e.getColorStyles??e.getTransformValues??e.beforeDraw)&&this._preDrawUpdaters.push(e)}loadCanvas(e){this._generated&&this.element&&this.element.remove(),this._generated=e.dataset&&`generated`in e.dataset?e.dataset[r]===`true`:this._generated,this.element=e,this.element.ariaHidden=`true`,this._originalStyle=it(this.element.style);let t=this._standardSize;t.height=e.offsetHeight,t.width=e.offsetWidth;let n=this.container.retina.pixelRatio,i=this.size;e.height=i.height=t.height*n,e.width=i.width=t.width*n,this._context=this.element.getContext(`2d`),this._safeMutationObserver(e=>e.disconnect()),this.container.retina.init(),this.initBackground(),this._safeMutationObserver(e=>{!this.element||!(this.element instanceof Node)||e.observe(this.element,{attributes:!0})})}paint(){let e=this.container.actualOptions;this.draw(t=>{e.backgroundMask.enable&&e.backgroundMask.cover?(Ot(t,this.size),this._coverImage?this._paintImage(this._coverImage.image,this._coverImage.opacity):this._coverColorStyle?this._paintBase(this._coverColorStyle):this._paintBase()):this._paintBase()})}resize(){if(!this.element)return!1;let e=this.container,t=e.canvas._standardSize,n={width:this.element.offsetWidth,height:this.element.offsetHeight},r=e.retina.pixelRatio,i={width:n.width*r,height:n.height*r};if(n.height===t.height&&n.width===t.width&&i.height===this.element.height&&i.width===this.element.width)return!1;let a={...t};t.height=n.height,t.width=n.width;let o=this.size;return this.element.width=o.width=i.width,this.element.height=o.height=i.height,this.container.started&&e.particles.setResizeFactor({width:t.width/a.width,height:t.height/a.height}),!0}setPointerEvents(e){this.element&&(this._pointerEvents=e,this._repairStyle())}stop(){this._safeMutationObserver(e=>e.disconnect()),this._mutationObserver=void 0,this.draw(e=>Ot(e,this.size))}async windowResize(){if(!this.element||!this.resize())return;let e=this.container,t=e.updateActualOptions();e.particles.setDensity(),this._applyResizePlugins(),t&&await e.refresh()}},zt;(function(e){e.canvas=`canvas`,e.parent=`parent`,e.window=`window`})(zt||={});function V(e,t,n,r,i){if(r){let r={passive:!0};ce(i)?r.capture=i:i!==void 0&&(r=i),e.addEventListener(t,n,r)}else{let r=i;e.removeEventListener(t,n,r)}}var Bt=class{constructor(e){this.container=e,this._doMouseTouchClick=e=>{let t=this.container,n=t.actualOptions;if(this._canPush){let e=t.interactivity.mouse,r=e.position;if(!r)return;e.clickPosition={...r},e.clickTime=new Date().getTime();let i=n.interactivity.events.onClick;L(i.mode,e=>this.container.handleClickMode(e))}e.type===`touchend`&&setTimeout(()=>this._mouseTouchFinish(),500)},this._handleThemeChange=e=>{let t=e,n=this.container,r=n.options,i=r.defaultThemes,a=t.matches?i.dark:i.light;r.themes.find(e=>e.name===a)?.default.auto&&n.loadTheme(a)},this._handleVisibilityChange=()=>{let e=this.container,t=e.actualOptions;this._mouseTouchFinish(),t.pauseOnBlur&&(document?.hidden?(e.pageHidden=!0,e.pause()):(e.pageHidden=!1,e.animationStatus?e.play(!0):e.draw(!0)))},this._handleWindowResize=()=>{this._resizeTimeout&&(clearTimeout(this._resizeTimeout),delete this._resizeTimeout);let e=async()=>{await this.container.canvas?.windowResize()};this._resizeTimeout=setTimeout(()=>void e(),this.container.actualOptions.interactivity.events.resize.delay*_)},this._manageInteractivityListeners=(e,t)=>{let n=this._handlers,r=this.container,o=r.actualOptions,s=r.interactivity.element;if(!s)return;let p=s,m=r.canvas;m.setPointerEvents(p===m.element?`initial`:`none`),(o.interactivity.events.onHover.enable||o.interactivity.events.onClick.enable)&&(V(s,c,n.mouseMove,t),V(s,l,n.touchStart,t),V(s,d,n.touchMove,t),o.interactivity.events.onClick.enable?(V(s,u,n.touchEndClick,t),V(s,a,n.mouseUp,t),V(s,i,n.mouseDown,t)):V(s,u,n.touchEnd,t),V(s,e,n.mouseLeave,t),V(s,f,n.touchCancel,t))},this._manageListeners=e=>{let t=this._handlers,n=this.container,r=n.actualOptions.interactivity.detectsOn,i=n.canvas.element,a=o;r===zt.window?(n.interactivity.element=window,a=s):r===zt.parent&&i?n.interactivity.element=i.parentElement??i.parentNode:n.interactivity.element=i,this._manageMediaMatch(e),this._manageResize(e),this._manageInteractivityListeners(a,e),document&&V(document,m,t.visibilityChange,e,!1)},this._manageMediaMatch=e=>{let t=this._handlers,n=Ie(`(prefers-color-scheme: dark)`);if(n){if(n.addEventListener!==void 0){V(n,`change`,t.themeChange,e);return}n.addListener!==void 0&&(e?n.addListener(t.oldThemeChange):n.removeListener(t.oldThemeChange))}},this._manageResize=e=>{let t=this._handlers,n=this.container;if(!n.actualOptions.interactivity.events.resize)return;if(typeof ResizeObserver>`u`){V(window,p,t.resize,e);return}let r=n.canvas.element;this._resizeObserver&&!e?(r&&this._resizeObserver.unobserve(r),this._resizeObserver.disconnect(),delete this._resizeObserver):!this._resizeObserver&&e&&r&&(this._resizeObserver=new ResizeObserver(e=>{e.find(e=>e.target===r)&&this._handleWindowResize()}),this._resizeObserver.observe(r))},this._mouseDown=()=>{let{interactivity:e}=this.container;if(!e)return;let{mouse:t}=e;t.clicking=!0,t.downPosition=t.position},this._mouseTouchClick=e=>{let t=this.container,n=t.actualOptions,{mouse:r}=t.interactivity;r.inside=!0;let i=!1,a=r.position;if(!(!a||!n.interactivity.events.onClick.enable)){for(let e of t.plugins.values())if(e.clickPositionValid&&(i=e.clickPositionValid(a),i))break;i||this._doMouseTouchClick(e),r.clicking=!1}},this._mouseTouchFinish=()=>{let e=this.container.interactivity;if(!e)return;let t=e.mouse;delete t.position,delete t.clickPosition,delete t.downPosition,e.status=o,t.inside=!1,t.clicking=!1},this._mouseTouchMove=e=>{let t=this.container,n=t.actualOptions,r=t.interactivity,i=t.canvas.element;if(!r?.element)return;r.mouse.inside=!0;let a;if(e.type.startsWith(`pointer`)){this._canPush=!0;let t=e;if(r.element===window){if(i){let e=i.getBoundingClientRect();a={x:t.clientX-e.left,y:t.clientY-e.top}}}else if(n.interactivity.detectsOn===zt.parent){let e=t.target,n=t.currentTarget;if(e&&n&&i){let r=e.getBoundingClientRect(),o=n.getBoundingClientRect(),s=i.getBoundingClientRect();a={x:t.offsetX+2*r.left-(o.left+s.left),y:t.offsetY+2*r.top-(o.top+s.top)}}else a={x:t.offsetX??t.clientX,y:t.offsetY??t.clientY}}else t.target===i&&(a={x:t.offsetX??t.clientX,y:t.offsetY??t.clientY})}else if(this._canPush=e.type!==`touchmove`,i){let t=e,n=t.touches[t.touches.length-1],r=i.getBoundingClientRect();a={x:n.clientX-(r.left??0),y:n.clientY-(r.top??0)}}let o=t.retina.pixelRatio;a&&(a.x*=o,a.y*=o),r.mouse.position=a,r.status=c},this._touchEnd=e=>{let t=e,n=Array.from(t.changedTouches);for(let e of n)this._touches.delete(e.identifier);this._mouseTouchFinish()},this._touchEndClick=e=>{let t=e,n=Array.from(t.changedTouches);for(let e of n)this._touches.delete(e.identifier);this._mouseTouchClick(e)},this._touchStart=e=>{let t=e,n=Array.from(t.changedTouches);for(let e of n)this._touches.set(e.identifier,performance.now());this._mouseTouchMove(e)},this._canPush=!0,this._touches=new Map,this._handlers={mouseDown:()=>this._mouseDown(),mouseLeave:()=>this._mouseTouchFinish(),mouseMove:e=>this._mouseTouchMove(e),mouseUp:e=>this._mouseTouchClick(e),touchStart:e=>this._touchStart(e),touchMove:e=>this._mouseTouchMove(e),touchEnd:e=>this._touchEnd(e),touchCancel:e=>this._touchEnd(e),touchEndClick:e=>this._touchEndClick(e),visibilityChange:()=>this._handleVisibilityChange(),themeChange:e=>this._handleThemeChange(e),oldThemeChange:e=>this._handleThemeChange(e),resize:()=>{this._handleWindowResize()}}}addListeners(){this._manageListeners(!0)}removeListeners(){this._manageListeners(!1)}},H;(function(e){e.configAdded=`configAdded`,e.containerInit=`containerInit`,e.particlesSetup=`particlesSetup`,e.containerStarted=`containerStarted`,e.containerStopped=`containerStopped`,e.containerDestroyed=`containerDestroyed`,e.containerPaused=`containerPaused`,e.containerPlay=`containerPlay`,e.containerBuilt=`containerBuilt`,e.particleAdded=`particleAdded`,e.particleDestroyed=`particleDestroyed`,e.particleRemoved=`particleRemoved`})(H||={});var U=class e{constructor(){this.value=``}static create(t,n){let r=new e;return r.load(t),n!==void 0&&(le(n)||S(n)?r.load({value:n}):r.load(n)),r}load(e){C(e)||C(e.value)||(this.value=e.value)}},Vt=class{constructor(){this.color=new U,this.color.value=``,this.image=``,this.position=``,this.repeat=``,this.size=``,this.opacity=1}load(e){C(e)||(e.color!==void 0&&(this.color=U.create(this.color,e.color)),e.image!==void 0&&(this.image=e.image),e.position!==void 0&&(this.position=e.position),e.repeat!==void 0&&(this.repeat=e.repeat),e.size!==void 0&&(this.size=e.size),e.opacity!==void 0&&(this.opacity=e.opacity))}},Ht=class{constructor(){this.opacity=1}load(e){C(e)||(e.color!==void 0&&(this.color=U.create(this.color,e.color)),e.image!==void 0&&(this.image=e.image),e.opacity!==void 0&&(this.opacity=e.opacity))}},Ut=class{constructor(){this.composite=`destination-out`,this.cover=new Ht,this.enable=!1}load(e){if(!C(e)){if(e.composite!==void 0&&(this.composite=e.composite),e.cover!==void 0){let t=e.cover,n=le(e.cover)?{color:e.cover}:e.cover;this.cover.load(t.color!==void 0||t.image!==void 0?t:{color:n})}e.enable!==void 0&&(this.enable=e.enable)}}},Wt=class{constructor(){this.enable=!0,this.zIndex=0}load(e){C(e)||(e.enable!==void 0&&(this.enable=e.enable),e.zIndex!==void 0&&(this.zIndex=e.zIndex))}},Gt=class{constructor(){this.enable=!1,this.mode=[]}load(e){C(e)||(e.enable!==void 0&&(this.enable=e.enable),e.mode!==void 0&&(this.mode=e.mode))}},Kt;(function(e){e.circle=`circle`,e.rectangle=`rectangle`})(Kt||={});var qt=class{constructor(){this.selectors=[],this.enable=!1,this.mode=[],this.type=Kt.circle}load(e){C(e)||(e.selectors!==void 0&&(this.selectors=e.selectors),e.enable!==void 0&&(this.enable=e.enable),e.mode!==void 0&&(this.mode=e.mode),e.type!==void 0&&(this.type=e.type))}},Jt=class{constructor(){this.enable=!1,this.force=2,this.smooth=10}load(e){C(e)||(e.enable!==void 0&&(this.enable=e.enable),e.force!==void 0&&(this.force=e.force),e.smooth!==void 0&&(this.smooth=e.smooth))}},Yt=class{constructor(){this.enable=!1,this.mode=[],this.parallax=new Jt}load(e){C(e)||(e.enable!==void 0&&(this.enable=e.enable),e.mode!==void 0&&(this.mode=e.mode),this.parallax.load(e.parallax))}},Xt=class{constructor(){this.delay=.5,this.enable=!0}load(e){C(e)||(e.delay!==void 0&&(this.delay=e.delay),e.enable!==void 0&&(this.enable=e.enable))}},Zt=class{constructor(){this.onClick=new Gt,this.onDiv=new qt,this.onHover=new Yt,this.resize=new Xt}load(e){if(C(e))return;this.onClick.load(e.onClick);let t=e.onDiv;t!==void 0&&(this.onDiv=L(t,e=>{let t=new qt;return t.load(e),t})),this.onHover.load(e.onHover),this.resize.load(e.resize)}},Qt=class{constructor(e,t){this._engine=e,this._container=t}load(e){if(C(e)||!this._container)return;let t=this._engine.interactors.get(this._container);if(t)for(let n of t)n.loadModeOptions&&n.loadModeOptions(this,e)}},$t=class{constructor(e,t){this.detectsOn=zt.window,this.events=new Zt,this.modes=new Qt(e,t)}load(e){if(C(e))return;let t=e.detectsOn;t!==void 0&&(this.detectsOn=t),this.events.load(e.events),this.modes.load(e.modes)}},en=class{load(e){C(e)||(e.position&&(this.position={x:e.position.x??50,y:e.position.y??50,mode:e.position.mode??De.percent}),e.options&&(this.options=I({},e.options)))}},tn;(function(e){e.screen=`screen`,e.canvas=`canvas`})(tn||={});var nn=class{constructor(){this.maxWidth=1/0,this.options={},this.mode=tn.canvas}load(e){C(e)||(C(e.maxWidth)||(this.maxWidth=e.maxWidth),C(e.mode)||(e.mode===tn.screen?this.mode=tn.screen:this.mode=tn.canvas),C(e.options)||(this.options=I({},e.options)))}},rn;(function(e){e.any=`any`,e.dark=`dark`,e.light=`light`})(rn||={});var an=class{constructor(){this.auto=!1,this.mode=rn.any,this.value=!1}load(e){C(e)||(e.auto!==void 0&&(this.auto=e.auto),e.mode!==void 0&&(this.mode=e.mode),e.value!==void 0&&(this.value=e.value))}},on=class{constructor(){this.name=``,this.default=new an}load(e){C(e)||(e.name!==void 0&&(this.name=e.name),this.default.load(e.default),e.options!==void 0&&(this.options=I({},e.options)))}},sn=class{constructor(){this.count=0,this.enable=!1,this.speed=1,this.decay=0,this.delay=0,this.sync=!1}load(e){C(e)||(e.count!==void 0&&(this.count=A(e.count)),e.enable!==void 0&&(this.enable=e.enable),e.speed!==void 0&&(this.speed=A(e.speed)),e.decay!==void 0&&(this.decay=A(e.decay)),e.delay!==void 0&&(this.delay=A(e.delay)),e.sync!==void 0&&(this.sync=e.sync))}},cn=class extends sn{constructor(){super(),this.mode=Te.auto,this.startValue=Oe.random}load(e){super.load(e),!C(e)&&(e.mode!==void 0&&(this.mode=e.mode),e.startValue!==void 0&&(this.startValue=e.startValue))}},ln=class extends sn{constructor(){super(),this.offset=0,this.sync=!0}load(e){super.load(e),!C(e)&&e.offset!==void 0&&(this.offset=A(e.offset))}},un=class{constructor(){this.h=new ln,this.s=new ln,this.l=new ln}load(e){C(e)||(this.h.load(e.h),this.s.load(e.s),this.l.load(e.l))}},dn=class e extends U{constructor(){super(),this.animation=new un}static create(t,n){let r=new e;return r.load(t),n!==void 0&&(le(n)||S(n)?r.load({value:n}):r.load(n)),r}load(e){if(super.load(e),C(e))return;let t=e.animation;t!==void 0&&(t.enable===void 0?this.animation.load(e.animation):this.animation.h.load(t))}},fn;(function(e){e.absorb=`absorb`,e.bounce=`bounce`,e.destroy=`destroy`})(fn||={});var pn=class{constructor(){this.speed=2}load(e){C(e)||e.speed!==void 0&&(this.speed=e.speed)}},mn=class{constructor(){this.enable=!0,this.retries=0}load(e){C(e)||(e.enable!==void 0&&(this.enable=e.enable),e.retries!==void 0&&(this.retries=e.retries))}},hn=class{constructor(){this.value=0}load(e){C(e)||C(e.value)||(this.value=A(e.value))}},gn=class extends hn{constructor(){super(),this.animation=new sn}load(e){if(super.load(e),C(e))return;let t=e.animation;t!==void 0&&this.animation.load(t)}},_n=class extends gn{constructor(){super(),this.animation=new cn}load(e){super.load(e)}},vn=class extends hn{constructor(){super(),this.value=1}},yn=class{constructor(){this.horizontal=new vn,this.vertical=new vn}load(e){C(e)||(this.horizontal.load(e.horizontal),this.vertical.load(e.vertical))}},bn=class{constructor(){this.absorb=new pn,this.bounce=new yn,this.enable=!1,this.maxSpeed=50,this.mode=fn.bounce,this.overlap=new mn}load(e){C(e)||(this.absorb.load(e.absorb),this.bounce.load(e.bounce),e.enable!==void 0&&(this.enable=e.enable),e.maxSpeed!==void 0&&(this.maxSpeed=A(e.maxSpeed)),e.mode!==void 0&&(this.mode=e.mode),this.overlap.load(e.overlap))}},xn=class{constructor(){this.close=!0,this.fill=!0,this.options={},this.type=[]}load(e){if(C(e))return;let t=e.options;if(t!==void 0)for(let e in t){let n=t[e];n&&(this.options[e]=I(this.options[e]??{},n))}e.close!==void 0&&(this.close=e.close),e.fill!==void 0&&(this.fill=e.fill),e.type!==void 0&&(this.type=e.type)}},Sn=class{constructor(){this.offset=0,this.value=90}load(e){C(e)||(e.offset!==void 0&&(this.offset=A(e.offset)),e.value!==void 0&&(this.value=A(e.value)))}},Cn=class{constructor(){this.distance=200,this.enable=!1,this.rotate={x:3e3,y:3e3}}load(e){if(!C(e)&&(e.distance!==void 0&&(this.distance=A(e.distance)),e.enable!==void 0&&(this.enable=e.enable),e.rotate)){let t=e.rotate.x;t!==void 0&&(this.rotate.x=t);let n=e.rotate.y;n!==void 0&&(this.rotate.y=n)}}},wn=class{constructor(){this.x=50,this.y=50,this.mode=De.percent,this.radius=0}load(e){C(e)||(e.x!==void 0&&(this.x=e.x),e.y!==void 0&&(this.y=e.y),e.mode!==void 0&&(this.mode=e.mode),e.radius!==void 0&&(this.radius=e.radius))}},Tn=class{constructor(){this.acceleration=9.81,this.enable=!1,this.inverse=!1,this.maxSpeed=50}load(e){C(e)||(e.acceleration!==void 0&&(this.acceleration=A(e.acceleration)),e.enable!==void 0&&(this.enable=e.enable),e.inverse!==void 0&&(this.inverse=e.inverse),e.maxSpeed!==void 0&&(this.maxSpeed=A(e.maxSpeed)))}},En=class{constructor(){this.clamp=!0,this.delay=new hn,this.enable=!1,this.options={}}load(e){C(e)||(e.clamp!==void 0&&(this.clamp=e.clamp),this.delay.load(e.delay),e.enable!==void 0&&(this.enable=e.enable),this.generator=e.generator,e.options&&(this.options=I(this.options,e.options)))}},Dn=class{load(e){C(e)||(e.color!==void 0&&(this.color=U.create(this.color,e.color)),e.image!==void 0&&(this.image=e.image))}},On=class{constructor(){this.enable=!1,this.length=10,this.fill=new Dn}load(e){C(e)||(e.enable!==void 0&&(this.enable=e.enable),e.fill!==void 0&&this.fill.load(e.fill),e.length!==void 0&&(this.length=e.length))}},W;(function(e){e.bounce=`bounce`,e.none=`none`,e.out=`out`,e.destroy=`destroy`,e.split=`split`})(W||={});var kn=class{constructor(){this.default=W.out}load(e){C(e)||(e.default!==void 0&&(this.default=e.default),this.bottom=e.bottom??e.default,this.left=e.left??e.default,this.right=e.right??e.default,this.top=e.top??e.default)}},An=class{constructor(){this.acceleration=0,this.enable=!1}load(e){C(e)||(e.acceleration!==void 0&&(this.acceleration=A(e.acceleration)),e.enable!==void 0&&(this.enable=e.enable),e.position&&(this.position=I({},e.position)))}},jn=class{constructor(){this.angle=new Sn,this.attract=new Cn,this.center=new wn,this.decay=0,this.distance={},this.direction=x.none,this.drift=0,this.enable=!1,this.gravity=new Tn,this.path=new En,this.outModes=new kn,this.random=!1,this.size=!1,this.speed=2,this.spin=new An,this.straight=!1,this.trail=new On,this.vibrate=!1,this.warp=!1}load(e){if(C(e))return;this.angle.load(ue(e.angle)?{value:e.angle}:e.angle),this.attract.load(e.attract),this.center.load(e.center),e.decay!==void 0&&(this.decay=A(e.decay)),e.direction!==void 0&&(this.direction=e.direction),e.distance!==void 0&&(this.distance=ue(e.distance)?{horizontal:e.distance,vertical:e.distance}:{...e.distance}),e.drift!==void 0&&(this.drift=A(e.drift)),e.enable!==void 0&&(this.enable=e.enable),this.gravity.load(e.gravity);let t=e.outModes;t!==void 0&&(de(t)?this.outModes.load(t):this.outModes.load({default:t})),this.path.load(e.path),e.random!==void 0&&(this.random=e.random),e.size!==void 0&&(this.size=e.size),e.speed!==void 0&&(this.speed=A(e.speed)),this.spin.load(e.spin),e.straight!==void 0&&(this.straight=e.straight),this.trail.load(e.trail),e.vibrate!==void 0&&(this.vibrate=e.vibrate),e.warp!==void 0&&(this.warp=e.warp)}},Mn=class extends cn{constructor(){super(),this.destroy=Ee.none,this.speed=2}load(e){super.load(e),!C(e)&&e.destroy!==void 0&&(this.destroy=e.destroy)}},Nn=class extends _n{constructor(){super(),this.animation=new Mn,this.value=1}load(e){if(C(e))return;super.load(e);let t=e.animation;t!==void 0&&this.animation.load(t)}},Pn=class{constructor(){this.enable=!1,this.width=1920,this.height=1080}load(e){if(C(e))return;e.enable!==void 0&&(this.enable=e.enable);let t=e.width;t!==void 0&&(this.width=t);let n=e.height;n!==void 0&&(this.height=n)}},Fn;(function(e){e.delete=`delete`,e.wait=`wait`})(Fn||={});var In=class{constructor(){this.mode=Fn.delete,this.value=0}load(e){C(e)||(e.mode!==void 0&&(this.mode=e.mode),e.value!==void 0&&(this.value=e.value))}},Ln=class{constructor(){this.density=new Pn,this.limit=new In,this.value=0}load(e){C(e)||(this.density.load(e.density),this.limit.load(e.limit),e.value!==void 0&&(this.value=e.value))}},Rn=class{constructor(){this.blur=0,this.color=new U,this.enable=!1,this.offset={x:0,y:0},this.color.value=`#000`}load(e){C(e)||(e.blur!==void 0&&(this.blur=e.blur),this.color=U.create(this.color,e.color),e.enable!==void 0&&(this.enable=e.enable),e.offset!==void 0&&(e.offset.x!==void 0&&(this.offset.x=e.offset.x),e.offset.y!==void 0&&(this.offset.y=e.offset.y)))}},zn=class{constructor(){this.close=!0,this.fill=!0,this.options={},this.type=`circle`}load(e){if(C(e))return;let t=e.options;if(t!==void 0)for(let e in t){let n=t[e];n&&(this.options[e]=I(this.options[e]??{},n))}e.close!==void 0&&(this.close=e.close),e.fill!==void 0&&(this.fill=e.fill),e.type!==void 0&&(this.type=e.type)}},Bn=class extends cn{constructor(){super(),this.destroy=Ee.none,this.speed=5}load(e){super.load(e),!C(e)&&e.destroy!==void 0&&(this.destroy=e.destroy)}},Vn=class extends _n{constructor(){super(),this.animation=new Bn,this.value=3}load(e){if(super.load(e),C(e))return;let t=e.animation;t!==void 0&&this.animation.load(t)}},Hn=class{constructor(){this.width=0}load(e){C(e)||(e.color!==void 0&&(this.color=dn.create(this.color,e.color)),e.width!==void 0&&(this.width=A(e.width)),e.opacity!==void 0&&(this.opacity=A(e.opacity)))}},Un=class extends hn{constructor(){super(),this.opacityRate=1,this.sizeRate=1,this.velocityRate=1}load(e){super.load(e),!C(e)&&(e.opacityRate!==void 0&&(this.opacityRate=e.opacityRate),e.sizeRate!==void 0&&(this.sizeRate=e.sizeRate),e.velocityRate!==void 0&&(this.velocityRate=e.velocityRate))}},Wn=class{constructor(e,t){this._engine=e,this._container=t,this.bounce=new yn,this.collisions=new bn,this.color=new dn,this.color.value=`#fff`,this.effect=new xn,this.groups={},this.move=new jn,this.number=new Ln,this.opacity=new Nn,this.reduceDuplicates=!1,this.shadow=new Rn,this.shape=new zn,this.size=new Vn,this.stroke=new Hn,this.zIndex=new Un}load(e){if(C(e))return;if(e.groups!==void 0)for(let t of Object.keys(e.groups)){if(!Object.hasOwn(e.groups,t))continue;let n=e.groups[t];n!==void 0&&(this.groups[t]=I(this.groups[t]??{},n))}e.reduceDuplicates!==void 0&&(this.reduceDuplicates=e.reduceDuplicates),this.bounce.load(e.bounce),this.color.load(dn.create(this.color,e.color)),this.effect.load(e.effect),this.move.load(e.move),this.number.load(e.number),this.opacity.load(e.opacity),this.shape.load(e.shape),this.size.load(e.size),this.shadow.load(e.shadow),this.zIndex.load(e.zIndex),this.collisions.load(e.collisions),e.interactivity!==void 0&&(this.interactivity=I({},e.interactivity));let t=e.stroke;if(t&&(this.stroke=L(t,e=>{let t=new Hn;return t.load(e),t})),this._container){let t=this._engine.updaters.get(this._container);if(t)for(let n of t)n.loadOptions&&n.loadOptions(this,e);let n=this._engine.interactors.get(this._container);if(n)for(let t of n)t.loadParticlesOptions&&t.loadParticlesOptions(this,e)}}};function Gn(e,...t){for(let n of t)e.load(n)}function Kn(e,t,...n){let r=new Wn(e,t);return Gn(r,...n),r}var qn=class{constructor(e,t){this._findDefaultTheme=e=>this.themes.find(t=>t.default.value&&t.default.mode===e)??this.themes.find(e=>e.default.value&&e.default.mode===rn.any),this._importPreset=e=>{this.load(this._engine.getPreset(e))},this._engine=e,this._container=t,this.autoPlay=!0,this.background=new Vt,this.backgroundMask=new Ut,this.clear=!0,this.defaultThemes={},this.delay=0,this.fullScreen=new Wt,this.detectRetina=!0,this.duration=0,this.fpsLimit=120,this.interactivity=new $t(e,t),this.manualParticles=[],this.particles=Kn(this._engine,this._container),this.pauseOnBlur=!0,this.pauseOnOutsideViewport=!0,this.responsive=[],this.smooth=!1,this.style={},this.themes=[],this.zLayers=100}load(e){if(C(e))return;e.preset!==void 0&&L(e.preset,e=>this._importPreset(e)),e.autoPlay!==void 0&&(this.autoPlay=e.autoPlay),e.clear!==void 0&&(this.clear=e.clear),e.key!==void 0&&(this.key=e.key),e.name!==void 0&&(this.name=e.name),e.delay!==void 0&&(this.delay=A(e.delay));let t=e.detectRetina;t!==void 0&&(this.detectRetina=t),e.duration!==void 0&&(this.duration=A(e.duration));let n=e.fpsLimit;n!==void 0&&(this.fpsLimit=n),e.pauseOnBlur!==void 0&&(this.pauseOnBlur=e.pauseOnBlur),e.pauseOnOutsideViewport!==void 0&&(this.pauseOnOutsideViewport=e.pauseOnOutsideViewport),e.zLayers!==void 0&&(this.zLayers=e.zLayers),this.background.load(e.background);let r=e.fullScreen;ce(r)?this.fullScreen.enable=r:this.fullScreen.load(r),this.backgroundMask.load(e.backgroundMask),this.interactivity.load(e.interactivity),e.manualParticles&&(this.manualParticles=e.manualParticles.map(e=>{let t=new en;return t.load(e),t})),this.particles.load(e.particles),this.style=I(this.style,e.style),this._engine.loadOptions(this,e),e.smooth!==void 0&&(this.smooth=e.smooth);let i=this._engine.interactors.get(this._container);if(i)for(let t of i)t.loadOptions&&t.loadOptions(this,e);if(e.responsive!==void 0)for(let t of e.responsive){let e=new nn;e.load(t),this.responsive.push(e)}if(this.responsive.sort((e,t)=>e.maxWidth-t.maxWidth),e.themes!==void 0)for(let t of e.themes){let e=this.themes.find(e=>e.name===t.name);if(e)e.load(t);else{let e=new on;e.load(t),this.themes.push(e)}}this.defaultThemes.dark=this._findDefaultTheme(rn.dark)?.name,this.defaultThemes.light=this._findDefaultTheme(rn.light)?.name}setResponsive(e,t,n){this.load(n);let r=this.responsive.find(n=>n.mode===tn.screen&&screen?n.maxWidth>screen.availWidth:n.maxWidth*t>e);return this.load(r?.options),r?.maxWidth}setTheme(e){if(e){let t=this.themes.find(t=>t.name===e);t&&this.load(t.options)}else{let e=Ie(`(prefers-color-scheme: dark)`)?.matches,t=this._findDefaultTheme(e?rn.dark:rn.light);t&&this.load(t.options)}}},Jn;(function(e){e.external=`external`,e.particles=`particles`})(Jn||={});var Yn=class{constructor(e,t){this.container=t,this._engine=e,this._interactors=[],this._externalInteractors=[],this._particleInteractors=[]}externalInteract(e){for(let t of this._externalInteractors)t.isEnabled()&&t.interact(e)}handleClickMode(e){for(let t of this._externalInteractors)t.handleClickMode?.(e)}async init(){this._interactors=await this._engine.getInteractors(this.container,!0),this._externalInteractors=[],this._particleInteractors=[];for(let e of this._interactors){switch(e.type){case Jn.external:this._externalInteractors.push(e);break;case Jn.particles:this._particleInteractors.push(e);break}e.init()}}particlesInteract(e,t){for(let n of this._externalInteractors)n.clear(e,t);for(let n of this._particleInteractors)n.isEnabled(e)&&n.interact(e,t)}reset(e){for(let t of this._externalInteractors)t.isEnabled()&&t.reset(e);for(let t of this._particleInteractors)t.isEnabled(e)&&t.reset(e)}},G;(function(e){e.normal=`normal`,e.inside=`inside`,e.outside=`outside`})(G||={});function Xn(e,t,n,r){let i=t.options[e];if(i)return I({close:t.close,fill:t.fill},R(i,n,r))}function Zn(e,t,n,r){let i=t.options[e];if(i)return I({close:t.close,fill:t.fill},R(i,n,r))}function Qn(e){if(!F(e.outMode,e.checkModes))return;let t=e.radius*2;e.coord>e.maxCoord-t?e.setCb(-e.radius):e.coord<t&&e.setCb(e.radius)}var $n=class{constructor(e,t){this.container=t,this._calcPosition=(e,t,n,r=0)=>{for(let r of e.plugins.values()){let e=r.particlePosition===void 0?void 0:r.particlePosition(t,this);if(e)return fe.create(e.x,e.y,n)}let i=e.canvas.size,a=Ce({size:i,position:t}),o=fe.create(a.x,a.y,n),s=this.getRadius(),c=this.options.move.outModes,l=t=>{Qn({outMode:t,checkModes:[W.bounce],coord:o.x,maxCoord:e.canvas.size.width,setCb:e=>o.x+=e,radius:s})},u=t=>{Qn({outMode:t,checkModes:[W.bounce],coord:o.y,maxCoord:e.canvas.size.height,setCb:e=>o.y+=e,radius:s})};return l(c.left??c.default),l(c.right??c.default),u(c.top??c.default),u(c.bottom??c.default),this._checkOverlap(o,r)?this._calcPosition(e,void 0,n,r+1):o},this._calculateVelocity=()=>{let e=xe(this.direction).copy(),t=this.options.move;if(t.direction===x.inside||t.direction===x.outside)return e;let n=ye(O(t.angle.value)),r=ye(O(t.angle.offset)),i={left:r-n*g,right:r+n*g};return t.straight||(e.angle+=D(A(i.left,i.right))),t.random&&typeof t.speed==`number`&&(e.length*=T()),e},this._checkOverlap=(e,t=0)=>{let n=this.options.collisions,r=this.getRadius();if(!n.enable)return!1;let i=n.overlap;if(i.enable)return!1;let a=i.retries;if(a>=0&&t>a)throw Error(`${h} particle is overlapping and can't be placed`);return!!this.container.particles.find(t=>M(e,t.position)<r+t.getRadius())},this._getRollColor=e=>{if(!e||!this.roll||!this.backColor&&!this.roll.alter)return e;let t=this.roll.horizontal&&this.roll.vertical?2:1,n=this.roll.horizontal?Math.PI*g:0;return Math.floor(((this.roll.angle??0)+n)/(Math.PI/t))%2?this.backColor?this.backColor:this.roll.alter?Ft(e,this.roll.alter.type,this.roll.alter.value):e:e},this._initPosition=e=>{let t=this.container,n=O(this.options.zIndex.value);this.position=this._calcPosition(t,e,E(n,0,t.zLayers)),this.initialPosition=this.position.copy();let r=t.canvas.size;switch(this.moveCenter={...tt(this.options.move.center,r),radius:this.options.move.center.radius??0,mode:this.options.move.center.mode??De.percent},this.direction=be(this.options.move.direction,this.position,this.moveCenter),this.options.move.direction){case x.inside:this.outType=G.inside;break;case x.outside:this.outType=G.outside;break}this.offset=w.origin},this._engine=e}destroy(e){if(this.unbreakable||this.destroyed)return;this.destroyed=!0,this.bubble.inRange=!1,this.slow.inRange=!1;let t=this.container,n=this.pathGenerator;t.shapeDrawers.get(this.shape)?.particleDestroy?.(this);for(let n of t.plugins.values())n.particleDestroyed?.(this,e);for(let n of t.particles.updaters)n.particleDestroyed?.(this,e);n?.reset(this),this._engine.dispatchEvent(H.particleDestroyed,{container:this.container,data:{particle:this}})}draw(e){let t=this.container,n=t.canvas;for(let r of t.plugins.values())n.drawParticlePlugin(r,this,e);n.drawParticle(this,e)}getFillColor(){return this._getRollColor(this.bubble.color??bt(this.color))}getMass(){return this.getRadius()**2*Math.PI*g}getPosition(){return{x:this.position.x+this.offset.x,y:this.position.y+this.offset.y,z:this.position.z}}getRadius(){return this.bubble.radius??this.size.value}getStrokeColor(){return this._getRollColor(this.bubble.color??bt(this.strokeColor))}init(e,t,n,r){let i=this.container,a=this._engine;this.id=e,this.group=r,this.effectClose=!0,this.effectFill=!0,this.shapeClose=!0,this.shapeFill=!0,this.pathRotation=!1,this.lastPathTime=0,this.destroyed=!1,this.unbreakable=!1,this.isRotating=!1,this.rotation=0,this.misplaced=!1,this.retina={maxDistance:{}},this.outType=G.normal,this.ignoresResizeRatio=!0;let o=i.retina.pixelRatio,s=i.actualOptions,c=Kn(this._engine,i,s.particles),{reduceDuplicates:l}=c,u=c.effect.type,d=c.shape.type;this.effect=R(u,this.id,l),this.shape=R(d,this.id,l);let f=c.effect,p=c.shape;if(n){if(n.effect?.type){let e=n.effect.type,t=R(e,this.id,l);t&&(this.effect=t,f.load(n.effect))}if(n.shape?.type){let e=n.shape.type,t=R(e,this.id,l);t&&(this.shape=t,p.load(n.shape))}}if(this.effect===`random`){let e=[...this.container.effectDrawers.keys()];this.effect=e[Math.floor(T()*e.length)]}if(this.shape===`random`){let e=[...this.container.shapeDrawers.keys()];this.shape=e[Math.floor(T()*e.length)]}this.effectData=Xn(this.effect,f,this.id,l),this.shapeData=Zn(this.shape,p,this.id,l),c.load(n);let m=this.effectData;m&&c.load(m.particles);let h=this.shapeData;h&&c.load(h.particles);let g=new $t(a,i);g.load(i.actualOptions.interactivity),g.load(c.interactivity),this.interactivity=g,this.effectFill=m?.fill??c.effect.fill,this.effectClose=m?.close??c.effect.close,this.shapeFill=h?.fill??c.shape.fill,this.shapeClose=h?.close??c.shape.close,this.options=c;let v=this.options.move.path;this.pathDelay=O(v.delay.value)*_,v.generator&&(this.pathGenerator=this._engine.getPathGenerator(v.generator),this.pathGenerator&&i.addPath(v.generator,this.pathGenerator)&&this.pathGenerator.init(i)),i.retina.initParticle(this),this.size=$e(this.options.size,o),this.bubble={inRange:!1},this.slow={inRange:!1,factor:1},this._initPosition(t),this.initialVelocity=this._calculateVelocity(),this.velocity=this.initialVelocity.copy(),this.moveDecay=1-O(this.options.move.decay);let ee=i.particles;ee.setLastZIndex(this.position.z),this.zIndexFactor=this.position.z/i.zLayers,this.sides=24;let y=i.effectDrawers.get(this.effect);y||(y=this._engine.getEffectDrawer(this.effect),y&&i.effectDrawers.set(this.effect,y)),y?.loadEffect&&y.loadEffect(this);let b=i.shapeDrawers.get(this.shape);b||(b=this._engine.getShapeDrawer(this.shape),b&&i.shapeDrawers.set(this.shape,b)),b?.loadShape&&b.loadShape(this);let te=b?.getSidesCount;te&&(this.sides=te(this)),this.spawning=!1,this.shadowColor=z(this._engine,this.options.shadow.color);for(let e of ee.updaters)e.init(this);for(let e of ee.movers)e.init?.(this);y?.particleInit?.(i,this),b?.particleInit?.(i,this);for(let e of i.plugins.values())e.particleCreated?.(this)}isInsideCanvas(){let e=this.getRadius(),t=this.container.canvas.size,n=this.position;return n.x>=-e&&n.y>=-e&&n.y<=t.height+e&&n.x<=t.width+e}isVisible(){return!this.destroyed&&!this.spawning&&this.isInsideCanvas()}reset(){for(let e of this.container.particles.updaters)e.reset?.(this)}},er=class{constructor(e,t){this.position=e,this.particle=t}},tr;(function(e){e.circle=`circle`,e.rectangle=`rectangle`})(tr||={});var nr=class{constructor(e,t,n){this.position={x:e,y:t},this.type=n}},K=class e extends nr{constructor(e,t,n){super(e,t,tr.circle),this.radius=n}contains(e){return M(e,this.position)<=this.radius}intersects(t){let n=this.position,r=t.position,i={x:Math.abs(r.x-n.x),y:Math.abs(r.y-n.y)},a=this.radius;if(t instanceof e||t.type===tr.circle)return a+t.radius>Math.sqrt(i.x**2+i.y**2);if(t instanceof q||t.type===tr.rectangle){let{width:e,height:n}=t.size;return(i.x-e)**2+(i.y-n)**2<=a**2||i.x<=a+e&&i.y<=a+n||i.x<=e||i.y<=n}return!1}},q=class e extends nr{constructor(e,t,n,r){super(e,t,tr.rectangle),this.size={height:r,width:n}}contains(e){let t=this.size.width,n=this.size.height,r=this.position;return e.x>=r.x&&e.x<=r.x+t&&e.y>=r.y&&e.y<=r.y+n}intersects(t){if(t instanceof K)return t.intersects(this);let n=this.size.width,r=this.size.height,i=this.position,a=t.position,o=t instanceof e?t.size:{width:0,height:0},s=o.width,c=o.height;return a.x<i.x+n&&a.x+s>i.x&&a.y<i.y+r&&a.y+c>i.y}},rr=class e{constructor(t,n){this.rectangle=t,this.capacity=n,this._subdivide=()=>{let{x:t,y:n}=this.rectangle.position,{width:r,height:i}=this.rectangle.size,{capacity:a}=this;for(let o=0;o<4;o++){let s=o%2;this._subs.push(new e(new q(t+r*g*s,n+i*g*(Math.round(o*g)-s),r*g,i*g),a))}this._divided=!0},this._points=[],this._divided=!1,this._subs=[]}insert(e){return this.rectangle.contains(e.position)?this._points.length<this.capacity?(this._points.push(e),!0):(this._divided||this._subdivide(),this._subs.some(t=>t.insert(e))):!1}query(e,t){let n=[];if(!e.intersects(this.rectangle))return[];for(let r of this._points)!e.contains(r.position)&&M(e.position,r.position)>r.particle.getRadius()&&(!t||t(r.particle))||n.push(r.particle);if(this._divided)for(let r of this._subs)n.push(...r.query(e,t));return n}queryCircle(e,t,n){return this.query(new K(e.x,e.y,t),n)}queryRectangle(e,t,n){return this.query(new q(e.x,e.y,t.width,t.height),n)}},ir=e=>{let{height:t,width:n}=e;return new q(oe*n,oe*t,se*n,se*t)},ar=class{constructor(e,t){this._addToPool=(...e)=>{this._pool.push(...e)},this._applyDensity=(e,t,n,r)=>{let i=e.number;if(!e.number.density?.enable){n===void 0?this._limit=i.limit.value:(r?.number.limit?.value??i.limit.value)&&this._groupLimits.set(n,r?.number.limit?.value??i.limit.value);return}let a=this._initDensityFactor(i.density),o=i.value,s=i.limit.value>0?i.limit.value:o,c=Math.min(o,s)*a+t,l=Math.min(this.count,this.filter(e=>e.group===n).length);n===void 0?this._limit=i.limit.value*a:this._groupLimits.set(n,i.limit.value*a),l<c?this.push(Math.abs(c-l),void 0,e,n):l>c&&this.removeQuantity(l-c,n)},this._initDensityFactor=e=>{let t=this._container;if(!t.canvas.element||!e.enable)return 1;let n=t.canvas.element,r=t.retina.pixelRatio;return n.width*n.height/(e.height*e.width*r**2)},this._pushParticle=(e,t,n,r)=>{try{let i=this._pool.pop();i||=new $n(this._engine,this._container),i.init(this._nextId,e,t,n);let a=!0;return r&&(a=r(i)),a?(this._array.push(i),this._zArray.push(i),this._nextId++,this._engine.dispatchEvent(H.particleAdded,{container:this._container,data:{particle:i}}),i):void 0}catch(e){Ae().warning(`${h} adding particle: ${e}`)}},this._removeParticle=(e,t,n)=>{let r=this._array[e];if(!r||r.group!==t)return!1;let i=this._zArray.indexOf(r);return this._array.splice(e,1),this._zArray.splice(i,1),r.destroy(n),this._engine.dispatchEvent(H.particleRemoved,{container:this._container,data:{particle:r}}),this._addToPool(r),!0},this._engine=e,this._container=t,this._nextId=0,this._array=[],this._zArray=[],this._pool=[],this._limit=0,this._groupLimits=new Map,this._needsSort=!1,this._lastZIndex=0,this._interactionManager=new Yn(e,t),this._pluginsInitialized=!1;let n=t.canvas.size;this.quadTree=new rr(ir(n),4),this.movers=[],this.updaters=[]}get count(){return this._array.length}addManualParticles(){let e=this._container;e.actualOptions.manualParticles.forEach(t=>this.addParticle(t.position?tt(t.position,e.canvas.size):void 0,t.options))}addParticle(e,t,n,r){let i=this._container.actualOptions.particles.number.limit.mode,a=n===void 0?this._limit:this._groupLimits.get(n)??this._limit,o=this.count;if(a>0)switch(i){case Fn.delete:{let e=o+1-a;e>0&&this.removeQuantity(e);break}case Fn.wait:if(o>=a)return;break}return this._pushParticle(e,t,n,r)}clear(){this._array=[],this._zArray=[],this._pluginsInitialized=!1}destroy(){this._array=[],this._zArray=[],this.movers=[],this.updaters=[]}draw(e){let t=this._container,n=t.canvas;n.clear(),this.update(e);for(let r of t.plugins.values())n.drawPlugin(r,e);for(let t of this._zArray)t.draw(e)}filter(e){return this._array.filter(e)}find(e){return this._array.find(e)}get(e){return this._array[e]}handleClickMode(e){this._interactionManager.handleClickMode(e)}async init(){let e=this._container,t=e.actualOptions;this._lastZIndex=0,this._needsSort=!1,await this.initPlugins();let n=!1;for(let t of e.plugins.values())if(n=t.particlesInitialization?.()??n,n)break;if(this.addManualParticles(),!n){let e=t.particles,n=e.groups;for(let t in n){let r=n[t];for(let n=this.count,i=0;i<r.number?.value&&n<e.number.value;n++,i++)this.addParticle(void 0,r,t)}for(let t=this.count;t<e.number.value;t++)this.addParticle()}}async initPlugins(){if(this._pluginsInitialized)return;let e=this._container;this.movers=await this._engine.getMovers(e,!0),this.updaters=await this._engine.getUpdaters(e,!0),await this._interactionManager.init();for(let t of e.pathGenerators.values())t.init(e)}push(e,t,n,r){for(let i=0;i<e;i++)this.addParticle(t?.position,n,r)}async redraw(){this.clear(),await this.init(),this.draw({value:0,factor:0})}remove(e,t,n){this.removeAt(this._array.indexOf(e),void 0,t,n)}removeAt(e,t=1,n,r){if(e<0||e>this.count)return;let i=0;for(let a=e;i<t&&a<this.count;a++)this._removeParticle(a,n,r)&&(a--,i++)}removeQuantity(e,t){this.removeAt(0,e,t)}setDensity(){let e=this._container.actualOptions,t=e.particles.groups,n=e.manualParticles.length;for(let e in t)this._applyDensity(t[e],n,e);this._applyDensity(e.particles,n)}setLastZIndex(e){this._lastZIndex=e,this._needsSort=this._needsSort||this._lastZIndex<e}setResizeFactor(e){this._resizeFactor=e}update(e){let t=this._container,n=new Set;this.quadTree=new rr(ir(t.canvas.size),4);for(let e of t.pathGenerators.values())e.update();for(let n of t.plugins.values())n.update?.(e);let r=this._resizeFactor;for(let t of this._array){r&&!t.ignoresResizeRatio&&(t.position.x*=r.width,t.position.y*=r.height,t.initialPosition.x*=r.width,t.initialPosition.y*=r.height),t.ignoresResizeRatio=!1,this._interactionManager.reset(t);for(let n of this._container.plugins.values()){if(t.destroyed)break;n.particleUpdate?.(t,e)}for(let n of this.movers)n.isEnabled(t)&&n.move(t,e);if(t.destroyed){n.add(t);continue}this.quadTree.insert(new er(t.getPosition(),t))}if(n.size){let e=e=>!n.has(e);this._array=this.filter(e),this._zArray=this._zArray.filter(e);for(let e of n)this._engine.dispatchEvent(H.particleRemoved,{container:this._container,data:{particle:e}});this._addToPool(...n)}this._interactionManager.externalInteract(e);for(let t of this._array){for(let n of this.updaters)n.update(t,e);!t.destroyed&&!t.spawning&&this._interactionManager.particlesInteract(t,e)}if(delete this._resizeFactor,this._needsSort){let e=this._zArray;e.sort((e,t)=>t.position.z-e.position.z||e.id-t.id),this._lastZIndex=e[e.length-1].position.z,this._needsSort=!1}}},or=class{constructor(e){this.container=e,this.pixelRatio=1,this.reduceFactor=1}init(){let e=this.container,t=e.actualOptions;this.pixelRatio=!t.detectRetina||Pe()?1:devicePixelRatio,this.reduceFactor=1;let n=this.pixelRatio,r=e.canvas;if(r.element){let e=r.element;r.size.width=e.offsetWidth*n,r.size.height=e.offsetHeight*n}let i=t.particles,a=i.move;this.maxSpeed=O(a.gravity.maxSpeed)*n,this.sizeAnimationSpeed=O(i.size.animation.speed)*n}initParticle(e){let t=e.options,n=this.pixelRatio,r=t.move,i=r.distance,a=e.retina;a.moveDrift=O(r.drift)*n,a.moveSpeed=O(r.speed)*n,a.sizeAnimationSpeed=O(t.size.animation.speed)*n;let o=a.maxDistance;o.horizontal=i.horizontal===void 0?void 0:i.horizontal*n,o.vertical=i.vertical===void 0?void 0:i.vertical*n,a.maxSpeed=O(r.gravity.maxSpeed)*n}};function J(e){return e&&!e.destroyed}function sr(e,t=60,n=!1){return{value:e,factor:n?60/t:60*e/_}}function cr(e,t,...n){let r=new qn(e,t);return Gn(r,...n),r}var lr=class{constructor(e,t,n){this._intersectionManager=e=>{if(!(!J(this)||!this.actualOptions.pauseOnOutsideViewport))for(let t of e)t.target===this.interactivity.element&&(t.isIntersecting?this.play():this.pause())},this._nextFrame=e=>{try{if(!this._smooth&&this._lastFrameTime!==void 0&&e<this._lastFrameTime+1e3/this.fpsLimit){this.draw(!1);return}this._lastFrameTime??=e;let t=sr(e-this._lastFrameTime,this.fpsLimit,this._smooth);if(this.addLifeTime(t.value),this._lastFrameTime=e,t.value>1e3){this.draw(!1);return}if(this.particles.draw(t),!this.alive()){this.destroy();return}this.animationStatus&&this.draw(!1)}catch(e){Ae().error(`${h} in animation loop`,e)}},this._engine=e,this.id=Symbol(t),this.fpsLimit=120,this._smooth=!1,this._delay=0,this._duration=0,this._lifeTime=0,this._firstStart=!0,this.started=!1,this.destroyed=!1,this._paused=!0,this._lastFrameTime=0,this.zLayers=100,this.pageHidden=!1,this._clickHandlers=new Map,this._sourceOptions=n,this._initialSourceOptions=n,this.retina=new or(this),this.canvas=new Rt(this,this._engine),this.particles=new ar(this._engine,this),this.pathGenerators=new Map,this.interactivity={mouse:{clicking:!1,inside:!1}},this.plugins=new Map,this.effectDrawers=new Map,this.shapeDrawers=new Map,this._options=cr(this._engine,this),this.actualOptions=cr(this._engine,this),this._eventListeners=new Bt(this),this._intersectionObserver=Le(e=>this._intersectionManager(e)),this._engine.dispatchEvent(H.containerBuilt,{container:this})}get animationStatus(){return!this._paused&&!this.pageHidden&&J(this)}get options(){return this._options}get sourceOptions(){return this._sourceOptions}addClickHandler(e){if(!J(this))return;let t=this.interactivity.element;if(!t)return;let n=(t,n,r)=>{if(!J(this))return;let i=this.retina.pixelRatio,a={x:n.x*i,y:n.y*i};e(t,this.particles.quadTree.queryCircle(a,r*i))},r=e=>{if(!J(this))return;let t=e;n(e,{x:t.offsetX||t.clientX,y:t.offsetY||t.clientY},1)},i=()=>{J(this)&&(c=!0,l=!1)},a=()=>{J(this)&&(l=!0)},o=e=>{if(J(this)){if(c&&!l){let t=e,r=t.touches[t.touches.length-1];if(!r&&(r=t.changedTouches[t.changedTouches.length-1],!r))return;let i=this.canvas.element,a=i?i.getBoundingClientRect():void 0;n(e,{x:r.clientX-(a?a.left:0),y:r.clientY-(a?a.top:0)},Math.max(r.radiusX,r.radiusY))}c=!1,l=!1}},s=()=>{J(this)&&(c=!1,l=!1)},c=!1,l=!1;this._clickHandlers.set(`click`,r),this._clickHandlers.set(`touchstart`,i),this._clickHandlers.set(`touchmove`,a),this._clickHandlers.set(`touchend`,o),this._clickHandlers.set(`touchcancel`,s);for(let[e,n]of this._clickHandlers)t.addEventListener(e,n)}addLifeTime(e){this._lifeTime+=e}addPath(e,t,n=!1){return!J(this)||!n&&this.pathGenerators.has(e)?!1:(this.pathGenerators.set(e,t),!0)}alive(){return!this._duration||this._lifeTime<=this._duration}clearClickHandlers(){if(J(this)){for(let[e,t]of this._clickHandlers)this.interactivity.element?.removeEventListener(e,t);this._clickHandlers.clear()}}destroy(e=!0){if(J(this)){this.stop(),this.clearClickHandlers(),this.particles.destroy(),this.canvas.destroy();for(let e of this.effectDrawers.values())e.destroy?.(this);for(let e of this.shapeDrawers.values())e.destroy?.(this);for(let e of this.effectDrawers.keys())this.effectDrawers.delete(e);for(let e of this.shapeDrawers.keys())this.shapeDrawers.delete(e);if(this._engine.clearPlugins(this),this.destroyed=!0,e){let e=this._engine.items,t=e.findIndex(e=>e===this);t>=0&&e.splice(t,1)}this._engine.dispatchEvent(H.containerDestroyed,{container:this})}}draw(e){if(!J(this))return;let t=e,n=e=>{t&&=(this._lastFrameTime=void 0,!1),this._nextFrame(e)};this._drawAnimationFrame=he(e=>n(e))}async export(e,t={}){for(let n of this.plugins.values()){if(!n.export)continue;let r=await n.export(e,t);if(r.supported)return r.blob}Ae().error(`${h} - Export plugin with type ${e} not found`)}handleClickMode(e){if(J(this)){this.particles.handleClickMode(e);for(let t of this.plugins.values())t.handleClickMode?.(e)}}async init(){if(!J(this))return;let e=this._engine.getSupportedEffects();for(let t of e){let e=this._engine.getEffectDrawer(t);e&&this.effectDrawers.set(t,e)}let t=this._engine.getSupportedShapes();for(let e of t){let t=this._engine.getShapeDrawer(e);t&&this.shapeDrawers.set(e,t)}await this.particles.initPlugins(),this._options=cr(this._engine,this,this._initialSourceOptions,this.sourceOptions),this.actualOptions=cr(this._engine,this,this._options);let n=await this._engine.getAvailablePlugins(this);for(let[e,t]of n)this.plugins.set(e,t);this.retina.init(),await this.canvas.init(),this.updateActualOptions(),this.canvas.initBackground(),this.canvas.resize();let{zLayers:r,duration:i,delay:a,fpsLimit:o,smooth:s}=this.actualOptions;this.zLayers=r,this._duration=O(i)*_,this._delay=O(a)*_,this._lifeTime=0,this.fpsLimit=o>0?o:120,this._smooth=s;for(let e of this.effectDrawers.values())await e.init?.(this);for(let e of this.shapeDrawers.values())await e.init?.(this);for(let e of this.plugins.values())await e.init?.();this._engine.dispatchEvent(H.containerInit,{container:this}),await this.particles.init(),this.particles.setDensity();for(let e of this.plugins.values())e.particlesSetup?.();this._engine.dispatchEvent(H.particlesSetup,{container:this})}async loadTheme(e){J(this)&&(this._currentTheme=e,await this.refresh())}pause(){if(J(this)&&(this._drawAnimationFrame!==void 0&&(ge(this._drawAnimationFrame),delete this._drawAnimationFrame),!this._paused)){for(let e of this.plugins.values())e.pause?.();this.pageHidden||(this._paused=!0),this._engine.dispatchEvent(H.containerPaused,{container:this})}}play(e){if(!J(this))return;let t=this._paused||e;if(this._firstStart&&!this.actualOptions.autoPlay){this._firstStart=!1;return}if(this._paused&&=!1,t)for(let e of this.plugins.values())e.play&&e.play();this._engine.dispatchEvent(H.containerPlay,{container:this}),this.draw(t??!1)}async refresh(){if(J(this))return this.stop(),this.start()}async reset(e){if(J(this))return this._initialSourceOptions=e,this._sourceOptions=e,this._options=cr(this._engine,this,this._initialSourceOptions,this.sourceOptions),this.actualOptions=cr(this._engine,this,this._options),this.refresh()}async start(){!J(this)||this.started||(await this.init(),this.started=!0,await new Promise(e=>{let t=async()=>{this._eventListeners.addListeners(),this.interactivity.element instanceof HTMLElement&&this._intersectionObserver&&this._intersectionObserver.observe(this.interactivity.element);for(let e of this.plugins.values())await e.start?.();this._engine.dispatchEvent(H.containerStarted,{container:this}),this.play(),e()};this._delayTimeout=setTimeout(()=>void t(),this._delay)}))}stop(){if(!(!J(this)||!this.started)){this._delayTimeout&&(clearTimeout(this._delayTimeout),delete this._delayTimeout),this._firstStart=!0,this.started=!1,this._eventListeners.removeListeners(),this.pause(),this.particles.clear(),this.canvas.stop(),this.interactivity.element instanceof HTMLElement&&this._intersectionObserver&&this._intersectionObserver.unobserve(this.interactivity.element);for(let e of this.plugins.values())e.stop?.();for(let e of this.plugins.keys())this.plugins.delete(e);this._sourceOptions=this._options,this._engine.dispatchEvent(H.containerStopped,{container:this})}}updateActualOptions(){this.actualOptions.responsive=[];let e=this.actualOptions.setResponsive(this.canvas.size.width,this.retina.pixelRatio,this._options);return this.actualOptions.setTheme(this._currentTheme),this._responsiveMaxWidth===e?!1:(this._responsiveMaxWidth=e,!0)}},ur=class{constructor(){this._listeners=new Map}addEventListener(e,t){this.removeEventListener(e,t);let n=this._listeners.get(e);n||(n=[],this._listeners.set(e,n)),n.push(t)}dispatchEvent(e,t){this._listeners.get(e)?.forEach(e=>e(t))}hasEventListener(e){return!!this._listeners.get(e)}removeAllEventListeners(e){e?this._listeners.delete(e):this._listeners=new Map}removeEventListener(e,t){let n=this._listeners.get(e);if(!n)return;let r=n.length,i=n.indexOf(t);i<0||(r===1?this._listeners.delete(e):n.splice(i,1))}};async function dr(e,t,n,r=!1){let i=t.get(e);return(!i||r)&&(i=await Promise.all([...n.values()].map(t=>t(e))),t.set(e,i)),i}async function fr(e){let t=R(e.url,e.index);if(!t)return e.fallback;let n=await fetch(t);return n.ok?await n.json():(Ae().error(`${h} ${n.status} while retrieving config file`),e.fallback)}var pr=e=>{let t;if(e instanceof HTMLCanvasElement||e.tagName.toLowerCase()===`canvas`)t=e,t.dataset.generated||(t.dataset[r]=ne);else{let n=e.getElementsByTagName(re);n.length?(t=n[0],t.dataset[r]=ne):(t=document.createElement(re),t.dataset[r]=te,e.appendChild(t))}let n=`100%`;return t.style.width||(t.style.width=n),t.style.height||(t.style.height=n),t},mr=(e,t)=>{let n=t??document.getElementById(e);return n||(n=document.createElement(`div`),n.id=e,n.dataset[r]=te,document.body.append(n),n)},hr=class{constructor(){this._configs=new Map,this._domArray=[],this._eventDispatcher=new ur,this._initialized=!1,this.plugins=[],this.colorManagers=new Map,this.easingFunctions=new Map,this._initializers={interactors:new Map,movers:new Map,updaters:new Map},this.interactors=new Map,this.movers=new Map,this.updaters=new Map,this.presets=new Map,this.effectDrawers=new Map,this.shapeDrawers=new Map,this.pathGenerators=new Map}get configs(){let e={};for(let[t,n]of this._configs)e[t]=n;return e}get items(){return this._domArray}get version(){return`3.9.1`}async addColorManager(e,t=!0){this.colorManagers.set(e.key,e),await this.refresh(t)}addConfig(e){let t=e.key??e.name??`default`;this._configs.set(t,e),this._eventDispatcher.dispatchEvent(H.configAdded,{data:{name:t,config:e}})}async addEasing(e,t,n=!0){this.getEasing(e)||(this.easingFunctions.set(e,t),await this.refresh(n))}async addEffect(e,t,n=!0){L(e,e=>{this.getEffectDrawer(e)||this.effectDrawers.set(e,t)}),await this.refresh(n)}addEventListener(e,t){this._eventDispatcher.addEventListener(e,t)}async addInteractor(e,t,n=!0){this._initializers.interactors.set(e,t),await this.refresh(n)}async addMover(e,t,n=!0){this._initializers.movers.set(e,t),await this.refresh(n)}async addParticleUpdater(e,t,n=!0){this._initializers.updaters.set(e,t),await this.refresh(n)}async addPathGenerator(e,t,n=!0){this.getPathGenerator(e)||this.pathGenerators.set(e,t),await this.refresh(n)}async addPlugin(e,t=!0){this.getPlugin(e.id)||this.plugins.push(e),await this.refresh(t)}async addPreset(e,t,n=!1,r=!0){(n||!this.getPreset(e))&&this.presets.set(e,t),await this.refresh(r)}async addShape(e,t=!0){for(let t of e.validTypes)this.getShapeDrawer(t)||this.shapeDrawers.set(t,e);await this.refresh(t)}checkVersion(e){if(this.version!==e)throw Error(`The tsParticles version is different from the loaded plugins version. Engine version: ${this.version}. Plugin version: ${e}`)}clearPlugins(e){this.updaters.delete(e),this.movers.delete(e),this.interactors.delete(e)}dispatchEvent(e,t){this._eventDispatcher.dispatchEvent(e,t)}dom(){return this.items}domItem(e){return this.item(e)}async getAvailablePlugins(e){let t=new Map;for(let n of this.plugins)n.needsPlugin(e.actualOptions)&&t.set(n.id,await n.getPlugin(e));return t}getEasing(e){return this.easingFunctions.get(e)??(e=>e)}getEffectDrawer(e){return this.effectDrawers.get(e)}async getInteractors(e,t=!1){return dr(e,this.interactors,this._initializers.interactors,t)}async getMovers(e,t=!1){return dr(e,this.movers,this._initializers.movers,t)}getPathGenerator(e){return this.pathGenerators.get(e)}getPlugin(e){return this.plugins.find(t=>t.id===e)}getPreset(e){return this.presets.get(e)}getShapeDrawer(e){return this.shapeDrawers.get(e)}getSupportedEffects(){return this.effectDrawers.keys()}getSupportedShapes(){return this.shapeDrawers.keys()}async getUpdaters(e,t=!1){return dr(e,this.updaters,this._initializers.updaters,t)}init(){this._initialized||=!0}item(e){let{items:t}=this,n=t[e];if(!n||n.destroyed){t.splice(e,1);return}return n}async load(e){let t=e.id??e.element?.id??`tsparticles${Math.floor(T()*1e4)}`,{index:n,url:r}=e,i=R(r?await fr({fallback:e.options,url:r,index:n}):e.options,n),{items:a}=this,o=a.findIndex(e=>e.id.description===t),s=new lr(this,t,i);if(o>=0){let e=this.item(o),t=+!!e;e&&!e.destroyed&&e.destroy(!1),a.splice(o,t,s)}else a.push(s);let c=pr(mr(t,e.element));return s.canvas.loadCanvas(c),await s.start(),s}loadOptions(e,t){this.plugins.forEach(n=>n.loadOptions?.(e,t))}loadParticlesOptions(e,t,...n){let r=this.updaters.get(e);r&&r.forEach(e=>e.loadOptions?.(t,...n))}async refresh(e=!0){e&&await Promise.all(this.items.map(e=>e.refresh()))}removeEventListener(e,t){this._eventDispatcher.removeEventListener(e,t)}setOnClickHandler(e){let{items:t}=this;if(!t.length)throw Error(`${h} can only set click handlers after calling tsParticles.load()`);t.forEach(t=>t.addClickHandler(e))}};function gr(){let e=new hr;return e.init(),e}var Y=class{constructor(e){this.type=Jn.external,this.container=e}},_r=class{constructor(e){this.type=Jn.particles,this.container=e}},X;(function(e){e.clockwise=`clockwise`,e.counterClockwise=`counter-clockwise`,e.random=`random`})(X||={});var vr;(function(e){e.easeInBack=`ease-in-back`,e.easeInCirc=`ease-in-circ`,e.easeInCubic=`ease-in-cubic`,e.easeInLinear=`ease-in-linear`,e.easeInQuad=`ease-in-quad`,e.easeInQuart=`ease-in-quart`,e.easeInQuint=`ease-in-quint`,e.easeInExpo=`ease-in-expo`,e.easeInSine=`ease-in-sine`,e.easeOutBack=`ease-out-back`,e.easeOutCirc=`ease-out-circ`,e.easeOutCubic=`ease-out-cubic`,e.easeOutLinear=`ease-out-linear`,e.easeOutQuad=`ease-out-quad`,e.easeOutQuart=`ease-out-quart`,e.easeOutQuint=`ease-out-quint`,e.easeOutExpo=`ease-out-expo`,e.easeOutSine=`ease-out-sine`,e.easeInOutBack=`ease-in-out-back`,e.easeInOutCirc=`ease-in-out-circ`,e.easeInOutCubic=`ease-in-out-cubic`,e.easeInOutLinear=`ease-in-out-linear`,e.easeInOutQuad=`ease-in-out-quad`,e.easeInOutQuart=`ease-in-out-quart`,e.easeInOutQuint=`ease-in-out-quint`,e.easeInOutExpo=`ease-in-out-expo`,e.easeInOutSine=`ease-in-out-sine`})(vr||={});var yr=gr();Pe()||(window.tsParticles=yr);var br=n(),xr=e(t(),1),Sr=e=>{let t=e.id??`tsparticles`;return(0,xr.useEffect)(()=>{let n;return yr.load({id:t,url:e.url,options:e.options}).then(t=>{var r;n=t,(r=e.particlesLoaded)==null||r.call(e,t)}),()=>{n?.destroy()}},[t,e,e.url,e.options]),(0,br.jsx)(`div`,{id:t,className:e.className})};async function Cr(e){await e(yr)}var wr=.5,Tr=2,Er=0,Dr=1,Or=60,kr=0,Ar=.01,jr=Math.PI*Tr;function Mr(e){let t=e.initialPosition,{dx:n,dy:r}=j(t,e.position),i=Math.abs(n),a=Math.abs(r),{maxDistance:o}=e.retina,s=o.horizontal,c=o.vertical;if(!(!s&&!c)){if((((s&&i>=s)??!1)||((c&&a>=c)??!1))&&!e.misplaced)e.misplaced=!!s&&i>s||!!c&&a>c,s&&(e.velocity.x=e.velocity.y*wr-e.velocity.x),c&&(e.velocity.y=e.velocity.x*wr-e.velocity.y);else if((!s||i<s)&&(!c||a<c)&&e.misplaced)e.misplaced=!1;else if(e.misplaced){let n=e.position,r=e.velocity;s&&(n.x<t.x&&r.x<Er||n.x>t.x&&r.x>Er)&&(r.x*=-T()),c&&(n.y<t.y&&r.y<Er||n.y>t.y&&r.y>Er)&&(r.y*=-T())}}}function Nr(e,t,n,r,i,a,o){Fr(e,o);let s=e.gravity,c=s?.enable&&s.inverse?-1:Dr;i&&n&&(e.velocity.x+=i*o.factor/(Or*n)),s?.enable&&n&&(e.velocity.y+=c*(s.acceleration*o.factor)/(Or*n));let l=e.moveDecay;e.velocity.multTo(l);let u=e.velocity.mult(n);s?.enable&&r>Er&&(!s.inverse&&u.y>=Er&&u.y>=r||s.inverse&&u.y<=Er&&u.y<=-r)&&(u.y=c*r,n&&(e.velocity.y=u.y/n));let d=e.options.zIndex,f=(Dr-e.zIndexFactor)**d.velocityRate;u.multTo(f),u.multTo(a);let{position:p}=e;p.addTo(u),t.vibrate&&(p.x+=Math.sin(p.x*Math.cos(p.y))*a,p.y+=Math.cos(p.y*Math.sin(p.x))*a)}function Pr(e,t,n){let r=e.container;if(!e.spin)return;let i=e.spin.direction===X.clockwise,a={x:i?Math.cos:Math.sin,y:i?Math.sin:Math.cos};e.position.x=e.spin.center.x+e.spin.radius*a.x(e.spin.angle)*n,e.position.y=e.spin.center.y+e.spin.radius*a.y(e.spin.angle)*n,e.spin.radius+=e.spin.acceleration*n;let o=Math.max(r.canvas.size.width,r.canvas.size.height),s=o*wr;e.spin.radius>s?(e.spin.radius=s,e.spin.acceleration*=-1):e.spin.radius<kr&&(e.spin.radius=kr,e.spin.acceleration*=-1),e.spin.angle+=t*Ar*(Dr-e.spin.radius/o)}function Fr(e,t){let n=e.options.move.path;if(!n.enable)return;if(e.lastPathTime<=e.pathDelay){e.lastPathTime+=t.value;return}let r=e.pathGenerator?.generate(e,t);r&&e.velocity.addTo(r),n.clamp&&(e.velocity.x=E(e.velocity.x,-1,Dr),e.velocity.y=E(e.velocity.y,-1,Dr)),e.lastPathTime-=e.pathDelay}function Ir(e){return e.slow.inRange?e.slow.factor:Dr}function Lr(e){let t=e.container,n=e.options.move.spin;if(!n.enable)return;let r=n.position??{x:50,y:50},i=.01,a={x:r.x*i*t.canvas.size.width,y:r.y*i*t.canvas.size.height},o=M(e.getPosition(),a),s=O(n.acceleration);e.retina.spinAcceleration=s*t.retina.pixelRatio,e.spin={center:a,direction:e.velocity.x>=Er?X.clockwise:X.counterClockwise,angle:T()*jr,radius:o,acceleration:e.retina.spinAcceleration}}var Rr=2,zr=1,Br=1,Vr=class{init(e){let t=e.options.move.gravity;e.gravity={enable:t.enable,acceleration:O(t.acceleration),inverse:t.inverse},Lr(e)}isEnabled(e){return!e.destroyed&&e.options.move.enable}move(e,t){let n=e.options,r=n.move;if(!r.enable)return;let i=e.container,a=i.retina.pixelRatio;e.retina.moveSpeed??=O(r.speed)*a,e.retina.moveDrift??=O(e.options.move.drift)*a;let o=Ir(e),s=i.retina.reduceFactor,c=e.retina.moveSpeed,l=e.retina.moveDrift,u=k(n.size.value)*a,d=r.size?e.getRadius()/u:zr,f=t.factor||Br,p=c*d*o*f/Rr,m=e.retina.maxSpeed??i.retina.maxSpeed;r.spin.enable?Pr(e,p,s):Nr(e,r,p,m,l,s,t),Mr(e)}};async function Hr(e,t=!0){e.checkVersion(`3.9.1`),await e.addMover(`base`,()=>Promise.resolve(new Vr),t)}var Ur=Math.PI*2,Wr=0,Gr={x:0,y:0};function Kr(e){let{context:t,particle:n,radius:r}=e;n.circleRange||={min:Wr,max:Ur};let i=n.circleRange;t.arc(Gr.x,Gr.y,r,i.min,i.max,!1)}var qr=12,Jr=360,Yr=0,Xr=class{constructor(){this.validTypes=[`circle`]}draw(e){Kr(e)}getSidesCount(){return qr}particleInit(e,t){let n=t.shapeData?.angle??{max:Jr,min:Yr};t.circleRange=de(n)?{min:ye(n.min),max:ye(n.max)}:{min:Yr,max:ye(n)}}};async function Zr(e,t=!0){e.checkVersion(`3.9.1`),await e.addShape(new Xr,t)}var Qr=class{constructor(e,t){this._container=e,this._engine=t}init(e){let t=ut(this._engine,e.options.color,e.id,e.options.reduceDuplicates);t&&(e.color=xt(t,e.options.color.animation,this._container.retina.reduceFactor))}isEnabled(e){let{h:t,s:n,l:r}=e.options.color.animation,{color:i}=e;return!e.destroyed&&!e.spawning&&(i?.h.value!==void 0&&t.enable||i?.s.value!==void 0&&n.enable||i?.l.value!==void 0&&r.enable)}update(e,t){wt(e.color,t)}};async function $r(e,t=!0){e.checkVersion(`3.9.1`),await e.addParticleUpdater(`color`,t=>Promise.resolve(new Qr(t,e)),t)}var ei;(function(e){e[e.r=1]=`r`,e[e.g=2]=`g`,e[e.b=3]=`b`,e[e.a=4]=`a`})(ei||={});var ti=/^#?([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,ni=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i,ri=16,ii=1,ai=255,oi=class{constructor(){this.key=`hex`,this.stringPrefix=`#`}handleColor(e){return this._parseString(e.value)}handleRangeColor(e){return this._parseString(e.value)}parseString(e){return this._parseString(e)}_parseString(e){if(typeof e!=`string`||!e?.startsWith(this.stringPrefix))return;let t=e.replace(ti,(e,t,n,r,i)=>t+t+n+n+r+r+(i===void 0?``:i+i)),n=ni.exec(t);return n?{a:n[ei.a]===void 0?ii:parseInt(n[ei.a],ri)/ai,b:parseInt(n[ei.b],ri),g:parseInt(n[ei.g],ri),r:parseInt(n[ei.r],ri)}:void 0}};async function si(e,t=!0){e.checkVersion(`3.9.1`),await e.addColorManager(new oi,t)}var ci;(function(e){e[e.h=1]=`h`,e[e.s=2]=`s`,e[e.l=3]=`l`,e[e.a=5]=`a`})(ci||={});var li=class{constructor(){this.key=`hsl`,this.stringPrefix=`hsl`}handleColor(e){let t=e.value.hsl??e.value;if(t.h!==void 0&&t.s!==void 0&&t.l!==void 0)return pt(t)}handleRangeColor(e){let t=e.value.hsl??e.value;if(t.h!==void 0&&t.l!==void 0)return pt({h:O(t.h),l:O(t.l),s:O(t.s)})}parseString(e){if(!e.startsWith(`hsl`))return;let t=/hsla?\(\s*(\d+)\s*[\s,]\s*(\d+)%\s*[\s,]\s*(\d+)%\s*([\s,]\s*(0|1|0?\.\d+|(\d{1,3})%)\s*)?\)/i.exec(e);return t?mt({a:t.length>4?we(t[ci.a]):1,h:parseInt(t[ci.h],10),l:parseInt(t[ci.l],10),s:parseInt(t[ci.s],10)}):void 0}};async function ui(e,t=!0){e.checkVersion(`3.9.1`),await e.addColorManager(new li,t)}var di=class{constructor(e){this.container=e}init(e){let t=e.options.opacity;e.opacity=$e(t,1);let n=t.animation;n.enable&&(e.opacity.velocity=O(n.speed)/100*this.container.retina.reduceFactor,n.sync||(e.opacity.velocity*=T()))}isEnabled(e){return!e.destroyed&&!e.spawning&&!!e.opacity&&e.opacity.enable&&((e.opacity.maxLoops??0)<=0||(e.opacity.maxLoops??0)>0&&(e.opacity.loops??0)<(e.opacity.maxLoops??0))}reset(e){e.opacity&&(e.opacity.time=0,e.opacity.loops=0)}update(e,t){!this.isEnabled(e)||!e.opacity||rt(e,e.opacity,!0,e.options.opacity.animation.destroy,t)}};async function fi(e,t=!0){e.checkVersion(`3.9.1`),await e.addParticleUpdater(`opacity`,e=>Promise.resolve(new di(e)),t)}var pi=0,mi=0;function hi(e){if(e.outMode!==W.bounce&&e.outMode!==W.split||e.direction!==P.left&&e.direction!==P.right)return;e.bounds.right<mi&&e.direction===P.left?e.particle.position.x=e.size+e.offset.x:e.bounds.left>e.canvasSize.width&&e.direction===P.right&&(e.particle.position.x=e.canvasSize.width-e.size-e.offset.x);let t=e.particle.velocity.x,n=!1;if(e.direction===P.right&&e.bounds.right>=e.canvasSize.width&&t>pi||e.direction===P.left&&e.bounds.left<=mi&&t<pi){let t=O(e.particle.options.bounce.horizontal.value);e.particle.velocity.x*=-t,n=!0}if(!n)return;let r=e.offset.x+e.size;e.bounds.right>=e.canvasSize.width&&e.direction===P.right?e.particle.position.x=e.canvasSize.width-r:e.bounds.left<=mi&&e.direction===P.left&&(e.particle.position.x=r),e.outMode===W.split&&e.particle.destroy()}function gi(e){if(e.outMode!==W.bounce&&e.outMode!==W.split||e.direction!==P.bottom&&e.direction!==P.top)return;e.bounds.bottom<mi&&e.direction===P.top?e.particle.position.y=e.size+e.offset.y:e.bounds.top>e.canvasSize.height&&e.direction===P.bottom&&(e.particle.position.y=e.canvasSize.height-e.size-e.offset.y);let t=e.particle.velocity.y,n=!1;if(e.direction===P.bottom&&e.bounds.bottom>=e.canvasSize.height&&t>pi||e.direction===P.top&&e.bounds.top<=mi&&t<pi){let t=O(e.particle.options.bounce.vertical.value);e.particle.velocity.y*=-t,n=!0}if(!n)return;let r=e.offset.y+e.size;e.bounds.bottom>=e.canvasSize.height&&e.direction===P.bottom?e.particle.position.y=e.canvasSize.height-r:e.bounds.top<=mi&&e.direction===P.top&&(e.particle.position.y=r),e.outMode===W.split&&e.particle.destroy()}var _i=class{constructor(e){this.container=e,this.modes=[W.bounce,W.split]}update(e,t,n,r){if(!this.modes.includes(r))return;let i=this.container,a=!1;for(let r of i.plugins.values())if(r.particleBounce!==void 0&&(a=r.particleBounce(e,n,t)),a)break;if(a)return;let o=e.getPosition(),s=e.offset,c=e.getRadius(),l=We(o,c),u=i.canvas.size;hi({particle:e,outMode:r,direction:t,bounds:l,canvasSize:u,offset:s,size:c}),gi({particle:e,outMode:r,direction:t,bounds:l,canvasSize:u,offset:s,size:c})}},vi=0,yi=class{constructor(e){this.container=e,this.modes=[W.destroy]}update(e,t,n,r){if(!this.modes.includes(r))return;let i=this.container;switch(e.outType){case G.normal:case G.outside:if(He(e.position,i.canvas.size,w.origin,e.getRadius(),t))return;break;case G.inside:{let{dx:t,dy:n}=j(e.position,e.moveCenter),{x:r,y:i}=e.velocity;if(r<vi&&t>e.moveCenter.radius||i<vi&&n>e.moveCenter.radius||r>=vi&&t<-e.moveCenter.radius||i>=vi&&n<-e.moveCenter.radius)return;break}}i.particles.remove(e,e.group,!0)}},bi=0,xi=class{constructor(e){this.container=e,this.modes=[W.none]}update(e,t,n,r){if(!this.modes.includes(r)||((e.options.move.distance.horizontal&&(t===P.left||t===P.right))??(e.options.move.distance.vertical&&(t===P.top||t===P.bottom))))return;let i=e.options.move.gravity,a=this.container,o=a.canvas.size,s=e.getRadius();if(i.enable){let n=e.position;(!i.inverse&&n.y>o.height+s&&t===P.bottom||i.inverse&&n.y<-s&&t===P.top)&&a.particles.remove(e)}else{if(e.velocity.y>bi&&e.position.y<=o.height+s||e.velocity.y<bi&&e.position.y>=-s||e.velocity.x>bi&&e.position.x<=o.width+s||e.velocity.x<bi&&e.position.x>=-s)return;He(e.position,a.canvas.size,w.origin,s,t)||a.particles.remove(e)}}},Si=0,Ci=0,wi=class{constructor(e){this.container=e,this.modes=[W.out]}update(e,t,n,r){if(!this.modes.includes(r))return;let i=this.container;switch(e.outType){case G.inside:{let{x:t,y:n}=e.velocity,r=w.origin;r.length=e.moveCenter.radius,r.angle=e.velocity.angle+Math.PI,r.addTo(w.create(e.moveCenter));let{dx:a,dy:o}=j(e.position,r);if(t<=Si&&a>=Ci||n<=Si&&o>=Ci||t>=Si&&a<=Ci||n>=Si&&o<=Ci)return;e.position.x=Math.floor(D({min:0,max:i.canvas.size.width})),e.position.y=Math.floor(D({min:0,max:i.canvas.size.height}));let{dx:s,dy:c}=j(e.position,e.moveCenter);e.direction=Math.atan2(-c,-s),e.velocity.angle=e.direction;break}default:if(He(e.position,i.canvas.size,w.origin,e.getRadius(),t))return;switch(e.outType){case G.outside:{e.position.x=Math.floor(D({min:-e.moveCenter.radius,max:e.moveCenter.radius}))+e.moveCenter.x,e.position.y=Math.floor(D({min:-e.moveCenter.radius,max:e.moveCenter.radius}))+e.moveCenter.y;let{dx:t,dy:n}=j(e.position,e.moveCenter);e.moveCenter.radius&&(e.direction=Math.atan2(n,t),e.velocity.angle=e.direction);break}case G.normal:{let n=e.options.move.warp,r=i.canvas.size,a={bottom:r.height+e.getRadius()+e.offset.y,left:-e.getRadius()-e.offset.x,right:r.width+e.getRadius()+e.offset.x,top:-e.getRadius()-e.offset.y},o=e.getRadius(),s=We(e.position,o);t===P.right&&s.left>r.width+e.offset.x?(e.position.x=a.left,e.initialPosition.x=e.position.x,n||(e.position.y=T()*r.height,e.initialPosition.y=e.position.y)):t===P.left&&s.right<-e.offset.x&&(e.position.x=a.right,e.initialPosition.x=e.position.x,n||(e.position.y=T()*r.height,e.initialPosition.y=e.position.y)),t===P.bottom&&s.top>r.height+e.offset.y?(n||(e.position.x=T()*r.width,e.initialPosition.x=e.position.x),e.position.y=a.top,e.initialPosition.y=e.position.y):t===P.top&&s.bottom<-e.offset.y&&(n||(e.position.x=T()*r.width,e.initialPosition.x=e.position.x),e.position.y=a.bottom,e.initialPosition.y=e.position.y);break}}break}}},Ti=(e,t)=>e.default===t||e.bottom===t||e.left===t||e.right===t||e.top===t,Ei=class{constructor(e){this._addUpdaterIfMissing=(e,t,n)=>{let r=e.options.move.outModes;!this.updaters.has(t)&&Ti(r,t)&&this.updaters.set(t,n(this.container))},this._updateOutMode=(e,t,n,r)=>{for(let i of this.updaters.values())i.update(e,r,t,n)},this.container=e,this.updaters=new Map}init(e){this._addUpdaterIfMissing(e,W.bounce,e=>new _i(e)),this._addUpdaterIfMissing(e,W.out,e=>new wi(e)),this._addUpdaterIfMissing(e,W.destroy,e=>new yi(e)),this._addUpdaterIfMissing(e,W.none,e=>new xi(e))}isEnabled(e){return!e.destroyed&&!e.spawning}update(e,t){let n=e.options.move.outModes;this._updateOutMode(e,t,n.bottom??n.default,P.bottom),this._updateOutMode(e,t,n.left??n.default,P.left),this._updateOutMode(e,t,n.right??n.default,P.right),this._updateOutMode(e,t,n.top??n.default,P.top)}};async function Di(e,t=!0){e.checkVersion(`3.9.1`),await e.addParticleUpdater(`outModes`,e=>Promise.resolve(new Ei(e)),t)}var Oi;(function(e){e[e.r=1]=`r`,e[e.g=2]=`g`,e[e.b=3]=`b`,e[e.a=5]=`a`})(Oi||={});var ki=class{constructor(){this.key=`rgb`,this.stringPrefix=`rgb`}handleColor(e){let t=e.value.rgb??e.value;if(t.r!==void 0)return t}handleRangeColor(e){let t=e.value.rgb??e.value;if(t.r!==void 0)return{r:O(t.r),g:O(t.g),b:O(t.b)}}parseString(e){if(!e.startsWith(this.stringPrefix))return;let t=/rgba?\(\s*(\d{1,3})\s*[\s,]\s*(\d{1,3})\s*[\s,]\s*(\d{1,3})\s*([\s,]\s*(0|1|0?\.\d+|(\d{1,3})%)\s*)?\)/i.exec(e);return t?{a:t.length>4?we(t[Oi.a]):1,b:parseInt(t[Oi.b],10),g:parseInt(t[Oi.g],10),r:parseInt(t[Oi.r],10)}:void 0}};async function Ai(e,t=!0){e.checkVersion(`3.9.1`),await e.addColorManager(new ki,t)}var ji=0,Mi=class{init(e){let t=e.container,n=e.options.size.animation;n.enable&&(e.size.velocity=(e.retina.sizeAnimationSpeed??t.retina.sizeAnimationSpeed)/100*t.retina.reduceFactor,n.sync||(e.size.velocity*=T()))}isEnabled(e){return!e.destroyed&&!e.spawning&&e.size.enable&&((e.size.maxLoops??ji)<=ji||(e.size.maxLoops??ji)>ji&&(e.size.loops??ji)<(e.size.maxLoops??ji))}reset(e){e.size.loops=ji}update(e,t){this.isEnabled(e)&&rt(e,e.size,!0,e.options.size.animation.destroy,t)}};async function Ni(e,t=!0){e.checkVersion(`3.9.1`),await e.addParticleUpdater(`size`,()=>Promise.resolve(new Mi),t)}async function Pi(e,t=!0){e.checkVersion(`3.9.1`),await si(e,!1),await ui(e,!1),await Ai(e,!1),await Hr(e,!1),await Zr(e,!1),await $r(e,!1),await fi(e,!1),await Di(e,!1),await Ni(e,!1),await e.refresh(t)}async function Fi(e,t=!0){e.checkVersion(`3.9.1`),await e.addEasing(vr.easeInQuad,e=>e**2,!1),await e.addEasing(vr.easeOutQuad,e=>1-(1-e)**2,!1),await e.addEasing(vr.easeInOutQuad,e=>e<.5?2*e**2:1-(-2*e+2)**2/2,!1),await e.refresh(t)}function Ii(e,t){let{context:n,opacity:r}=e,i=n.globalAlpha;if(!t)return;let a=t.width,o=a*.5;n.globalAlpha=r,n.drawImage(t,-o,-o,a,a),n.globalAlpha=i}var Li=`"Twemoji Mozilla", Apple Color Emoji, "Segoe UI Emoji", "Noto Color Emoji", "EmojiOne Color"`,Ri=0,zi=class{constructor(){this.validTypes=[`emoji`],this._emojiShapeDict=new Map}destroy(){for(let[e,t]of this._emojiShapeDict)t instanceof ImageBitmap&&t?.close(),this._emojiShapeDict.delete(e)}draw(e){let t=e.particle.emojiDataKey;if(!t)return;let n=this._emojiShapeDict.get(t);n&&Ii(e,n)}async init(e){let t=e.actualOptions,{validTypes:n}=this;if(!n.find(e=>F(e,t.particles.shape.type)))return;let r=[ze(Li)],i=n.map(e=>t.particles.shape.options[e]).find(e=>!!e);i&&L(i,e=>{e.font&&r.push(ze(e.font))}),await Promise.all(r)}particleDestroy(e){e.emojiDataKey=void 0}particleInit(e,t){let n=t.shapeData;if(!n?.value)return;let r=R(n.value,t.randomIndexData);if(!r)return;let i=typeof r==`string`?{font:n.font??Li,padding:n.padding??Ri,value:r}:{font:Li,padding:Ri,...n,...r},a=i.font,o=i.value,s=`${o}_${a}`;if(this._emojiShapeDict.has(s)){t.emojiDataKey=s;return}let c=i.padding*2,l=k(t.size.value),u=l+c,d=u*2,f;if(typeof OffscreenCanvas<`u`){let e=new OffscreenCanvas(d,d),t=e.getContext(`2d`);if(!t)return;t.font=`400 ${l*2}px ${a}`,t.textBaseline=`middle`,t.textAlign=`center`,t.fillText(o,u,u),f=e.transferToImageBitmap()}else{let e=document.createElement(`canvas`);e.width=d,e.height=d;let t=e.getContext(`2d`);if(!t)return;t.font=`400 ${l*2}px ${a}`,t.textBaseline=`middle`,t.textAlign=`center`,t.fillText(o,u,u),f=e}this._emojiShapeDict.set(s,f),t.emojiDataKey=s}};async function Bi(e,t=!0){e.checkVersion(`3.9.1`),await e.addShape(new zi,t)}var Vi=1,Hi=1,Ui=0;function Wi(e,t,n,r,i,a){let o=t.actualOptions.interactivity.modes.attract;if(!o)return;let s=t.particles.quadTree.query(i,a);for(let t of s){let{dx:i,dy:a,distance:s}=j(t.position,n),c=o.speed*o.factor,l=E(e.getEasing(o.easing)(Hi-s/r)*c,Vi,o.maxSpeed),u=w.create(s?i/s*l:c,s?a/s*l:c);t.position.subFrom(u)}}function Gi(e,t,n){t.attract||={particles:[]};let{attract:r}=t;if(r.finish||(r.count||=0,r.count++,r.count===t.particles.count&&(r.finish=!0)),r.clicking){let r=t.interactivity.mouse.clickPosition,i=t.retina.attractModeDistance;if(!i||i<Ui||!r)return;Wi(e,t,r,i,new K(r.x,r.y,i),e=>n(e))}else r.clicking===!1&&(r.particles=[])}function Ki(e,t,n){let r=t.interactivity.mouse.position,i=t.retina.attractModeDistance;!i||i<Ui||!r||Wi(e,t,r,i,new K(r.x,r.y,i),e=>n(e))}var qi=class{constructor(){this.distance=200,this.duration=.4,this.easing=vr.easeOutQuad,this.factor=1,this.maxSpeed=50,this.speed=1}load(e){C(e)||(e.distance!==void 0&&(this.distance=e.distance),e.duration!==void 0&&(this.duration=e.duration),e.easing!==void 0&&(this.easing=e.easing),e.factor!==void 0&&(this.factor=e.factor),e.maxSpeed!==void 0&&(this.maxSpeed=e.maxSpeed),e.speed!==void 0&&(this.speed=e.speed))}},Ji=`attract`,Yi=class extends Y{constructor(e,t){super(t),this._engine=e,t.attract||={particles:[]},this.handleClickMode=e=>{let n=this.container.actualOptions.interactivity.modes.attract;if(!(!n||e!==Ji)){t.attract||={particles:[]},t.attract.clicking=!0,t.attract.count=0;for(let e of t.attract.particles)this.isEnabled(e)&&e.velocity.setTo(e.initialVelocity);t.attract.particles=[],t.attract.finish=!1,setTimeout(()=>{t.destroyed||(t.attract||={particles:[]},t.attract.clicking=!1)},n.duration*_)}}}clear(){}init(){let e=this.container,t=e.actualOptions.interactivity.modes.attract;t&&(e.retina.attractModeDistance=t.distance*e.retina.pixelRatio)}interact(){let e=this.container,t=e.actualOptions,n=e.interactivity.status===c,r=t.interactivity.events,{enable:i,mode:a}=r.onHover,{enable:o,mode:s}=r.onClick;n&&i&&F(Ji,a)?Ki(this._engine,this.container,e=>this.isEnabled(e)):o&&F(Ji,s)&&Gi(this._engine,this.container,e=>this.isEnabled(e))}isEnabled(e){let t=this.container,n=t.actualOptions,r=t.interactivity.mouse,i=(e?.interactivity??n.interactivity).events;if((!r.position||!i.onHover.enable)&&(!r.clickPosition||!i.onClick.enable))return!1;let a=i.onHover.mode,o=i.onClick.mode;return F(Ji,a)||F(Ji,o)}loadModeOptions(e,...t){e.attract||=new qi;for(let n of t)e.attract.load(n?.attract)}reset(){}};async function Xi(e,t=!0){e.checkVersion(`3.9.1`),await e.addInteractor(`externalAttract`,t=>Promise.resolve(new Yi(e,t)),t)}var Zi=2,Qi=.5,$i=Math.PI*Qi,ea=2,ta=10,na=0;function ra(e,t,n,r,i){let a=e.particles.quadTree.query(r,i);for(let e of a)r instanceof K?Xe(Ye(e),{position:t,radius:n,mass:n**Zi*$i,velocity:w.origin,factor:w.origin}):r instanceof q&&Ze(e,We(t,n))}function ia(e,t,n,r){let i=document.querySelectorAll(t);i.length&&i.forEach(t=>{let i=t,a=e.retina.pixelRatio,o={x:(i.offsetLeft+i.offsetWidth*Qi)*a,y:(i.offsetTop+i.offsetHeight*Qi)*a},s=i.offsetWidth*Qi*a,c=ta*a;r(o,s,n.type===Kt.circle?new K(o.x,o.y,s+c):new q(i.offsetLeft*a-c,i.offsetTop*a-c,i.offsetWidth*a+c*ea,i.offsetHeight*a+c*ea))})}function aa(e,t,n,r){Ke(n,t,(t,n)=>ia(e,t,n,(t,n,i)=>ra(e,t,n,i,r)))}function oa(e,t){let n=ta*e.retina.pixelRatio,r=e.interactivity.mouse.position,i=e.retina.bounceModeDistance;!i||i<na||!r||ra(e,r,i,new K(r.x,r.y,i+n),t)}var sa=class{constructor(){this.distance=200}load(e){C(e)||e.distance!==void 0&&(this.distance=e.distance)}},ca=`bounce`,la=class extends Y{constructor(e){super(e)}clear(){}init(){let e=this.container,t=e.actualOptions.interactivity.modes.bounce;t&&(e.retina.bounceModeDistance=t.distance*e.retina.pixelRatio)}interact(){let e=this.container,t=e.actualOptions.interactivity.events,n=e.interactivity.status===c,r=t.onHover.enable,i=t.onHover.mode,a=t.onDiv;n&&r&&F(ca,i)?oa(this.container,e=>this.isEnabled(e)):aa(this.container,a,ca,e=>this.isEnabled(e))}isEnabled(e){let t=this.container,n=t.actualOptions,r=t.interactivity.mouse,i=(e?.interactivity??n.interactivity).events,a=i.onDiv;return!!r.position&&i.onHover.enable&&F(ca,i.onHover.mode)||Ge(ca,a)}loadModeOptions(e,...t){e.bounce||=new sa;for(let n of t)e.bounce.load(n?.bounce)}reset(){}};async function ua(e,t=!0){e.checkVersion(`3.9.1`),await e.addInteractor(`externalBounce`,e=>Promise.resolve(new la(e)),t)}var da=class{constructor(){this.distance=200,this.duration=.4,this.mix=!1}load(e){if(!C(e)){if(e.distance!==void 0&&(this.distance=e.distance),e.duration!==void 0&&(this.duration=e.duration),e.mix!==void 0&&(this.mix=e.mix),e.opacity!==void 0&&(this.opacity=e.opacity),e.color!==void 0){let t=S(this.color)?void 0:this.color;this.color=L(e.color,e=>U.create(t,e))}e.size!==void 0&&(this.size=e.size)}}},fa=class extends da{constructor(){super(),this.selectors=[]}load(e){super.load(e),!C(e)&&e.selectors!==void 0&&(this.selectors=e.selectors)}},pa=class extends da{load(e){super.load(e),!C(e)&&(this.divs=L(e.divs,e=>{let t=new fa;return t.load(e),t}))}},Z;(function(e){e.color=`color`,e.opacity=`opacity`,e.size=`size`})(Z||={});function ma(e,t,n,r){if(t>=n)return E(e+(t-n)*r,e,t);if(t<n)return E(e-(n-t)*r,t,e)}var ha=`bubble`,ga=0,_a=0,va=2,ya=1,ba=1,xa=0,Sa=0,Ca=.5,wa=1,Ta=class extends Y{constructor(e,t){super(e),this._clickBubble=()=>{let e=this.container,t=e.actualOptions,n=e.interactivity.mouse.clickPosition,r=t.interactivity.modes.bubble;if(!r||!n)return;e.bubble||={};let i=e.retina.bubbleModeDistance;if(!i||i<ga)return;let a=e.particles.quadTree.queryCircle(n,i,e=>this.isEnabled(e)),{bubble:o}=e;for(let t of a){if(!o.clicking)continue;t.bubble.inRange=!o.durationEnd;let a=M(t.getPosition(),n),s=(new Date().getTime()-(e.interactivity.mouse.clickTime??_a))/_;s>r.duration&&(o.durationEnd=!0),s>r.duration*va&&(o.clicking=!1,o.durationEnd=!1);let c={bubbleObj:{optValue:e.retina.bubbleModeSize,value:t.bubble.radius},particlesObj:{optValue:k(t.options.size.value)*e.retina.pixelRatio,value:t.size.value},type:Z.size};this._process(t,a,s,c);let l={bubbleObj:{optValue:r.opacity,value:t.bubble.opacity},particlesObj:{optValue:k(t.options.opacity.value),value:t.opacity?.value??ya},type:Z.opacity};this._process(t,a,s,l),!o.durationEnd&&a<=i?this._hoverBubbleColor(t,a):delete t.bubble.color}},this._hoverBubble=()=>{let e=this.container,t=e.interactivity.mouse.position,n=e.retina.bubbleModeDistance;if(!n||n<ga||!t)return;let r=e.particles.quadTree.queryCircle(t,n,e=>this.isEnabled(e));for(let i of r){i.bubble.inRange=!0;let r=M(i.getPosition(),t),a=ba-r/n;r<=n?a>=Sa&&e.interactivity.status===`pointermove`&&(this._hoverBubbleSize(i,a),this._hoverBubbleOpacity(i,a),this._hoverBubbleColor(i,a)):this.reset(i),e.interactivity.status===`pointerleave`&&this.reset(i)}},this._hoverBubbleColor=(e,t,n)=>{let r=this.container.actualOptions,i=n??r.interactivity.modes.bubble;if(i){if(!e.bubble.finalColor){let t=i.color;if(!t)return;let n=R(t);e.bubble.finalColor=ut(this._engine,n)}if(e.bubble.finalColor)if(i.mix){e.bubble.color=void 0;let n=e.getFillColor();e.bubble.color=n?dt(_t(n,e.bubble.finalColor,ba-t,t)):e.bubble.finalColor}else e.bubble.color=e.bubble.finalColor}},this._hoverBubbleOpacity=(e,t,n)=>{let r=this.container.actualOptions,i=n?.opacity??r.interactivity.modes.bubble?.opacity;if(!i)return;let a=e.options.opacity.value,o=ma(e.opacity?.value??ya,i,k(a),t);o!==void 0&&(e.bubble.opacity=o)},this._hoverBubbleSize=(e,t,n)=>{let r=this.container,i=n?.size?n.size*r.retina.pixelRatio:r.retina.bubbleModeSize;if(i===void 0)return;let a=k(e.options.size.value)*r.retina.pixelRatio,o=e.size.value,s=ma(o,i,a,t);s!==void 0&&(e.bubble.radius=s)},this._process=(e,t,n,r)=>{let i=this.container,a=r.bubbleObj.optValue,o=i.actualOptions.interactivity.modes.bubble;if(!o||a===void 0)return;let s=o.duration,c=i.retina.bubbleModeDistance,l=r.particlesObj.optValue,u=r.bubbleObj.value,d=r.particlesObj.value??xa,f=r.type;if(!(!c||c<ga||a===l))if(i.bubble||={},i.bubble.durationEnd)u&&(f===Z.size&&delete e.bubble.radius,f===Z.opacity&&delete e.bubble.opacity);else if(t<=c){if((u??d)!==a){let t=d-n*(d-a)/s;f===Z.size&&(e.bubble.radius=t),f===Z.opacity&&(e.bubble.opacity=t)}}else f===Z.size&&delete e.bubble.radius,f===Z.opacity&&delete e.bubble.opacity},this._singleSelectorHover=(e,t,n)=>{let r=this.container,i=document.querySelectorAll(t),a=r.actualOptions.interactivity.modes.bubble;!a||!i.length||i.forEach(t=>{let i=t,o=r.retina.pixelRatio,s={x:(i.offsetLeft+i.offsetWidth*Ca)*o,y:(i.offsetTop+i.offsetHeight*Ca)*o},c=i.offsetWidth*Ca*o,l=n.type===Kt.circle?new K(s.x,s.y,c):new q(i.offsetLeft*o,i.offsetTop*o,i.offsetWidth*o,i.offsetHeight*o),u=r.particles.quadTree.query(l,e=>this.isEnabled(e));for(let t of u){if(!l.contains(t.getPosition()))continue;t.bubble.inRange=!0;let n=a.divs,r=Je(n,i);(!t.bubble.div||t.bubble.div!==i)&&(this.clear(t,e,!0),t.bubble.div=i),this._hoverBubbleSize(t,wa,r),this._hoverBubbleOpacity(t,wa,r),this._hoverBubbleColor(t,wa,r)}})},this._engine=t,e.bubble||={},this.handleClickMode=t=>{t===ha&&(e.bubble||={},e.bubble.clicking=!0)}}clear(e,t,n){e.bubble.inRange&&!n||(delete e.bubble.div,delete e.bubble.opacity,delete e.bubble.radius,delete e.bubble.color)}init(){let e=this.container,t=e.actualOptions.interactivity.modes.bubble;t&&(e.retina.bubbleModeDistance=t.distance*e.retina.pixelRatio,t.size!==void 0&&(e.retina.bubbleModeSize=t.size*e.retina.pixelRatio))}interact(e){let t=this.container.actualOptions.interactivity.events,n=t.onHover,r=t.onClick,i=n.enable,a=n.mode,o=r.enable,s=r.mode,c=t.onDiv;i&&F(ha,a)?this._hoverBubble():o&&F(ha,s)?this._clickBubble():Ke(ha,c,(t,n)=>this._singleSelectorHover(e,t,n))}isEnabled(e){let t=this.container,n=t.actualOptions,r=t.interactivity.mouse,{onClick:i,onDiv:a,onHover:o}=(e?.interactivity??n.interactivity).events,s=Ge(ha,a);return s||o.enable&&r.position||i.enable&&r.clickPosition?F(ha,o.mode)||F(ha,i.mode)||s:!1}loadModeOptions(e,...t){e.bubble||=new pa;for(let n of t)e.bubble.load(n?.bubble)}reset(e){e.bubble.inRange=!1}};async function Ea(e,t=!0){e.checkVersion(`3.9.1`),await e.addInteractor(`externalBubble`,t=>Promise.resolve(new Ta(t,e)),t)}var Da=class{constructor(){this.opacity=.5}load(e){C(e)||e.opacity!==void 0&&(this.opacity=e.opacity)}},Oa=class{constructor(){this.distance=80,this.links=new Da,this.radius=60}load(e){C(e)||(e.distance!==void 0&&(this.distance=e.distance),this.links.load(e.links),e.radius!==void 0&&(this.radius=e.radius))}},ka=0,Aa=1,ja=0;function Ma(e,t,n,r){let i=Math.floor(n.getRadius()/t.getRadius()),a=t.getFillColor(),o=n.getFillColor();if(!a||!o)return;let s=t.getPosition(),c=n.getPosition(),l=_t(a,o,t.getRadius(),n.getRadius()),u=e.createLinearGradient(s.x,s.y,c.x,c.y);return u.addColorStop(ka,gt(a,r)),u.addColorStop(E(i,ka,Aa),B(l,r)),u.addColorStop(Aa,gt(o,r)),u}function Na(e,t,n,r,i){Tt(e,r,i),e.lineWidth=t,e.strokeStyle=n,e.stroke()}function Pa(e,t,n,r){let i=e.actualOptions.interactivity.modes.connect;if(i)return Ma(t,n,r,i.links.opacity)}function Fa(e,t,n){e.canvas.draw(r=>{let i=Pa(e,r,t,n);if(!i)return;let a=t.getPosition(),o=n.getPosition();Na(r,t.retina.linksWidth??ja,i,a,o)})}var Ia=`connect`,La=0,Ra=class extends Y{constructor(e){super(e)}clear(){}init(){let e=this.container,t=e.actualOptions.interactivity.modes.connect;t&&(e.retina.connectModeDistance=t.distance*e.retina.pixelRatio,e.retina.connectModeRadius=t.radius*e.retina.pixelRatio)}interact(){let e=this.container;if(e.actualOptions.interactivity.events.onHover.enable&&e.interactivity.status===`pointermove`){let t=e.interactivity.mouse.position,{connectModeDistance:n,connectModeRadius:r}=e.retina;if(!n||n<La||!r||r<La||!t)return;let i=Math.abs(r),a=e.particles.quadTree.queryCircle(t,i,e=>this.isEnabled(e));a.forEach((t,r)=>{let i=t.getPosition();for(let o of a.slice(r+1)){let r=o.getPosition(),a=Math.abs(n),s=Math.abs(i.x-r.x),c=Math.abs(i.y-r.y);s<a&&c<a&&Fa(e,t,o)}})}}isEnabled(e){let t=this.container,n=t.interactivity.mouse,r=(e?.interactivity??t.actualOptions.interactivity).events;return r.onHover.enable&&n.position?F(Ia,r.onHover.mode):!1}loadModeOptions(e,...t){e.connect||=new Oa;for(let n of t)e.connect.load(n?.connect)}reset(){}};async function za(e,t=!0){e.checkVersion(`3.9.1`),await e.addInteractor(`externalConnect`,e=>Promise.resolve(new Ra(e)),t)}var Ba=class{constructor(){this.blink=!1,this.consent=!1,this.opacity=1}load(e){C(e)||(e.blink!==void 0&&(this.blink=e.blink),e.color!==void 0&&(this.color=U.create(this.color,e.color)),e.consent!==void 0&&(this.consent=e.consent),e.opacity!==void 0&&(this.opacity=e.opacity))}},Va=class{constructor(){this.distance=100,this.links=new Ba}load(e){C(e)||(e.distance!==void 0&&(this.distance=e.distance),this.links.load(e.links))}},Ha=0;function Ua(e,t,n,r,i,a){Tt(e,n,r),e.strokeStyle=B(i,a),e.lineWidth=t,e.stroke()}function Wa(e,t,n,r,i){e.canvas.draw(e=>{let a=t.getPosition();Ua(e,t.retina.linksWidth??Ha,a,i,n,r)})}var Ga=`grab`,Ka=0,qa=0,Ja=class extends Y{constructor(e,t){super(e),this._engine=t}clear(){}init(){let e=this.container,t=e.actualOptions.interactivity.modes.grab;t&&(e.retina.grabModeDistance=t.distance*e.retina.pixelRatio)}interact(){let e=this.container,t=e.actualOptions.interactivity;if(!t.modes.grab||!t.events.onHover.enable||e.interactivity.status!==`pointermove`)return;let n=e.interactivity.mouse.position;if(!n)return;let r=e.retina.grabModeDistance;if(!r||r<Ka)return;let i=e.particles.quadTree.queryCircle(n,r,e=>this.isEnabled(e));for(let a of i){let i=M(a.getPosition(),n);if(i>r)continue;let o=t.modes.grab.links,s=o.opacity,c=s-i*s/r;if(c<=qa)continue;let l=o.color??a.options.links?.color;if(!e.particles.grabLineColor&&l){let n=t.modes.grab.links;e.particles.grabLineColor=yt(this._engine,l,n.blink,n.consent)}let u=vt(a,void 0,e.particles.grabLineColor);u&&Wa(e,a,u,c,n)}}isEnabled(e){let t=this.container,n=t.interactivity.mouse,r=(e?.interactivity??t.actualOptions.interactivity).events;return r.onHover.enable&&!!n.position&&F(Ga,r.onHover.mode)}loadModeOptions(e,...t){e.grab||=new Va;for(let n of t)e.grab.load(n?.grab)}reset(){}};async function Ya(e,t=!0){e.checkVersion(`3.9.1`),await e.addInteractor(`externalGrab`,t=>Promise.resolve(new Ja(t,e)),t)}var Xa=`pause`,Za=class extends Y{constructor(e){super(e),this.handleClickMode=e=>{if(e!==Xa)return;let t=this.container;t.animationStatus?t.pause():t.play()}}clear(){}init(){}interact(){}isEnabled(){return!0}reset(){}};async function Qa(e,t=!0){e.checkVersion(`3.9.1`),await e.addInteractor(`externalPause`,e=>Promise.resolve(new Za(e)),t)}var $a=class{constructor(){this.default=!0,this.groups=[],this.quantity=4}load(e){if(C(e))return;e.default!==void 0&&(this.default=e.default),e.groups!==void 0&&(this.groups=e.groups.map(e=>e)),this.groups.length||(this.default=!0);let t=e.quantity;t!==void 0&&(this.quantity=A(t)),this.particles=L(e.particles,e=>I({},e))}},eo=`push`,to=0,no=class extends Y{constructor(e){super(e),this.handleClickMode=e=>{if(e!==eo)return;let t=this.container,n=t.actualOptions.interactivity.modes.push;if(!n)return;let r=O(n.quantity);if(r<=to)return;let i=Ve([void 0,...n.groups]),a=I(i===void 0?void 0:t.actualOptions.particles.groups[i],R(n.particles));t.particles.push(r,t.interactivity.mouse,a,i)}}clear(){}init(){}interact(){}isEnabled(){return!0}loadModeOptions(e,...t){e.push||=new $a;for(let n of t)e.push.load(n?.push)}reset(){}};async function ro(e,t=!0){e.checkVersion(`3.9.1`),await e.addInteractor(`externalPush`,e=>Promise.resolve(new no(e)),t)}var io=class{constructor(){this.quantity=2}load(e){if(C(e))return;let t=e.quantity;t!==void 0&&(this.quantity=A(t))}},ao=`remove`,oo=class extends Y{constructor(e){super(e),this.handleClickMode=e=>{let t=this.container,n=t.actualOptions;if(!n.interactivity.modes.remove||e!==ao)return;let r=O(n.interactivity.modes.remove.quantity);t.particles.removeQuantity(r)}}clear(){}init(){}interact(){}isEnabled(){return!0}loadModeOptions(e,...t){e.remove||=new io;for(let n of t)e.remove.load(n?.remove)}reset(){}};async function so(e,t=!0){e.checkVersion(`3.9.1`),await e.addInteractor(`externalRemove`,e=>Promise.resolve(new oo(e)),t)}var co=class{constructor(){this.distance=200,this.duration=.4,this.factor=100,this.speed=1,this.maxSpeed=50,this.easing=vr.easeOutQuad}load(e){C(e)||(e.distance!==void 0&&(this.distance=e.distance),e.duration!==void 0&&(this.duration=e.duration),e.easing!==void 0&&(this.easing=e.easing),e.factor!==void 0&&(this.factor=e.factor),e.speed!==void 0&&(this.speed=e.speed),e.maxSpeed!==void 0&&(this.maxSpeed=e.maxSpeed))}},lo=class extends co{constructor(){super(),this.selectors=[]}load(e){super.load(e),!C(e)&&e.selectors!==void 0&&(this.selectors=e.selectors)}},uo=class extends co{load(e){super.load(e),!C(e)&&(this.divs=L(e.divs,e=>{let t=new lo;return t.load(e),t}))}},fo=`repulse`,po=0,mo=6,ho=3,go=2,_o=0,vo=0,yo=1,bo=.5,xo=class extends Y{constructor(e,t){super(t),this._clickRepulse=()=>{let e=this.container,t=e.actualOptions.interactivity.modes.repulse;if(!t)return;let n=e.repulse??{particles:[]};if(n.finish||(n.count||=0,n.count++,n.count===e.particles.count&&(n.finish=!0)),n.clicking){let r=e.retina.repulseModeDistance;if(!r||r<po)return;let i=(r/mo)**+ho,a=e.interactivity.mouse.clickPosition;if(a===void 0)return;let o=new K(a.x,a.y,i),s=e.particles.quadTree.query(o,e=>this.isEnabled(e));for(let e of s){let{dx:r,dy:o,distance:s}=j(a,e.position),c=s**go,l=t.speed,u=-i*l/c;if(c<=i){n.particles.push(e);let t=w.create(r,o);t.length=u,e.velocity.setTo(t)}}}else if(n.clicking===!1){for(let e of n.particles)e.velocity.setTo(e.initialVelocity);n.particles=[]}},this._hoverRepulse=()=>{let e=this.container,t=e.interactivity.mouse.position,n=e.retina.repulseModeDistance;!n||n<_o||!t||this._processRepulse(t,n,new K(t.x,t.y,n))},this._processRepulse=(e,t,n,r)=>{let i=this.container,a=i.particles.quadTree.query(n,e=>this.isEnabled(e)),o=i.actualOptions.interactivity.modes.repulse;if(!o)return;let{easing:s,speed:c,factor:l,maxSpeed:u}=o,d=this._engine.getEasing(s),f=(r?.speed??c)*l;for(let n of a){let{dx:r,dy:i,distance:a}=j(n.position,e),o=E(d(yo-a/t)*f,vo,u),s=w.create(a?r/a*o:f,a?i/a*o:f);n.position.addTo(s)}},this._singleSelectorRepulse=(e,t)=>{let n=this.container,r=n.actualOptions.interactivity.modes.repulse;if(!r)return;let i=document.querySelectorAll(e);i.length&&i.forEach(e=>{let i=e,a=n.retina.pixelRatio,o={x:(i.offsetLeft+i.offsetWidth*bo)*a,y:(i.offsetTop+i.offsetHeight*bo)*a},s=i.offsetWidth*bo*a,c=t.type===Kt.circle?new K(o.x,o.y,s):new q(i.offsetLeft*a,i.offsetTop*a,i.offsetWidth*a,i.offsetHeight*a),l=r.divs,u=Je(l,i);this._processRepulse(o,s,c,u)})},this._engine=e,t.repulse||={particles:[]},this.handleClickMode=e=>{let n=this.container.actualOptions.interactivity.modes.repulse;if(!n||e!==fo)return;t.repulse||={particles:[]};let r=t.repulse;r.clicking=!0,r.count=0;for(let e of t.repulse.particles)this.isEnabled(e)&&e.velocity.setTo(e.initialVelocity);r.particles=[],r.finish=!1,setTimeout(()=>{t.destroyed||(r.clicking=!1)},n.duration*_)}}clear(){}init(){let e=this.container,t=e.actualOptions.interactivity.modes.repulse;t&&(e.retina.repulseModeDistance=t.distance*e.retina.pixelRatio)}interact(){let e=this.container,t=e.actualOptions,n=e.interactivity.status===c,r=t.interactivity.events,i=r.onHover,a=i.enable,o=i.mode,s=r.onClick,l=s.enable,u=s.mode,d=r.onDiv;n&&a&&F(fo,o)?this._hoverRepulse():l&&F(fo,u)?this._clickRepulse():Ke(fo,d,(e,t)=>this._singleSelectorRepulse(e,t))}isEnabled(e){let t=this.container,n=t.actualOptions,r=t.interactivity.mouse,i=(e?.interactivity??n.interactivity).events,a=i.onDiv,o=i.onHover,s=i.onClick,c=Ge(fo,a);if(!(c||o.enable&&r.position||s.enable&&r.clickPosition))return!1;let l=o.mode,u=s.mode;return F(fo,l)||F(fo,u)||c}loadModeOptions(e,...t){e.repulse||=new uo;for(let n of t)e.repulse.load(n?.repulse)}reset(){}};async function So(e,t=!0){e.checkVersion(`3.9.1`),await e.addInteractor(`externalRepulse`,t=>Promise.resolve(new xo(e,t)),t)}var Co=class{constructor(){this.factor=3,this.radius=200}load(e){C(e)||(e.factor!==void 0&&(this.factor=e.factor),e.radius!==void 0&&(this.radius=e.radius))}},wo=`slow`,To=0,Eo=class extends Y{constructor(e){super(e)}clear(e,t,n){e.slow.inRange&&!n||(e.slow.factor=1)}init(){let e=this.container,t=e.actualOptions.interactivity.modes.slow;t&&(e.retina.slowModeRadius=t.radius*e.retina.pixelRatio)}interact(){}isEnabled(e){let t=this.container,n=t.interactivity.mouse,r=(e?.interactivity??t.actualOptions.interactivity).events;return r.onHover.enable&&!!n.position&&F(wo,r.onHover.mode)}loadModeOptions(e,...t){e.slow||=new Co;for(let n of t)e.slow.load(n?.slow)}reset(e){e.slow.inRange=!1;let t=this.container,n=t.actualOptions,r=t.interactivity.mouse.position,i=t.retina.slowModeRadius,a=n.interactivity.modes.slow;if(!a||!i||i<To||!r)return;let o=M(r,e.getPosition()),s=o/i,c=a.factor,{slow:l}=e;o>i||(l.inRange=!0,l.factor=s/c)}};async function Do(e,t=!0){e.checkVersion(`3.9.1`),await e.addInteractor(`externalSlow`,e=>Promise.resolve(new Eo(e)),t)}var Oo=0,ko=1,Ao=/(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d.]+%?\))|currentcolor/gi;function jo(e,t,n){let{svgData:r}=e;if(!r)return``;let i=gt(t,n);if(r.includes(`fill`))return r.replace(Ao,()=>i);let a=r.indexOf(`>`);return`${r.substring(Oo,a)} fill="${i}"${r.substring(a)}`}async function Mo(e){return new Promise(t=>{e.loading=!0;let n=new Image;e.element=n,n.addEventListener(`load`,()=>{e.loading=!1,t()}),n.addEventListener(`error`,()=>{e.element=void 0,e.error=!0,e.loading=!1,Ae().error(`${h} loading image: ${e.source}`),t()}),n.src=e.source})}async function No(e){if(e.type!==`svg`){await Mo(e);return}e.loading=!0;let t=await fetch(e.source);t.ok?e.svgData=await t.text():(Ae().error(`${h} Image not found`),e.error=!0),e.loading=!1}function Po(e,t,n,r){let i=jo(e,n,r.opacity?.value??ko),a={color:n,gif:t.gif,data:{...e,svgData:i},loaded:!1,ratio:t.width/t.height,replaceColor:t.replaceColor,source:t.src};return new Promise(t=>{let n=new Blob([i],{type:`image/svg+xml`}),r=URL||window.URL||window.webkitURL||window,o=r.createObjectURL(n),s=new Image;s.addEventListener(`load`,()=>{a.loaded=!0,a.element=s,t(a),r.revokeObjectURL(o)});let c=async()=>{r.revokeObjectURL(o);let n={...e,error:!1,loading:!0};await Mo(n),a.loaded=!0,a.element=n.element,t(a)};s.addEventListener(`error`,()=>void c()),s.src=o})}var Fo=[0,4,2,1],Io=[8,8,4,2],Lo=class{constructor(e){this.pos=0,this.data=new Uint8ClampedArray(e)}getString(e){let t=this.data.slice(this.pos,this.pos+e);return this.pos+=t.length,t.reduce((e,t)=>e+String.fromCharCode(t),``)}nextByte(){return this.data[this.pos++]}nextTwoBytes(){return this.pos+=2,this.data[this.pos-2]+(this.data[this.pos-1]<<8)}readSubBlocks(){let e=``,t=0;do{t=this.data[this.pos++];for(let n=t;--n>=0;e+=String.fromCharCode(this.data[this.pos++]));}while(t!==0);return e}readSubBlocksBin(){let e=this.data[this.pos],t=0;for(let n=0;e!==0;n+=e+1,e=this.data[this.pos+n])t+=e;let n=new Uint8Array(t);e=this.data[this.pos++];for(let t=0;e!==0;e=this.data[this.pos++])for(let r=e;--r>=0;n[t++]=this.data[this.pos++]);return n}skipSubBlocks(){for(;this.data[this.pos]!==0;this.pos+=this.data[this.pos]+1);this.pos++}},Q;(function(e){e[e.Replace=0]=`Replace`,e[e.Combine=1]=`Combine`,e[e.RestoreBackground=2]=`RestoreBackground`,e[e.RestorePrevious=3]=`RestorePrevious`,e[e.UndefinedA=4]=`UndefinedA`,e[e.UndefinedB=5]=`UndefinedB`,e[e.UndefinedC=6]=`UndefinedC`,e[e.UndefinedD=7]=`UndefinedD`})(Q||={});var Ro;(function(e){e[e.Extension=33]=`Extension`,e[e.ApplicationExtension=255]=`ApplicationExtension`,e[e.GraphicsControlExtension=249]=`GraphicsControlExtension`,e[e.PlainTextExtension=1]=`PlainTextExtension`,e[e.CommentExtension=254]=`CommentExtension`,e[e.Image=44]=`Image`,e[e.EndOfFile=59]=`EndOfFile`})(Ro||={});var $={x:0,y:0},zo=0,Bo=.5,Vo=0,Ho=0,Uo=0;function Wo(e,t){let n=[];for(let r=0;r<t;r++)n.push({r:e.data[e.pos],g:e.data[e.pos+1],b:e.data[e.pos+2]}),e.pos+=3;return n}function Go(e,t,n,r){switch(e.nextByte()){case Ro.GraphicsControlExtension:{let i=t.frames[n(!1)];e.pos++;let a=e.nextByte();i.GCreserved=(a&224)>>>5,i.disposalMethod=(a&28)>>>2,i.userInputDelayFlag=(a&2)==2;let o=(a&1)==1;i.delayTime=e.nextTwoBytes()*10;let s=e.nextByte();o&&r(s),e.pos++;break}case Ro.ApplicationExtension:{e.pos++;let n={identifier:e.getString(8),authenticationCode:e.getString(3),data:e.readSubBlocksBin()};t.applicationExtensions.push(n);break}case Ro.CommentExtension:t.comments.push([n(!1),e.readSubBlocks()]);break;case Ro.PlainTextExtension:if(t.globalColorTable.length===0)throw EvalError(`plain text extension without global color table`);e.pos++,t.frames[n(!1)].plainTextData={left:e.nextTwoBytes(),top:e.nextTwoBytes(),width:e.nextTwoBytes(),height:e.nextTwoBytes(),charSize:{width:e.nextTwoBytes(),height:e.nextTwoBytes()},foregroundColor:e.nextByte(),backgroundColor:e.nextByte(),text:e.readSubBlocks()};break;default:e.skipSubBlocks();break}}async function Ko(e,t,n,r,i,a){let o=t.frames[r(!0)];o.left=e.nextTwoBytes(),o.top=e.nextTwoBytes(),o.width=e.nextTwoBytes(),o.height=e.nextTwoBytes();let s=e.nextByte(),c=(s&128)==128,l=(s&64)==64;o.sortFlag=(s&32)==32,o.reserved=(s&24)>>>3;let u=1<<(s&7)+1;c&&(o.localColorTable=Wo(e,u));let d=e=>{let{r,g:a,b:s}=(c?o.localColorTable:t.globalColorTable)[e];return e===i(null)?{r,g:a,b:s,a:n?~~((r+a+s)/3):0}:{r,g:a,b:s,a:255}},f=(()=>{try{return new ImageData(o.width,o.height,{colorSpace:`srgb`})}catch(e){if(e instanceof DOMException&&e.name===`IndexSizeError`)return null;throw e}})();if(f==null)throw EvalError(`GIF frame size is to large`);let p=e.nextByte(),m=e.readSubBlocksBin(),h=1<<p,g=(e,t)=>{let n=e>>>3,r=e&7;return(m[n]+(m[n+1]<<8)+(m[n+2]<<16)&(1<<t)-1<<r)>>>r};if(l){for(let n=0,i=p+1,s=0,c=[[0]],l=0;l<4;l++){if(Fo[l]<o.height){let e=0,t=0,r=!1;for(;!r;){let a=n;if(n=g(s,i),s+=i+1,n===h){i=p+1,c.length=h+2;for(let e=0;e<c.length;e++)c[e]=e<h?[e]:[]}else{n>=c.length?c.push(c[a].concat(c[a][0])):a!==h&&c.push(c[a].concat(c[n][0]));for(let r of c[n]){let{r:n,g:i,b:a,a:s}=d(r);f.data.set([n,i,a,s],Fo[l]*o.width+Io[l]*t+e%(o.width*4)),e+=4}c.length===1<<i&&i<12&&i++}e===o.width*4*(t+1)&&(t++,Fo[l]+Io[l]*t>=o.height&&(r=!0))}}a?.(e.pos/(e.data.length-1),r(!1)+1,f,{x:o.left,y:o.top},{width:t.width,height:t.height})}o.image=f,o.bitmap=await createImageBitmap(f)}else{let n=0,i=p+1,s=0,c=-4,l=!1,u=[[0]];for(;!l;){let e=n;if(n=g(s,i),s+=i,n===h){i=p+1,u.length=h+2;for(let e=0;e<u.length;e++)u[e]=e<h?[e]:[]}else{if(n===h+1){l=!0;break}n>=u.length?u.push(u[e].concat(u[e][0])):e!==h&&u.push(u[e].concat(u[n][0]));for(let e of u[n]){let{r:t,g:n,b:r,a:i}=d(e);f.data.set([t,n,r,i],c+=4)}u.length>=1<<i&&i<12&&i++}}o.image=f,o.bitmap=await createImageBitmap(f),a?.((e.pos+1)/e.data.length,r(!1)+1,o.image,{x:o.left,y:o.top},{width:t.width,height:t.height})}}async function qo(e,t,n,r,i,a){switch(e.nextByte()){case Ro.EndOfFile:return!0;case Ro.Image:await Ko(e,t,n,r,i,a);break;case Ro.Extension:Go(e,t,r,i);break;default:throw EvalError(`undefined block found`)}return!1}function Jo(e){for(let t of e.applicationExtensions)if(t.identifier+t.authenticationCode===`NETSCAPE2.0`)return t.data[1]+(t.data[2]<<8);return NaN}async function Yo(e,t,n){n||=!1;let r=await fetch(e);if(!r.ok&&r.status===404)throw EvalError(`file not found`);let i=await r.arrayBuffer(),a={width:0,height:0,totalTime:0,colorRes:0,pixelAspectRatio:0,frames:[],sortFlag:!1,globalColorTable:[],backgroundImage:new ImageData(1,1,{colorSpace:`srgb`}),comments:[],applicationExtensions:[]},o=new Lo(new Uint8ClampedArray(i));if(o.getString(6)!==`GIF89a`)throw Error(`not a supported GIF file`);a.width=o.nextTwoBytes(),a.height=o.nextTwoBytes();let s=o.nextByte(),c=(s&128)==128;a.colorRes=(s&112)>>>4,a.sortFlag=(s&8)==8;let l=1<<(s&7)+1,u=o.nextByte();a.pixelAspectRatio=o.nextByte(),a.pixelAspectRatio!==0&&(a.pixelAspectRatio=(a.pixelAspectRatio+15)/64),c&&(a.globalColorTable=Wo(o,l));let d=(()=>{try{return new ImageData(a.width,a.height,{colorSpace:`srgb`})}catch(e){if(e instanceof DOMException&&e.name===`IndexSizeError`)return null;throw e}})();if(d==null)throw Error(`GIF frame size is to large`);let{r:f,g:p,b:m}=a.globalColorTable[u];d.data.set(c?[f,p,m,255]:[0,0,0,0]);for(let e=4;e<d.data.length;e*=2)d.data.copyWithin(e,0,e);a.backgroundImage=d;let h=-1,g=!0,_=-1,v=e=>(e&&(g=!0),h),ee=e=>(e!=null&&(_=e),_);try{do g&&=(a.frames.push({left:0,top:0,width:0,height:0,disposalMethod:Q.Replace,image:new ImageData(1,1,{colorSpace:`srgb`}),plainTextData:null,userInputDelayFlag:!1,delayTime:0,sortFlag:!1,localColorTable:[],reserved:0,GCreserved:0}),h++,_=-1,!1);while(!await qo(o,a,n,v,ee,t));a.frames.length--;for(let e of a.frames){if(e.userInputDelayFlag&&e.delayTime===0){a.totalTime=1/0;break}a.totalTime+=e.delayTime}return a}catch(e){throw e instanceof EvalError?Error(`error while parsing frame ${h} "${e.message}"`):e}}function Xo(e){let{context:t,radius:n,particle:r,delta:i}=e,a=r.image;if(!a?.gifData||!a.gif)return;let o=new OffscreenCanvas(a.gifData.width,a.gifData.height),s=o.getContext(`2d`);if(!s)throw Error(`could not create offscreen canvas context`);s.imageSmoothingQuality=`low`,s.imageSmoothingEnabled=!1,s.clearRect($.x,$.y,o.width,o.height),r.gifLoopCount===void 0&&(r.gifLoopCount=a.gifLoopCount??Uo);let c=r.gifFrame??zo,l={x:-a.gifData.width*Bo,y:-a.gifData.height*Bo},u=a.gifData.frames[c];if(r.gifTime===void 0&&(r.gifTime=Vo),u.bitmap){switch(t.scale(n/a.gifData.width,n/a.gifData.height),u.disposalMethod){case Q.UndefinedA:case Q.UndefinedB:case Q.UndefinedC:case Q.UndefinedD:case Q.Replace:s.drawImage(u.bitmap,u.left,u.top),t.drawImage(o,l.x,l.y),s.clearRect($.x,$.y,o.width,o.height);break;case Q.Combine:s.drawImage(u.bitmap,u.left,u.top),t.drawImage(o,l.x,l.y);break;case Q.RestoreBackground:s.drawImage(u.bitmap,u.left,u.top),t.drawImage(o,l.x,l.y),s.clearRect($.x,$.y,o.width,o.height),a.gifData.globalColorTable.length?s.putImageData(a.gifData.backgroundImage,l.x,l.y):s.putImageData(a.gifData.frames[Ho].image,l.x+u.left,l.y+u.top);break;case Q.RestorePrevious:{let e=s.getImageData($.x,$.y,o.width,o.height);s.drawImage(u.bitmap,u.left,u.top),t.drawImage(o,l.x,l.y),s.clearRect($.x,$.y,o.width,o.height),s.putImageData(e,$.x,$.y)}break}if(r.gifTime+=i.value,r.gifTime>u.delayTime){if(r.gifTime-=u.delayTime,++c>=a.gifData.frames.length){if(--r.gifLoopCount<=Uo)return;c=Ho,s.clearRect($.x,$.y,o.width,o.height)}r.gifFrame=c}t.scale(a.gifData.width/n,a.gifData.height/n)}}async function Zo(e){if(e.type!==`gif`){await Mo(e);return}e.loading=!0;try{e.gifData=await Yo(e.source),e.gifLoopCount=Jo(e.gifData)??Uo,e.gifLoopCount||=1/0}catch{e.error=!0}e.loading=!1}var Qo=2,$o=1,es=12,ts=1,ns=class{constructor(e){this.validTypes=[`image`,`images`],this.loadImageShape=async e=>{if(!this._engine.loadImage)throw Error(`${h} image shape not initialized`);await this._engine.loadImage({gif:e.gif,name:e.name,replaceColor:e.replaceColor??!1,src:e.src})},this._engine=e}addImage(e){this._engine.images||(this._engine.images=[]),this._engine.images.push(e)}draw(e){let{context:t,radius:n,particle:r,opacity:i}=e,a=r.image,o=a?.element;if(a){if(t.globalAlpha=i,a.gif&&a.gifData)Xo(e);else if(o){let e=a.ratio,r={x:-n,y:-n},i=n*Qo;t.drawImage(o,r.x,r.y,i,i/e)}t.globalAlpha=$o}}getSidesCount(){return es}async init(e){let t=e.actualOptions;if(!(!t.preload||!this._engine.loadImage))for(let e of t.preload)await this._engine.loadImage(e)}loadShape(e){if(e.shape!==`image`&&e.shape!==`images`)return;this._engine.images||(this._engine.images=[]);let t=e.shapeData;t&&(this._engine.images.find(e=>e.name===t.name||e.source===t.src)||this.loadImageShape(t).then(()=>{this.loadShape(e)}))}particleInit(e,t){if(t.shape!==`image`&&t.shape!==`images`)return;this._engine.images||(this._engine.images=[]);let n=this._engine.images,r=t.shapeData;if(!r)return;let i=t.getFillColor(),a=n.find(e=>e.name===r.name||e.source===r.src);if(!a)return;let o=r.replaceColor??a.replaceColor;if(a.loading){setTimeout(()=>{this.particleInit(e,t)});return}(async()=>{let e;e=a.svgData&&i?await Po(a,r,i,t):{color:i,data:a,element:a.element,gif:a.gif,gifData:a.gifData,gifLoopCount:a.gifLoopCount,loaded:!0,ratio:r.width&&r.height?r.width/r.height:a.ratio??ts,replaceColor:o,source:r.src},e.ratio||=1;let n=r.fill??t.shapeFill,s=r.close??t.shapeClose,c={image:e,fill:n,close:s};t.image=c.image,t.shapeFill=c.fill,t.shapeClose=c.close})()}},rs=class{constructor(){this.src=``,this.gif=!1}load(e){C(e)||(e.gif!==void 0&&(this.gif=e.gif),e.height!==void 0&&(this.height=e.height),e.name!==void 0&&(this.name=e.name),e.replaceColor!==void 0&&(this.replaceColor=e.replaceColor),e.src!==void 0&&(this.src=e.src),e.width!==void 0&&(this.width=e.width))}},is=class{constructor(e){this.id=`imagePreloader`,this._engine=e}async getPlugin(){return await Promise.resolve(),{}}loadOptions(e,t){if(!t?.preload)return;e.preload||=[];let n=e.preload;for(let e of t.preload){let t=n.find(t=>t.name===e.name||t.src===e.src);if(t)t.load(e);else{let t=new rs;t.load(e),n.push(t)}}}needsPlugin(){return!0}},as=3;function os(e){e.loadImage||=async t=>{if(!t.name&&!t.src)throw Error(`${h} no image source provided`);if(e.images||=[],!e.images.find(e=>e.name===t.name||e.source===t.src))try{let n={gif:t.gif??!1,name:t.name??t.src,source:t.src,type:t.src.substring(t.src.length-as),error:!1,loading:!0,replaceColor:t.replaceColor,ratio:t.width&&t.height?t.width/t.height:void 0};e.images.push(n);let r;r=t.gif?Zo:t.replaceColor?No:Mo,await r(n)}catch{throw Error(`${h} ${t.name??t.src} not found`)}}}async function ss(e,t=!0){e.checkVersion(`3.9.1`),os(e);let n=new is(e);await e.addPlugin(n,t),await e.addShape(new ns(e),t)}var cs=class extends hn{constructor(){super(),this.sync=!1}load(e){C(e)||(super.load(e),e.sync!==void 0&&(this.sync=e.sync))}},ls=class extends hn{constructor(){super(),this.sync=!1}load(e){C(e)||(super.load(e),e.sync!==void 0&&(this.sync=e.sync))}},us=class{constructor(){this.count=0,this.delay=new cs,this.duration=new ls}load(e){C(e)||(e.count!==void 0&&(this.count=e.count),this.delay.load(e.delay),this.duration.load(e.duration))}},ds=0,fs=-1,ps=0,ms=0;function hs(e,t,n){if(!e.life)return;let r=e.life,i=!1;if(e.spawning)if(r.delayTime+=t.value,r.delayTime>=e.life.delay)i=!0,e.spawning=!1,r.delayTime=ds,r.time=ds;else return;if(r.duration===fs||e.spawning||(i?r.time=ds:r.time+=t.value,r.time<r.duration))return;if(r.time=ds,e.life.count>ps&&e.life.count--,e.life.count===ps){e.destroy();return}let a=A(ms,n.width),o=A(ms,n.width);e.position.x=D(a),e.position.y=D(o),e.spawning=!0,r.delayTime=ds,r.time=ds,e.reset();let s=e.options.life;s&&(r.delay=O(s.delay.value)*_,r.duration=O(s.duration.value)*_)}var gs=0,_s=1,vs=-1,ys=class{constructor(e){this.container=e}init(e){let t=this.container,n=e.options.life;n&&(e.life={delay:t.retina.reduceFactor?O(n.delay.value)*(n.delay.sync?_s:T())/t.retina.reduceFactor*_:gs,delayTime:gs,duration:t.retina.reduceFactor?O(n.duration.value)*(n.duration.sync?_s:T())/t.retina.reduceFactor*_:gs,time:gs,count:n.count},e.life.duration<=gs&&(e.life.duration=vs),e.life.count<=gs&&(e.life.count=vs),e.life&&(e.spawning=e.life.delay>gs))}isEnabled(e){return!e.destroyed}loadOptions(e,...t){e.life||=new us;for(let n of t)e.life.load(n?.life)}update(e,t){!this.isEnabled(e)||!e.life||hs(e,t,this.container.canvas.size)}};async function bs(e,t=!0){e.checkVersion(`3.9.1`),await e.addParticleUpdater(`life`,async e=>Promise.resolve(new ys(e)),t)}function xs(e){let{context:t,particle:n,radius:r}=e,i=n.shapeData;t.moveTo(-r,0),t.lineTo(r,0),t.lineCap=i?.cap??`butt`}var Ss=1,Cs=class{constructor(){this.validTypes=[`line`]}draw(e){xs(e)}getSidesCount(){return Ss}};async function ws(e,t=!0){e.checkVersion(`3.9.1`),await e.addShape(new Cs,t)}var Ts=.5,Es=class{init(){}isEnabled(e){return!Pe()&&!e.destroyed&&e.container.actualOptions.interactivity.events.onHover.parallax.enable}move(e){let t=e.container,n=t.actualOptions.interactivity.events.onHover.parallax;if(Pe()||!n.enable)return;let r=n.force,i=t.interactivity.mouse.position;if(!i)return;let a=t.canvas.size,o={x:a.width*Ts,y:a.height*Ts},s=n.smooth,c=e.getRadius()/r,l={x:(i.x-o.x)*c,y:(i.y-o.y)*c},{offset:u}=e;u.x+=(l.x-u.x)/s,u.y+=(l.y-u.y)/s}};async function Ds(e,t=!0){e.checkVersion(`3.9.1`),await e.addMover(`parallax`,()=>Promise.resolve(new Es),t)}var Os=1e3,ks=1,As=class extends _r{constructor(e){super(e)}clear(){}init(){}interact(e){let t=this.container;e.attractDistance===void 0&&(e.attractDistance=O(e.options.move.attract.distance)*t.retina.pixelRatio);let n=e.attractDistance,r=e.getPosition(),i=t.particles.quadTree.queryCircle(r,n);for(let t of i){if(e===t||!t.options.move.attract.enable||t.destroyed||t.spawning)continue;let{dx:n,dy:i}=j(r,t.getPosition()),a=e.options.move.attract.rotate,o=n/(a.x*Os),s=i/(a.y*Os),c=t.size.value/e.size.value,l=ks/c;e.velocity.x-=o*c,e.velocity.y-=s*c,t.velocity.x+=o*l,t.velocity.y+=s*l}}isEnabled(e){return e.options.move.attract.enable}reset(){}};async function js(e,t=!0){e.checkVersion(`3.9.1`),await e.addInteractor(`particlesAttract`,e=>Promise.resolve(new As(e)),t)}var Ms=.5,Ns=10,Ps=0;function Fs(e,t,n,r,i,a){let o=E(e.options.collisions.absorb.speed*i.factor/Ns,Ps,r);e.size.value+=o*Ms,n.size.value-=o,r<=a&&(n.size.value=0,n.destroy())}function Is(e,t,n,r){let i=e.getRadius(),a=t.getRadius();i===void 0&&a!==void 0?e.destroy():i!==void 0&&a===void 0?t.destroy():i!==void 0&&a!==void 0&&(i>=a?Fs(e,i,t,a,n,r):Fs(t,a,e,i,n,r))}var Ls=e=>{e.collisionMaxSpeed===void 0&&(e.collisionMaxSpeed=O(e.options.collisions.maxSpeed)),e.velocity.length>e.collisionMaxSpeed&&(e.velocity.length=e.collisionMaxSpeed)};function Rs(e,t){Xe(Ye(e),Ye(t)),Ls(e),Ls(t)}function zs(e,t){!e.unbreakable&&!t.unbreakable&&Rs(e,t),e.getRadius()===void 0&&t.getRadius()!==void 0?e.destroy():e.getRadius()!==void 0&&t.getRadius()===void 0?t.destroy():e.getRadius()!==void 0&&t.getRadius()!==void 0&&(e.getRadius()>=t.getRadius()?t:e).destroy()}function Bs(e,t,n,r){switch(e.options.collisions.mode){case fn.absorb:Is(e,t,n,r);break;case fn.bounce:Rs(e,t);break;case fn.destroy:zs(e,t);break}}var Vs=2,Hs=class extends _r{constructor(e){super(e)}clear(){}init(){}interact(e,t){if(e.destroyed||e.spawning)return;let n=this.container,r=e.getPosition(),i=e.getRadius(),a=n.particles.quadTree.queryCircle(r,i*Vs);for(let o of a){if(e===o||!o.options.collisions.enable||e.options.collisions.mode!==o.options.collisions.mode||o.destroyed||o.spawning)continue;let a=o.getPosition(),s=o.getRadius();Math.abs(Math.round(r.z)-Math.round(a.z))>i+s||M(r,a)>i+s||Bs(e,o,t,n.retina.pixelRatio)}}isEnabled(e){return e.options.collisions.enable}reset(){}};async function Us(e,t=!0){e.checkVersion(`3.9.1`),await e.addInteractor(`particlesCollisions`,e=>Promise.resolve(new Hs(e)),t)}var Ws=2,Gs=class extends K{constructor(e,t,n,r){super(e,t,n),this.canvasSize=r,this.canvasSize={...r}}contains(e){let{width:t,height:n}=this.canvasSize,{x:r,y:i}=e;return super.contains(e)||super.contains({x:r-t,y:i})||super.contains({x:r-t,y:i-n})||super.contains({x:r,y:i-n})}intersects(e){if(super.intersects(e))return!0;let t=e,n=e,r={x:e.position.x-this.canvasSize.width,y:e.position.y-this.canvasSize.height};if(n.radius!==void 0){let e=new K(r.x,r.y,n.radius*Ws);return super.intersects(e)}else if(t.size!==void 0){let e=new q(r.x,r.y,t.size.width*Ws,t.size.height*Ws);return super.intersects(e)}return!1}},Ks=class{constructor(){this.blur=5,this.color=new U,this.color.value=`#000`,this.enable=!1}load(e){C(e)||(e.blur!==void 0&&(this.blur=e.blur),this.color=U.create(this.color,e.color),e.enable!==void 0&&(this.enable=e.enable))}},qs=class{constructor(){this.enable=!1,this.frequency=1}load(e){C(e)||(e.color!==void 0&&(this.color=U.create(this.color,e.color)),e.enable!==void 0&&(this.enable=e.enable),e.frequency!==void 0&&(this.frequency=e.frequency),e.opacity!==void 0&&(this.opacity=e.opacity))}},Js=class{constructor(){this.blink=!1,this.color=new U,this.color.value=`#fff`,this.consent=!1,this.distance=100,this.enable=!1,this.frequency=1,this.opacity=1,this.shadow=new Ks,this.triangles=new qs,this.width=1,this.warp=!1}load(e){C(e)||(e.id!==void 0&&(this.id=e.id),e.blink!==void 0&&(this.blink=e.blink),this.color=U.create(this.color,e.color),e.consent!==void 0&&(this.consent=e.consent),e.distance!==void 0&&(this.distance=e.distance),e.enable!==void 0&&(this.enable=e.enable),e.frequency!==void 0&&(this.frequency=e.frequency),e.opacity!==void 0&&(this.opacity=e.opacity),this.shadow.load(e.shadow),this.triangles.load(e.triangles),e.width!==void 0&&(this.width=e.width),e.warp!==void 0&&(this.warp=e.warp))}},Ys=2,Xs=1,Zs={x:0,y:0},Qs=0;function $s(e,t,n,r,i){let{dx:a,dy:o,distance:s}=j(e,t);if(!i||s<=n)return s;let c={x:Math.abs(a),y:Math.abs(o)},l={x:Math.min(c.x,r.width-c.x),y:Math.min(c.y,r.height-c.y)};return Math.sqrt(l.x**Ys+l.y**Ys)}var ec=class extends _r{constructor(e,t){super(e),this._setColor=e=>{if(!e.options.links)return;let t=this._linkContainer,n=e.options.links,r=n.id===void 0?t.particles.linksColor:t.particles.linksColors.get(n.id);if(r)return;let i=n.color;r=yt(this._engine,i,n.blink,n.consent),n.id===void 0?t.particles.linksColor=r:t.particles.linksColors.set(n.id,r)},this._linkContainer=e,this._engine=t}clear(){}init(){this._linkContainer.particles.linksColor=void 0,this._linkContainer.particles.linksColors=new Map}interact(e){if(!e.options.links)return;e.links=[];let t=e.getPosition(),n=this.container,r=n.canvas.size;if(t.x<Zs.x||t.y<Zs.y||t.x>r.width||t.y>r.height)return;let i=e.options.links,a=i.opacity,o=e.retina.linksDistance??Qs,s=i.warp,c;c=s?new Gs(t.x,t.y,o,r):new K(t.x,t.y,o);let l=n.particles.quadTree.query(c);for(let n of l){let c=n.options.links;if(e===n||!c?.enable||i.id!==c.id||n.spawning||n.destroyed||!n.links||e.links.some(e=>e.destination===n)||n.links.some(t=>t.destination===e))continue;let l=n.getPosition();if(l.x<Zs.x||l.y<Zs.y||l.x>r.width||l.y>r.height)continue;let u=$s(t,l,o,r,s&&c.warp);if(u>o)continue;let d=(Xs-u/o)*a;this._setColor(e),e.links.push({destination:n,opacity:d})}}isEnabled(e){return!!e.options.links?.enable}loadParticlesOptions(e,...t){e.links||=new Js;for(let n of t)e.links.load(n?.links)}reset(){}};async function tc(e,t=!0){await e.addInteractor(`particlesLinks`,async t=>Promise.resolve(new ec(t,e)),t)}function nc(e,t,n,r){e.beginPath(),e.moveTo(t.x,t.y),e.lineTo(n.x,n.y),e.lineTo(r.x,r.y),e.closePath()}function rc(e){let t=!1,{begin:n,end:r,engine:i,maxDistance:a,context:o,canvasSize:s,width:c,backgroundMask:l,colorLine:u,opacity:d,links:f}=e;if(M(n,r)<=a)Tt(o,n,r),t=!0;else if(f.warp){let e,i,c=j(n,{x:r.x-s.width,y:r.y});if(c.distance<=a){let t=n.y-c.dy/c.dx*n.x;e={x:0,y:t},i={x:s.width,y:t}}else{let t=j(n,{x:r.x,y:r.y-s.height});if(t.distance<=a){let r=-(n.y-t.dy/t.dx*n.x)/(t.dy/t.dx);e={x:r,y:0},i={x:r,y:s.height}}else{let t=j(n,{x:r.x-s.width,y:r.y-s.height});if(t.distance<=a){let r=n.y-t.dy/t.dx*n.x;e={x:-r/(t.dy/t.dx),y:r},i={x:e.x+s.width,y:e.y+s.height}}}}e&&i&&(Tt(o,n,e),Tt(o,r,i),t=!0)}if(!t)return;o.lineWidth=c,l.enable&&(o.globalCompositeOperation=l.composite),o.strokeStyle=B(u,d);let{shadow:p}=f;if(p.enable){let e=z(i,p.color);e&&(o.shadowBlur=p.blur,o.shadowColor=B(e))}o.stroke()}function ic(e){let{context:t,pos1:n,pos2:r,pos3:i,backgroundMask:a,colorTriangle:o,opacityTriangle:s}=e;nc(t,n,r,i),a.enable&&(t.globalCompositeOperation=a.composite),t.fillStyle=B(o,s),t.fill()}function ac(e){return e.sort((e,t)=>e-t),e.join(`_`)}function oc(e,t){let n=ac(e.map(e=>e.id)),r=t.get(n);return r===void 0&&(r=T(),t.set(n,r)),r}var sc=0,cc=0,lc=0,uc=.5,dc=1,fc=class{constructor(e,t){this._drawLinkLine=(e,t)=>{let n=e.options.links;if(!n?.enable)return;let r=this._container,i=r.actualOptions,a=t.destination,o=e.getPosition(),s=a.getPosition(),c=t.opacity;r.canvas.draw(t=>{let l,u=e.options.twinkle?.lines;if(u?.enable){let e=u.frequency,t=z(this._engine,u.color);T()<e&&t&&(l=t,c=O(u.opacity))}if(l||=vt(e,a,n.id===void 0?r.particles.linksColor:r.particles.linksColors.get(n.id)),!l)return;let d=e.retina.linksWidth??cc,f=e.retina.linksDistance??lc,{backgroundMask:p}=i;rc({context:t,width:d,begin:o,end:s,engine:this._engine,maxDistance:f,canvasSize:r.canvas.size,links:n,backgroundMask:p,colorLine:l,opacity:c})})},this._drawLinkTriangle=(e,t,n)=>{let r=e.options.links;if(!r?.enable)return;let i=r.triangles;if(!i.enable)return;let a=this._container,o=a.actualOptions,s=t.destination,c=n.destination,l=i.opacity??(t.opacity+n.opacity)*uc;l<=sc||a.canvas.draw(t=>{let n=e.getPosition(),u=s.getPosition(),d=c.getPosition(),f=e.retina.linksDistance??lc;if(M(n,u)>f||M(d,u)>f||M(d,n)>f)return;let p=z(this._engine,i.color);p||=vt(e,s,r.id===void 0?a.particles.linksColor:a.particles.linksColors.get(r.id)),p&&ic({context:t,pos1:n,pos2:u,pos3:d,backgroundMask:o.backgroundMask,colorTriangle:p,opacityTriangle:l})})},this._drawTriangles=(e,t,n,r)=>{let i=n.destination;if(!(e.links?.triangles.enable&&i.options.links?.triangles.enable))return;let a=i.links?.filter(e=>{let t=this._getLinkFrequency(i,e.destination);return i.options.links&&t<=i.options.links.frequency&&r.findIndex(t=>t.destination===e.destination)>=0});if(a?.length)for(let r of a){let a=r.destination;this._getTriangleFrequency(t,i,a)>e.links.triangles.frequency||this._drawLinkTriangle(t,n,r)}},this._getLinkFrequency=(e,t)=>oc([e,t],this._freqs.links),this._getTriangleFrequency=(e,t,n)=>oc([e,t,n],this._freqs.triangles),this._container=e,this._engine=t,this._freqs={links:new Map,triangles:new Map}}drawParticle(e,t){let{links:n,options:r}=t;if(!n?.length)return;let i=n.filter(e=>r.links&&(r.links.frequency>=dc||this._getLinkFrequency(t,e.destination)<=r.links.frequency));for(let e of i)this._drawTriangles(r,t,e,i),e.opacity>sc&&(t.retina.linksWidth??cc)>cc&&this._drawLinkLine(t,e)}async init(){this._freqs.links=new Map,this._freqs.triangles=new Map,await Promise.resolve()}particleCreated(e){if(e.links=[],!e.options.links)return;let t=this._container.retina.pixelRatio,{retina:n}=e,{distance:r,width:i}=e.options.links;n.linksDistance=r*t,n.linksWidth=i*t}particleDestroyed(e){e.links=[]}},pc=class{constructor(e){this.id=`links`,this._engine=e}getPlugin(e){return Promise.resolve(new fc(e,this._engine))}loadOptions(){}needsPlugin(){return!0}};async function mc(e,t=!0){let n=new pc(e);await e.addPlugin(n,t)}async function hc(e,t=!0){e.checkVersion(`3.9.1`),await tc(e,t),await mc(e,t)}var gc=180,_c={x:0,y:0},vc=2;function yc(e,t,n){let{context:r}=e,i=n.count.numerator*n.count.denominator,a=n.count.numerator/n.count.denominator,o=gc*(a-vc)/a,s=Math.PI-ye(o);if(r){r.beginPath(),r.translate(t.x,t.y),r.moveTo(_c.x,_c.y);for(let e=0;e<i;e++)r.lineTo(n.length,_c.y),r.translate(n.length,_c.y),r.rotate(s)}}var bc=5,xc=class{draw(e){let{particle:t,radius:n}=e;yc(e,this.getCenter(t,n),this.getSidesData(t,n))}getSidesCount(e){let t=e.shapeData;return Math.round(O(t?.sides??bc))}},Sc=3.5,Cc=2.66,wc=3,Tc=class extends xc{constructor(){super(...arguments),this.validTypes=[`polygon`]}getCenter(e,t){return{x:-t/(e.sides/Sc),y:-t/(Cc/Sc)}}getSidesData(e,t){let n=e.sides;return{count:{denominator:1,numerator:n},length:t*Cc/(n/wc)}}},Ec=1.66,Dc=3,Oc=2,kc=class extends xc{constructor(){super(...arguments),this.validTypes=[`triangle`]}getCenter(e,t){return{x:-t,y:t/Ec}}getSidesCount(){return Dc}getSidesData(e,t){return{count:{denominator:2,numerator:3},length:t*Oc}}};async function Ac(e,t=!0){e.checkVersion(`3.9.1`),await e.addShape(new Tc,t)}async function jc(e,t=!0){e.checkVersion(`3.9.1`),await e.addShape(new kc,t)}async function Mc(e,t=!0){e.checkVersion(`3.9.1`),await Ac(e,t),await jc(e,t)}var Nc=class{constructor(){this.enable=!1,this.speed=0,this.decay=0,this.sync=!1}load(e){C(e)||(e.enable!==void 0&&(this.enable=e.enable),e.speed!==void 0&&(this.speed=A(e.speed)),e.decay!==void 0&&(this.decay=A(e.decay)),e.sync!==void 0&&(this.sync=e.sync))}},Pc=class extends hn{constructor(){super(),this.animation=new Nc,this.direction=X.clockwise,this.path=!1,this.value=0}load(e){C(e)||(super.load(e),e.direction!==void 0&&(this.direction=e.direction),this.animation.load(e.animation),e.path!==void 0&&(this.path=e.path))}},Fc=2,Ic=Math.PI*Fc,Lc=1,Rc=360,zc=class{constructor(e){this.container=e}init(e){let t=e.options.rotate;if(!t)return;e.rotate={enable:t.animation.enable,value:ye(O(t.value)),min:0,max:Ic},e.pathRotation=t.path;let n=t.direction;switch(n===X.random&&(n=Math.floor(T()*Fc)>0?X.counterClockwise:X.clockwise),n){case X.counterClockwise:case`counterClockwise`:e.rotate.status=N.decreasing;break;case X.clockwise:e.rotate.status=N.increasing;break}let r=t.animation;r.enable&&(e.rotate.decay=Lc-O(r.decay),e.rotate.velocity=O(r.speed)/Rc*this.container.retina.reduceFactor,r.sync||(e.rotate.velocity*=T())),e.rotation=e.rotate.value}isEnabled(e){let t=e.options.rotate;return t?!e.destroyed&&!e.spawning&&(!!t.value||t.animation.enable||t.path):!1}loadOptions(e,...t){e.rotate||=new Pc;for(let n of t)e.rotate.load(n?.rotate)}update(e,t){this.isEnabled(e)&&(e.isRotating=!!e.rotate,e.rotate&&(rt(e,e.rotate,!1,Ee.none,t),e.rotation=e.rotate.value))}};async function Bc(e,t=!0){e.checkVersion(`3.9.1`),await e.addParticleUpdater(`rotate`,e=>Promise.resolve(new zc(e)),t)}var Vc=Math.sqrt(2),Hc=2;function Uc(e){let{context:t,radius:n}=e,r=n/Vc,i=r*Hc;t.rect(-r,-r,i,i)}var Wc=4,Gc=class{constructor(){this.validTypes=[`edge`,`square`]}draw(e){Uc(e)}getSidesCount(){return Wc}};async function Kc(e,t=!0){e.checkVersion(`3.9.1`),await e.addShape(new Gc,t)}var qc=2,Jc={x:0,y:0};function Yc(e){let{context:t,particle:n,radius:r}=e,i=n.sides,a=n.starInset??qc;t.moveTo(Jc.x,Jc.y-r);for(let e=0;e<i;e++)t.rotate(Math.PI/i),t.lineTo(Jc.x,Jc.y-r*a),t.rotate(Math.PI/i),t.lineTo(Jc.x,Jc.y-r)}var Xc=2,Zc=5,Qc=class{constructor(){this.validTypes=[`star`]}draw(e){Yc(e)}getSidesCount(e){let t=e.shapeData;return Math.round(O(t?.sides??Zc))}particleInit(e,t){let n=t.shapeData;t.starInset=O(n?.inset??Xc)}};async function $c(e,t=!0){e.checkVersion(`3.9.1`),await e.addShape(new Qc,t)}var el=1,tl=class{constructor(e,t){this._container=e,this._engine=t}init(e){let t=this._container,n=e.options,r=R(n.stroke,e.id,n.reduceDuplicates);e.strokeWidth=O(r.width)*t.retina.pixelRatio,e.strokeOpacity=O(r.opacity??el),e.strokeAnimation=r.color?.animation;let i=ut(this._engine,r.color)??e.getFillColor();i&&(e.strokeColor=xt(i,e.strokeAnimation,t.retina.reduceFactor))}isEnabled(e){let t=e.strokeAnimation,{strokeColor:n}=e;return!e.destroyed&&!e.spawning&&!!t&&(n?.h.value!==void 0&&n.h.enable||n?.s.value!==void 0&&n.s.enable||n?.l.value!==void 0&&n.l.enable)}update(e,t){this.isEnabled(e)&&wt(e.strokeColor,t)}};async function nl(e,t=!0){e.checkVersion(`3.9.1`),await e.addParticleUpdater(`strokeColor`,t=>Promise.resolve(new tl(t,e)),t)}async function rl(e,t=!0){e.checkVersion(`3.9.1`),await Ds(e,!1),await Xi(e,!1),await ua(e,!1),await Ea(e,!1),await za(e,!1),await Ya(e,!1),await Qa(e,!1),await ro(e,!1),await so(e,!1),await So(e,!1),await Do(e,!1),await js(e,!1),await Us(e,!1),await hc(e,!1),await Fi(e,!1),await Bi(e,!1),await ss(e,!1),await ws(e,!1),await Mc(e,!1),await Kc(e,!1),await $c(e,!1),await bs(e,!1),await Bc(e,!1),await nl(e,!1),await Pi(e,t)}export{Cr as n,Sr as r,rl as t};