@aquaclawai/aquarium 1.0.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 (517) hide show
  1. package/dist/agent-types/claude-code/index.d.ts +2 -0
  2. package/dist/agent-types/claude-code/index.d.ts.map +1 -0
  3. package/dist/agent-types/claude-code/index.js +2 -0
  4. package/dist/agent-types/claude-code/index.js.map +1 -0
  5. package/dist/agent-types/claude-code/manifest.d.ts +3 -0
  6. package/dist/agent-types/claude-code/manifest.d.ts.map +1 -0
  7. package/dist/agent-types/claude-code/manifest.js +45 -0
  8. package/dist/agent-types/claude-code/manifest.js.map +1 -0
  9. package/dist/agent-types/openclaw/adapter.d.ts +3 -0
  10. package/dist/agent-types/openclaw/adapter.d.ts.map +1 -0
  11. package/dist/agent-types/openclaw/adapter.js +714 -0
  12. package/dist/agent-types/openclaw/adapter.js.map +1 -0
  13. package/dist/agent-types/openclaw/gateway-rpc.d.ts +21 -0
  14. package/dist/agent-types/openclaw/gateway-rpc.d.ts.map +1 -0
  15. package/dist/agent-types/openclaw/gateway-rpc.js +202 -0
  16. package/dist/agent-types/openclaw/gateway-rpc.js.map +1 -0
  17. package/dist/agent-types/openclaw/index.d.ts +3 -0
  18. package/dist/agent-types/openclaw/index.d.ts.map +1 -0
  19. package/dist/agent-types/openclaw/index.js +3 -0
  20. package/dist/agent-types/openclaw/index.js.map +1 -0
  21. package/dist/agent-types/openclaw/manifest.d.ts +137 -0
  22. package/dist/agent-types/openclaw/manifest.d.ts.map +1 -0
  23. package/dist/agent-types/openclaw/manifest.js +191 -0
  24. package/dist/agent-types/openclaw/manifest.js.map +1 -0
  25. package/dist/agent-types/openclaw/provider-registry.d.ts +46 -0
  26. package/dist/agent-types/openclaw/provider-registry.d.ts.map +1 -0
  27. package/dist/agent-types/openclaw/provider-registry.js +108 -0
  28. package/dist/agent-types/openclaw/provider-registry.js.map +1 -0
  29. package/dist/agent-types/openclaw/reverse-adapter.d.ts +7 -0
  30. package/dist/agent-types/openclaw/reverse-adapter.d.ts.map +1 -0
  31. package/dist/agent-types/openclaw/reverse-adapter.js +528 -0
  32. package/dist/agent-types/openclaw/reverse-adapter.js.map +1 -0
  33. package/dist/agent-types/openclaw/security-profiles.d.ts +21 -0
  34. package/dist/agent-types/openclaw/security-profiles.d.ts.map +1 -0
  35. package/dist/agent-types/openclaw/security-profiles.js +251 -0
  36. package/dist/agent-types/openclaw/security-profiles.js.map +1 -0
  37. package/dist/agent-types/openclaw/workspace-templates.d.ts +2 -0
  38. package/dist/agent-types/openclaw/workspace-templates.d.ts.map +1 -0
  39. package/dist/agent-types/openclaw/workspace-templates.js +363 -0
  40. package/dist/agent-types/openclaw/workspace-templates.js.map +1 -0
  41. package/dist/agent-types/opencode/index.d.ts +2 -0
  42. package/dist/agent-types/opencode/index.d.ts.map +1 -0
  43. package/dist/agent-types/opencode/index.js +2 -0
  44. package/dist/agent-types/opencode/index.js.map +1 -0
  45. package/dist/agent-types/opencode/manifest.d.ts +3 -0
  46. package/dist/agent-types/opencode/manifest.d.ts.map +1 -0
  47. package/dist/agent-types/opencode/manifest.js +63 -0
  48. package/dist/agent-types/opencode/manifest.js.map +1 -0
  49. package/dist/agent-types/registry.d.ts +4 -0
  50. package/dist/agent-types/registry.d.ts.map +1 -0
  51. package/dist/agent-types/registry.js +24 -0
  52. package/dist/agent-types/registry.js.map +1 -0
  53. package/dist/agent-types/types.d.ts +169 -0
  54. package/dist/agent-types/types.d.ts.map +1 -0
  55. package/dist/agent-types/types.js +2 -0
  56. package/dist/agent-types/types.js.map +1 -0
  57. package/dist/cli.d.ts +3 -0
  58. package/dist/cli.d.ts.map +1 -0
  59. package/dist/cli.js +72 -0
  60. package/dist/cli.js.map +1 -0
  61. package/dist/config.d.ts +68 -0
  62. package/dist/config.d.ts.map +1 -0
  63. package/dist/config.js +98 -0
  64. package/dist/config.js.map +1 -0
  65. package/dist/db/adapter.d.ts +21 -0
  66. package/dist/db/adapter.d.ts.map +1 -0
  67. package/dist/db/adapter.js +11 -0
  68. package/dist/db/adapter.js.map +1 -0
  69. package/dist/db/index.d.ts +4 -0
  70. package/dist/db/index.d.ts.map +1 -0
  71. package/dist/db/index.js +5 -0
  72. package/dist/db/index.js.map +1 -0
  73. package/dist/db/knexfile.d.ts +5 -0
  74. package/dist/db/knexfile.d.ts.map +1 -0
  75. package/dist/db/knexfile.js +34 -0
  76. package/dist/db/knexfile.js.map +1 -0
  77. package/dist/db/migration-helpers.d.ts +45 -0
  78. package/dist/db/migration-helpers.d.ts.map +1 -0
  79. package/dist/db/migration-helpers.js +90 -0
  80. package/dist/db/migration-helpers.js.map +1 -0
  81. package/dist/db/migrations/001_initial.d.ts +4 -0
  82. package/dist/db/migrations/001_initial.d.ts.map +1 -0
  83. package/dist/db/migrations/001_initial.js +56 -0
  84. package/dist/db/migrations/001_initial.js.map +1 -0
  85. package/dist/db/migrations/002_instance_config.d.ts +4 -0
  86. package/dist/db/migrations/002_instance_config.d.ts.map +1 -0
  87. package/dist/db/migrations/002_instance_config.js +12 -0
  88. package/dist/db/migrations/002_instance_config.js.map +1 -0
  89. package/dist/db/migrations/003_instance_status_message.d.ts +4 -0
  90. package/dist/db/migrations/003_instance_status_message.d.ts.map +1 -0
  91. package/dist/db/migrations/003_instance_status_message.js +11 -0
  92. package/dist/db/migrations/003_instance_status_message.js.map +1 -0
  93. package/dist/db/migrations/004_templates.d.ts +4 -0
  94. package/dist/db/migrations/004_templates.d.ts.map +1 -0
  95. package/dist/db/migrations/004_templates.js +95 -0
  96. package/dist/db/migrations/004_templates.js.map +1 -0
  97. package/dist/db/migrations/005_group_chats.d.ts +4 -0
  98. package/dist/db/migrations/005_group_chats.d.ts.map +1 -0
  99. package/dist/db/migrations/005_group_chats.js +66 -0
  100. package/dist/db/migrations/005_group_chats.js.map +1 -0
  101. package/dist/db/migrations/006_template_setup.d.ts +4 -0
  102. package/dist/db/migrations/006_template_setup.d.ts.map +1 -0
  103. package/dist/db/migrations/006_template_setup.js +14 -0
  104. package/dist/db/migrations/006_template_setup.js.map +1 -0
  105. package/dist/db/migrations/007_group_chat_v2.d.ts +4 -0
  106. package/dist/db/migrations/007_group_chat_v2.d.ts.map +1 -0
  107. package/dist/db/migrations/007_group_chat_v2.js +59 -0
  108. package/dist/db/migrations/007_group_chat_v2.js.map +1 -0
  109. package/dist/db/migrations/008_default_provider_openrouter.d.ts +4 -0
  110. package/dist/db/migrations/008_default_provider_openrouter.d.ts.map +1 -0
  111. package/dist/db/migrations/008_default_provider_openrouter.js +33 -0
  112. package/dist/db/migrations/008_default_provider_openrouter.js.map +1 -0
  113. package/dist/db/migrations/009_opencode_default_provider_openrouter.d.ts +4 -0
  114. package/dist/db/migrations/009_opencode_default_provider_openrouter.d.ts.map +1 -0
  115. package/dist/db/migrations/009_opencode_default_provider_openrouter.js +33 -0
  116. package/dist/db/migrations/009_opencode_default_provider_openrouter.js.map +1 -0
  117. package/dist/db/migrations/010_fix_null_default_provider.d.ts +4 -0
  118. package/dist/db/migrations/010_fix_null_default_provider.d.ts.map +1 -0
  119. package/dist/db/migrations/010_fix_null_default_provider.js +24 -0
  120. package/dist/db/migrations/010_fix_null_default_provider.js.map +1 -0
  121. package/dist/db/migrations/011_snapshots.d.ts +4 -0
  122. package/dist/db/migrations/011_snapshots.d.ts.map +1 -0
  123. package/dist/db/migrations/011_snapshots.js +27 -0
  124. package/dist/db/migrations/011_snapshots.js.map +1 -0
  125. package/dist/db/migrations/013_official_templates.d.ts +4 -0
  126. package/dist/db/migrations/013_official_templates.d.ts.map +1 -0
  127. package/dist/db/migrations/013_official_templates.js +173 -0
  128. package/dist/db/migrations/013_official_templates.js.map +1 -0
  129. package/dist/db/migrations/014_notifications.d.ts +4 -0
  130. package/dist/db/migrations/014_notifications.d.ts.map +1 -0
  131. package/dist/db/migrations/014_notifications.js +45 -0
  132. package/dist/db/migrations/014_notifications.js.map +1 -0
  133. package/dist/db/migrations/015_security_profile.d.ts +4 -0
  134. package/dist/db/migrations/015_security_profile.d.ts.map +1 -0
  135. package/dist/db/migrations/015_security_profile.js +14 -0
  136. package/dist/db/migrations/015_security_profile.js.map +1 -0
  137. package/dist/db/migrations/016_template_security.d.ts +4 -0
  138. package/dist/db/migrations/016_template_security.d.ts.map +1 -0
  139. package/dist/db/migrations/016_template_security.js +12 -0
  140. package/dist/db/migrations/016_template_security.js.map +1 -0
  141. package/dist/db/migrations/017_auth_events.d.ts +4 -0
  142. package/dist/db/migrations/017_auth_events.d.ts.map +1 -0
  143. package/dist/db/migrations/017_auth_events.js +19 -0
  144. package/dist/db/migrations/017_auth_events.js.map +1 -0
  145. package/dist/db/migrations/018_skill_market.d.ts +4 -0
  146. package/dist/db/migrations/018_skill_market.d.ts.map +1 -0
  147. package/dist/db/migrations/018_skill_market.js +21 -0
  148. package/dist/db/migrations/018_skill_market.js.map +1 -0
  149. package/dist/db/migrations/019_credential_audit_log.d.ts +4 -0
  150. package/dist/db/migrations/019_credential_audit_log.d.ts.map +1 -0
  151. package/dist/db/migrations/019_credential_audit_log.js +19 -0
  152. package/dist/db/migrations/019_credential_audit_log.js.map +1 -0
  153. package/dist/db/migrations/020_template_security_score.d.ts +4 -0
  154. package/dist/db/migrations/020_template_security_score.d.ts.map +1 -0
  155. package/dist/db/migrations/020_template_security_score.js +31 -0
  156. package/dist/db/migrations/020_template_security_score.js.map +1 -0
  157. package/dist/db/migrations/021_credential_enhancements.d.ts +4 -0
  158. package/dist/db/migrations/021_credential_enhancements.d.ts.map +1 -0
  159. package/dist/db/migrations/021_credential_enhancements.js +15 -0
  160. package/dist/db/migrations/021_credential_enhancements.js.map +1 -0
  161. package/dist/db/migrations/021_user_roles.d.ts +4 -0
  162. package/dist/db/migrations/021_user_roles.d.ts.map +1 -0
  163. package/dist/db/migrations/021_user_roles.js +11 -0
  164. package/dist/db/migrations/021_user_roles.js.map +1 -0
  165. package/dist/db/migrations/022_config_hash.d.ts +4 -0
  166. package/dist/db/migrations/022_config_hash.d.ts.map +1 -0
  167. package/dist/db/migrations/022_config_hash.js +11 -0
  168. package/dist/db/migrations/022_config_hash.js.map +1 -0
  169. package/dist/db/migrations/023_account_security.d.ts +4 -0
  170. package/dist/db/migrations/023_account_security.d.ts.map +1 -0
  171. package/dist/db/migrations/023_account_security.js +22 -0
  172. package/dist/db/migrations/023_account_security.js.map +1 -0
  173. package/dist/db/migrations/024_wizard_configs.d.ts +4 -0
  174. package/dist/db/migrations/024_wizard_configs.d.ts.map +1 -0
  175. package/dist/db/migrations/024_wizard_configs.js +165 -0
  176. package/dist/db/migrations/024_wizard_configs.js.map +1 -0
  177. package/dist/db/migrations/025_auth_dual_mode.d.ts +4 -0
  178. package/dist/db/migrations/025_auth_dual_mode.d.ts.map +1 -0
  179. package/dist/db/migrations/025_auth_dual_mode.js +19 -0
  180. package/dist/db/migrations/025_auth_dual_mode.js.map +1 -0
  181. package/dist/db/migrations/027_add_avatar_to_instances.d.ts +4 -0
  182. package/dist/db/migrations/027_add_avatar_to_instances.d.ts.map +1 -0
  183. package/dist/db/migrations/027_add_avatar_to_instances.js +11 -0
  184. package/dist/db/migrations/027_add_avatar_to_instances.js.map +1 -0
  185. package/dist/db/migrations/027_add_clerk_id.d.ts +4 -0
  186. package/dist/db/migrations/027_add_clerk_id.d.ts.map +1 -0
  187. package/dist/db/migrations/027_add_clerk_id.js +11 -0
  188. package/dist/db/migrations/027_add_clerk_id.js.map +1 -0
  189. package/dist/db/migrations/028_template_plugin_dependencies.d.ts +4 -0
  190. package/dist/db/migrations/028_template_plugin_dependencies.d.ts.map +1 -0
  191. package/dist/db/migrations/028_template_plugin_dependencies.js +18 -0
  192. package/dist/db/migrations/028_template_plugin_dependencies.js.map +1 -0
  193. package/dist/db/migrations/029_remap_orphan_config_keys.d.ts +21 -0
  194. package/dist/db/migrations/029_remap_orphan_config_keys.d.ts.map +1 -0
  195. package/dist/db/migrations/029_remap_orphan_config_keys.js +63 -0
  196. package/dist/db/migrations/029_remap_orphan_config_keys.js.map +1 -0
  197. package/dist/db/migrations/030_extend_notification_types.d.ts +4 -0
  198. package/dist/db/migrations/030_extend_notification_types.d.ts.map +1 -0
  199. package/dist/db/migrations/030_extend_notification_types.js +10 -0
  200. package/dist/db/migrations/030_extend_notification_types.js.map +1 -0
  201. package/dist/db/migrations/031_default_security_profile_developer.d.ts +9 -0
  202. package/dist/db/migrations/031_default_security_profile_developer.d.ts.map +1 -0
  203. package/dist/db/migrations/031_default_security_profile_developer.js +22 -0
  204. package/dist/db/migrations/031_default_security_profile_developer.js.map +1 -0
  205. package/dist/db/migrations/032_geo_template.d.ts +4 -0
  206. package/dist/db/migrations/032_geo_template.d.ts.map +1 -0
  207. package/dist/db/migrations/032_geo_template.js +133 -0
  208. package/dist/db/migrations/032_geo_template.js.map +1 -0
  209. package/dist/db/migrations/033_jinko_travel_template.d.ts +4 -0
  210. package/dist/db/migrations/033_jinko_travel_template.d.ts.map +1 -0
  211. package/dist/db/migrations/033_jinko_travel_template.js +126 -0
  212. package/dist/db/migrations/033_jinko_travel_template.js.map +1 -0
  213. package/dist/db/postgres-adapter.d.ts +13 -0
  214. package/dist/db/postgres-adapter.d.ts.map +1 -0
  215. package/dist/db/postgres-adapter.js +27 -0
  216. package/dist/db/postgres-adapter.js.map +1 -0
  217. package/dist/db/run-migrations.d.ts +2 -0
  218. package/dist/db/run-migrations.d.ts.map +1 -0
  219. package/dist/db/run-migrations.js +26 -0
  220. package/dist/db/run-migrations.js.map +1 -0
  221. package/dist/db/sqlite-adapter.d.ts +13 -0
  222. package/dist/db/sqlite-adapter.d.ts.map +1 -0
  223. package/dist/db/sqlite-adapter.js +29 -0
  224. package/dist/db/sqlite-adapter.js.map +1 -0
  225. package/dist/ee/litellm/litellm-key-manager.d.ts +16 -0
  226. package/dist/ee/litellm/litellm-key-manager.d.ts.map +1 -0
  227. package/dist/ee/litellm/litellm-key-manager.js +16 -0
  228. package/dist/ee/litellm/litellm-key-manager.js.map +1 -0
  229. package/dist/ee/litellm/litellm-model-seeder.d.ts +6 -0
  230. package/dist/ee/litellm/litellm-model-seeder.d.ts.map +1 -0
  231. package/dist/ee/litellm/litellm-model-seeder.js +6 -0
  232. package/dist/ee/litellm/litellm-model-seeder.js.map +1 -0
  233. package/dist/index.ce.d.ts +2 -0
  234. package/dist/index.ce.d.ts.map +1 -0
  235. package/dist/index.ce.js +12 -0
  236. package/dist/index.ce.js.map +1 -0
  237. package/dist/middleware/auth.d.ts +30 -0
  238. package/dist/middleware/auth.d.ts.map +1 -0
  239. package/dist/middleware/auth.js +86 -0
  240. package/dist/middleware/auth.js.map +1 -0
  241. package/dist/middleware/dynamic-middleware.d.ts +7 -0
  242. package/dist/middleware/dynamic-middleware.d.ts.map +1 -0
  243. package/dist/middleware/dynamic-middleware.js +46 -0
  244. package/dist/middleware/dynamic-middleware.js.map +1 -0
  245. package/dist/middleware/log-redaction.d.ts +2 -0
  246. package/dist/middleware/log-redaction.d.ts.map +1 -0
  247. package/dist/middleware/log-redaction.js +56 -0
  248. package/dist/middleware/log-redaction.js.map +1 -0
  249. package/dist/routes/admin.d.ts +3 -0
  250. package/dist/routes/admin.d.ts.map +1 -0
  251. package/dist/routes/admin.js +491 -0
  252. package/dist/routes/admin.js.map +1 -0
  253. package/dist/routes/agent-types.d.ts +3 -0
  254. package/dist/routes/agent-types.d.ts.map +1 -0
  255. package/dist/routes/agent-types.js +85 -0
  256. package/dist/routes/agent-types.js.map +1 -0
  257. package/dist/routes/auth.d.ts +3 -0
  258. package/dist/routes/auth.d.ts.map +1 -0
  259. package/dist/routes/auth.js +242 -0
  260. package/dist/routes/auth.js.map +1 -0
  261. package/dist/routes/channels.d.ts +3 -0
  262. package/dist/routes/channels.d.ts.map +1 -0
  263. package/dist/routes/channels.js +527 -0
  264. package/dist/routes/channels.js.map +1 -0
  265. package/dist/routes/credentials.d.ts +3 -0
  266. package/dist/routes/credentials.d.ts.map +1 -0
  267. package/dist/routes/credentials.js +81 -0
  268. package/dist/routes/credentials.js.map +1 -0
  269. package/dist/routes/dashboard.d.ts +3 -0
  270. package/dist/routes/dashboard.d.ts.map +1 -0
  271. package/dist/routes/dashboard.js +75 -0
  272. package/dist/routes/dashboard.js.map +1 -0
  273. package/dist/routes/exec-approval.d.ts +3 -0
  274. package/dist/routes/exec-approval.d.ts.map +1 -0
  275. package/dist/routes/exec-approval.js +60 -0
  276. package/dist/routes/exec-approval.js.map +1 -0
  277. package/dist/routes/group-chats.d.ts +3 -0
  278. package/dist/routes/group-chats.d.ts.map +1 -0
  279. package/dist/routes/group-chats.js +190 -0
  280. package/dist/routes/group-chats.js.map +1 -0
  281. package/dist/routes/instance-files.d.ts +3 -0
  282. package/dist/routes/instance-files.d.ts.map +1 -0
  283. package/dist/routes/instance-files.js +255 -0
  284. package/dist/routes/instance-files.js.map +1 -0
  285. package/dist/routes/instance-proxy.d.ts +40 -0
  286. package/dist/routes/instance-proxy.d.ts.map +1 -0
  287. package/dist/routes/instance-proxy.js +318 -0
  288. package/dist/routes/instance-proxy.js.map +1 -0
  289. package/dist/routes/instances.d.ts +3 -0
  290. package/dist/routes/instances.d.ts.map +1 -0
  291. package/dist/routes/instances.js +325 -0
  292. package/dist/routes/instances.js.map +1 -0
  293. package/dist/routes/metadata.d.ts +3 -0
  294. package/dist/routes/metadata.d.ts.map +1 -0
  295. package/dist/routes/metadata.js +13 -0
  296. package/dist/routes/metadata.js.map +1 -0
  297. package/dist/routes/notifications.d.ts +3 -0
  298. package/dist/routes/notifications.d.ts.map +1 -0
  299. package/dist/routes/notifications.js +104 -0
  300. package/dist/routes/notifications.js.map +1 -0
  301. package/dist/routes/oauth.d.ts +3 -0
  302. package/dist/routes/oauth.d.ts.map +1 -0
  303. package/dist/routes/oauth.js +516 -0
  304. package/dist/routes/oauth.js.map +1 -0
  305. package/dist/routes/rpc-proxy.d.ts +3 -0
  306. package/dist/routes/rpc-proxy.d.ts.map +1 -0
  307. package/dist/routes/rpc-proxy.js +116 -0
  308. package/dist/routes/rpc-proxy.js.map +1 -0
  309. package/dist/routes/security.d.ts +3 -0
  310. package/dist/routes/security.d.ts.map +1 -0
  311. package/dist/routes/security.js +43 -0
  312. package/dist/routes/security.js.map +1 -0
  313. package/dist/routes/skills.d.ts +3 -0
  314. package/dist/routes/skills.d.ts.map +1 -0
  315. package/dist/routes/skills.js +48 -0
  316. package/dist/routes/skills.js.map +1 -0
  317. package/dist/routes/snapshots.d.ts +3 -0
  318. package/dist/routes/snapshots.d.ts.map +1 -0
  319. package/dist/routes/snapshots.js +99 -0
  320. package/dist/routes/snapshots.js.map +1 -0
  321. package/dist/routes/system-config.d.ts +3 -0
  322. package/dist/routes/system-config.d.ts.map +1 -0
  323. package/dist/routes/system-config.js +75 -0
  324. package/dist/routes/system-config.js.map +1 -0
  325. package/dist/routes/templates.d.ts +3 -0
  326. package/dist/routes/templates.d.ts.map +1 -0
  327. package/dist/routes/templates.js +256 -0
  328. package/dist/routes/templates.js.map +1 -0
  329. package/dist/routes/ui-proxy.d.ts +3 -0
  330. package/dist/routes/ui-proxy.d.ts.map +1 -0
  331. package/dist/routes/ui-proxy.js +90 -0
  332. package/dist/routes/ui-proxy.js.map +1 -0
  333. package/dist/routes/user-credentials.d.ts +3 -0
  334. package/dist/routes/user-credentials.d.ts.map +1 -0
  335. package/dist/routes/user-credentials.js +85 -0
  336. package/dist/routes/user-credentials.js.map +1 -0
  337. package/dist/routes/users.d.ts +3 -0
  338. package/dist/routes/users.d.ts.map +1 -0
  339. package/dist/routes/users.js +30 -0
  340. package/dist/routes/users.js.map +1 -0
  341. package/dist/runtime/docker.d.ts +37 -0
  342. package/dist/runtime/docker.d.ts.map +1 -0
  343. package/dist/runtime/docker.js +612 -0
  344. package/dist/runtime/docker.js.map +1 -0
  345. package/dist/runtime/factory.d.ts +4 -0
  346. package/dist/runtime/factory.d.ts.map +1 -0
  347. package/dist/runtime/factory.js +21 -0
  348. package/dist/runtime/factory.js.map +1 -0
  349. package/dist/runtime/kubernetes.d.ts +34 -0
  350. package/dist/runtime/kubernetes.d.ts.map +1 -0
  351. package/dist/runtime/kubernetes.js +513 -0
  352. package/dist/runtime/kubernetes.js.map +1 -0
  353. package/dist/runtime/types.d.ts +81 -0
  354. package/dist/runtime/types.d.ts.map +1 -0
  355. package/dist/runtime/types.js +2 -0
  356. package/dist/runtime/types.js.map +1 -0
  357. package/dist/server-core.d.ts +26 -0
  358. package/dist/server-core.d.ts.map +1 -0
  359. package/dist/server-core.js +184 -0
  360. package/dist/server-core.js.map +1 -0
  361. package/dist/services/config-diff.d.ts +6 -0
  362. package/dist/services/config-diff.d.ts.map +1 -0
  363. package/dist/services/config-diff.js +85 -0
  364. package/dist/services/config-diff.js.map +1 -0
  365. package/dist/services/config-field-meta.d.ts +22 -0
  366. package/dist/services/config-field-meta.d.ts.map +1 -0
  367. package/dist/services/config-field-meta.js +177 -0
  368. package/dist/services/config-field-meta.js.map +1 -0
  369. package/dist/services/config-validator.d.ts +8 -0
  370. package/dist/services/config-validator.d.ts.map +1 -0
  371. package/dist/services/config-validator.js +59 -0
  372. package/dist/services/config-validator.js.map +1 -0
  373. package/dist/services/credential-audit.d.ts +13 -0
  374. package/dist/services/credential-audit.d.ts.map +1 -0
  375. package/dist/services/credential-audit.js +18 -0
  376. package/dist/services/credential-audit.js.map +1 -0
  377. package/dist/services/credential-store.d.ts +28 -0
  378. package/dist/services/credential-store.d.ts.map +1 -0
  379. package/dist/services/credential-store.js +99 -0
  380. package/dist/services/credential-store.js.map +1 -0
  381. package/dist/services/dlp-scanner.d.ts +9 -0
  382. package/dist/services/dlp-scanner.d.ts.map +1 -0
  383. package/dist/services/dlp-scanner.js +90 -0
  384. package/dist/services/dlp-scanner.js.map +1 -0
  385. package/dist/services/gateway-event-relay.d.ts +53 -0
  386. package/dist/services/gateway-event-relay.d.ts.map +1 -0
  387. package/dist/services/gateway-event-relay.js +519 -0
  388. package/dist/services/gateway-event-relay.js.map +1 -0
  389. package/dist/services/group-chat-manager.d.ts +17 -0
  390. package/dist/services/group-chat-manager.d.ts.map +1 -0
  391. package/dist/services/group-chat-manager.js +613 -0
  392. package/dist/services/group-chat-manager.js.map +1 -0
  393. package/dist/services/health-monitor.d.ts +3 -0
  394. package/dist/services/health-monitor.d.ts.map +1 -0
  395. package/dist/services/health-monitor.js +342 -0
  396. package/dist/services/health-monitor.js.map +1 -0
  397. package/dist/services/instance-manager.d.ts +20 -0
  398. package/dist/services/instance-manager.d.ts.map +1 -0
  399. package/dist/services/instance-manager.js +833 -0
  400. package/dist/services/instance-manager.js.map +1 -0
  401. package/dist/services/metadata-store.d.ts +3 -0
  402. package/dist/services/metadata-store.d.ts.map +1 -0
  403. package/dist/services/metadata-store.js +34 -0
  404. package/dist/services/metadata-store.js.map +1 -0
  405. package/dist/services/notification-store.d.ts +24 -0
  406. package/dist/services/notification-store.d.ts.map +1 -0
  407. package/dist/services/notification-store.js +216 -0
  408. package/dist/services/notification-store.js.map +1 -0
  409. package/dist/services/openrouter-models.d.ts +13 -0
  410. package/dist/services/openrouter-models.d.ts.map +1 -0
  411. package/dist/services/openrouter-models.js +46 -0
  412. package/dist/services/openrouter-models.js.map +1 -0
  413. package/dist/services/output-filter.d.ts +8 -0
  414. package/dist/services/output-filter.d.ts.map +1 -0
  415. package/dist/services/output-filter.js +230 -0
  416. package/dist/services/output-filter.js.map +1 -0
  417. package/dist/services/prompt-guard.d.ts +6 -0
  418. package/dist/services/prompt-guard.d.ts.map +1 -0
  419. package/dist/services/prompt-guard.js +165 -0
  420. package/dist/services/prompt-guard.js.map +1 -0
  421. package/dist/services/security-event-service.d.ts +11 -0
  422. package/dist/services/security-event-service.d.ts.map +1 -0
  423. package/dist/services/security-event-service.js +201 -0
  424. package/dist/services/security-event-service.js.map +1 -0
  425. package/dist/services/snapshot-store.d.ts +21 -0
  426. package/dist/services/snapshot-store.d.ts.map +1 -0
  427. package/dist/services/snapshot-store.js +330 -0
  428. package/dist/services/snapshot-store.js.map +1 -0
  429. package/dist/services/system-config.d.ts +15 -0
  430. package/dist/services/system-config.d.ts.map +1 -0
  431. package/dist/services/system-config.js +80 -0
  432. package/dist/services/system-config.js.map +1 -0
  433. package/dist/services/template-file-format.d.ts +32 -0
  434. package/dist/services/template-file-format.d.ts.map +1 -0
  435. package/dist/services/template-file-format.js +125 -0
  436. package/dist/services/template-file-format.js.map +1 -0
  437. package/dist/services/template-store.d.ts +21 -0
  438. package/dist/services/template-store.d.ts.map +1 -0
  439. package/dist/services/template-store.js +701 -0
  440. package/dist/services/template-store.js.map +1 -0
  441. package/dist/services/user-credential-store.d.ts +20 -0
  442. package/dist/services/user-credential-store.d.ts.map +1 -0
  443. package/dist/services/user-credential-store.js +243 -0
  444. package/dist/services/user-credential-store.js.map +1 -0
  445. package/dist/services/wizard-config-store.d.ts +38 -0
  446. package/dist/services/wizard-config-store.d.ts.map +1 -0
  447. package/dist/services/wizard-config-store.js +70 -0
  448. package/dist/services/wizard-config-store.js.map +1 -0
  449. package/dist/web-dist/assets/AdminPage-BrAU67Dg.js +1 -0
  450. package/dist/web-dist/assets/AgentAvatar-BKJckc1W.js +1 -0
  451. package/dist/web-dist/assets/AgentAvatar-Cq-M5jMd.css +1 -0
  452. package/dist/web-dist/assets/AppLayout-Bf0v_2wK.css +1 -0
  453. package/dist/web-dist/assets/AppLayout-DXgV0atq.js +1 -0
  454. package/dist/web-dist/assets/AssistantChatPage-uVLgKLay.js +6 -0
  455. package/dist/web-dist/assets/AssistantEditPage-Bab1X-DA.js +1 -0
  456. package/dist/web-dist/assets/AssistantVersionsPage-BQRw3BUF.js +1 -0
  457. package/dist/web-dist/assets/AvatarPicker-DmnkD8Rb.js +1 -0
  458. package/dist/web-dist/assets/AvatarPicker-LHUepNFa.css +1 -0
  459. package/dist/web-dist/assets/CeAuthProvider-38_x9VGA.js +1 -0
  460. package/dist/web-dist/assets/ChatHubPage-2l4cKq0x.css +1 -0
  461. package/dist/web-dist/assets/ChatHubPage-B2WduoUM.js +1 -0
  462. package/dist/web-dist/assets/ChatTab-CHpjEu8M.js +6 -0
  463. package/dist/web-dist/assets/CreateWizardPage-DFEQ3VX3.js +47 -0
  464. package/dist/web-dist/assets/CreateWizardPage-IqNXDOER.css +1 -0
  465. package/dist/web-dist/assets/CredentialsPage-CDeXpnLG.js +1 -0
  466. package/dist/web-dist/assets/CredentialsPage-aI4kLoJD.css +1 -0
  467. package/dist/web-dist/assets/DocsAboutPage-CMbxiw1u.js +26 -0
  468. package/dist/web-dist/assets/DocsChannelsPage-CtmKYKK_.js +1 -0
  469. package/dist/web-dist/assets/DocsGettingStartedPage-CpM7o8sw.js +1 -0
  470. package/dist/web-dist/assets/DocsGroupChatsPage-7w-RVSJR.js +1 -0
  471. package/dist/web-dist/assets/DocsHomePage-BGEU5xBg.js +1 -0
  472. package/dist/web-dist/assets/DocsInstancesPage-Sewnw_x7.js +1 -0
  473. package/dist/web-dist/assets/DocsLayout-S7-ONZwP.js +1 -0
  474. package/dist/web-dist/assets/DocsProvidersPage-MeWneL5K.js +1 -0
  475. package/dist/web-dist/assets/DocsSkillsPage-CzsHPXxE.js +1 -0
  476. package/dist/web-dist/assets/DocsTemplatesPage-BXASAEoO.js +1 -0
  477. package/dist/web-dist/assets/DocsWorkspacePage-qYNeK_YS.js +24 -0
  478. package/dist/web-dist/assets/ExportWizardPage-BhNvovbU.js +3 -0
  479. package/dist/web-dist/assets/ExportWizardPage-Cp-KSYUy.css +1 -0
  480. package/dist/web-dist/assets/GoogleOAuthCallback-CBvLawe2.js +1 -0
  481. package/dist/web-dist/assets/GroupChatPage-rMfhmtsX.js +1 -0
  482. package/dist/web-dist/assets/GroupChatsListPage-BOwxHFfA.js +1 -0
  483. package/dist/web-dist/assets/InstancePage-BBL68DKB.js +1 -0
  484. package/dist/web-dist/assets/InstancePage-CzysRY40.css +1 -0
  485. package/dist/web-dist/assets/MyAssistantsPage-B808ZfHg.css +1 -0
  486. package/dist/web-dist/assets/MyAssistantsPage-q3-hNMth.js +1 -0
  487. package/dist/web-dist/assets/ProfilePage-Dx8YdU59.js +1 -0
  488. package/dist/web-dist/assets/ProfilePage-JMOkUDx7.css +1 -0
  489. package/dist/web-dist/assets/SessionDrawer-Ba7pbZDJ.css +1 -0
  490. package/dist/web-dist/assets/SessionDrawer-CXzEQAfF.js +1 -0
  491. package/dist/web-dist/assets/SystemConfigPage-4dvxADwi.js +1 -0
  492. package/dist/web-dist/assets/SystemConfigPage-DRqVfLGt.css +1 -0
  493. package/dist/web-dist/assets/TemplatesPage-DqXuG-Gy.css +1 -0
  494. package/dist/web-dist/assets/TemplatesPage-HMS__ODO.js +1 -0
  495. package/dist/web-dist/assets/TestLoginPage-xVQL0lYP.js +1 -0
  496. package/dist/web-dist/assets/ThemeToggle-DymKEYXG.js +1 -0
  497. package/dist/web-dist/assets/WorkbenchPage-Bymo4SSt.css +1 -0
  498. package/dist/web-dist/assets/WorkbenchPage-ST3hVrbL.js +33 -0
  499. package/dist/web-dist/assets/api-B5psysvQ.js +1 -0
  500. package/dist/web-dist/assets/clock-dRyRszad.js +1 -0
  501. package/dist/web-dist/assets/createLucideIcon-DiGX-lN4.js +1 -0
  502. package/dist/web-dist/assets/group-chat-9BaA9G_8.css +1 -0
  503. package/dist/web-dist/assets/index-BqzqZJ96.js +26 -0
  504. package/dist/web-dist/assets/index-DyrDN1Of.css +1 -0
  505. package/dist/web-dist/assets/index-wWimwgy7.js +1 -0
  506. package/dist/web-dist/assets/provider-display-BgrE7u33.js +1 -0
  507. package/dist/web-dist/assets/types-1lNWpzYk.js +57 -0
  508. package/dist/web-dist/assets/types-B6ttO-6G.css +1 -0
  509. package/dist/web-dist/assets/useTranslation-B-8kenfJ.js +1 -0
  510. package/dist/web-dist/assets/zap-CVBnETFW.js +1 -0
  511. package/dist/web-dist/index.html +31 -0
  512. package/dist/web-dist/vite.svg +1 -0
  513. package/dist/ws/index.d.ts +7 -0
  514. package/dist/ws/index.d.ts.map +1 -0
  515. package/dist/ws/index.js +112 -0
  516. package/dist/ws/index.js.map +1 -0
  517. package/package.json +54 -0
@@ -0,0 +1,26 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/TestLoginPage-xVQL0lYP.js","assets/ThemeToggle-DymKEYXG.js","assets/api-B5psysvQ.js","assets/AppLayout-DXgV0atq.js","assets/useTranslation-B-8kenfJ.js","assets/createLucideIcon-DiGX-lN4.js","assets/zap-CVBnETFW.js","assets/AppLayout-Bf0v_2wK.css","assets/WorkbenchPage-ST3hVrbL.js","assets/clock-dRyRszad.js","assets/WorkbenchPage-Bymo4SSt.css","assets/InstancePage-BBL68DKB.js","assets/provider-display-BgrE7u33.js","assets/SessionDrawer-CXzEQAfF.js","assets/SessionDrawer-Ba7pbZDJ.css","assets/ChatTab-CHpjEu8M.js","assets/types-1lNWpzYk.js","assets/types-B6ttO-6G.css","assets/InstancePage-CzysRY40.css","assets/CreateWizardPage-IqNXDOER.css","assets/AdminPage-BrAU67Dg.js","assets/ProfilePage-Dx8YdU59.js","assets/ProfilePage-JMOkUDx7.css","assets/GoogleOAuthCallback-CBvLawe2.js","assets/ChatHubPage-B2WduoUM.js","assets/AgentAvatar-BKJckc1W.js","assets/index-wWimwgy7.js","assets/AgentAvatar-Cq-M5jMd.css","assets/ChatHubPage-2l4cKq0x.css","assets/GroupChatsListPage-BOwxHFfA.js","assets/group-chat-9BaA9G_8.css","assets/GroupChatPage-rMfhmtsX.js","assets/TemplatesPage-HMS__ODO.js","assets/TemplatesPage-DqXuG-Gy.css","assets/SystemConfigPage-4dvxADwi.js","assets/SystemConfigPage-DRqVfLGt.css","assets/CreateWizardPage-DFEQ3VX3.js","assets/AvatarPicker-DmnkD8Rb.js","assets/AvatarPicker-LHUepNFa.css","assets/CredentialsPage-CDeXpnLG.js","assets/CredentialsPage-aI4kLoJD.css","assets/MyAssistantsPage-q3-hNMth.js","assets/MyAssistantsPage-B808ZfHg.css","assets/AssistantChatPage-uVLgKLay.js","assets/AssistantVersionsPage-BQRw3BUF.js","assets/AssistantEditPage-Bab1X-DA.js","assets/ExportWizardPage-BhNvovbU.js","assets/ExportWizardPage-Cp-KSYUy.css","assets/DocsLayout-S7-ONZwP.js"])))=>i.map(i=>d[i]);
2
+ function Dy(i,l){for(var u=0;u<l.length;u++){const s=l[u];if(typeof s!="string"&&!Array.isArray(s)){for(const o in s)if(o!=="default"&&!(o in i)){const d=Object.getOwnPropertyDescriptor(s,o);d&&Object.defineProperty(i,o,d.get?d:{enumerable:!0,get:()=>s[o]})}}}return Object.freeze(Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}))}(function(){const l=document.createElement("link").relList;if(l&&l.supports&&l.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))s(o);new MutationObserver(o=>{for(const d of o)if(d.type==="childList")for(const f of d.addedNodes)f.tagName==="LINK"&&f.rel==="modulepreload"&&s(f)}).observe(document,{childList:!0,subtree:!0});function u(o){const d={};return o.integrity&&(d.integrity=o.integrity),o.referrerPolicy&&(d.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?d.credentials="include":o.crossOrigin==="anonymous"?d.credentials="omit":d.credentials="same-origin",d}function s(o){if(o.ep)return;o.ep=!0;const d=u(o);fetch(o.href,d)}})();const Ry="modulepreload",_y=function(i){return"/"+i},ph={},be=function(l,u,s){let o=Promise.resolve();if(u&&u.length>0){let m=function(g){return Promise.all(g.map(b=>Promise.resolve(b).then(y=>({status:"fulfilled",value:y}),y=>({status:"rejected",reason:y}))))};document.getElementsByTagName("link");const f=document.querySelector("meta[property=csp-nonce]"),h=f?.nonce||f?.getAttribute("nonce");o=m(u.map(g=>{if(g=_y(g),g in ph)return;ph[g]=!0;const b=g.endsWith(".css"),y=b?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${g}"]${y}`))return;const k=document.createElement("link");if(k.rel=b?"stylesheet":Ry,b||(k.as="script"),k.crossOrigin="",k.href=g,h&&k.setAttribute("nonce",h),document.head.appendChild(k),b)return new Promise((D,x)=>{k.addEventListener("load",D),k.addEventListener("error",()=>x(new Error(`Unable to preload CSS for ${g}`)))})}))}function d(f){const h=new Event("vite:preloadError",{cancelable:!0});if(h.payload=f,window.dispatchEvent(h),!h.defaultPrevented)throw f}return o.then(f=>{for(const h of f||[])h.status==="rejected"&&d(h.reason);return l().catch(d)})};function xy(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}var zu={exports:{}},nl={};var hh;function Ny(){if(hh)return nl;hh=1;var i=Symbol.for("react.transitional.element"),l=Symbol.for("react.fragment");function u(s,o,d){var f=null;if(d!==void 0&&(f=""+d),o.key!==void 0&&(f=""+o.key),"key"in o){d={};for(var h in o)h!=="key"&&(d[h]=o[h])}else d=o;return o=d.ref,{$$typeof:i,type:s,key:f,ref:o!==void 0?o:null,props:d}}return nl.Fragment=l,nl.jsx=u,nl.jsxs=u,nl}var mh;function Uy(){return mh||(mh=1,zu.exports=Ny()),zu.exports}var Y=Uy(),ku={exports:{}},le={};var gh;function By(){if(gh)return le;gh=1;var i=Symbol.for("react.transitional.element"),l=Symbol.for("react.portal"),u=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),d=Symbol.for("react.consumer"),f=Symbol.for("react.context"),h=Symbol.for("react.forward_ref"),m=Symbol.for("react.suspense"),g=Symbol.for("react.memo"),b=Symbol.for("react.lazy"),y=Symbol.for("react.activity"),k=Symbol.iterator;function D(C){return C===null||typeof C!="object"?null:(C=k&&C[k]||C["@@iterator"],typeof C=="function"?C:null)}var x={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},I=Object.assign,N={};function K(C,R,G){this.props=C,this.context=R,this.refs=N,this.updater=G||x}K.prototype.isReactComponent={},K.prototype.setState=function(C,R){if(typeof C!="object"&&typeof C!="function"&&C!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,C,R,"setState")},K.prototype.forceUpdate=function(C){this.updater.enqueueForceUpdate(this,C,"forceUpdate")};function j(){}j.prototype=K.prototype;function q(C,R,G){this.props=C,this.context=R,this.refs=N,this.updater=G||x}var Q=q.prototype=new j;Q.constructor=q,I(Q,K.prototype),Q.isPureReactComponent=!0;var ee=Array.isArray;function F(){}var V={H:null,A:null,T:null,S:null},te=Object.prototype.hasOwnProperty;function ne(C,R,G){var W=G.ref;return{$$typeof:i,type:C,key:R,ref:W!==void 0?W:null,props:G}}function me(C,R){return ne(C.type,R,C.props)}function De(C){return typeof C=="object"&&C!==null&&C.$$typeof===i}function Ae(C){var R={"=":"=0",":":"=2"};return"$"+C.replace(/[=:]/g,function(G){return R[G]})}var Se=/\/+/g;function ke(C,R){return typeof C=="object"&&C!==null&&C.key!=null?Ae(""+C.key):R.toString(36)}function xe(C){switch(C.status){case"fulfilled":return C.value;case"rejected":throw C.reason;default:switch(typeof C.status=="string"?C.then(F,F):(C.status="pending",C.then(function(R){C.status==="pending"&&(C.status="fulfilled",C.value=R)},function(R){C.status==="pending"&&(C.status="rejected",C.reason=R)})),C.status){case"fulfilled":return C.value;case"rejected":throw C.reason}}throw C}function M(C,R,G,W,oe){var ue=typeof C;(ue==="undefined"||ue==="boolean")&&(C=null);var we=!1;if(C===null)we=!0;else switch(ue){case"bigint":case"string":case"number":we=!0;break;case"object":switch(C.$$typeof){case i:case l:we=!0;break;case b:return we=C._init,M(we(C._payload),R,G,W,oe)}}if(we)return oe=oe(C),we=W===""?"."+ke(C,0):W,ee(oe)?(G="",we!=null&&(G=we.replace(Se,"$&/")+"/"),M(oe,R,G,"",function(ci){return ci})):oe!=null&&(De(oe)&&(oe=me(oe,G+(oe.key==null||C&&C.key===oe.key?"":(""+oe.key).replace(Se,"$&/")+"/")+we)),R.push(oe)),1;we=0;var rt=W===""?".":W+":";if(ee(C))for(var qe=0;qe<C.length;qe++)W=C[qe],ue=rt+ke(W,qe),we+=M(W,R,G,ue,oe);else if(qe=D(C),typeof qe=="function")for(C=qe.call(C),qe=0;!(W=C.next()).done;)W=W.value,ue=rt+ke(W,qe++),we+=M(W,R,G,ue,oe);else if(ue==="object"){if(typeof C.then=="function")return M(xe(C),R,G,W,oe);throw R=String(C),Error("Objects are not valid as a React child (found: "+(R==="[object Object]"?"object with keys {"+Object.keys(C).join(", ")+"}":R)+"). If you meant to render a collection of children, use an array instead.")}return we}function H(C,R,G){if(C==null)return C;var W=[],oe=0;return M(C,W,"","",function(ue){return R.call(G,ue,oe++)}),W}function J(C){if(C._status===-1){var R=C._result;R=R(),R.then(function(G){(C._status===0||C._status===-1)&&(C._status=1,C._result=G)},function(G){(C._status===0||C._status===-1)&&(C._status=2,C._result=G)}),C._status===-1&&(C._status=0,C._result=R)}if(C._status===1)return C._result.default;throw C._result}var ge=typeof reportError=="function"?reportError:function(C){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var R=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof C=="object"&&C!==null&&typeof C.message=="string"?String(C.message):String(C),error:C});if(!window.dispatchEvent(R))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",C);return}console.error(C)},Ee={map:H,forEach:function(C,R,G){H(C,function(){R.apply(this,arguments)},G)},count:function(C){var R=0;return H(C,function(){R++}),R},toArray:function(C){return H(C,function(R){return R})||[]},only:function(C){if(!De(C))throw Error("React.Children.only expected to receive a single React element child.");return C}};return le.Activity=y,le.Children=Ee,le.Component=K,le.Fragment=u,le.Profiler=o,le.PureComponent=q,le.StrictMode=s,le.Suspense=m,le.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=V,le.__COMPILER_RUNTIME={__proto__:null,c:function(C){return V.H.useMemoCache(C)}},le.cache=function(C){return function(){return C.apply(null,arguments)}},le.cacheSignal=function(){return null},le.cloneElement=function(C,R,G){if(C==null)throw Error("The argument must be a React element, but you passed "+C+".");var W=I({},C.props),oe=C.key;if(R!=null)for(ue in R.key!==void 0&&(oe=""+R.key),R)!te.call(R,ue)||ue==="key"||ue==="__self"||ue==="__source"||ue==="ref"&&R.ref===void 0||(W[ue]=R[ue]);var ue=arguments.length-2;if(ue===1)W.children=G;else if(1<ue){for(var we=Array(ue),rt=0;rt<ue;rt++)we[rt]=arguments[rt+2];W.children=we}return ne(C.type,oe,W)},le.createContext=function(C){return C={$$typeof:f,_currentValue:C,_currentValue2:C,_threadCount:0,Provider:null,Consumer:null},C.Provider=C,C.Consumer={$$typeof:d,_context:C},C},le.createElement=function(C,R,G){var W,oe={},ue=null;if(R!=null)for(W in R.key!==void 0&&(ue=""+R.key),R)te.call(R,W)&&W!=="key"&&W!=="__self"&&W!=="__source"&&(oe[W]=R[W]);var we=arguments.length-2;if(we===1)oe.children=G;else if(1<we){for(var rt=Array(we),qe=0;qe<we;qe++)rt[qe]=arguments[qe+2];oe.children=rt}if(C&&C.defaultProps)for(W in we=C.defaultProps,we)oe[W]===void 0&&(oe[W]=we[W]);return ne(C,ue,oe)},le.createRef=function(){return{current:null}},le.forwardRef=function(C){return{$$typeof:h,render:C}},le.isValidElement=De,le.lazy=function(C){return{$$typeof:b,_payload:{_status:-1,_result:C},_init:J}},le.memo=function(C,R){return{$$typeof:g,type:C,compare:R===void 0?null:R}},le.startTransition=function(C){var R=V.T,G={};V.T=G;try{var W=C(),oe=V.S;oe!==null&&oe(G,W),typeof W=="object"&&W!==null&&typeof W.then=="function"&&W.then(F,ge)}catch(ue){ge(ue)}finally{R!==null&&G.types!==null&&(R.types=G.types),V.T=R}},le.unstable_useCacheRefresh=function(){return V.H.useCacheRefresh()},le.use=function(C){return V.H.use(C)},le.useActionState=function(C,R,G){return V.H.useActionState(C,R,G)},le.useCallback=function(C,R){return V.H.useCallback(C,R)},le.useContext=function(C){return V.H.useContext(C)},le.useDebugValue=function(){},le.useDeferredValue=function(C,R){return V.H.useDeferredValue(C,R)},le.useEffect=function(C,R){return V.H.useEffect(C,R)},le.useEffectEvent=function(C){return V.H.useEffectEvent(C)},le.useId=function(){return V.H.useId()},le.useImperativeHandle=function(C,R,G){return V.H.useImperativeHandle(C,R,G)},le.useInsertionEffect=function(C,R){return V.H.useInsertionEffect(C,R)},le.useLayoutEffect=function(C,R){return V.H.useLayoutEffect(C,R)},le.useMemo=function(C,R){return V.H.useMemo(C,R)},le.useOptimistic=function(C,R){return V.H.useOptimistic(C,R)},le.useReducer=function(C,R,G){return V.H.useReducer(C,R,G)},le.useRef=function(C){return V.H.useRef(C)},le.useState=function(C){return V.H.useState(C)},le.useSyncExternalStore=function(C,R,G){return V.H.useSyncExternalStore(C,R,G)},le.useTransition=function(){return V.H.useTransition()},le.version="19.2.4",le}var vh;function tc(){return vh||(vh=1,ku.exports=By()),ku.exports}var E=tc();const B=xy(E),WT=Dy({__proto__:null,default:B},[E]);var Lu={exports:{}},il={},Mu={exports:{}},Ou={};var yh;function Iy(){return yh||(yh=1,(function(i){function l(M,H){var J=M.length;M.push(H);e:for(;0<J;){var ge=J-1>>>1,Ee=M[ge];if(0<o(Ee,H))M[ge]=H,M[J]=Ee,J=ge;else break e}}function u(M){return M.length===0?null:M[0]}function s(M){if(M.length===0)return null;var H=M[0],J=M.pop();if(J!==H){M[0]=J;e:for(var ge=0,Ee=M.length,C=Ee>>>1;ge<C;){var R=2*(ge+1)-1,G=M[R],W=R+1,oe=M[W];if(0>o(G,J))W<Ee&&0>o(oe,G)?(M[ge]=oe,M[W]=J,ge=W):(M[ge]=G,M[R]=J,ge=R);else if(W<Ee&&0>o(oe,J))M[ge]=oe,M[W]=J,ge=W;else break e}}return H}function o(M,H){var J=M.sortIndex-H.sortIndex;return J!==0?J:M.id-H.id}if(i.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var d=performance;i.unstable_now=function(){return d.now()}}else{var f=Date,h=f.now();i.unstable_now=function(){return f.now()-h}}var m=[],g=[],b=1,y=null,k=3,D=!1,x=!1,I=!1,N=!1,K=typeof setTimeout=="function"?setTimeout:null,j=typeof clearTimeout=="function"?clearTimeout:null,q=typeof setImmediate<"u"?setImmediate:null;function Q(M){for(var H=u(g);H!==null;){if(H.callback===null)s(g);else if(H.startTime<=M)s(g),H.sortIndex=H.expirationTime,l(m,H);else break;H=u(g)}}function ee(M){if(I=!1,Q(M),!x)if(u(m)!==null)x=!0,F||(F=!0,Ae());else{var H=u(g);H!==null&&xe(ee,H.startTime-M)}}var F=!1,V=-1,te=5,ne=-1;function me(){return N?!0:!(i.unstable_now()-ne<te)}function De(){if(N=!1,F){var M=i.unstable_now();ne=M;var H=!0;try{e:{x=!1,I&&(I=!1,j(V),V=-1),D=!0;var J=k;try{t:{for(Q(M),y=u(m);y!==null&&!(y.expirationTime>M&&me());){var ge=y.callback;if(typeof ge=="function"){y.callback=null,k=y.priorityLevel;var Ee=ge(y.expirationTime<=M);if(M=i.unstable_now(),typeof Ee=="function"){y.callback=Ee,Q(M),H=!0;break t}y===u(m)&&s(m),Q(M)}else s(m);y=u(m)}if(y!==null)H=!0;else{var C=u(g);C!==null&&xe(ee,C.startTime-M),H=!1}}break e}finally{y=null,k=J,D=!1}H=void 0}}finally{H?Ae():F=!1}}}var Ae;if(typeof q=="function")Ae=function(){q(De)};else if(typeof MessageChannel<"u"){var Se=new MessageChannel,ke=Se.port2;Se.port1.onmessage=De,Ae=function(){ke.postMessage(null)}}else Ae=function(){K(De,0)};function xe(M,H){V=K(function(){M(i.unstable_now())},H)}i.unstable_IdlePriority=5,i.unstable_ImmediatePriority=1,i.unstable_LowPriority=4,i.unstable_NormalPriority=3,i.unstable_Profiling=null,i.unstable_UserBlockingPriority=2,i.unstable_cancelCallback=function(M){M.callback=null},i.unstable_forceFrameRate=function(M){0>M||125<M?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):te=0<M?Math.floor(1e3/M):5},i.unstable_getCurrentPriorityLevel=function(){return k},i.unstable_next=function(M){switch(k){case 1:case 2:case 3:var H=3;break;default:H=k}var J=k;k=H;try{return M()}finally{k=J}},i.unstable_requestPaint=function(){N=!0},i.unstable_runWithPriority=function(M,H){switch(M){case 1:case 2:case 3:case 4:case 5:break;default:M=3}var J=k;k=M;try{return H()}finally{k=J}},i.unstable_scheduleCallback=function(M,H,J){var ge=i.unstable_now();switch(typeof J=="object"&&J!==null?(J=J.delay,J=typeof J=="number"&&0<J?ge+J:ge):J=ge,M){case 1:var Ee=-1;break;case 2:Ee=250;break;case 5:Ee=1073741823;break;case 4:Ee=1e4;break;default:Ee=5e3}return Ee=J+Ee,M={id:b++,callback:H,priorityLevel:M,startTime:J,expirationTime:Ee,sortIndex:-1},J>ge?(M.sortIndex=J,l(g,M),u(m)===null&&M===u(g)&&(I?(j(V),V=-1):I=!0,xe(ee,J-ge))):(M.sortIndex=Ee,l(m,M),x||D||(x=!0,F||(F=!0,Ae()))),M},i.unstable_shouldYield=me,i.unstable_wrapCallback=function(M){var H=k;return function(){var J=k;k=H;try{return M.apply(this,arguments)}finally{k=J}}}})(Ou)),Ou}var bh;function jy(){return bh||(bh=1,Mu.exports=Iy()),Mu.exports}var Du={exports:{}},lt={};var Sh;function Hy(){if(Sh)return lt;Sh=1;var i=tc();function l(m){var g="https://react.dev/errors/"+m;if(1<arguments.length){g+="?args[]="+encodeURIComponent(arguments[1]);for(var b=2;b<arguments.length;b++)g+="&args[]="+encodeURIComponent(arguments[b])}return"Minified React error #"+m+"; visit "+g+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function u(){}var s={d:{f:u,r:function(){throw Error(l(522))},D:u,C:u,L:u,m:u,X:u,S:u,M:u},p:0,findDOMNode:null},o=Symbol.for("react.portal");function d(m,g,b){var y=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:o,key:y==null?null:""+y,children:m,containerInfo:g,implementation:b}}var f=i.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function h(m,g){if(m==="font")return"";if(typeof g=="string")return g==="use-credentials"?g:""}return lt.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=s,lt.createPortal=function(m,g){var b=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!g||g.nodeType!==1&&g.nodeType!==9&&g.nodeType!==11)throw Error(l(299));return d(m,g,null,b)},lt.flushSync=function(m){var g=f.T,b=s.p;try{if(f.T=null,s.p=2,m)return m()}finally{f.T=g,s.p=b,s.d.f()}},lt.preconnect=function(m,g){typeof m=="string"&&(g?(g=g.crossOrigin,g=typeof g=="string"?g==="use-credentials"?g:"":void 0):g=null,s.d.C(m,g))},lt.prefetchDNS=function(m){typeof m=="string"&&s.d.D(m)},lt.preinit=function(m,g){if(typeof m=="string"&&g&&typeof g.as=="string"){var b=g.as,y=h(b,g.crossOrigin),k=typeof g.integrity=="string"?g.integrity:void 0,D=typeof g.fetchPriority=="string"?g.fetchPriority:void 0;b==="style"?s.d.S(m,typeof g.precedence=="string"?g.precedence:void 0,{crossOrigin:y,integrity:k,fetchPriority:D}):b==="script"&&s.d.X(m,{crossOrigin:y,integrity:k,fetchPriority:D,nonce:typeof g.nonce=="string"?g.nonce:void 0})}},lt.preinitModule=function(m,g){if(typeof m=="string")if(typeof g=="object"&&g!==null){if(g.as==null||g.as==="script"){var b=h(g.as,g.crossOrigin);s.d.M(m,{crossOrigin:b,integrity:typeof g.integrity=="string"?g.integrity:void 0,nonce:typeof g.nonce=="string"?g.nonce:void 0})}}else g==null&&s.d.M(m)},lt.preload=function(m,g){if(typeof m=="string"&&typeof g=="object"&&g!==null&&typeof g.as=="string"){var b=g.as,y=h(b,g.crossOrigin);s.d.L(m,b,{crossOrigin:y,integrity:typeof g.integrity=="string"?g.integrity:void 0,nonce:typeof g.nonce=="string"?g.nonce:void 0,type:typeof g.type=="string"?g.type:void 0,fetchPriority:typeof g.fetchPriority=="string"?g.fetchPriority:void 0,referrerPolicy:typeof g.referrerPolicy=="string"?g.referrerPolicy:void 0,imageSrcSet:typeof g.imageSrcSet=="string"?g.imageSrcSet:void 0,imageSizes:typeof g.imageSizes=="string"?g.imageSizes:void 0,media:typeof g.media=="string"?g.media:void 0})}},lt.preloadModule=function(m,g){if(typeof m=="string")if(g){var b=h(g.as,g.crossOrigin);s.d.m(m,{as:typeof g.as=="string"&&g.as!=="script"?g.as:void 0,crossOrigin:b,integrity:typeof g.integrity=="string"?g.integrity:void 0})}else s.d.m(m)},lt.requestFormReset=function(m){s.d.r(m)},lt.unstable_batchedUpdates=function(m,g){return m(g)},lt.useFormState=function(m,g,b){return f.H.useFormState(m,g,b)},lt.useFormStatus=function(){return f.H.useHostTransitionStatus()},lt.version="19.2.4",lt}var Ch;function dm(){if(Ch)return Du.exports;Ch=1;function i(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(i)}catch(l){console.error(l)}}return i(),Du.exports=Hy(),Du.exports}var Ah;function Ky(){if(Ah)return il;Ah=1;var i=jy(),l=tc(),u=dm();function s(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var a=2;a<arguments.length;a++)t+="&args[]="+encodeURIComponent(arguments[a])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function o(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function d(e){var t=e,a=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,(t.flags&4098)!==0&&(a=t.return),e=t.return;while(e)}return t.tag===3?a:null}function f(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function h(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function m(e){if(d(e)!==e)throw Error(s(188))}function g(e){var t=e.alternate;if(!t){if(t=d(e),t===null)throw Error(s(188));return t!==e?null:e}for(var a=e,n=t;;){var r=a.return;if(r===null)break;var c=r.alternate;if(c===null){if(n=r.return,n!==null){a=n;continue}break}if(r.child===c.child){for(c=r.child;c;){if(c===a)return m(r),e;if(c===n)return m(r),t;c=c.sibling}throw Error(s(188))}if(a.return!==n.return)a=r,n=c;else{for(var p=!1,v=r.child;v;){if(v===a){p=!0,a=r,n=c;break}if(v===n){p=!0,n=r,a=c;break}v=v.sibling}if(!p){for(v=c.child;v;){if(v===a){p=!0,a=c,n=r;break}if(v===n){p=!0,n=c,a=r;break}v=v.sibling}if(!p)throw Error(s(189))}}if(a.alternate!==n)throw Error(s(190))}if(a.tag!==3)throw Error(s(188));return a.stateNode.current===a?e:t}function b(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=b(e),t!==null)return t;e=e.sibling}return null}var y=Object.assign,k=Symbol.for("react.element"),D=Symbol.for("react.transitional.element"),x=Symbol.for("react.portal"),I=Symbol.for("react.fragment"),N=Symbol.for("react.strict_mode"),K=Symbol.for("react.profiler"),j=Symbol.for("react.consumer"),q=Symbol.for("react.context"),Q=Symbol.for("react.forward_ref"),ee=Symbol.for("react.suspense"),F=Symbol.for("react.suspense_list"),V=Symbol.for("react.memo"),te=Symbol.for("react.lazy"),ne=Symbol.for("react.activity"),me=Symbol.for("react.memo_cache_sentinel"),De=Symbol.iterator;function Ae(e){return e===null||typeof e!="object"?null:(e=De&&e[De]||e["@@iterator"],typeof e=="function"?e:null)}var Se=Symbol.for("react.client.reference");function ke(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===Se?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case I:return"Fragment";case K:return"Profiler";case N:return"StrictMode";case ee:return"Suspense";case F:return"SuspenseList";case ne:return"Activity"}if(typeof e=="object")switch(e.$$typeof){case x:return"Portal";case q:return e.displayName||"Context";case j:return(e._context.displayName||"Context")+".Consumer";case Q:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case V:return t=e.displayName||null,t!==null?t:ke(e.type)||"Memo";case te:t=e._payload,e=e._init;try{return ke(e(t))}catch{}}return null}var xe=Array.isArray,M=l.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,H=u.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,J={pending:!1,data:null,method:null,action:null},ge=[],Ee=-1;function C(e){return{current:e}}function R(e){0>Ee||(e.current=ge[Ee],ge[Ee]=null,Ee--)}function G(e,t){Ee++,ge[Ee]=e.current,e.current=t}var W=C(null),oe=C(null),ue=C(null),we=C(null);function rt(e,t){switch(G(ue,t),G(oe,e),G(W,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Np(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Np(t),e=Up(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}R(W),G(W,e)}function qe(){R(W),R(oe),R(ue)}function ci(e){e.memoizedState!==null&&G(we,e);var t=W.current,a=Up(t,e.type);t!==a&&(G(oe,e),G(W,a))}function yl(e){oe.current===e&&(R(W),R(oe)),we.current===e&&(R(we),Ji._currentValue=J)}var ur,dc;function $a(e){if(ur===void 0)try{throw Error()}catch(a){var t=a.stack.trim().match(/\n( *(at )?)/);ur=t&&t[1]||"",dc=-1<a.stack.indexOf(`
3
+ at`)?" (<anonymous>)":-1<a.stack.indexOf("@")?"@unknown:0:0":""}return`
4
+ `+ur+e+dc}var cr=!1;function dr(e,t){if(!e||cr)return"";cr=!0;var a=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var n={DetermineComponentFrameRoot:function(){try{if(t){var U=function(){throw Error()};if(Object.defineProperty(U.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(U,[])}catch(L){var z=L}Reflect.construct(e,[],U)}else{try{U.call()}catch(L){z=L}e.call(U.prototype)}}else{try{throw Error()}catch(L){z=L}(U=e())&&typeof U.catch=="function"&&U.catch(function(){})}}catch(L){if(L&&z&&typeof L.stack=="string")return[L.stack,z.stack]}return[null,null]}};n.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var r=Object.getOwnPropertyDescriptor(n.DetermineComponentFrameRoot,"name");r&&r.configurable&&Object.defineProperty(n.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var c=n.DetermineComponentFrameRoot(),p=c[0],v=c[1];if(p&&v){var S=p.split(`
5
+ `),P=v.split(`
6
+ `);for(r=n=0;n<S.length&&!S[n].includes("DetermineComponentFrameRoot");)n++;for(;r<P.length&&!P[r].includes("DetermineComponentFrameRoot");)r++;if(n===S.length||r===P.length)for(n=S.length-1,r=P.length-1;1<=n&&0<=r&&S[n]!==P[r];)r--;for(;1<=n&&0<=r;n--,r--)if(S[n]!==P[r]){if(n!==1||r!==1)do if(n--,r--,0>r||S[n]!==P[r]){var O=`
7
+ `+S[n].replace(" at new "," at ");return e.displayName&&O.includes("<anonymous>")&&(O=O.replace("<anonymous>",e.displayName)),O}while(1<=n&&0<=r);break}}}finally{cr=!1,Error.prepareStackTrace=a}return(a=e?e.displayName||e.name:"")?$a(a):""}function ug(e,t){switch(e.tag){case 26:case 27:case 5:return $a(e.type);case 16:return $a("Lazy");case 13:return e.child!==t&&t!==null?$a("Suspense Fallback"):$a("Suspense");case 19:return $a("SuspenseList");case 0:case 15:return dr(e.type,!1);case 11:return dr(e.type.render,!1);case 1:return dr(e.type,!0);case 31:return $a("Activity");default:return""}}function fc(e){try{var t="",a=null;do t+=ug(e,a),a=e,e=e.return;while(e);return t}catch(n){return`
8
+ Error generating stack: `+n.message+`
9
+ `+n.stack}}var fr=Object.prototype.hasOwnProperty,pr=i.unstable_scheduleCallback,hr=i.unstable_cancelCallback,cg=i.unstable_shouldYield,dg=i.unstable_requestPaint,bt=i.unstable_now,fg=i.unstable_getCurrentPriorityLevel,pc=i.unstable_ImmediatePriority,hc=i.unstable_UserBlockingPriority,bl=i.unstable_NormalPriority,pg=i.unstable_LowPriority,mc=i.unstable_IdlePriority,hg=i.log,mg=i.unstable_setDisableYieldValue,di=null,St=null;function Sa(e){if(typeof hg=="function"&&mg(e),St&&typeof St.setStrictMode=="function")try{St.setStrictMode(di,e)}catch{}}var Ct=Math.clz32?Math.clz32:yg,gg=Math.log,vg=Math.LN2;function yg(e){return e>>>=0,e===0?32:31-(gg(e)/vg|0)|0}var Sl=256,Cl=262144,Al=4194304;function Za(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function El(e,t,a){var n=e.pendingLanes;if(n===0)return 0;var r=0,c=e.suspendedLanes,p=e.pingedLanes;e=e.warmLanes;var v=n&134217727;return v!==0?(n=v&~c,n!==0?r=Za(n):(p&=v,p!==0?r=Za(p):a||(a=v&~e,a!==0&&(r=Za(a))))):(v=n&~c,v!==0?r=Za(v):p!==0?r=Za(p):a||(a=n&~e,a!==0&&(r=Za(a)))),r===0?0:t!==0&&t!==r&&(t&c)===0&&(c=r&-r,a=t&-t,c>=a||c===32&&(a&4194048)!==0)?t:r}function fi(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function bg(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function gc(){var e=Al;return Al<<=1,(Al&62914560)===0&&(Al=4194304),e}function mr(e){for(var t=[],a=0;31>a;a++)t.push(e);return t}function pi(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Sg(e,t,a,n,r,c){var p=e.pendingLanes;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=a,e.entangledLanes&=a,e.errorRecoveryDisabledLanes&=a,e.shellSuspendCounter=0;var v=e.entanglements,S=e.expirationTimes,P=e.hiddenUpdates;for(a=p&~a;0<a;){var O=31-Ct(a),U=1<<O;v[O]=0,S[O]=-1;var z=P[O];if(z!==null)for(P[O]=null,O=0;O<z.length;O++){var L=z[O];L!==null&&(L.lane&=-536870913)}a&=~U}n!==0&&vc(e,n,0),c!==0&&r===0&&e.tag!==0&&(e.suspendedLanes|=c&~(p&~t))}function vc(e,t,a){e.pendingLanes|=t,e.suspendedLanes&=~t;var n=31-Ct(t);e.entangledLanes|=t,e.entanglements[n]=e.entanglements[n]|1073741824|a&261930}function yc(e,t){var a=e.entangledLanes|=t;for(e=e.entanglements;a;){var n=31-Ct(a),r=1<<n;r&t|e[n]&t&&(e[n]|=t),a&=~r}}function bc(e,t){var a=t&-t;return a=(a&42)!==0?1:gr(a),(a&(e.suspendedLanes|t))!==0?0:a}function gr(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function vr(e){return e&=-e,2<e?8<e?(e&134217727)!==0?32:268435456:8:2}function Sc(){var e=H.p;return e!==0?e:(e=window.event,e===void 0?32:oh(e.type))}function Cc(e,t){var a=H.p;try{return H.p=e,t()}finally{H.p=a}}var Ca=Math.random().toString(36).slice(2),et="__reactFiber$"+Ca,ft="__reactProps$"+Ca,yn="__reactContainer$"+Ca,yr="__reactEvents$"+Ca,Cg="__reactListeners$"+Ca,Ag="__reactHandles$"+Ca,Ac="__reactResources$"+Ca,hi="__reactMarker$"+Ca;function br(e){delete e[et],delete e[ft],delete e[yr],delete e[Cg],delete e[Ag]}function bn(e){var t=e[et];if(t)return t;for(var a=e.parentNode;a;){if(t=a[yn]||a[et]){if(a=t.alternate,t.child!==null||a!==null&&a.child!==null)for(e=Gp(e);e!==null;){if(a=e[et])return a;e=Gp(e)}return t}e=a,a=e.parentNode}return null}function Sn(e){if(e=e[et]||e[yn]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function mi(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(s(33))}function Cn(e){var t=e[Ac];return t||(t=e[Ac]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function Qe(e){e[hi]=!0}var Ec=new Set,wc={};function Qa(e,t){An(e,t),An(e+"Capture",t)}function An(e,t){for(wc[e]=t,e=0;e<t.length;e++)Ec.add(t[e])}var Eg=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Tc={},Pc={};function wg(e){return fr.call(Pc,e)?!0:fr.call(Tc,e)?!1:Eg.test(e)?Pc[e]=!0:(Tc[e]=!0,!1)}function wl(e,t,a){if(wg(t))if(a===null)e.removeAttribute(t);else{switch(typeof a){case"undefined":case"function":case"symbol":e.removeAttribute(t);return;case"boolean":var n=t.toLowerCase().slice(0,5);if(n!=="data-"&&n!=="aria-"){e.removeAttribute(t);return}}e.setAttribute(t,""+a)}}function Tl(e,t,a){if(a===null)e.removeAttribute(t);else{switch(typeof a){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(t);return}e.setAttribute(t,""+a)}}function ea(e,t,a,n){if(n===null)e.removeAttribute(a);else{switch(typeof n){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(a);return}e.setAttributeNS(t,a,""+n)}}function Ot(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function zc(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Tg(e,t,a){var n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var r=n.get,c=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return r.call(this)},set:function(p){a=""+p,c.call(this,p)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return a},setValue:function(p){a=""+p},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Sr(e){if(!e._valueTracker){var t=zc(e)?"checked":"value";e._valueTracker=Tg(e,t,""+e[t])}}function kc(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var a=t.getValue(),n="";return e&&(n=zc(e)?e.checked?"true":"false":e.value),e=n,e!==a?(t.setValue(e),!0):!1}function Pl(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var Pg=/[\n"\\]/g;function Dt(e){return e.replace(Pg,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function Cr(e,t,a,n,r,c,p,v){e.name="",p!=null&&typeof p!="function"&&typeof p!="symbol"&&typeof p!="boolean"?e.type=p:e.removeAttribute("type"),t!=null?p==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+Ot(t)):e.value!==""+Ot(t)&&(e.value=""+Ot(t)):p!=="submit"&&p!=="reset"||e.removeAttribute("value"),t!=null?Ar(e,p,Ot(t)):a!=null?Ar(e,p,Ot(a)):n!=null&&e.removeAttribute("value"),r==null&&c!=null&&(e.defaultChecked=!!c),r!=null&&(e.checked=r&&typeof r!="function"&&typeof r!="symbol"),v!=null&&typeof v!="function"&&typeof v!="symbol"&&typeof v!="boolean"?e.name=""+Ot(v):e.removeAttribute("name")}function Lc(e,t,a,n,r,c,p,v){if(c!=null&&typeof c!="function"&&typeof c!="symbol"&&typeof c!="boolean"&&(e.type=c),t!=null||a!=null){if(!(c!=="submit"&&c!=="reset"||t!=null)){Sr(e);return}a=a!=null?""+Ot(a):"",t=t!=null?""+Ot(t):a,v||t===e.value||(e.value=t),e.defaultValue=t}n=n??r,n=typeof n!="function"&&typeof n!="symbol"&&!!n,e.checked=v?e.checked:!!n,e.defaultChecked=!!n,p!=null&&typeof p!="function"&&typeof p!="symbol"&&typeof p!="boolean"&&(e.name=p),Sr(e)}function Ar(e,t,a){t==="number"&&Pl(e.ownerDocument)===e||e.defaultValue===""+a||(e.defaultValue=""+a)}function En(e,t,a,n){if(e=e.options,t){t={};for(var r=0;r<a.length;r++)t["$"+a[r]]=!0;for(a=0;a<e.length;a++)r=t.hasOwnProperty("$"+e[a].value),e[a].selected!==r&&(e[a].selected=r),r&&n&&(e[a].defaultSelected=!0)}else{for(a=""+Ot(a),t=null,r=0;r<e.length;r++){if(e[r].value===a){e[r].selected=!0,n&&(e[r].defaultSelected=!0);return}t!==null||e[r].disabled||(t=e[r])}t!==null&&(t.selected=!0)}}function Mc(e,t,a){if(t!=null&&(t=""+Ot(t),t!==e.value&&(e.value=t),a==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=a!=null?""+Ot(a):""}function Oc(e,t,a,n){if(t==null){if(n!=null){if(a!=null)throw Error(s(92));if(xe(n)){if(1<n.length)throw Error(s(93));n=n[0]}a=n}a==null&&(a=""),t=a}a=Ot(t),e.defaultValue=a,n=e.textContent,n===a&&n!==""&&n!==null&&(e.value=n),Sr(e)}function wn(e,t){if(t){var a=e.firstChild;if(a&&a===e.lastChild&&a.nodeType===3){a.nodeValue=t;return}}e.textContent=t}var zg=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function Dc(e,t,a){var n=t.indexOf("--")===0;a==null||typeof a=="boolean"||a===""?n?e.setProperty(t,""):t==="float"?e.cssFloat="":e[t]="":n?e.setProperty(t,a):typeof a!="number"||a===0||zg.has(t)?t==="float"?e.cssFloat=a:e[t]=(""+a).trim():e[t]=a+"px"}function Rc(e,t,a){if(t!=null&&typeof t!="object")throw Error(s(62));if(e=e.style,a!=null){for(var n in a)!a.hasOwnProperty(n)||t!=null&&t.hasOwnProperty(n)||(n.indexOf("--")===0?e.setProperty(n,""):n==="float"?e.cssFloat="":e[n]="");for(var r in t)n=t[r],t.hasOwnProperty(r)&&a[r]!==n&&Dc(e,r,n)}else for(var c in t)t.hasOwnProperty(c)&&Dc(e,c,t[c])}function Er(e){if(e.indexOf("-")===-1)return!1;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var kg=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),Lg=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function zl(e){return Lg.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}function ta(){}var wr=null;function Tr(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Tn=null,Pn=null;function _c(e){var t=Sn(e);if(t&&(e=t.stateNode)){var a=e[ft]||null;e:switch(e=t.stateNode,t.type){case"input":if(Cr(e,a.value,a.defaultValue,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name),t=a.name,a.type==="radio"&&t!=null){for(a=e;a.parentNode;)a=a.parentNode;for(a=a.querySelectorAll('input[name="'+Dt(""+t)+'"][type="radio"]'),t=0;t<a.length;t++){var n=a[t];if(n!==e&&n.form===e.form){var r=n[ft]||null;if(!r)throw Error(s(90));Cr(n,r.value,r.defaultValue,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name)}}for(t=0;t<a.length;t++)n=a[t],n.form===e.form&&kc(n)}break e;case"textarea":Mc(e,a.value,a.defaultValue);break e;case"select":t=a.value,t!=null&&En(e,!!a.multiple,t,!1)}}}var Pr=!1;function xc(e,t,a){if(Pr)return e(t,a);Pr=!0;try{var n=e(t);return n}finally{if(Pr=!1,(Tn!==null||Pn!==null)&&(mo(),Tn&&(t=Tn,e=Pn,Pn=Tn=null,_c(t),e)))for(t=0;t<e.length;t++)_c(e[t])}}function gi(e,t){var a=e.stateNode;if(a===null)return null;var n=a[ft]||null;if(n===null)return null;a=n[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(n=!n.disabled)||(e=e.type,n=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!n;break e;default:e=!1}if(e)return null;if(a&&typeof a!="function")throw Error(s(231,t,typeof a));return a}var aa=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),zr=!1;if(aa)try{var vi={};Object.defineProperty(vi,"passive",{get:function(){zr=!0}}),window.addEventListener("test",vi,vi),window.removeEventListener("test",vi,vi)}catch{zr=!1}var Aa=null,kr=null,kl=null;function Nc(){if(kl)return kl;var e,t=kr,a=t.length,n,r="value"in Aa?Aa.value:Aa.textContent,c=r.length;for(e=0;e<a&&t[e]===r[e];e++);var p=a-e;for(n=1;n<=p&&t[a-n]===r[c-n];n++);return kl=r.slice(e,1<n?1-n:void 0)}function Ll(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function Ml(){return!0}function Uc(){return!1}function pt(e){function t(a,n,r,c,p){this._reactName=a,this._targetInst=r,this.type=n,this.nativeEvent=c,this.target=p,this.currentTarget=null;for(var v in e)e.hasOwnProperty(v)&&(a=e[v],this[v]=a?a(c):c[v]);return this.isDefaultPrevented=(c.defaultPrevented!=null?c.defaultPrevented:c.returnValue===!1)?Ml:Uc,this.isPropagationStopped=Uc,this}return y(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():typeof a.returnValue!="unknown"&&(a.returnValue=!1),this.isDefaultPrevented=Ml)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():typeof a.cancelBubble!="unknown"&&(a.cancelBubble=!0),this.isPropagationStopped=Ml)},persist:function(){},isPersistent:Ml}),t}var Xa={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Ol=pt(Xa),yi=y({},Xa,{view:0,detail:0}),Mg=pt(yi),Lr,Mr,bi,Dl=y({},yi,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Dr,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==bi&&(bi&&e.type==="mousemove"?(Lr=e.screenX-bi.screenX,Mr=e.screenY-bi.screenY):Mr=Lr=0,bi=e),Lr)},movementY:function(e){return"movementY"in e?e.movementY:Mr}}),Bc=pt(Dl),Og=y({},Dl,{dataTransfer:0}),Dg=pt(Og),Rg=y({},yi,{relatedTarget:0}),Or=pt(Rg),_g=y({},Xa,{animationName:0,elapsedTime:0,pseudoElement:0}),xg=pt(_g),Ng=y({},Xa,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Ug=pt(Ng),Bg=y({},Xa,{data:0}),Ic=pt(Bg),Ig={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},jg={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Hg={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Kg(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Hg[e])?!!t[e]:!1}function Dr(){return Kg}var qg=y({},yi,{key:function(e){if(e.key){var t=Ig[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=Ll(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?jg[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Dr,charCode:function(e){return e.type==="keypress"?Ll(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?Ll(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),Gg=pt(qg),Vg=y({},Dl,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),jc=pt(Vg),Fg=y({},yi,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Dr}),Yg=pt(Fg),Wg=y({},Xa,{propertyName:0,elapsedTime:0,pseudoElement:0}),$g=pt(Wg),Zg=y({},Dl,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Qg=pt(Zg),Xg=y({},Xa,{newState:0,oldState:0}),Jg=pt(Xg),ev=[9,13,27,32],Rr=aa&&"CompositionEvent"in window,Si=null;aa&&"documentMode"in document&&(Si=document.documentMode);var tv=aa&&"TextEvent"in window&&!Si,Hc=aa&&(!Rr||Si&&8<Si&&11>=Si),Kc=" ",qc=!1;function Gc(e,t){switch(e){case"keyup":return ev.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Vc(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var zn=!1;function av(e,t){switch(e){case"compositionend":return Vc(t);case"keypress":return t.which!==32?null:(qc=!0,Kc);case"textInput":return e=t.data,e===Kc&&qc?null:e;default:return null}}function nv(e,t){if(zn)return e==="compositionend"||!Rr&&Gc(e,t)?(e=Nc(),kl=kr=Aa=null,zn=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Hc&&t.locale!=="ko"?null:t.data;default:return null}}var iv={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Fc(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!iv[e.type]:t==="textarea"}function Yc(e,t,a,n){Tn?Pn?Pn.push(n):Pn=[n]:Tn=n,t=Ao(t,"onChange"),0<t.length&&(a=new Ol("onChange","change",null,a,n),e.push({event:a,listeners:t}))}var Ci=null,Ai=null;function lv(e){Mp(e,0)}function Rl(e){var t=mi(e);if(kc(t))return e}function Wc(e,t){if(e==="change")return t}var $c=!1;if(aa){var _r;if(aa){var xr="oninput"in document;if(!xr){var Zc=document.createElement("div");Zc.setAttribute("oninput","return;"),xr=typeof Zc.oninput=="function"}_r=xr}else _r=!1;$c=_r&&(!document.documentMode||9<document.documentMode)}function Qc(){Ci&&(Ci.detachEvent("onpropertychange",Xc),Ai=Ci=null)}function Xc(e){if(e.propertyName==="value"&&Rl(Ai)){var t=[];Yc(t,Ai,e,Tr(e)),xc(lv,t)}}function ov(e,t,a){e==="focusin"?(Qc(),Ci=t,Ai=a,Ci.attachEvent("onpropertychange",Xc)):e==="focusout"&&Qc()}function rv(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return Rl(Ai)}function sv(e,t){if(e==="click")return Rl(t)}function uv(e,t){if(e==="input"||e==="change")return Rl(t)}function cv(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var At=typeof Object.is=="function"?Object.is:cv;function Ei(e,t){if(At(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var a=Object.keys(e),n=Object.keys(t);if(a.length!==n.length)return!1;for(n=0;n<a.length;n++){var r=a[n];if(!fr.call(t,r)||!At(e[r],t[r]))return!1}return!0}function Jc(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function ed(e,t){var a=Jc(e);e=0;for(var n;a;){if(a.nodeType===3){if(n=e+a.textContent.length,e<=t&&n>=t)return{node:a,offset:t-e};e=n}e:{for(;a;){if(a.nextSibling){a=a.nextSibling;break e}a=a.parentNode}a=void 0}a=Jc(a)}}function td(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?td(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function ad(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Pl(e.document);t instanceof e.HTMLIFrameElement;){try{var a=typeof t.contentWindow.location.href=="string"}catch{a=!1}if(a)e=t.contentWindow;else break;t=Pl(e.document)}return t}function Nr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var dv=aa&&"documentMode"in document&&11>=document.documentMode,kn=null,Ur=null,wi=null,Br=!1;function nd(e,t,a){var n=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;Br||kn==null||kn!==Pl(n)||(n=kn,"selectionStart"in n&&Nr(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),wi&&Ei(wi,n)||(wi=n,n=Ao(Ur,"onSelect"),0<n.length&&(t=new Ol("onSelect","select",null,t,a),e.push({event:t,listeners:n}),t.target=kn)))}function Ja(e,t){var a={};return a[e.toLowerCase()]=t.toLowerCase(),a["Webkit"+e]="webkit"+t,a["Moz"+e]="moz"+t,a}var Ln={animationend:Ja("Animation","AnimationEnd"),animationiteration:Ja("Animation","AnimationIteration"),animationstart:Ja("Animation","AnimationStart"),transitionrun:Ja("Transition","TransitionRun"),transitionstart:Ja("Transition","TransitionStart"),transitioncancel:Ja("Transition","TransitionCancel"),transitionend:Ja("Transition","TransitionEnd")},Ir={},id={};aa&&(id=document.createElement("div").style,"AnimationEvent"in window||(delete Ln.animationend.animation,delete Ln.animationiteration.animation,delete Ln.animationstart.animation),"TransitionEvent"in window||delete Ln.transitionend.transition);function en(e){if(Ir[e])return Ir[e];if(!Ln[e])return e;var t=Ln[e],a;for(a in t)if(t.hasOwnProperty(a)&&a in id)return Ir[e]=t[a];return e}var ld=en("animationend"),od=en("animationiteration"),rd=en("animationstart"),fv=en("transitionrun"),pv=en("transitionstart"),hv=en("transitioncancel"),sd=en("transitionend"),ud=new Map,jr="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");jr.push("scrollEnd");function qt(e,t){ud.set(e,t),Qa(t,[e])}var _l=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)},Rt=[],Mn=0,Hr=0;function xl(){for(var e=Mn,t=Hr=Mn=0;t<e;){var a=Rt[t];Rt[t++]=null;var n=Rt[t];Rt[t++]=null;var r=Rt[t];Rt[t++]=null;var c=Rt[t];if(Rt[t++]=null,n!==null&&r!==null){var p=n.pending;p===null?r.next=r:(r.next=p.next,p.next=r),n.pending=r}c!==0&&cd(a,r,c)}}function Nl(e,t,a,n){Rt[Mn++]=e,Rt[Mn++]=t,Rt[Mn++]=a,Rt[Mn++]=n,Hr|=n,e.lanes|=n,e=e.alternate,e!==null&&(e.lanes|=n)}function Kr(e,t,a,n){return Nl(e,t,a,n),Ul(e)}function tn(e,t){return Nl(e,null,null,t),Ul(e)}function cd(e,t,a){e.lanes|=a;var n=e.alternate;n!==null&&(n.lanes|=a);for(var r=!1,c=e.return;c!==null;)c.childLanes|=a,n=c.alternate,n!==null&&(n.childLanes|=a),c.tag===22&&(e=c.stateNode,e===null||e._visibility&1||(r=!0)),e=c,c=c.return;return e.tag===3?(c=e.stateNode,r&&t!==null&&(r=31-Ct(a),e=c.hiddenUpdates,n=e[r],n===null?e[r]=[t]:n.push(t),t.lane=a|536870912),c):null}function Ul(e){if(50<Fi)throw Fi=0,Qs=null,Error(s(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var On={};function mv(e,t,a,n){this.tag=e,this.key=a,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=n,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Et(e,t,a,n){return new mv(e,t,a,n)}function qr(e){return e=e.prototype,!(!e||!e.isReactComponent)}function na(e,t){var a=e.alternate;return a===null?(a=Et(e.tag,t,e.key,e.mode),a.elementType=e.elementType,a.type=e.type,a.stateNode=e.stateNode,a.alternate=e,e.alternate=a):(a.pendingProps=t,a.type=e.type,a.flags=0,a.subtreeFlags=0,a.deletions=null),a.flags=e.flags&65011712,a.childLanes=e.childLanes,a.lanes=e.lanes,a.child=e.child,a.memoizedProps=e.memoizedProps,a.memoizedState=e.memoizedState,a.updateQueue=e.updateQueue,t=e.dependencies,a.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},a.sibling=e.sibling,a.index=e.index,a.ref=e.ref,a.refCleanup=e.refCleanup,a}function dd(e,t){e.flags&=65011714;var a=e.alternate;return a===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=a.childLanes,e.lanes=a.lanes,e.child=a.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=a.memoizedProps,e.memoizedState=a.memoizedState,e.updateQueue=a.updateQueue,e.type=a.type,t=a.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function Bl(e,t,a,n,r,c){var p=0;if(n=e,typeof e=="function")qr(e)&&(p=1);else if(typeof e=="string")p=Sy(e,a,W.current)?26:e==="html"||e==="head"||e==="body"?27:5;else e:switch(e){case ne:return e=Et(31,a,t,r),e.elementType=ne,e.lanes=c,e;case I:return an(a.children,r,c,t);case N:p=8,r|=24;break;case K:return e=Et(12,a,t,r|2),e.elementType=K,e.lanes=c,e;case ee:return e=Et(13,a,t,r),e.elementType=ee,e.lanes=c,e;case F:return e=Et(19,a,t,r),e.elementType=F,e.lanes=c,e;default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case q:p=10;break e;case j:p=9;break e;case Q:p=11;break e;case V:p=14;break e;case te:p=16,n=null;break e}p=29,a=Error(s(130,e===null?"null":typeof e,"")),n=null}return t=Et(p,a,t,r),t.elementType=e,t.type=n,t.lanes=c,t}function an(e,t,a,n){return e=Et(7,e,n,t),e.lanes=a,e}function Gr(e,t,a){return e=Et(6,e,null,t),e.lanes=a,e}function fd(e){var t=Et(18,null,null,0);return t.stateNode=e,t}function Vr(e,t,a){return t=Et(4,e.children!==null?e.children:[],e.key,t),t.lanes=a,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var pd=new WeakMap;function _t(e,t){if(typeof e=="object"&&e!==null){var a=pd.get(e);return a!==void 0?a:(t={value:e,source:t,stack:fc(t)},pd.set(e,t),t)}return{value:e,source:t,stack:fc(t)}}var Dn=[],Rn=0,Il=null,Ti=0,xt=[],Nt=0,Ea=null,Ft=1,Yt="";function ia(e,t){Dn[Rn++]=Ti,Dn[Rn++]=Il,Il=e,Ti=t}function hd(e,t,a){xt[Nt++]=Ft,xt[Nt++]=Yt,xt[Nt++]=Ea,Ea=e;var n=Ft;e=Yt;var r=32-Ct(n)-1;n&=~(1<<r),a+=1;var c=32-Ct(t)+r;if(30<c){var p=r-r%5;c=(n&(1<<p)-1).toString(32),n>>=p,r-=p,Ft=1<<32-Ct(t)+r|a<<r|n,Yt=c+e}else Ft=1<<c|a<<r|n,Yt=e}function Fr(e){e.return!==null&&(ia(e,1),hd(e,1,0))}function Yr(e){for(;e===Il;)Il=Dn[--Rn],Dn[Rn]=null,Ti=Dn[--Rn],Dn[Rn]=null;for(;e===Ea;)Ea=xt[--Nt],xt[Nt]=null,Yt=xt[--Nt],xt[Nt]=null,Ft=xt[--Nt],xt[Nt]=null}function md(e,t){xt[Nt++]=Ft,xt[Nt++]=Yt,xt[Nt++]=Ea,Ft=t.id,Yt=t.overflow,Ea=e}var tt=null,Ne=null,he=!1,wa=null,Ut=!1,Wr=Error(s(519));function Ta(e){var t=Error(s(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw Pi(_t(t,e)),Wr}function gd(e){var t=e.stateNode,a=e.type,n=e.memoizedProps;switch(t[et]=e,t[ft]=n,a){case"dialog":de("cancel",t),de("close",t);break;case"iframe":case"object":case"embed":de("load",t);break;case"video":case"audio":for(a=0;a<Wi.length;a++)de(Wi[a],t);break;case"source":de("error",t);break;case"img":case"image":case"link":de("error",t),de("load",t);break;case"details":de("toggle",t);break;case"input":de("invalid",t),Lc(t,n.value,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name,!0);break;case"select":de("invalid",t);break;case"textarea":de("invalid",t),Oc(t,n.value,n.defaultValue,n.children)}a=n.children,typeof a!="string"&&typeof a!="number"&&typeof a!="bigint"||t.textContent===""+a||n.suppressHydrationWarning===!0||_p(t.textContent,a)?(n.popover!=null&&(de("beforetoggle",t),de("toggle",t)),n.onScroll!=null&&de("scroll",t),n.onScrollEnd!=null&&de("scrollend",t),n.onClick!=null&&(t.onclick=ta),t=!0):t=!1,t||Ta(e,!0)}function vd(e){for(tt=e.return;tt;)switch(tt.tag){case 5:case 31:case 13:Ut=!1;return;case 27:case 3:Ut=!0;return;default:tt=tt.return}}function _n(e){if(e!==tt)return!1;if(!he)return vd(e),he=!0,!1;var t=e.tag,a;if((a=t!==3&&t!==27)&&((a=t===5)&&(a=e.type,a=!(a!=="form"&&a!=="button")||fu(e.type,e.memoizedProps)),a=!a),a&&Ne&&Ta(e),vd(e),t===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(s(317));Ne=qp(e)}else if(t===31){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(s(317));Ne=qp(e)}else t===27?(t=Ne,Ia(e.type)?(e=vu,vu=null,Ne=e):Ne=t):Ne=tt?It(e.stateNode.nextSibling):null;return!0}function nn(){Ne=tt=null,he=!1}function $r(){var e=wa;return e!==null&&(vt===null?vt=e:vt.push.apply(vt,e),wa=null),e}function Pi(e){wa===null?wa=[e]:wa.push(e)}var Zr=C(null),ln=null,la=null;function Pa(e,t,a){G(Zr,t._currentValue),t._currentValue=a}function oa(e){e._currentValue=Zr.current,R(Zr)}function Qr(e,t,a){for(;e!==null;){var n=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,n!==null&&(n.childLanes|=t)):n!==null&&(n.childLanes&t)!==t&&(n.childLanes|=t),e===a)break;e=e.return}}function Xr(e,t,a,n){var r=e.child;for(r!==null&&(r.return=e);r!==null;){var c=r.dependencies;if(c!==null){var p=r.child;c=c.firstContext;e:for(;c!==null;){var v=c;c=r;for(var S=0;S<t.length;S++)if(v.context===t[S]){c.lanes|=a,v=c.alternate,v!==null&&(v.lanes|=a),Qr(c.return,a,e),n||(p=null);break e}c=v.next}}else if(r.tag===18){if(p=r.return,p===null)throw Error(s(341));p.lanes|=a,c=p.alternate,c!==null&&(c.lanes|=a),Qr(p,a,e),p=null}else p=r.child;if(p!==null)p.return=r;else for(p=r;p!==null;){if(p===e){p=null;break}if(r=p.sibling,r!==null){r.return=p.return,p=r;break}p=p.return}r=p}}function xn(e,t,a,n){e=null;for(var r=t,c=!1;r!==null;){if(!c){if((r.flags&524288)!==0)c=!0;else if((r.flags&262144)!==0)break}if(r.tag===10){var p=r.alternate;if(p===null)throw Error(s(387));if(p=p.memoizedProps,p!==null){var v=r.type;At(r.pendingProps.value,p.value)||(e!==null?e.push(v):e=[v])}}else if(r===we.current){if(p=r.alternate,p===null)throw Error(s(387));p.memoizedState.memoizedState!==r.memoizedState.memoizedState&&(e!==null?e.push(Ji):e=[Ji])}r=r.return}e!==null&&Xr(t,e,a,n),t.flags|=262144}function jl(e){for(e=e.firstContext;e!==null;){if(!At(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function on(e){ln=e,la=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function at(e){return yd(ln,e)}function Hl(e,t){return ln===null&&on(e),yd(e,t)}function yd(e,t){var a=t._currentValue;if(t={context:t,memoizedValue:a,next:null},la===null){if(e===null)throw Error(s(308));la=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else la=la.next=t;return a}var gv=typeof AbortController<"u"?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(a,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(a){return a()})}},vv=i.unstable_scheduleCallback,yv=i.unstable_NormalPriority,Fe={$$typeof:q,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Jr(){return{controller:new gv,data:new Map,refCount:0}}function zi(e){e.refCount--,e.refCount===0&&vv(yv,function(){e.controller.abort()})}var ki=null,es=0,Nn=0,Un=null;function bv(e,t){if(ki===null){var a=ki=[];es=0,Nn=nu(),Un={status:"pending",value:void 0,then:function(n){a.push(n)}}}return es++,t.then(bd,bd),t}function bd(){if(--es===0&&ki!==null){Un!==null&&(Un.status="fulfilled");var e=ki;ki=null,Nn=0,Un=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function Sv(e,t){var a=[],n={status:"pending",value:null,reason:null,then:function(r){a.push(r)}};return e.then(function(){n.status="fulfilled",n.value=t;for(var r=0;r<a.length;r++)(0,a[r])(t)},function(r){for(n.status="rejected",n.reason=r,r=0;r<a.length;r++)(0,a[r])(void 0)}),n}var Sd=M.S;M.S=function(e,t){ip=bt(),typeof t=="object"&&t!==null&&typeof t.then=="function"&&bv(e,t),Sd!==null&&Sd(e,t)};var rn=C(null);function ts(){var e=rn.current;return e!==null?e:Re.pooledCache}function Kl(e,t){t===null?G(rn,rn.current):G(rn,t.pool)}function Cd(){var e=ts();return e===null?null:{parent:Fe._currentValue,pool:e}}var Bn=Error(s(460)),as=Error(s(474)),ql=Error(s(542)),Gl={then:function(){}};function Ad(e){return e=e.status,e==="fulfilled"||e==="rejected"}function Ed(e,t,a){switch(a=e[a],a===void 0?e.push(t):a!==t&&(t.then(ta,ta),t=a),t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,Td(e),e;default:if(typeof t.status=="string")t.then(ta,ta);else{if(e=Re,e!==null&&100<e.shellSuspendCounter)throw Error(s(482));e=t,e.status="pending",e.then(function(n){if(t.status==="pending"){var r=t;r.status="fulfilled",r.value=n}},function(n){if(t.status==="pending"){var r=t;r.status="rejected",r.reason=n}})}switch(t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,Td(e),e}throw un=t,Bn}}function sn(e){try{var t=e._init;return t(e._payload)}catch(a){throw a!==null&&typeof a=="object"&&typeof a.then=="function"?(un=a,Bn):a}}var un=null;function wd(){if(un===null)throw Error(s(459));var e=un;return un=null,e}function Td(e){if(e===Bn||e===ql)throw Error(s(483))}var In=null,Li=0;function Vl(e){var t=Li;return Li+=1,In===null&&(In=[]),Ed(In,e,t)}function Mi(e,t){t=t.props.ref,e.ref=t!==void 0?t:null}function Fl(e,t){throw t.$$typeof===k?Error(s(525)):(e=Object.prototype.toString.call(t),Error(s(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e)))}function Pd(e){function t(w,A){if(e){var T=w.deletions;T===null?(w.deletions=[A],w.flags|=16):T.push(A)}}function a(w,A){if(!e)return null;for(;A!==null;)t(w,A),A=A.sibling;return null}function n(w){for(var A=new Map;w!==null;)w.key!==null?A.set(w.key,w):A.set(w.index,w),w=w.sibling;return A}function r(w,A){return w=na(w,A),w.index=0,w.sibling=null,w}function c(w,A,T){return w.index=T,e?(T=w.alternate,T!==null?(T=T.index,T<A?(w.flags|=67108866,A):T):(w.flags|=67108866,A)):(w.flags|=1048576,A)}function p(w){return e&&w.alternate===null&&(w.flags|=67108866),w}function v(w,A,T,_){return A===null||A.tag!==6?(A=Gr(T,w.mode,_),A.return=w,A):(A=r(A,T),A.return=w,A)}function S(w,A,T,_){var X=T.type;return X===I?O(w,A,T.props.children,_,T.key):A!==null&&(A.elementType===X||typeof X=="object"&&X!==null&&X.$$typeof===te&&sn(X)===A.type)?(A=r(A,T.props),Mi(A,T),A.return=w,A):(A=Bl(T.type,T.key,T.props,null,w.mode,_),Mi(A,T),A.return=w,A)}function P(w,A,T,_){return A===null||A.tag!==4||A.stateNode.containerInfo!==T.containerInfo||A.stateNode.implementation!==T.implementation?(A=Vr(T,w.mode,_),A.return=w,A):(A=r(A,T.children||[]),A.return=w,A)}function O(w,A,T,_,X){return A===null||A.tag!==7?(A=an(T,w.mode,_,X),A.return=w,A):(A=r(A,T),A.return=w,A)}function U(w,A,T){if(typeof A=="string"&&A!==""||typeof A=="number"||typeof A=="bigint")return A=Gr(""+A,w.mode,T),A.return=w,A;if(typeof A=="object"&&A!==null){switch(A.$$typeof){case D:return T=Bl(A.type,A.key,A.props,null,w.mode,T),Mi(T,A),T.return=w,T;case x:return A=Vr(A,w.mode,T),A.return=w,A;case te:return A=sn(A),U(w,A,T)}if(xe(A)||Ae(A))return A=an(A,w.mode,T,null),A.return=w,A;if(typeof A.then=="function")return U(w,Vl(A),T);if(A.$$typeof===q)return U(w,Hl(w,A),T);Fl(w,A)}return null}function z(w,A,T,_){var X=A!==null?A.key:null;if(typeof T=="string"&&T!==""||typeof T=="number"||typeof T=="bigint")return X!==null?null:v(w,A,""+T,_);if(typeof T=="object"&&T!==null){switch(T.$$typeof){case D:return T.key===X?S(w,A,T,_):null;case x:return T.key===X?P(w,A,T,_):null;case te:return T=sn(T),z(w,A,T,_)}if(xe(T)||Ae(T))return X!==null?null:O(w,A,T,_,null);if(typeof T.then=="function")return z(w,A,Vl(T),_);if(T.$$typeof===q)return z(w,A,Hl(w,T),_);Fl(w,T)}return null}function L(w,A,T,_,X){if(typeof _=="string"&&_!==""||typeof _=="number"||typeof _=="bigint")return w=w.get(T)||null,v(A,w,""+_,X);if(typeof _=="object"&&_!==null){switch(_.$$typeof){case D:return w=w.get(_.key===null?T:_.key)||null,S(A,w,_,X);case x:return w=w.get(_.key===null?T:_.key)||null,P(A,w,_,X);case te:return _=sn(_),L(w,A,T,_,X)}if(xe(_)||Ae(_))return w=w.get(T)||null,O(A,w,_,X,null);if(typeof _.then=="function")return L(w,A,T,Vl(_),X);if(_.$$typeof===q)return L(w,A,T,Hl(A,_),X);Fl(A,_)}return null}function $(w,A,T,_){for(var X=null,ve=null,Z=A,se=A=0,pe=null;Z!==null&&se<T.length;se++){Z.index>se?(pe=Z,Z=null):pe=Z.sibling;var ye=z(w,Z,T[se],_);if(ye===null){Z===null&&(Z=pe);break}e&&Z&&ye.alternate===null&&t(w,Z),A=c(ye,A,se),ve===null?X=ye:ve.sibling=ye,ve=ye,Z=pe}if(se===T.length)return a(w,Z),he&&ia(w,se),X;if(Z===null){for(;se<T.length;se++)Z=U(w,T[se],_),Z!==null&&(A=c(Z,A,se),ve===null?X=Z:ve.sibling=Z,ve=Z);return he&&ia(w,se),X}for(Z=n(Z);se<T.length;se++)pe=L(Z,w,se,T[se],_),pe!==null&&(e&&pe.alternate!==null&&Z.delete(pe.key===null?se:pe.key),A=c(pe,A,se),ve===null?X=pe:ve.sibling=pe,ve=pe);return e&&Z.forEach(function(Ga){return t(w,Ga)}),he&&ia(w,se),X}function ae(w,A,T,_){if(T==null)throw Error(s(151));for(var X=null,ve=null,Z=A,se=A=0,pe=null,ye=T.next();Z!==null&&!ye.done;se++,ye=T.next()){Z.index>se?(pe=Z,Z=null):pe=Z.sibling;var Ga=z(w,Z,ye.value,_);if(Ga===null){Z===null&&(Z=pe);break}e&&Z&&Ga.alternate===null&&t(w,Z),A=c(Ga,A,se),ve===null?X=Ga:ve.sibling=Ga,ve=Ga,Z=pe}if(ye.done)return a(w,Z),he&&ia(w,se),X;if(Z===null){for(;!ye.done;se++,ye=T.next())ye=U(w,ye.value,_),ye!==null&&(A=c(ye,A,se),ve===null?X=ye:ve.sibling=ye,ve=ye);return he&&ia(w,se),X}for(Z=n(Z);!ye.done;se++,ye=T.next())ye=L(Z,w,se,ye.value,_),ye!==null&&(e&&ye.alternate!==null&&Z.delete(ye.key===null?se:ye.key),A=c(ye,A,se),ve===null?X=ye:ve.sibling=ye,ve=ye);return e&&Z.forEach(function(Oy){return t(w,Oy)}),he&&ia(w,se),X}function Oe(w,A,T,_){if(typeof T=="object"&&T!==null&&T.type===I&&T.key===null&&(T=T.props.children),typeof T=="object"&&T!==null){switch(T.$$typeof){case D:e:{for(var X=T.key;A!==null;){if(A.key===X){if(X=T.type,X===I){if(A.tag===7){a(w,A.sibling),_=r(A,T.props.children),_.return=w,w=_;break e}}else if(A.elementType===X||typeof X=="object"&&X!==null&&X.$$typeof===te&&sn(X)===A.type){a(w,A.sibling),_=r(A,T.props),Mi(_,T),_.return=w,w=_;break e}a(w,A);break}else t(w,A);A=A.sibling}T.type===I?(_=an(T.props.children,w.mode,_,T.key),_.return=w,w=_):(_=Bl(T.type,T.key,T.props,null,w.mode,_),Mi(_,T),_.return=w,w=_)}return p(w);case x:e:{for(X=T.key;A!==null;){if(A.key===X)if(A.tag===4&&A.stateNode.containerInfo===T.containerInfo&&A.stateNode.implementation===T.implementation){a(w,A.sibling),_=r(A,T.children||[]),_.return=w,w=_;break e}else{a(w,A);break}else t(w,A);A=A.sibling}_=Vr(T,w.mode,_),_.return=w,w=_}return p(w);case te:return T=sn(T),Oe(w,A,T,_)}if(xe(T))return $(w,A,T,_);if(Ae(T)){if(X=Ae(T),typeof X!="function")throw Error(s(150));return T=X.call(T),ae(w,A,T,_)}if(typeof T.then=="function")return Oe(w,A,Vl(T),_);if(T.$$typeof===q)return Oe(w,A,Hl(w,T),_);Fl(w,T)}return typeof T=="string"&&T!==""||typeof T=="number"||typeof T=="bigint"?(T=""+T,A!==null&&A.tag===6?(a(w,A.sibling),_=r(A,T),_.return=w,w=_):(a(w,A),_=Gr(T,w.mode,_),_.return=w,w=_),p(w)):a(w,A)}return function(w,A,T,_){try{Li=0;var X=Oe(w,A,T,_);return In=null,X}catch(Z){if(Z===Bn||Z===ql)throw Z;var ve=Et(29,Z,null,w.mode);return ve.lanes=_,ve.return=w,ve}}}var cn=Pd(!0),zd=Pd(!1),za=!1;function ns(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function is(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function ka(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function La(e,t,a){var n=e.updateQueue;if(n===null)return null;if(n=n.shared,(Ce&2)!==0){var r=n.pending;return r===null?t.next=t:(t.next=r.next,r.next=t),n.pending=t,t=Ul(e),cd(e,null,a),t}return Nl(e,n,t,a),Ul(e)}function Oi(e,t,a){if(t=t.updateQueue,t!==null&&(t=t.shared,(a&4194048)!==0)){var n=t.lanes;n&=e.pendingLanes,a|=n,t.lanes=a,yc(e,a)}}function ls(e,t){var a=e.updateQueue,n=e.alternate;if(n!==null&&(n=n.updateQueue,a===n)){var r=null,c=null;if(a=a.firstBaseUpdate,a!==null){do{var p={lane:a.lane,tag:a.tag,payload:a.payload,callback:null,next:null};c===null?r=c=p:c=c.next=p,a=a.next}while(a!==null);c===null?r=c=t:c=c.next=t}else r=c=t;a={baseState:n.baseState,firstBaseUpdate:r,lastBaseUpdate:c,shared:n.shared,callbacks:n.callbacks},e.updateQueue=a;return}e=a.lastBaseUpdate,e===null?a.firstBaseUpdate=t:e.next=t,a.lastBaseUpdate=t}var os=!1;function Di(){if(os){var e=Un;if(e!==null)throw e}}function Ri(e,t,a,n){os=!1;var r=e.updateQueue;za=!1;var c=r.firstBaseUpdate,p=r.lastBaseUpdate,v=r.shared.pending;if(v!==null){r.shared.pending=null;var S=v,P=S.next;S.next=null,p===null?c=P:p.next=P,p=S;var O=e.alternate;O!==null&&(O=O.updateQueue,v=O.lastBaseUpdate,v!==p&&(v===null?O.firstBaseUpdate=P:v.next=P,O.lastBaseUpdate=S))}if(c!==null){var U=r.baseState;p=0,O=P=S=null,v=c;do{var z=v.lane&-536870913,L=z!==v.lane;if(L?(fe&z)===z:(n&z)===z){z!==0&&z===Nn&&(os=!0),O!==null&&(O=O.next={lane:0,tag:v.tag,payload:v.payload,callback:null,next:null});e:{var $=e,ae=v;z=t;var Oe=a;switch(ae.tag){case 1:if($=ae.payload,typeof $=="function"){U=$.call(Oe,U,z);break e}U=$;break e;case 3:$.flags=$.flags&-65537|128;case 0:if($=ae.payload,z=typeof $=="function"?$.call(Oe,U,z):$,z==null)break e;U=y({},U,z);break e;case 2:za=!0}}z=v.callback,z!==null&&(e.flags|=64,L&&(e.flags|=8192),L=r.callbacks,L===null?r.callbacks=[z]:L.push(z))}else L={lane:z,tag:v.tag,payload:v.payload,callback:v.callback,next:null},O===null?(P=O=L,S=U):O=O.next=L,p|=z;if(v=v.next,v===null){if(v=r.shared.pending,v===null)break;L=v,v=L.next,L.next=null,r.lastBaseUpdate=L,r.shared.pending=null}}while(!0);O===null&&(S=U),r.baseState=S,r.firstBaseUpdate=P,r.lastBaseUpdate=O,c===null&&(r.shared.lanes=0),_a|=p,e.lanes=p,e.memoizedState=U}}function kd(e,t){if(typeof e!="function")throw Error(s(191,e));e.call(t)}function Ld(e,t){var a=e.callbacks;if(a!==null)for(e.callbacks=null,e=0;e<a.length;e++)kd(a[e],t)}var jn=C(null),Yl=C(0);function Md(e,t){e=ma,G(Yl,e),G(jn,t),ma=e|t.baseLanes}function rs(){G(Yl,ma),G(jn,jn.current)}function ss(){ma=Yl.current,R(jn),R(Yl)}var wt=C(null),Bt=null;function Ma(e){var t=e.alternate;G(Ge,Ge.current&1),G(wt,e),Bt===null&&(t===null||jn.current!==null||t.memoizedState!==null)&&(Bt=e)}function us(e){G(Ge,Ge.current),G(wt,e),Bt===null&&(Bt=e)}function Od(e){e.tag===22?(G(Ge,Ge.current),G(wt,e),Bt===null&&(Bt=e)):Oa()}function Oa(){G(Ge,Ge.current),G(wt,wt.current)}function Tt(e){R(wt),Bt===e&&(Bt=null),R(Ge)}var Ge=C(0);function Wl(e){for(var t=e;t!==null;){if(t.tag===13){var a=t.memoizedState;if(a!==null&&(a=a.dehydrated,a===null||mu(a)||gu(a)))return t}else if(t.tag===19&&(t.memoizedProps.revealOrder==="forwards"||t.memoizedProps.revealOrder==="backwards"||t.memoizedProps.revealOrder==="unstable_legacy-backwards"||t.memoizedProps.revealOrder==="together")){if((t.flags&128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var ra=0,re=null,Le=null,Ye=null,$l=!1,Hn=!1,dn=!1,Zl=0,_i=0,Kn=null,Cv=0;function He(){throw Error(s(321))}function cs(e,t){if(t===null)return!1;for(var a=0;a<t.length&&a<e.length;a++)if(!At(e[a],t[a]))return!1;return!0}function ds(e,t,a,n,r,c){return ra=c,re=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,M.H=e===null||e.memoizedState===null?mf:Ps,dn=!1,c=a(n,r),dn=!1,Hn&&(c=Rd(t,a,n,r)),Dd(e),c}function Dd(e){M.H=Ui;var t=Le!==null&&Le.next!==null;if(ra=0,Ye=Le=re=null,$l=!1,_i=0,Kn=null,t)throw Error(s(300));e===null||We||(e=e.dependencies,e!==null&&jl(e)&&(We=!0))}function Rd(e,t,a,n){re=e;var r=0;do{if(Hn&&(Kn=null),_i=0,Hn=!1,25<=r)throw Error(s(301));if(r+=1,Ye=Le=null,e.updateQueue!=null){var c=e.updateQueue;c.lastEffect=null,c.events=null,c.stores=null,c.memoCache!=null&&(c.memoCache.index=0)}M.H=gf,c=t(a,n)}while(Hn);return c}function Av(){var e=M.H,t=e.useState()[0];return t=typeof t.then=="function"?xi(t):t,e=e.useState()[0],(Le!==null?Le.memoizedState:null)!==e&&(re.flags|=1024),t}function fs(){var e=Zl!==0;return Zl=0,e}function ps(e,t,a){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a}function hs(e){if($l){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}$l=!1}ra=0,Ye=Le=re=null,Hn=!1,_i=Zl=0,Kn=null}function st(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Ye===null?re.memoizedState=Ye=e:Ye=Ye.next=e,Ye}function Ve(){if(Le===null){var e=re.alternate;e=e!==null?e.memoizedState:null}else e=Le.next;var t=Ye===null?re.memoizedState:Ye.next;if(t!==null)Ye=t,Le=e;else{if(e===null)throw re.alternate===null?Error(s(467)):Error(s(310));Le=e,e={memoizedState:Le.memoizedState,baseState:Le.baseState,baseQueue:Le.baseQueue,queue:Le.queue,next:null},Ye===null?re.memoizedState=Ye=e:Ye=Ye.next=e}return Ye}function Ql(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function xi(e){var t=_i;return _i+=1,Kn===null&&(Kn=[]),e=Ed(Kn,e,t),t=re,(Ye===null?t.memoizedState:Ye.next)===null&&(t=t.alternate,M.H=t===null||t.memoizedState===null?mf:Ps),e}function Xl(e){if(e!==null&&typeof e=="object"){if(typeof e.then=="function")return xi(e);if(e.$$typeof===q)return at(e)}throw Error(s(438,String(e)))}function ms(e){var t=null,a=re.updateQueue;if(a!==null&&(t=a.memoCache),t==null){var n=re.alternate;n!==null&&(n=n.updateQueue,n!==null&&(n=n.memoCache,n!=null&&(t={data:n.data.map(function(r){return r.slice()}),index:0})))}if(t==null&&(t={data:[],index:0}),a===null&&(a=Ql(),re.updateQueue=a),a.memoCache=t,a=t.data[t.index],a===void 0)for(a=t.data[t.index]=Array(e),n=0;n<e;n++)a[n]=me;return t.index++,a}function sa(e,t){return typeof t=="function"?t(e):t}function Jl(e){var t=Ve();return gs(t,Le,e)}function gs(e,t,a){var n=e.queue;if(n===null)throw Error(s(311));n.lastRenderedReducer=a;var r=e.baseQueue,c=n.pending;if(c!==null){if(r!==null){var p=r.next;r.next=c.next,c.next=p}t.baseQueue=r=c,n.pending=null}if(c=e.baseState,r===null)e.memoizedState=c;else{t=r.next;var v=p=null,S=null,P=t,O=!1;do{var U=P.lane&-536870913;if(U!==P.lane?(fe&U)===U:(ra&U)===U){var z=P.revertLane;if(z===0)S!==null&&(S=S.next={lane:0,revertLane:0,gesture:null,action:P.action,hasEagerState:P.hasEagerState,eagerState:P.eagerState,next:null}),U===Nn&&(O=!0);else if((ra&z)===z){P=P.next,z===Nn&&(O=!0);continue}else U={lane:0,revertLane:P.revertLane,gesture:null,action:P.action,hasEagerState:P.hasEagerState,eagerState:P.eagerState,next:null},S===null?(v=S=U,p=c):S=S.next=U,re.lanes|=z,_a|=z;U=P.action,dn&&a(c,U),c=P.hasEagerState?P.eagerState:a(c,U)}else z={lane:U,revertLane:P.revertLane,gesture:P.gesture,action:P.action,hasEagerState:P.hasEagerState,eagerState:P.eagerState,next:null},S===null?(v=S=z,p=c):S=S.next=z,re.lanes|=U,_a|=U;P=P.next}while(P!==null&&P!==t);if(S===null?p=c:S.next=v,!At(c,e.memoizedState)&&(We=!0,O&&(a=Un,a!==null)))throw a;e.memoizedState=c,e.baseState=p,e.baseQueue=S,n.lastRenderedState=c}return r===null&&(n.lanes=0),[e.memoizedState,n.dispatch]}function vs(e){var t=Ve(),a=t.queue;if(a===null)throw Error(s(311));a.lastRenderedReducer=e;var n=a.dispatch,r=a.pending,c=t.memoizedState;if(r!==null){a.pending=null;var p=r=r.next;do c=e(c,p.action),p=p.next;while(p!==r);At(c,t.memoizedState)||(We=!0),t.memoizedState=c,t.baseQueue===null&&(t.baseState=c),a.lastRenderedState=c}return[c,n]}function _d(e,t,a){var n=re,r=Ve(),c=he;if(c){if(a===void 0)throw Error(s(407));a=a()}else a=t();var p=!At((Le||r).memoizedState,a);if(p&&(r.memoizedState=a,We=!0),r=r.queue,Ss(Ud.bind(null,n,r,e),[e]),r.getSnapshot!==t||p||Ye!==null&&Ye.memoizedState.tag&1){if(n.flags|=2048,qn(9,{destroy:void 0},Nd.bind(null,n,r,a,t),null),Re===null)throw Error(s(349));c||(ra&127)!==0||xd(n,t,a)}return a}function xd(e,t,a){e.flags|=16384,e={getSnapshot:t,value:a},t=re.updateQueue,t===null?(t=Ql(),re.updateQueue=t,t.stores=[e]):(a=t.stores,a===null?t.stores=[e]:a.push(e))}function Nd(e,t,a,n){t.value=a,t.getSnapshot=n,Bd(t)&&Id(e)}function Ud(e,t,a){return a(function(){Bd(t)&&Id(e)})}function Bd(e){var t=e.getSnapshot;e=e.value;try{var a=t();return!At(e,a)}catch{return!0}}function Id(e){var t=tn(e,2);t!==null&&yt(t,e,2)}function ys(e){var t=st();if(typeof e=="function"){var a=e;if(e=a(),dn){Sa(!0);try{a()}finally{Sa(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:sa,lastRenderedState:e},t}function jd(e,t,a,n){return e.baseState=a,gs(e,Le,typeof n=="function"?n:sa)}function Ev(e,t,a,n,r){if(ao(e))throw Error(s(485));if(e=t.action,e!==null){var c={payload:r,action:e,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(p){c.listeners.push(p)}};M.T!==null?a(!0):c.isTransition=!1,n(c),a=t.pending,a===null?(c.next=t.pending=c,Hd(t,c)):(c.next=a.next,t.pending=a.next=c)}}function Hd(e,t){var a=t.action,n=t.payload,r=e.state;if(t.isTransition){var c=M.T,p={};M.T=p;try{var v=a(r,n),S=M.S;S!==null&&S(p,v),Kd(e,t,v)}catch(P){bs(e,t,P)}finally{c!==null&&p.types!==null&&(c.types=p.types),M.T=c}}else try{c=a(r,n),Kd(e,t,c)}catch(P){bs(e,t,P)}}function Kd(e,t,a){a!==null&&typeof a=="object"&&typeof a.then=="function"?a.then(function(n){qd(e,t,n)},function(n){return bs(e,t,n)}):qd(e,t,a)}function qd(e,t,a){t.status="fulfilled",t.value=a,Gd(t),e.state=a,t=e.pending,t!==null&&(a=t.next,a===t?e.pending=null:(a=a.next,t.next=a,Hd(e,a)))}function bs(e,t,a){var n=e.pending;if(e.pending=null,n!==null){n=n.next;do t.status="rejected",t.reason=a,Gd(t),t=t.next;while(t!==n)}e.action=null}function Gd(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function Vd(e,t){return t}function Fd(e,t){if(he){var a=Re.formState;if(a!==null){e:{var n=re;if(he){if(Ne){t:{for(var r=Ne,c=Ut;r.nodeType!==8;){if(!c){r=null;break t}if(r=It(r.nextSibling),r===null){r=null;break t}}c=r.data,r=c==="F!"||c==="F"?r:null}if(r){Ne=It(r.nextSibling),n=r.data==="F!";break e}}Ta(n)}n=!1}n&&(t=a[0])}}return a=st(),a.memoizedState=a.baseState=t,n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Vd,lastRenderedState:t},a.queue=n,a=ff.bind(null,re,n),n.dispatch=a,n=ys(!1),c=Ts.bind(null,re,!1,n.queue),n=st(),r={state:t,dispatch:null,action:e,pending:null},n.queue=r,a=Ev.bind(null,re,r,c,a),r.dispatch=a,n.memoizedState=e,[t,a,!1]}function Yd(e){var t=Ve();return Wd(t,Le,e)}function Wd(e,t,a){if(t=gs(e,t,Vd)[0],e=Jl(sa)[0],typeof t=="object"&&t!==null&&typeof t.then=="function")try{var n=xi(t)}catch(p){throw p===Bn?ql:p}else n=t;t=Ve();var r=t.queue,c=r.dispatch;return a!==t.memoizedState&&(re.flags|=2048,qn(9,{destroy:void 0},wv.bind(null,r,a),null)),[n,c,e]}function wv(e,t){e.action=t}function $d(e){var t=Ve(),a=Le;if(a!==null)return Wd(t,a,e);Ve(),t=t.memoizedState,a=Ve();var n=a.queue.dispatch;return a.memoizedState=e,[t,n,!1]}function qn(e,t,a,n){return e={tag:e,create:a,deps:n,inst:t,next:null},t=re.updateQueue,t===null&&(t=Ql(),re.updateQueue=t),a=t.lastEffect,a===null?t.lastEffect=e.next=e:(n=a.next,a.next=e,e.next=n,t.lastEffect=e),e}function Zd(){return Ve().memoizedState}function eo(e,t,a,n){var r=st();re.flags|=e,r.memoizedState=qn(1|t,{destroy:void 0},a,n===void 0?null:n)}function to(e,t,a,n){var r=Ve();n=n===void 0?null:n;var c=r.memoizedState.inst;Le!==null&&n!==null&&cs(n,Le.memoizedState.deps)?r.memoizedState=qn(t,c,a,n):(re.flags|=e,r.memoizedState=qn(1|t,c,a,n))}function Qd(e,t){eo(8390656,8,e,t)}function Ss(e,t){to(2048,8,e,t)}function Tv(e){re.flags|=4;var t=re.updateQueue;if(t===null)t=Ql(),re.updateQueue=t,t.events=[e];else{var a=t.events;a===null?t.events=[e]:a.push(e)}}function Xd(e){var t=Ve().memoizedState;return Tv({ref:t,nextImpl:e}),function(){if((Ce&2)!==0)throw Error(s(440));return t.impl.apply(void 0,arguments)}}function Jd(e,t){return to(4,2,e,t)}function ef(e,t){return to(4,4,e,t)}function tf(e,t){if(typeof t=="function"){e=e();var a=t(e);return function(){typeof a=="function"?a():t(null)}}if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function af(e,t,a){a=a!=null?a.concat([e]):null,to(4,4,tf.bind(null,t,e),a)}function Cs(){}function nf(e,t){var a=Ve();t=t===void 0?null:t;var n=a.memoizedState;return t!==null&&cs(t,n[1])?n[0]:(a.memoizedState=[e,t],e)}function lf(e,t){var a=Ve();t=t===void 0?null:t;var n=a.memoizedState;if(t!==null&&cs(t,n[1]))return n[0];if(n=e(),dn){Sa(!0);try{e()}finally{Sa(!1)}}return a.memoizedState=[n,t],n}function As(e,t,a){return a===void 0||(ra&1073741824)!==0&&(fe&261930)===0?e.memoizedState=t:(e.memoizedState=a,e=op(),re.lanes|=e,_a|=e,a)}function of(e,t,a,n){return At(a,t)?a:jn.current!==null?(e=As(e,a,n),At(e,t)||(We=!0),e):(ra&42)===0||(ra&1073741824)!==0&&(fe&261930)===0?(We=!0,e.memoizedState=a):(e=op(),re.lanes|=e,_a|=e,t)}function rf(e,t,a,n,r){var c=H.p;H.p=c!==0&&8>c?c:8;var p=M.T,v={};M.T=v,Ts(e,!1,t,a);try{var S=r(),P=M.S;if(P!==null&&P(v,S),S!==null&&typeof S=="object"&&typeof S.then=="function"){var O=Sv(S,n);Ni(e,t,O,kt(e))}else Ni(e,t,n,kt(e))}catch(U){Ni(e,t,{then:function(){},status:"rejected",reason:U},kt())}finally{H.p=c,p!==null&&v.types!==null&&(p.types=v.types),M.T=p}}function Pv(){}function Es(e,t,a,n){if(e.tag!==5)throw Error(s(476));var r=sf(e).queue;rf(e,r,t,J,a===null?Pv:function(){return uf(e),a(n)})}function sf(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:J,baseState:J,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:sa,lastRenderedState:J},next:null};var a={};return t.next={memoizedState:a,baseState:a,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:sa,lastRenderedState:a},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function uf(e){var t=sf(e);t.next===null&&(t=e.alternate.memoizedState),Ni(e,t.next.queue,{},kt())}function ws(){return at(Ji)}function cf(){return Ve().memoizedState}function df(){return Ve().memoizedState}function zv(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var a=kt();e=ka(a);var n=La(t,e,a);n!==null&&(yt(n,t,a),Oi(n,t,a)),t={cache:Jr()},e.payload=t;return}t=t.return}}function kv(e,t,a){var n=kt();a={lane:n,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},ao(e)?pf(t,a):(a=Kr(e,t,a,n),a!==null&&(yt(a,e,n),hf(a,t,n)))}function ff(e,t,a){var n=kt();Ni(e,t,a,n)}function Ni(e,t,a,n){var r={lane:n,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null};if(ao(e))pf(t,r);else{var c=e.alternate;if(e.lanes===0&&(c===null||c.lanes===0)&&(c=t.lastRenderedReducer,c!==null))try{var p=t.lastRenderedState,v=c(p,a);if(r.hasEagerState=!0,r.eagerState=v,At(v,p))return Nl(e,t,r,0),Re===null&&xl(),!1}catch{}if(a=Kr(e,t,r,n),a!==null)return yt(a,e,n),hf(a,t,n),!0}return!1}function Ts(e,t,a,n){if(n={lane:2,revertLane:nu(),gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},ao(e)){if(t)throw Error(s(479))}else t=Kr(e,a,n,2),t!==null&&yt(t,e,2)}function ao(e){var t=e.alternate;return e===re||t!==null&&t===re}function pf(e,t){Hn=$l=!0;var a=e.pending;a===null?t.next=t:(t.next=a.next,a.next=t),e.pending=t}function hf(e,t,a){if((a&4194048)!==0){var n=t.lanes;n&=e.pendingLanes,a|=n,t.lanes=a,yc(e,a)}}var Ui={readContext:at,use:Xl,useCallback:He,useContext:He,useEffect:He,useImperativeHandle:He,useLayoutEffect:He,useInsertionEffect:He,useMemo:He,useReducer:He,useRef:He,useState:He,useDebugValue:He,useDeferredValue:He,useTransition:He,useSyncExternalStore:He,useId:He,useHostTransitionStatus:He,useFormState:He,useActionState:He,useOptimistic:He,useMemoCache:He,useCacheRefresh:He};Ui.useEffectEvent=He;var mf={readContext:at,use:Xl,useCallback:function(e,t){return st().memoizedState=[e,t===void 0?null:t],e},useContext:at,useEffect:Qd,useImperativeHandle:function(e,t,a){a=a!=null?a.concat([e]):null,eo(4194308,4,tf.bind(null,t,e),a)},useLayoutEffect:function(e,t){return eo(4194308,4,e,t)},useInsertionEffect:function(e,t){eo(4,2,e,t)},useMemo:function(e,t){var a=st();t=t===void 0?null:t;var n=e();if(dn){Sa(!0);try{e()}finally{Sa(!1)}}return a.memoizedState=[n,t],n},useReducer:function(e,t,a){var n=st();if(a!==void 0){var r=a(t);if(dn){Sa(!0);try{a(t)}finally{Sa(!1)}}}else r=t;return n.memoizedState=n.baseState=r,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:r},n.queue=e,e=e.dispatch=kv.bind(null,re,e),[n.memoizedState,e]},useRef:function(e){var t=st();return e={current:e},t.memoizedState=e},useState:function(e){e=ys(e);var t=e.queue,a=ff.bind(null,re,t);return t.dispatch=a,[e.memoizedState,a]},useDebugValue:Cs,useDeferredValue:function(e,t){var a=st();return As(a,e,t)},useTransition:function(){var e=ys(!1);return e=rf.bind(null,re,e.queue,!0,!1),st().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,a){var n=re,r=st();if(he){if(a===void 0)throw Error(s(407));a=a()}else{if(a=t(),Re===null)throw Error(s(349));(fe&127)!==0||xd(n,t,a)}r.memoizedState=a;var c={value:a,getSnapshot:t};return r.queue=c,Qd(Ud.bind(null,n,c,e),[e]),n.flags|=2048,qn(9,{destroy:void 0},Nd.bind(null,n,c,a,t),null),a},useId:function(){var e=st(),t=Re.identifierPrefix;if(he){var a=Yt,n=Ft;a=(n&~(1<<32-Ct(n)-1)).toString(32)+a,t="_"+t+"R_"+a,a=Zl++,0<a&&(t+="H"+a.toString(32)),t+="_"}else a=Cv++,t="_"+t+"r_"+a.toString(32)+"_";return e.memoizedState=t},useHostTransitionStatus:ws,useFormState:Fd,useActionState:Fd,useOptimistic:function(e){var t=st();t.memoizedState=t.baseState=e;var a={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=a,t=Ts.bind(null,re,!0,a),a.dispatch=t,[e,t]},useMemoCache:ms,useCacheRefresh:function(){return st().memoizedState=zv.bind(null,re)},useEffectEvent:function(e){var t=st(),a={impl:e};return t.memoizedState=a,function(){if((Ce&2)!==0)throw Error(s(440));return a.impl.apply(void 0,arguments)}}},Ps={readContext:at,use:Xl,useCallback:nf,useContext:at,useEffect:Ss,useImperativeHandle:af,useInsertionEffect:Jd,useLayoutEffect:ef,useMemo:lf,useReducer:Jl,useRef:Zd,useState:function(){return Jl(sa)},useDebugValue:Cs,useDeferredValue:function(e,t){var a=Ve();return of(a,Le.memoizedState,e,t)},useTransition:function(){var e=Jl(sa)[0],t=Ve().memoizedState;return[typeof e=="boolean"?e:xi(e),t]},useSyncExternalStore:_d,useId:cf,useHostTransitionStatus:ws,useFormState:Yd,useActionState:Yd,useOptimistic:function(e,t){var a=Ve();return jd(a,Le,e,t)},useMemoCache:ms,useCacheRefresh:df};Ps.useEffectEvent=Xd;var gf={readContext:at,use:Xl,useCallback:nf,useContext:at,useEffect:Ss,useImperativeHandle:af,useInsertionEffect:Jd,useLayoutEffect:ef,useMemo:lf,useReducer:vs,useRef:Zd,useState:function(){return vs(sa)},useDebugValue:Cs,useDeferredValue:function(e,t){var a=Ve();return Le===null?As(a,e,t):of(a,Le.memoizedState,e,t)},useTransition:function(){var e=vs(sa)[0],t=Ve().memoizedState;return[typeof e=="boolean"?e:xi(e),t]},useSyncExternalStore:_d,useId:cf,useHostTransitionStatus:ws,useFormState:$d,useActionState:$d,useOptimistic:function(e,t){var a=Ve();return Le!==null?jd(a,Le,e,t):(a.baseState=e,[e,a.queue.dispatch])},useMemoCache:ms,useCacheRefresh:df};gf.useEffectEvent=Xd;function zs(e,t,a,n){t=e.memoizedState,a=a(n,t),a=a==null?t:y({},t,a),e.memoizedState=a,e.lanes===0&&(e.updateQueue.baseState=a)}var ks={enqueueSetState:function(e,t,a){e=e._reactInternals;var n=kt(),r=ka(n);r.payload=t,a!=null&&(r.callback=a),t=La(e,r,n),t!==null&&(yt(t,e,n),Oi(t,e,n))},enqueueReplaceState:function(e,t,a){e=e._reactInternals;var n=kt(),r=ka(n);r.tag=1,r.payload=t,a!=null&&(r.callback=a),t=La(e,r,n),t!==null&&(yt(t,e,n),Oi(t,e,n))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var a=kt(),n=ka(a);n.tag=2,t!=null&&(n.callback=t),t=La(e,n,a),t!==null&&(yt(t,e,a),Oi(t,e,a))}};function vf(e,t,a,n,r,c,p){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(n,c,p):t.prototype&&t.prototype.isPureReactComponent?!Ei(a,n)||!Ei(r,c):!0}function yf(e,t,a,n){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(a,n),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(a,n),t.state!==e&&ks.enqueueReplaceState(t,t.state,null)}function fn(e,t){var a=t;if("ref"in t){a={};for(var n in t)n!=="ref"&&(a[n]=t[n])}if(e=e.defaultProps){a===t&&(a=y({},a));for(var r in e)a[r]===void 0&&(a[r]=e[r])}return a}function bf(e){_l(e)}function Sf(e){console.error(e)}function Cf(e){_l(e)}function no(e,t){try{var a=e.onUncaughtError;a(t.value,{componentStack:t.stack})}catch(n){setTimeout(function(){throw n})}}function Af(e,t,a){try{var n=e.onCaughtError;n(a.value,{componentStack:a.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(r){setTimeout(function(){throw r})}}function Ls(e,t,a){return a=ka(a),a.tag=3,a.payload={element:null},a.callback=function(){no(e,t)},a}function Ef(e){return e=ka(e),e.tag=3,e}function wf(e,t,a,n){var r=a.type.getDerivedStateFromError;if(typeof r=="function"){var c=n.value;e.payload=function(){return r(c)},e.callback=function(){Af(t,a,n)}}var p=a.stateNode;p!==null&&typeof p.componentDidCatch=="function"&&(e.callback=function(){Af(t,a,n),typeof r!="function"&&(xa===null?xa=new Set([this]):xa.add(this));var v=n.stack;this.componentDidCatch(n.value,{componentStack:v!==null?v:""})})}function Lv(e,t,a,n,r){if(a.flags|=32768,n!==null&&typeof n=="object"&&typeof n.then=="function"){if(t=a.alternate,t!==null&&xn(t,a,r,!0),a=wt.current,a!==null){switch(a.tag){case 31:case 13:return Bt===null?go():a.alternate===null&&Ke===0&&(Ke=3),a.flags&=-257,a.flags|=65536,a.lanes=r,n===Gl?a.flags|=16384:(t=a.updateQueue,t===null?a.updateQueue=new Set([n]):t.add(n),eu(e,n,r)),!1;case 22:return a.flags|=65536,n===Gl?a.flags|=16384:(t=a.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([n])},a.updateQueue=t):(a=t.retryQueue,a===null?t.retryQueue=new Set([n]):a.add(n)),eu(e,n,r)),!1}throw Error(s(435,a.tag))}return eu(e,n,r),go(),!1}if(he)return t=wt.current,t!==null?((t.flags&65536)===0&&(t.flags|=256),t.flags|=65536,t.lanes=r,n!==Wr&&(e=Error(s(422),{cause:n}),Pi(_t(e,a)))):(n!==Wr&&(t=Error(s(423),{cause:n}),Pi(_t(t,a))),e=e.current.alternate,e.flags|=65536,r&=-r,e.lanes|=r,n=_t(n,a),r=Ls(e.stateNode,n,r),ls(e,r),Ke!==4&&(Ke=2)),!1;var c=Error(s(520),{cause:n});if(c=_t(c,a),Vi===null?Vi=[c]:Vi.push(c),Ke!==4&&(Ke=2),t===null)return!0;n=_t(n,a),a=t;do{switch(a.tag){case 3:return a.flags|=65536,e=r&-r,a.lanes|=e,e=Ls(a.stateNode,n,e),ls(a,e),!1;case 1:if(t=a.type,c=a.stateNode,(a.flags&128)===0&&(typeof t.getDerivedStateFromError=="function"||c!==null&&typeof c.componentDidCatch=="function"&&(xa===null||!xa.has(c))))return a.flags|=65536,r&=-r,a.lanes|=r,r=Ef(r),wf(r,e,a,n),ls(a,r),!1}a=a.return}while(a!==null);return!1}var Ms=Error(s(461)),We=!1;function nt(e,t,a,n){t.child=e===null?zd(t,null,a,n):cn(t,e.child,a,n)}function Tf(e,t,a,n,r){a=a.render;var c=t.ref;if("ref"in n){var p={};for(var v in n)v!=="ref"&&(p[v]=n[v])}else p=n;return on(t),n=ds(e,t,a,p,c,r),v=fs(),e!==null&&!We?(ps(e,t,r),ua(e,t,r)):(he&&v&&Fr(t),t.flags|=1,nt(e,t,n,r),t.child)}function Pf(e,t,a,n,r){if(e===null){var c=a.type;return typeof c=="function"&&!qr(c)&&c.defaultProps===void 0&&a.compare===null?(t.tag=15,t.type=c,zf(e,t,c,n,r)):(e=Bl(a.type,null,n,t,t.mode,r),e.ref=t.ref,e.return=t,t.child=e)}if(c=e.child,!Bs(e,r)){var p=c.memoizedProps;if(a=a.compare,a=a!==null?a:Ei,a(p,n)&&e.ref===t.ref)return ua(e,t,r)}return t.flags|=1,e=na(c,n),e.ref=t.ref,e.return=t,t.child=e}function zf(e,t,a,n,r){if(e!==null){var c=e.memoizedProps;if(Ei(c,n)&&e.ref===t.ref)if(We=!1,t.pendingProps=n=c,Bs(e,r))(e.flags&131072)!==0&&(We=!0);else return t.lanes=e.lanes,ua(e,t,r)}return Os(e,t,a,n,r)}function kf(e,t,a,n){var r=n.children,c=e!==null?e.memoizedState:null;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),n.mode==="hidden"){if((t.flags&128)!==0){if(c=c!==null?c.baseLanes|a:a,e!==null){for(n=t.child=e.child,r=0;n!==null;)r=r|n.lanes|n.childLanes,n=n.sibling;n=r&~c}else n=0,t.child=null;return Lf(e,t,c,a,n)}if((a&536870912)!==0)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&Kl(t,c!==null?c.cachePool:null),c!==null?Md(t,c):rs(),Od(t);else return n=t.lanes=536870912,Lf(e,t,c!==null?c.baseLanes|a:a,a,n)}else c!==null?(Kl(t,c.cachePool),Md(t,c),Oa(),t.memoizedState=null):(e!==null&&Kl(t,null),rs(),Oa());return nt(e,t,r,a),t.child}function Bi(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function Lf(e,t,a,n,r){var c=ts();return c=c===null?null:{parent:Fe._currentValue,pool:c},t.memoizedState={baseLanes:a,cachePool:c},e!==null&&Kl(t,null),rs(),Od(t),e!==null&&xn(e,t,n,!0),t.childLanes=r,null}function io(e,t){return t=oo({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function Mf(e,t,a){return cn(t,e.child,null,a),e=io(t,t.pendingProps),e.flags|=2,Tt(t),t.memoizedState=null,e}function Mv(e,t,a){var n=t.pendingProps,r=(t.flags&128)!==0;if(t.flags&=-129,e===null){if(he){if(n.mode==="hidden")return e=io(t,n),t.lanes=536870912,Bi(null,e);if(us(t),(e=Ne)?(e=Kp(e,Ut),e=e!==null&&e.data==="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:Ea!==null?{id:Ft,overflow:Yt}:null,retryLane:536870912,hydrationErrors:null},a=fd(e),a.return=t,t.child=a,tt=t,Ne=null)):e=null,e===null)throw Ta(t);return t.lanes=536870912,null}return io(t,n)}var c=e.memoizedState;if(c!==null){var p=c.dehydrated;if(us(t),r)if(t.flags&256)t.flags&=-257,t=Mf(e,t,a);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(s(558));else if(We||xn(e,t,a,!1),r=(a&e.childLanes)!==0,We||r){if(n=Re,n!==null&&(p=bc(n,a),p!==0&&p!==c.retryLane))throw c.retryLane=p,tn(e,p),yt(n,e,p),Ms;go(),t=Mf(e,t,a)}else e=c.treeContext,Ne=It(p.nextSibling),tt=t,he=!0,wa=null,Ut=!1,e!==null&&md(t,e),t=io(t,n),t.flags|=4096;return t}return e=na(e.child,{mode:n.mode,children:n.children}),e.ref=t.ref,t.child=e,e.return=t,e}function lo(e,t){var a=t.ref;if(a===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof a!="function"&&typeof a!="object")throw Error(s(284));(e===null||e.ref!==a)&&(t.flags|=4194816)}}function Os(e,t,a,n,r){return on(t),a=ds(e,t,a,n,void 0,r),n=fs(),e!==null&&!We?(ps(e,t,r),ua(e,t,r)):(he&&n&&Fr(t),t.flags|=1,nt(e,t,a,r),t.child)}function Of(e,t,a,n,r,c){return on(t),t.updateQueue=null,a=Rd(t,n,a,r),Dd(e),n=fs(),e!==null&&!We?(ps(e,t,c),ua(e,t,c)):(he&&n&&Fr(t),t.flags|=1,nt(e,t,a,c),t.child)}function Df(e,t,a,n,r){if(on(t),t.stateNode===null){var c=On,p=a.contextType;typeof p=="object"&&p!==null&&(c=at(p)),c=new a(n,c),t.memoizedState=c.state!==null&&c.state!==void 0?c.state:null,c.updater=ks,t.stateNode=c,c._reactInternals=t,c=t.stateNode,c.props=n,c.state=t.memoizedState,c.refs={},ns(t),p=a.contextType,c.context=typeof p=="object"&&p!==null?at(p):On,c.state=t.memoizedState,p=a.getDerivedStateFromProps,typeof p=="function"&&(zs(t,a,p,n),c.state=t.memoizedState),typeof a.getDerivedStateFromProps=="function"||typeof c.getSnapshotBeforeUpdate=="function"||typeof c.UNSAFE_componentWillMount!="function"&&typeof c.componentWillMount!="function"||(p=c.state,typeof c.componentWillMount=="function"&&c.componentWillMount(),typeof c.UNSAFE_componentWillMount=="function"&&c.UNSAFE_componentWillMount(),p!==c.state&&ks.enqueueReplaceState(c,c.state,null),Ri(t,n,c,r),Di(),c.state=t.memoizedState),typeof c.componentDidMount=="function"&&(t.flags|=4194308),n=!0}else if(e===null){c=t.stateNode;var v=t.memoizedProps,S=fn(a,v);c.props=S;var P=c.context,O=a.contextType;p=On,typeof O=="object"&&O!==null&&(p=at(O));var U=a.getDerivedStateFromProps;O=typeof U=="function"||typeof c.getSnapshotBeforeUpdate=="function",v=t.pendingProps!==v,O||typeof c.UNSAFE_componentWillReceiveProps!="function"&&typeof c.componentWillReceiveProps!="function"||(v||P!==p)&&yf(t,c,n,p),za=!1;var z=t.memoizedState;c.state=z,Ri(t,n,c,r),Di(),P=t.memoizedState,v||z!==P||za?(typeof U=="function"&&(zs(t,a,U,n),P=t.memoizedState),(S=za||vf(t,a,S,n,z,P,p))?(O||typeof c.UNSAFE_componentWillMount!="function"&&typeof c.componentWillMount!="function"||(typeof c.componentWillMount=="function"&&c.componentWillMount(),typeof c.UNSAFE_componentWillMount=="function"&&c.UNSAFE_componentWillMount()),typeof c.componentDidMount=="function"&&(t.flags|=4194308)):(typeof c.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=n,t.memoizedState=P),c.props=n,c.state=P,c.context=p,n=S):(typeof c.componentDidMount=="function"&&(t.flags|=4194308),n=!1)}else{c=t.stateNode,is(e,t),p=t.memoizedProps,O=fn(a,p),c.props=O,U=t.pendingProps,z=c.context,P=a.contextType,S=On,typeof P=="object"&&P!==null&&(S=at(P)),v=a.getDerivedStateFromProps,(P=typeof v=="function"||typeof c.getSnapshotBeforeUpdate=="function")||typeof c.UNSAFE_componentWillReceiveProps!="function"&&typeof c.componentWillReceiveProps!="function"||(p!==U||z!==S)&&yf(t,c,n,S),za=!1,z=t.memoizedState,c.state=z,Ri(t,n,c,r),Di();var L=t.memoizedState;p!==U||z!==L||za||e!==null&&e.dependencies!==null&&jl(e.dependencies)?(typeof v=="function"&&(zs(t,a,v,n),L=t.memoizedState),(O=za||vf(t,a,O,n,z,L,S)||e!==null&&e.dependencies!==null&&jl(e.dependencies))?(P||typeof c.UNSAFE_componentWillUpdate!="function"&&typeof c.componentWillUpdate!="function"||(typeof c.componentWillUpdate=="function"&&c.componentWillUpdate(n,L,S),typeof c.UNSAFE_componentWillUpdate=="function"&&c.UNSAFE_componentWillUpdate(n,L,S)),typeof c.componentDidUpdate=="function"&&(t.flags|=4),typeof c.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof c.componentDidUpdate!="function"||p===e.memoizedProps&&z===e.memoizedState||(t.flags|=4),typeof c.getSnapshotBeforeUpdate!="function"||p===e.memoizedProps&&z===e.memoizedState||(t.flags|=1024),t.memoizedProps=n,t.memoizedState=L),c.props=n,c.state=L,c.context=S,n=O):(typeof c.componentDidUpdate!="function"||p===e.memoizedProps&&z===e.memoizedState||(t.flags|=4),typeof c.getSnapshotBeforeUpdate!="function"||p===e.memoizedProps&&z===e.memoizedState||(t.flags|=1024),n=!1)}return c=n,lo(e,t),n=(t.flags&128)!==0,c||n?(c=t.stateNode,a=n&&typeof a.getDerivedStateFromError!="function"?null:c.render(),t.flags|=1,e!==null&&n?(t.child=cn(t,e.child,null,r),t.child=cn(t,null,a,r)):nt(e,t,a,r),t.memoizedState=c.state,e=t.child):e=ua(e,t,r),e}function Rf(e,t,a,n){return nn(),t.flags|=256,nt(e,t,a,n),t.child}var Ds={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Rs(e){return{baseLanes:e,cachePool:Cd()}}function _s(e,t,a){return e=e!==null?e.childLanes&~a:0,t&&(e|=zt),e}function _f(e,t,a){var n=t.pendingProps,r=!1,c=(t.flags&128)!==0,p;if((p=c)||(p=e!==null&&e.memoizedState===null?!1:(Ge.current&2)!==0),p&&(r=!0,t.flags&=-129),p=(t.flags&32)!==0,t.flags&=-33,e===null){if(he){if(r?Ma(t):Oa(),(e=Ne)?(e=Kp(e,Ut),e=e!==null&&e.data!=="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:Ea!==null?{id:Ft,overflow:Yt}:null,retryLane:536870912,hydrationErrors:null},a=fd(e),a.return=t,t.child=a,tt=t,Ne=null)):e=null,e===null)throw Ta(t);return gu(e)?t.lanes=32:t.lanes=536870912,null}var v=n.children;return n=n.fallback,r?(Oa(),r=t.mode,v=oo({mode:"hidden",children:v},r),n=an(n,r,a,null),v.return=t,n.return=t,v.sibling=n,t.child=v,n=t.child,n.memoizedState=Rs(a),n.childLanes=_s(e,p,a),t.memoizedState=Ds,Bi(null,n)):(Ma(t),xs(t,v))}var S=e.memoizedState;if(S!==null&&(v=S.dehydrated,v!==null)){if(c)t.flags&256?(Ma(t),t.flags&=-257,t=Ns(e,t,a)):t.memoizedState!==null?(Oa(),t.child=e.child,t.flags|=128,t=null):(Oa(),v=n.fallback,r=t.mode,n=oo({mode:"visible",children:n.children},r),v=an(v,r,a,null),v.flags|=2,n.return=t,v.return=t,n.sibling=v,t.child=n,cn(t,e.child,null,a),n=t.child,n.memoizedState=Rs(a),n.childLanes=_s(e,p,a),t.memoizedState=Ds,t=Bi(null,n));else if(Ma(t),gu(v)){if(p=v.nextSibling&&v.nextSibling.dataset,p)var P=p.dgst;p=P,n=Error(s(419)),n.stack="",n.digest=p,Pi({value:n,source:null,stack:null}),t=Ns(e,t,a)}else if(We||xn(e,t,a,!1),p=(a&e.childLanes)!==0,We||p){if(p=Re,p!==null&&(n=bc(p,a),n!==0&&n!==S.retryLane))throw S.retryLane=n,tn(e,n),yt(p,e,n),Ms;mu(v)||go(),t=Ns(e,t,a)}else mu(v)?(t.flags|=192,t.child=e.child,t=null):(e=S.treeContext,Ne=It(v.nextSibling),tt=t,he=!0,wa=null,Ut=!1,e!==null&&md(t,e),t=xs(t,n.children),t.flags|=4096);return t}return r?(Oa(),v=n.fallback,r=t.mode,S=e.child,P=S.sibling,n=na(S,{mode:"hidden",children:n.children}),n.subtreeFlags=S.subtreeFlags&65011712,P!==null?v=na(P,v):(v=an(v,r,a,null),v.flags|=2),v.return=t,n.return=t,n.sibling=v,t.child=n,Bi(null,n),n=t.child,v=e.child.memoizedState,v===null?v=Rs(a):(r=v.cachePool,r!==null?(S=Fe._currentValue,r=r.parent!==S?{parent:S,pool:S}:r):r=Cd(),v={baseLanes:v.baseLanes|a,cachePool:r}),n.memoizedState=v,n.childLanes=_s(e,p,a),t.memoizedState=Ds,Bi(e.child,n)):(Ma(t),a=e.child,e=a.sibling,a=na(a,{mode:"visible",children:n.children}),a.return=t,a.sibling=null,e!==null&&(p=t.deletions,p===null?(t.deletions=[e],t.flags|=16):p.push(e)),t.child=a,t.memoizedState=null,a)}function xs(e,t){return t=oo({mode:"visible",children:t},e.mode),t.return=e,e.child=t}function oo(e,t){return e=Et(22,e,null,t),e.lanes=0,e}function Ns(e,t,a){return cn(t,e.child,null,a),e=xs(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function xf(e,t,a){e.lanes|=t;var n=e.alternate;n!==null&&(n.lanes|=t),Qr(e.return,t,a)}function Us(e,t,a,n,r,c){var p=e.memoizedState;p===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:n,tail:a,tailMode:r,treeForkCount:c}:(p.isBackwards=t,p.rendering=null,p.renderingStartTime=0,p.last=n,p.tail=a,p.tailMode=r,p.treeForkCount=c)}function Nf(e,t,a){var n=t.pendingProps,r=n.revealOrder,c=n.tail;n=n.children;var p=Ge.current,v=(p&2)!==0;if(v?(p=p&1|2,t.flags|=128):p&=1,G(Ge,p),nt(e,t,n,a),n=he?Ti:0,!v&&e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&xf(e,a,t);else if(e.tag===19)xf(e,a,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(r){case"forwards":for(a=t.child,r=null;a!==null;)e=a.alternate,e!==null&&Wl(e)===null&&(r=a),a=a.sibling;a=r,a===null?(r=t.child,t.child=null):(r=a.sibling,a.sibling=null),Us(t,!1,r,a,c,n);break;case"backwards":case"unstable_legacy-backwards":for(a=null,r=t.child,t.child=null;r!==null;){if(e=r.alternate,e!==null&&Wl(e)===null){t.child=r;break}e=r.sibling,r.sibling=a,a=r,r=e}Us(t,!0,a,null,c,n);break;case"together":Us(t,!1,null,null,void 0,n);break;default:t.memoizedState=null}return t.child}function ua(e,t,a){if(e!==null&&(t.dependencies=e.dependencies),_a|=t.lanes,(a&t.childLanes)===0)if(e!==null){if(xn(e,t,a,!1),(a&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(s(153));if(t.child!==null){for(e=t.child,a=na(e,e.pendingProps),t.child=a,a.return=t;e.sibling!==null;)e=e.sibling,a=a.sibling=na(e,e.pendingProps),a.return=t;a.sibling=null}return t.child}function Bs(e,t){return(e.lanes&t)!==0?!0:(e=e.dependencies,!!(e!==null&&jl(e)))}function Ov(e,t,a){switch(t.tag){case 3:rt(t,t.stateNode.containerInfo),Pa(t,Fe,e.memoizedState.cache),nn();break;case 27:case 5:ci(t);break;case 4:rt(t,t.stateNode.containerInfo);break;case 10:Pa(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,us(t),null;break;case 13:var n=t.memoizedState;if(n!==null)return n.dehydrated!==null?(Ma(t),t.flags|=128,null):(a&t.child.childLanes)!==0?_f(e,t,a):(Ma(t),e=ua(e,t,a),e!==null?e.sibling:null);Ma(t);break;case 19:var r=(e.flags&128)!==0;if(n=(a&t.childLanes)!==0,n||(xn(e,t,a,!1),n=(a&t.childLanes)!==0),r){if(n)return Nf(e,t,a);t.flags|=128}if(r=t.memoizedState,r!==null&&(r.rendering=null,r.tail=null,r.lastEffect=null),G(Ge,Ge.current),n)break;return null;case 22:return t.lanes=0,kf(e,t,a,t.pendingProps);case 24:Pa(t,Fe,e.memoizedState.cache)}return ua(e,t,a)}function Uf(e,t,a){if(e!==null)if(e.memoizedProps!==t.pendingProps)We=!0;else{if(!Bs(e,a)&&(t.flags&128)===0)return We=!1,Ov(e,t,a);We=(e.flags&131072)!==0}else We=!1,he&&(t.flags&1048576)!==0&&hd(t,Ti,t.index);switch(t.lanes=0,t.tag){case 16:e:{var n=t.pendingProps;if(e=sn(t.elementType),t.type=e,typeof e=="function")qr(e)?(n=fn(e,n),t.tag=1,t=Df(null,t,e,n,a)):(t.tag=0,t=Os(null,t,e,n,a));else{if(e!=null){var r=e.$$typeof;if(r===Q){t.tag=11,t=Tf(null,t,e,n,a);break e}else if(r===V){t.tag=14,t=Pf(null,t,e,n,a);break e}}throw t=ke(e)||e,Error(s(306,t,""))}}return t;case 0:return Os(e,t,t.type,t.pendingProps,a);case 1:return n=t.type,r=fn(n,t.pendingProps),Df(e,t,n,r,a);case 3:e:{if(rt(t,t.stateNode.containerInfo),e===null)throw Error(s(387));n=t.pendingProps;var c=t.memoizedState;r=c.element,is(e,t),Ri(t,n,null,a);var p=t.memoizedState;if(n=p.cache,Pa(t,Fe,n),n!==c.cache&&Xr(t,[Fe],a,!0),Di(),n=p.element,c.isDehydrated)if(c={element:n,isDehydrated:!1,cache:p.cache},t.updateQueue.baseState=c,t.memoizedState=c,t.flags&256){t=Rf(e,t,n,a);break e}else if(n!==r){r=_t(Error(s(424)),t),Pi(r),t=Rf(e,t,n,a);break e}else for(e=t.stateNode.containerInfo,e.nodeType===9?e=e.body:e=e.nodeName==="HTML"?e.ownerDocument.body:e,Ne=It(e.firstChild),tt=t,he=!0,wa=null,Ut=!0,a=zd(t,null,n,a),t.child=a;a;)a.flags=a.flags&-3|4096,a=a.sibling;else{if(nn(),n===r){t=ua(e,t,a);break e}nt(e,t,n,a)}t=t.child}return t;case 26:return lo(e,t),e===null?(a=Wp(t.type,null,t.pendingProps,null))?t.memoizedState=a:he||(a=t.type,e=t.pendingProps,n=Eo(ue.current).createElement(a),n[et]=t,n[ft]=e,it(n,a,e),Qe(n),t.stateNode=n):t.memoizedState=Wp(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return ci(t),e===null&&he&&(n=t.stateNode=Vp(t.type,t.pendingProps,ue.current),tt=t,Ut=!0,r=Ne,Ia(t.type)?(vu=r,Ne=It(n.firstChild)):Ne=r),nt(e,t,t.pendingProps.children,a),lo(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&he&&((r=n=Ne)&&(n=ry(n,t.type,t.pendingProps,Ut),n!==null?(t.stateNode=n,tt=t,Ne=It(n.firstChild),Ut=!1,r=!0):r=!1),r||Ta(t)),ci(t),r=t.type,c=t.pendingProps,p=e!==null?e.memoizedProps:null,n=c.children,fu(r,c)?n=null:p!==null&&fu(r,p)&&(t.flags|=32),t.memoizedState!==null&&(r=ds(e,t,Av,null,null,a),Ji._currentValue=r),lo(e,t),nt(e,t,n,a),t.child;case 6:return e===null&&he&&((e=a=Ne)&&(a=sy(a,t.pendingProps,Ut),a!==null?(t.stateNode=a,tt=t,Ne=null,e=!0):e=!1),e||Ta(t)),null;case 13:return _f(e,t,a);case 4:return rt(t,t.stateNode.containerInfo),n=t.pendingProps,e===null?t.child=cn(t,null,n,a):nt(e,t,n,a),t.child;case 11:return Tf(e,t,t.type,t.pendingProps,a);case 7:return nt(e,t,t.pendingProps,a),t.child;case 8:return nt(e,t,t.pendingProps.children,a),t.child;case 12:return nt(e,t,t.pendingProps.children,a),t.child;case 10:return n=t.pendingProps,Pa(t,t.type,n.value),nt(e,t,n.children,a),t.child;case 9:return r=t.type._context,n=t.pendingProps.children,on(t),r=at(r),n=n(r),t.flags|=1,nt(e,t,n,a),t.child;case 14:return Pf(e,t,t.type,t.pendingProps,a);case 15:return zf(e,t,t.type,t.pendingProps,a);case 19:return Nf(e,t,a);case 31:return Mv(e,t,a);case 22:return kf(e,t,a,t.pendingProps);case 24:return on(t),n=at(Fe),e===null?(r=ts(),r===null&&(r=Re,c=Jr(),r.pooledCache=c,c.refCount++,c!==null&&(r.pooledCacheLanes|=a),r=c),t.memoizedState={parent:n,cache:r},ns(t),Pa(t,Fe,r)):((e.lanes&a)!==0&&(is(e,t),Ri(t,null,null,a),Di()),r=e.memoizedState,c=t.memoizedState,r.parent!==n?(r={parent:n,cache:n},t.memoizedState=r,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=r),Pa(t,Fe,n)):(n=c.cache,Pa(t,Fe,n),n!==r.cache&&Xr(t,[Fe],a,!0))),nt(e,t,t.pendingProps.children,a),t.child;case 29:throw t.pendingProps}throw Error(s(156,t.tag))}function ca(e){e.flags|=4}function Is(e,t,a,n,r){if((t=(e.mode&32)!==0)&&(t=!1),t){if(e.flags|=16777216,(r&335544128)===r)if(e.stateNode.complete)e.flags|=8192;else if(cp())e.flags|=8192;else throw un=Gl,as}else e.flags&=-16777217}function Bf(e,t){if(t.type!=="stylesheet"||(t.state.loading&4)!==0)e.flags&=-16777217;else if(e.flags|=16777216,!Jp(t))if(cp())e.flags|=8192;else throw un=Gl,as}function ro(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag!==22?gc():536870912,e.lanes|=t,Yn|=t)}function Ii(e,t){if(!he)switch(e.tailMode){case"hidden":t=e.tail;for(var a=null;t!==null;)t.alternate!==null&&(a=t),t=t.sibling;a===null?e.tail=null:a.sibling=null;break;case"collapsed":a=e.tail;for(var n=null;a!==null;)a.alternate!==null&&(n=a),a=a.sibling;n===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:n.sibling=null}}function Ue(e){var t=e.alternate!==null&&e.alternate.child===e.child,a=0,n=0;if(t)for(var r=e.child;r!==null;)a|=r.lanes|r.childLanes,n|=r.subtreeFlags&65011712,n|=r.flags&65011712,r.return=e,r=r.sibling;else for(r=e.child;r!==null;)a|=r.lanes|r.childLanes,n|=r.subtreeFlags,n|=r.flags,r.return=e,r=r.sibling;return e.subtreeFlags|=n,e.childLanes=a,t}function Dv(e,t,a){var n=t.pendingProps;switch(Yr(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ue(t),null;case 1:return Ue(t),null;case 3:return a=t.stateNode,n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),oa(Fe),qe(),a.pendingContext&&(a.context=a.pendingContext,a.pendingContext=null),(e===null||e.child===null)&&(_n(t)?ca(t):e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,$r())),Ue(t),null;case 26:var r=t.type,c=t.memoizedState;return e===null?(ca(t),c!==null?(Ue(t),Bf(t,c)):(Ue(t),Is(t,r,null,n,a))):c?c!==e.memoizedState?(ca(t),Ue(t),Bf(t,c)):(Ue(t),t.flags&=-16777217):(e=e.memoizedProps,e!==n&&ca(t),Ue(t),Is(t,r,e,n,a)),null;case 27:if(yl(t),a=ue.current,r=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==n&&ca(t);else{if(!n){if(t.stateNode===null)throw Error(s(166));return Ue(t),null}e=W.current,_n(t)?gd(t):(e=Vp(r,n,a),t.stateNode=e,ca(t))}return Ue(t),null;case 5:if(yl(t),r=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==n&&ca(t);else{if(!n){if(t.stateNode===null)throw Error(s(166));return Ue(t),null}if(c=W.current,_n(t))gd(t);else{var p=Eo(ue.current);switch(c){case 1:c=p.createElementNS("http://www.w3.org/2000/svg",r);break;case 2:c=p.createElementNS("http://www.w3.org/1998/Math/MathML",r);break;default:switch(r){case"svg":c=p.createElementNS("http://www.w3.org/2000/svg",r);break;case"math":c=p.createElementNS("http://www.w3.org/1998/Math/MathML",r);break;case"script":c=p.createElement("div"),c.innerHTML="<script><\/script>",c=c.removeChild(c.firstChild);break;case"select":c=typeof n.is=="string"?p.createElement("select",{is:n.is}):p.createElement("select"),n.multiple?c.multiple=!0:n.size&&(c.size=n.size);break;default:c=typeof n.is=="string"?p.createElement(r,{is:n.is}):p.createElement(r)}}c[et]=t,c[ft]=n;e:for(p=t.child;p!==null;){if(p.tag===5||p.tag===6)c.appendChild(p.stateNode);else if(p.tag!==4&&p.tag!==27&&p.child!==null){p.child.return=p,p=p.child;continue}if(p===t)break e;for(;p.sibling===null;){if(p.return===null||p.return===t)break e;p=p.return}p.sibling.return=p.return,p=p.sibling}t.stateNode=c;e:switch(it(c,r,n),r){case"button":case"input":case"select":case"textarea":n=!!n.autoFocus;break e;case"img":n=!0;break e;default:n=!1}n&&ca(t)}}return Ue(t),Is(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,a),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==n&&ca(t);else{if(typeof n!="string"&&t.stateNode===null)throw Error(s(166));if(e=ue.current,_n(t)){if(e=t.stateNode,a=t.memoizedProps,n=null,r=tt,r!==null)switch(r.tag){case 27:case 5:n=r.memoizedProps}e[et]=t,e=!!(e.nodeValue===a||n!==null&&n.suppressHydrationWarning===!0||_p(e.nodeValue,a)),e||Ta(t,!0)}else e=Eo(e).createTextNode(n),e[et]=t,t.stateNode=e}return Ue(t),null;case 31:if(a=t.memoizedState,e===null||e.memoizedState!==null){if(n=_n(t),a!==null){if(e===null){if(!n)throw Error(s(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(s(557));e[et]=t}else nn(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Ue(t),e=!1}else a=$r(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),e=!0;if(!e)return t.flags&256?(Tt(t),t):(Tt(t),null);if((t.flags&128)!==0)throw Error(s(558))}return Ue(t),null;case 13:if(n=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(r=_n(t),n!==null&&n.dehydrated!==null){if(e===null){if(!r)throw Error(s(318));if(r=t.memoizedState,r=r!==null?r.dehydrated:null,!r)throw Error(s(317));r[et]=t}else nn(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Ue(t),r=!1}else r=$r(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=r),r=!0;if(!r)return t.flags&256?(Tt(t),t):(Tt(t),null)}return Tt(t),(t.flags&128)!==0?(t.lanes=a,t):(a=n!==null,e=e!==null&&e.memoizedState!==null,a&&(n=t.child,r=null,n.alternate!==null&&n.alternate.memoizedState!==null&&n.alternate.memoizedState.cachePool!==null&&(r=n.alternate.memoizedState.cachePool.pool),c=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(c=n.memoizedState.cachePool.pool),c!==r&&(n.flags|=2048)),a!==e&&a&&(t.child.flags|=8192),ro(t,t.updateQueue),Ue(t),null);case 4:return qe(),e===null&&ru(t.stateNode.containerInfo),Ue(t),null;case 10:return oa(t.type),Ue(t),null;case 19:if(R(Ge),n=t.memoizedState,n===null)return Ue(t),null;if(r=(t.flags&128)!==0,c=n.rendering,c===null)if(r)Ii(n,!1);else{if(Ke!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(c=Wl(e),c!==null){for(t.flags|=128,Ii(n,!1),e=c.updateQueue,t.updateQueue=e,ro(t,e),t.subtreeFlags=0,e=a,a=t.child;a!==null;)dd(a,e),a=a.sibling;return G(Ge,Ge.current&1|2),he&&ia(t,n.treeForkCount),t.child}e=e.sibling}n.tail!==null&&bt()>po&&(t.flags|=128,r=!0,Ii(n,!1),t.lanes=4194304)}else{if(!r)if(e=Wl(c),e!==null){if(t.flags|=128,r=!0,e=e.updateQueue,t.updateQueue=e,ro(t,e),Ii(n,!0),n.tail===null&&n.tailMode==="hidden"&&!c.alternate&&!he)return Ue(t),null}else 2*bt()-n.renderingStartTime>po&&a!==536870912&&(t.flags|=128,r=!0,Ii(n,!1),t.lanes=4194304);n.isBackwards?(c.sibling=t.child,t.child=c):(e=n.last,e!==null?e.sibling=c:t.child=c,n.last=c)}return n.tail!==null?(e=n.tail,n.rendering=e,n.tail=e.sibling,n.renderingStartTime=bt(),e.sibling=null,a=Ge.current,G(Ge,r?a&1|2:a&1),he&&ia(t,n.treeForkCount),e):(Ue(t),null);case 22:case 23:return Tt(t),ss(),n=t.memoizedState!==null,e!==null?e.memoizedState!==null!==n&&(t.flags|=8192):n&&(t.flags|=8192),n?(a&536870912)!==0&&(t.flags&128)===0&&(Ue(t),t.subtreeFlags&6&&(t.flags|=8192)):Ue(t),a=t.updateQueue,a!==null&&ro(t,a.retryQueue),a=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(a=e.memoizedState.cachePool.pool),n=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(n=t.memoizedState.cachePool.pool),n!==a&&(t.flags|=2048),e!==null&&R(rn),null;case 24:return a=null,e!==null&&(a=e.memoizedState.cache),t.memoizedState.cache!==a&&(t.flags|=2048),oa(Fe),Ue(t),null;case 25:return null;case 30:return null}throw Error(s(156,t.tag))}function Rv(e,t){switch(Yr(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return oa(Fe),qe(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return yl(t),null;case 31:if(t.memoizedState!==null){if(Tt(t),t.alternate===null)throw Error(s(340));nn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(Tt(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(s(340));nn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return R(Ge),null;case 4:return qe(),null;case 10:return oa(t.type),null;case 22:case 23:return Tt(t),ss(),e!==null&&R(rn),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return oa(Fe),null;case 25:return null;default:return null}}function If(e,t){switch(Yr(t),t.tag){case 3:oa(Fe),qe();break;case 26:case 27:case 5:yl(t);break;case 4:qe();break;case 31:t.memoizedState!==null&&Tt(t);break;case 13:Tt(t);break;case 19:R(Ge);break;case 10:oa(t.type);break;case 22:case 23:Tt(t),ss(),e!==null&&R(rn);break;case 24:oa(Fe)}}function ji(e,t){try{var a=t.updateQueue,n=a!==null?a.lastEffect:null;if(n!==null){var r=n.next;a=r;do{if((a.tag&e)===e){n=void 0;var c=a.create,p=a.inst;n=c(),p.destroy=n}a=a.next}while(a!==r)}}catch(v){Pe(t,t.return,v)}}function Da(e,t,a){try{var n=t.updateQueue,r=n!==null?n.lastEffect:null;if(r!==null){var c=r.next;n=c;do{if((n.tag&e)===e){var p=n.inst,v=p.destroy;if(v!==void 0){p.destroy=void 0,r=t;var S=a,P=v;try{P()}catch(O){Pe(r,S,O)}}}n=n.next}while(n!==c)}}catch(O){Pe(t,t.return,O)}}function jf(e){var t=e.updateQueue;if(t!==null){var a=e.stateNode;try{Ld(t,a)}catch(n){Pe(e,e.return,n)}}}function Hf(e,t,a){a.props=fn(e.type,e.memoizedProps),a.state=e.memoizedState;try{a.componentWillUnmount()}catch(n){Pe(e,t,n)}}function Hi(e,t){try{var a=e.ref;if(a!==null){switch(e.tag){case 26:case 27:case 5:var n=e.stateNode;break;case 30:n=e.stateNode;break;default:n=e.stateNode}typeof a=="function"?e.refCleanup=a(n):a.current=n}}catch(r){Pe(e,t,r)}}function Wt(e,t){var a=e.ref,n=e.refCleanup;if(a!==null)if(typeof n=="function")try{n()}catch(r){Pe(e,t,r)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof a=="function")try{a(null)}catch(r){Pe(e,t,r)}else a.current=null}function Kf(e){var t=e.type,a=e.memoizedProps,n=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":a.autoFocus&&n.focus();break e;case"img":a.src?n.src=a.src:a.srcSet&&(n.srcset=a.srcSet)}}catch(r){Pe(e,e.return,r)}}function js(e,t,a){try{var n=e.stateNode;ty(n,e.type,a,t),n[ft]=t}catch(r){Pe(e,e.return,r)}}function qf(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Ia(e.type)||e.tag===4}function Hs(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||qf(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Ia(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Ks(e,t,a){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?(a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a).insertBefore(e,t):(t=a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a,t.appendChild(e),a=a._reactRootContainer,a!=null||t.onclick!==null||(t.onclick=ta));else if(n!==4&&(n===27&&Ia(e.type)&&(a=e.stateNode,t=null),e=e.child,e!==null))for(Ks(e,t,a),e=e.sibling;e!==null;)Ks(e,t,a),e=e.sibling}function so(e,t,a){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?a.insertBefore(e,t):a.appendChild(e);else if(n!==4&&(n===27&&Ia(e.type)&&(a=e.stateNode),e=e.child,e!==null))for(so(e,t,a),e=e.sibling;e!==null;)so(e,t,a),e=e.sibling}function Gf(e){var t=e.stateNode,a=e.memoizedProps;try{for(var n=e.type,r=t.attributes;r.length;)t.removeAttributeNode(r[0]);it(t,n,a),t[et]=e,t[ft]=a}catch(c){Pe(e,e.return,c)}}var da=!1,$e=!1,qs=!1,Vf=typeof WeakSet=="function"?WeakSet:Set,Xe=null;function _v(e,t){if(e=e.containerInfo,cu=Mo,e=ad(e),Nr(e)){if("selectionStart"in e)var a={start:e.selectionStart,end:e.selectionEnd};else e:{a=(a=e.ownerDocument)&&a.defaultView||window;var n=a.getSelection&&a.getSelection();if(n&&n.rangeCount!==0){a=n.anchorNode;var r=n.anchorOffset,c=n.focusNode;n=n.focusOffset;try{a.nodeType,c.nodeType}catch{a=null;break e}var p=0,v=-1,S=-1,P=0,O=0,U=e,z=null;t:for(;;){for(var L;U!==a||r!==0&&U.nodeType!==3||(v=p+r),U!==c||n!==0&&U.nodeType!==3||(S=p+n),U.nodeType===3&&(p+=U.nodeValue.length),(L=U.firstChild)!==null;)z=U,U=L;for(;;){if(U===e)break t;if(z===a&&++P===r&&(v=p),z===c&&++O===n&&(S=p),(L=U.nextSibling)!==null)break;U=z,z=U.parentNode}U=L}a=v===-1||S===-1?null:{start:v,end:S}}else a=null}a=a||{start:0,end:0}}else a=null;for(du={focusedElem:e,selectionRange:a},Mo=!1,Xe=t;Xe!==null;)if(t=Xe,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,Xe=e;else for(;Xe!==null;){switch(t=Xe,c=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.updateQueue,e=e!==null?e.events:null,e!==null))for(a=0;a<e.length;a++)r=e[a],r.ref.impl=r.nextImpl;break;case 11:case 15:break;case 1:if((e&1024)!==0&&c!==null){e=void 0,a=t,r=c.memoizedProps,c=c.memoizedState,n=a.stateNode;try{var $=fn(a.type,r);e=n.getSnapshotBeforeUpdate($,c),n.__reactInternalSnapshotBeforeUpdate=e}catch(ae){Pe(a,a.return,ae)}}break;case 3:if((e&1024)!==0){if(e=t.stateNode.containerInfo,a=e.nodeType,a===9)hu(e);else if(a===1)switch(e.nodeName){case"HEAD":case"HTML":case"BODY":hu(e);break;default:e.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((e&1024)!==0)throw Error(s(163))}if(e=t.sibling,e!==null){e.return=t.return,Xe=e;break}Xe=t.return}}function Ff(e,t,a){var n=a.flags;switch(a.tag){case 0:case 11:case 15:pa(e,a),n&4&&ji(5,a);break;case 1:if(pa(e,a),n&4)if(e=a.stateNode,t===null)try{e.componentDidMount()}catch(p){Pe(a,a.return,p)}else{var r=fn(a.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(r,t,e.__reactInternalSnapshotBeforeUpdate)}catch(p){Pe(a,a.return,p)}}n&64&&jf(a),n&512&&Hi(a,a.return);break;case 3:if(pa(e,a),n&64&&(e=a.updateQueue,e!==null)){if(t=null,a.child!==null)switch(a.child.tag){case 27:case 5:t=a.child.stateNode;break;case 1:t=a.child.stateNode}try{Ld(e,t)}catch(p){Pe(a,a.return,p)}}break;case 27:t===null&&n&4&&Gf(a);case 26:case 5:pa(e,a),t===null&&n&4&&Kf(a),n&512&&Hi(a,a.return);break;case 12:pa(e,a);break;case 31:pa(e,a),n&4&&$f(e,a);break;case 13:pa(e,a),n&4&&Zf(e,a),n&64&&(e=a.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(a=qv.bind(null,a),uy(e,a))));break;case 22:if(n=a.memoizedState!==null||da,!n){t=t!==null&&t.memoizedState!==null||$e,r=da;var c=$e;da=n,($e=t)&&!c?ha(e,a,(a.subtreeFlags&8772)!==0):pa(e,a),da=r,$e=c}break;case 30:break;default:pa(e,a)}}function Yf(e){var t=e.alternate;t!==null&&(e.alternate=null,Yf(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&br(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var Ie=null,ht=!1;function fa(e,t,a){for(a=a.child;a!==null;)Wf(e,t,a),a=a.sibling}function Wf(e,t,a){if(St&&typeof St.onCommitFiberUnmount=="function")try{St.onCommitFiberUnmount(di,a)}catch{}switch(a.tag){case 26:$e||Wt(a,t),fa(e,t,a),a.memoizedState?a.memoizedState.count--:a.stateNode&&(a=a.stateNode,a.parentNode.removeChild(a));break;case 27:$e||Wt(a,t);var n=Ie,r=ht;Ia(a.type)&&(Ie=a.stateNode,ht=!1),fa(e,t,a),Zi(a.stateNode),Ie=n,ht=r;break;case 5:$e||Wt(a,t);case 6:if(n=Ie,r=ht,Ie=null,fa(e,t,a),Ie=n,ht=r,Ie!==null)if(ht)try{(Ie.nodeType===9?Ie.body:Ie.nodeName==="HTML"?Ie.ownerDocument.body:Ie).removeChild(a.stateNode)}catch(c){Pe(a,t,c)}else try{Ie.removeChild(a.stateNode)}catch(c){Pe(a,t,c)}break;case 18:Ie!==null&&(ht?(e=Ie,jp(e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e,a.stateNode),ti(e)):jp(Ie,a.stateNode));break;case 4:n=Ie,r=ht,Ie=a.stateNode.containerInfo,ht=!0,fa(e,t,a),Ie=n,ht=r;break;case 0:case 11:case 14:case 15:Da(2,a,t),$e||Da(4,a,t),fa(e,t,a);break;case 1:$e||(Wt(a,t),n=a.stateNode,typeof n.componentWillUnmount=="function"&&Hf(a,t,n)),fa(e,t,a);break;case 21:fa(e,t,a);break;case 22:$e=(n=$e)||a.memoizedState!==null,fa(e,t,a),$e=n;break;default:fa(e,t,a)}}function $f(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{ti(e)}catch(a){Pe(t,t.return,a)}}}function Zf(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{ti(e)}catch(a){Pe(t,t.return,a)}}function xv(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new Vf),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new Vf),t;default:throw Error(s(435,e.tag))}}function uo(e,t){var a=xv(e);t.forEach(function(n){if(!a.has(n)){a.add(n);var r=Gv.bind(null,e,n);n.then(r,r)}})}function mt(e,t){var a=t.deletions;if(a!==null)for(var n=0;n<a.length;n++){var r=a[n],c=e,p=t,v=p;e:for(;v!==null;){switch(v.tag){case 27:if(Ia(v.type)){Ie=v.stateNode,ht=!1;break e}break;case 5:Ie=v.stateNode,ht=!1;break e;case 3:case 4:Ie=v.stateNode.containerInfo,ht=!0;break e}v=v.return}if(Ie===null)throw Error(s(160));Wf(c,p,r),Ie=null,ht=!1,c=r.alternate,c!==null&&(c.return=null),r.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)Qf(t,e),t=t.sibling}var Gt=null;function Qf(e,t){var a=e.alternate,n=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:mt(t,e),gt(e),n&4&&(Da(3,e,e.return),ji(3,e),Da(5,e,e.return));break;case 1:mt(t,e),gt(e),n&512&&($e||a===null||Wt(a,a.return)),n&64&&da&&(e=e.updateQueue,e!==null&&(n=e.callbacks,n!==null&&(a=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=a===null?n:a.concat(n))));break;case 26:var r=Gt;if(mt(t,e),gt(e),n&512&&($e||a===null||Wt(a,a.return)),n&4){var c=a!==null?a.memoizedState:null;if(n=e.memoizedState,a===null)if(n===null)if(e.stateNode===null){e:{n=e.type,a=e.memoizedProps,r=r.ownerDocument||r;t:switch(n){case"title":c=r.getElementsByTagName("title")[0],(!c||c[hi]||c[et]||c.namespaceURI==="http://www.w3.org/2000/svg"||c.hasAttribute("itemprop"))&&(c=r.createElement(n),r.head.insertBefore(c,r.querySelector("head > title"))),it(c,n,a),c[et]=e,Qe(c),n=c;break e;case"link":var p=Qp("link","href",r).get(n+(a.href||""));if(p){for(var v=0;v<p.length;v++)if(c=p[v],c.getAttribute("href")===(a.href==null||a.href===""?null:a.href)&&c.getAttribute("rel")===(a.rel==null?null:a.rel)&&c.getAttribute("title")===(a.title==null?null:a.title)&&c.getAttribute("crossorigin")===(a.crossOrigin==null?null:a.crossOrigin)){p.splice(v,1);break t}}c=r.createElement(n),it(c,n,a),r.head.appendChild(c);break;case"meta":if(p=Qp("meta","content",r).get(n+(a.content||""))){for(v=0;v<p.length;v++)if(c=p[v],c.getAttribute("content")===(a.content==null?null:""+a.content)&&c.getAttribute("name")===(a.name==null?null:a.name)&&c.getAttribute("property")===(a.property==null?null:a.property)&&c.getAttribute("http-equiv")===(a.httpEquiv==null?null:a.httpEquiv)&&c.getAttribute("charset")===(a.charSet==null?null:a.charSet)){p.splice(v,1);break t}}c=r.createElement(n),it(c,n,a),r.head.appendChild(c);break;default:throw Error(s(468,n))}c[et]=e,Qe(c),n=c}e.stateNode=n}else Xp(r,e.type,e.stateNode);else e.stateNode=Zp(r,n,e.memoizedProps);else c!==n?(c===null?a.stateNode!==null&&(a=a.stateNode,a.parentNode.removeChild(a)):c.count--,n===null?Xp(r,e.type,e.stateNode):Zp(r,n,e.memoizedProps)):n===null&&e.stateNode!==null&&js(e,e.memoizedProps,a.memoizedProps)}break;case 27:mt(t,e),gt(e),n&512&&($e||a===null||Wt(a,a.return)),a!==null&&n&4&&js(e,e.memoizedProps,a.memoizedProps);break;case 5:if(mt(t,e),gt(e),n&512&&($e||a===null||Wt(a,a.return)),e.flags&32){r=e.stateNode;try{wn(r,"")}catch($){Pe(e,e.return,$)}}n&4&&e.stateNode!=null&&(r=e.memoizedProps,js(e,r,a!==null?a.memoizedProps:r)),n&1024&&(qs=!0);break;case 6:if(mt(t,e),gt(e),n&4){if(e.stateNode===null)throw Error(s(162));n=e.memoizedProps,a=e.stateNode;try{a.nodeValue=n}catch($){Pe(e,e.return,$)}}break;case 3:if(Po=null,r=Gt,Gt=wo(t.containerInfo),mt(t,e),Gt=r,gt(e),n&4&&a!==null&&a.memoizedState.isDehydrated)try{ti(t.containerInfo)}catch($){Pe(e,e.return,$)}qs&&(qs=!1,Xf(e));break;case 4:n=Gt,Gt=wo(e.stateNode.containerInfo),mt(t,e),gt(e),Gt=n;break;case 12:mt(t,e),gt(e);break;case 31:mt(t,e),gt(e),n&4&&(n=e.updateQueue,n!==null&&(e.updateQueue=null,uo(e,n)));break;case 13:mt(t,e),gt(e),e.child.flags&8192&&e.memoizedState!==null!=(a!==null&&a.memoizedState!==null)&&(fo=bt()),n&4&&(n=e.updateQueue,n!==null&&(e.updateQueue=null,uo(e,n)));break;case 22:r=e.memoizedState!==null;var S=a!==null&&a.memoizedState!==null,P=da,O=$e;if(da=P||r,$e=O||S,mt(t,e),$e=O,da=P,gt(e),n&8192)e:for(t=e.stateNode,t._visibility=r?t._visibility&-2:t._visibility|1,r&&(a===null||S||da||$e||pn(e)),a=null,t=e;;){if(t.tag===5||t.tag===26){if(a===null){S=a=t;try{if(c=S.stateNode,r)p=c.style,typeof p.setProperty=="function"?p.setProperty("display","none","important"):p.display="none";else{v=S.stateNode;var U=S.memoizedProps.style,z=U!=null&&U.hasOwnProperty("display")?U.display:null;v.style.display=z==null||typeof z=="boolean"?"":(""+z).trim()}}catch($){Pe(S,S.return,$)}}}else if(t.tag===6){if(a===null){S=t;try{S.stateNode.nodeValue=r?"":S.memoizedProps}catch($){Pe(S,S.return,$)}}}else if(t.tag===18){if(a===null){S=t;try{var L=S.stateNode;r?Hp(L,!0):Hp(S.stateNode,!1)}catch($){Pe(S,S.return,$)}}}else if((t.tag!==22&&t.tag!==23||t.memoizedState===null||t===e)&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break e;for(;t.sibling===null;){if(t.return===null||t.return===e)break e;a===t&&(a=null),t=t.return}a===t&&(a=null),t.sibling.return=t.return,t=t.sibling}n&4&&(n=e.updateQueue,n!==null&&(a=n.retryQueue,a!==null&&(n.retryQueue=null,uo(e,a))));break;case 19:mt(t,e),gt(e),n&4&&(n=e.updateQueue,n!==null&&(e.updateQueue=null,uo(e,n)));break;case 30:break;case 21:break;default:mt(t,e),gt(e)}}function gt(e){var t=e.flags;if(t&2){try{for(var a,n=e.return;n!==null;){if(qf(n)){a=n;break}n=n.return}if(a==null)throw Error(s(160));switch(a.tag){case 27:var r=a.stateNode,c=Hs(e);so(e,c,r);break;case 5:var p=a.stateNode;a.flags&32&&(wn(p,""),a.flags&=-33);var v=Hs(e);so(e,v,p);break;case 3:case 4:var S=a.stateNode.containerInfo,P=Hs(e);Ks(e,P,S);break;default:throw Error(s(161))}}catch(O){Pe(e,e.return,O)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function Xf(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;Xf(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function pa(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)Ff(e,t.alternate,t),t=t.sibling}function pn(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:Da(4,t,t.return),pn(t);break;case 1:Wt(t,t.return);var a=t.stateNode;typeof a.componentWillUnmount=="function"&&Hf(t,t.return,a),pn(t);break;case 27:Zi(t.stateNode);case 26:case 5:Wt(t,t.return),pn(t);break;case 22:t.memoizedState===null&&pn(t);break;case 30:pn(t);break;default:pn(t)}e=e.sibling}}function ha(e,t,a){for(a=a&&(t.subtreeFlags&8772)!==0,t=t.child;t!==null;){var n=t.alternate,r=e,c=t,p=c.flags;switch(c.tag){case 0:case 11:case 15:ha(r,c,a),ji(4,c);break;case 1:if(ha(r,c,a),n=c,r=n.stateNode,typeof r.componentDidMount=="function")try{r.componentDidMount()}catch(P){Pe(n,n.return,P)}if(n=c,r=n.updateQueue,r!==null){var v=n.stateNode;try{var S=r.shared.hiddenCallbacks;if(S!==null)for(r.shared.hiddenCallbacks=null,r=0;r<S.length;r++)kd(S[r],v)}catch(P){Pe(n,n.return,P)}}a&&p&64&&jf(c),Hi(c,c.return);break;case 27:Gf(c);case 26:case 5:ha(r,c,a),a&&n===null&&p&4&&Kf(c),Hi(c,c.return);break;case 12:ha(r,c,a);break;case 31:ha(r,c,a),a&&p&4&&$f(r,c);break;case 13:ha(r,c,a),a&&p&4&&Zf(r,c);break;case 22:c.memoizedState===null&&ha(r,c,a),Hi(c,c.return);break;case 30:break;default:ha(r,c,a)}t=t.sibling}}function Gs(e,t){var a=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(a=e.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==a&&(e!=null&&e.refCount++,a!=null&&zi(a))}function Vs(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&zi(e))}function Vt(e,t,a,n){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)Jf(e,t,a,n),t=t.sibling}function Jf(e,t,a,n){var r=t.flags;switch(t.tag){case 0:case 11:case 15:Vt(e,t,a,n),r&2048&&ji(9,t);break;case 1:Vt(e,t,a,n);break;case 3:Vt(e,t,a,n),r&2048&&(e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&zi(e)));break;case 12:if(r&2048){Vt(e,t,a,n),e=t.stateNode;try{var c=t.memoizedProps,p=c.id,v=c.onPostCommit;typeof v=="function"&&v(p,t.alternate===null?"mount":"update",e.passiveEffectDuration,-0)}catch(S){Pe(t,t.return,S)}}else Vt(e,t,a,n);break;case 31:Vt(e,t,a,n);break;case 13:Vt(e,t,a,n);break;case 23:break;case 22:c=t.stateNode,p=t.alternate,t.memoizedState!==null?c._visibility&2?Vt(e,t,a,n):Ki(e,t):c._visibility&2?Vt(e,t,a,n):(c._visibility|=2,Gn(e,t,a,n,(t.subtreeFlags&10256)!==0||!1)),r&2048&&Gs(p,t);break;case 24:Vt(e,t,a,n),r&2048&&Vs(t.alternate,t);break;default:Vt(e,t,a,n)}}function Gn(e,t,a,n,r){for(r=r&&((t.subtreeFlags&10256)!==0||!1),t=t.child;t!==null;){var c=e,p=t,v=a,S=n,P=p.flags;switch(p.tag){case 0:case 11:case 15:Gn(c,p,v,S,r),ji(8,p);break;case 23:break;case 22:var O=p.stateNode;p.memoizedState!==null?O._visibility&2?Gn(c,p,v,S,r):Ki(c,p):(O._visibility|=2,Gn(c,p,v,S,r)),r&&P&2048&&Gs(p.alternate,p);break;case 24:Gn(c,p,v,S,r),r&&P&2048&&Vs(p.alternate,p);break;default:Gn(c,p,v,S,r)}t=t.sibling}}function Ki(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var a=e,n=t,r=n.flags;switch(n.tag){case 22:Ki(a,n),r&2048&&Gs(n.alternate,n);break;case 24:Ki(a,n),r&2048&&Vs(n.alternate,n);break;default:Ki(a,n)}t=t.sibling}}var qi=8192;function Vn(e,t,a){if(e.subtreeFlags&qi)for(e=e.child;e!==null;)ep(e,t,a),e=e.sibling}function ep(e,t,a){switch(e.tag){case 26:Vn(e,t,a),e.flags&qi&&e.memoizedState!==null&&Cy(a,Gt,e.memoizedState,e.memoizedProps);break;case 5:Vn(e,t,a);break;case 3:case 4:var n=Gt;Gt=wo(e.stateNode.containerInfo),Vn(e,t,a),Gt=n;break;case 22:e.memoizedState===null&&(n=e.alternate,n!==null&&n.memoizedState!==null?(n=qi,qi=16777216,Vn(e,t,a),qi=n):Vn(e,t,a));break;default:Vn(e,t,a)}}function tp(e){var t=e.alternate;if(t!==null&&(e=t.child,e!==null)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(e!==null)}}function Gi(e){var t=e.deletions;if((e.flags&16)!==0){if(t!==null)for(var a=0;a<t.length;a++){var n=t[a];Xe=n,np(n,e)}tp(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)ap(e),e=e.sibling}function ap(e){switch(e.tag){case 0:case 11:case 15:Gi(e),e.flags&2048&&Da(9,e,e.return);break;case 3:Gi(e);break;case 12:Gi(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,co(e)):Gi(e);break;default:Gi(e)}}function co(e){var t=e.deletions;if((e.flags&16)!==0){if(t!==null)for(var a=0;a<t.length;a++){var n=t[a];Xe=n,np(n,e)}tp(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:Da(8,t,t.return),co(t);break;case 22:a=t.stateNode,a._visibility&2&&(a._visibility&=-3,co(t));break;default:co(t)}e=e.sibling}}function np(e,t){for(;Xe!==null;){var a=Xe;switch(a.tag){case 0:case 11:case 15:Da(8,a,t);break;case 23:case 22:if(a.memoizedState!==null&&a.memoizedState.cachePool!==null){var n=a.memoizedState.cachePool.pool;n!=null&&n.refCount++}break;case 24:zi(a.memoizedState.cache)}if(n=a.child,n!==null)n.return=a,Xe=n;else e:for(a=e;Xe!==null;){n=Xe;var r=n.sibling,c=n.return;if(Yf(n),n===a){Xe=null;break e}if(r!==null){r.return=c,Xe=r;break e}Xe=c}}}var Nv={getCacheForType:function(e){var t=at(Fe),a=t.data.get(e);return a===void 0&&(a=e(),t.data.set(e,a)),a},cacheSignal:function(){return at(Fe).controller.signal}},Uv=typeof WeakMap=="function"?WeakMap:Map,Ce=0,Re=null,ce=null,fe=0,Te=0,Pt=null,Ra=!1,Fn=!1,Fs=!1,ma=0,Ke=0,_a=0,hn=0,Ys=0,zt=0,Yn=0,Vi=null,vt=null,Ws=!1,fo=0,ip=0,po=1/0,ho=null,xa=null,Ze=0,Na=null,Wn=null,ga=0,$s=0,Zs=null,lp=null,Fi=0,Qs=null;function kt(){return(Ce&2)!==0&&fe!==0?fe&-fe:M.T!==null?nu():Sc()}function op(){if(zt===0)if((fe&536870912)===0||he){var e=Cl;Cl<<=1,(Cl&3932160)===0&&(Cl=262144),zt=e}else zt=536870912;return e=wt.current,e!==null&&(e.flags|=32),zt}function yt(e,t,a){(e===Re&&(Te===2||Te===9)||e.cancelPendingCommit!==null)&&($n(e,0),Ua(e,fe,zt,!1)),pi(e,a),((Ce&2)===0||e!==Re)&&(e===Re&&((Ce&2)===0&&(hn|=a),Ke===4&&Ua(e,fe,zt,!1)),$t(e))}function rp(e,t,a){if((Ce&6)!==0)throw Error(s(327));var n=!a&&(t&127)===0&&(t&e.expiredLanes)===0||fi(e,t),r=n?jv(e,t):Js(e,t,!0),c=n;do{if(r===0){Fn&&!n&&Ua(e,t,0,!1);break}else{if(a=e.current.alternate,c&&!Bv(a)){r=Js(e,t,!1),c=!1;continue}if(r===2){if(c=t,e.errorRecoveryDisabledLanes&c)var p=0;else p=e.pendingLanes&-536870913,p=p!==0?p:p&536870912?536870912:0;if(p!==0){t=p;e:{var v=e;r=Vi;var S=v.current.memoizedState.isDehydrated;if(S&&($n(v,p).flags|=256),p=Js(v,p,!1),p!==2){if(Fs&&!S){v.errorRecoveryDisabledLanes|=c,hn|=c,r=4;break e}c=vt,vt=r,c!==null&&(vt===null?vt=c:vt.push.apply(vt,c))}r=p}if(c=!1,r!==2)continue}}if(r===1){$n(e,0),Ua(e,t,0,!0);break}e:{switch(n=e,c=r,c){case 0:case 1:throw Error(s(345));case 4:if((t&4194048)!==t)break;case 6:Ua(n,t,zt,!Ra);break e;case 2:vt=null;break;case 3:case 5:break;default:throw Error(s(329))}if((t&62914560)===t&&(r=fo+300-bt(),10<r)){if(Ua(n,t,zt,!Ra),El(n,0,!0)!==0)break e;ga=t,n.timeoutHandle=Bp(sp.bind(null,n,a,vt,ho,Ws,t,zt,hn,Yn,Ra,c,"Throttled",-0,0),r);break e}sp(n,a,vt,ho,Ws,t,zt,hn,Yn,Ra,c,null,-0,0)}}break}while(!0);$t(e)}function sp(e,t,a,n,r,c,p,v,S,P,O,U,z,L){if(e.timeoutHandle=-1,U=t.subtreeFlags,U&8192||(U&16785408)===16785408){U={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:ta},ep(t,c,U);var $=(c&62914560)===c?fo-bt():(c&4194048)===c?ip-bt():0;if($=Ay(U,$),$!==null){ga=c,e.cancelPendingCommit=$(gp.bind(null,e,t,c,a,n,r,p,v,S,O,U,null,z,L)),Ua(e,c,p,!P);return}}gp(e,t,c,a,n,r,p,v,S)}function Bv(e){for(var t=e;;){var a=t.tag;if((a===0||a===11||a===15)&&t.flags&16384&&(a=t.updateQueue,a!==null&&(a=a.stores,a!==null)))for(var n=0;n<a.length;n++){var r=a[n],c=r.getSnapshot;r=r.value;try{if(!At(c(),r))return!1}catch{return!1}}if(a=t.child,t.subtreeFlags&16384&&a!==null)a.return=t,t=a;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Ua(e,t,a,n){t&=~Ys,t&=~hn,e.suspendedLanes|=t,e.pingedLanes&=~t,n&&(e.warmLanes|=t),n=e.expirationTimes;for(var r=t;0<r;){var c=31-Ct(r),p=1<<c;n[c]=-1,r&=~p}a!==0&&vc(e,a,t)}function mo(){return(Ce&6)===0?(Yi(0),!1):!0}function Xs(){if(ce!==null){if(Te===0)var e=ce.return;else e=ce,la=ln=null,hs(e),In=null,Li=0,e=ce;for(;e!==null;)If(e.alternate,e),e=e.return;ce=null}}function $n(e,t){var a=e.timeoutHandle;a!==-1&&(e.timeoutHandle=-1,iy(a)),a=e.cancelPendingCommit,a!==null&&(e.cancelPendingCommit=null,a()),ga=0,Xs(),Re=e,ce=a=na(e.current,null),fe=t,Te=0,Pt=null,Ra=!1,Fn=fi(e,t),Fs=!1,Yn=zt=Ys=hn=_a=Ke=0,vt=Vi=null,Ws=!1,(t&8)!==0&&(t|=t&32);var n=e.entangledLanes;if(n!==0)for(e=e.entanglements,n&=t;0<n;){var r=31-Ct(n),c=1<<r;t|=e[r],n&=~c}return ma=t,xl(),a}function up(e,t){re=null,M.H=Ui,t===Bn||t===ql?(t=wd(),Te=3):t===as?(t=wd(),Te=4):Te=t===Ms?8:t!==null&&typeof t=="object"&&typeof t.then=="function"?6:1,Pt=t,ce===null&&(Ke=1,no(e,_t(t,e.current)))}function cp(){var e=wt.current;return e===null?!0:(fe&4194048)===fe?Bt===null:(fe&62914560)===fe||(fe&536870912)!==0?e===Bt:!1}function dp(){var e=M.H;return M.H=Ui,e===null?Ui:e}function fp(){var e=M.A;return M.A=Nv,e}function go(){Ke=4,Ra||(fe&4194048)!==fe&&wt.current!==null||(Fn=!0),(_a&134217727)===0&&(hn&134217727)===0||Re===null||Ua(Re,fe,zt,!1)}function Js(e,t,a){var n=Ce;Ce|=2;var r=dp(),c=fp();(Re!==e||fe!==t)&&(ho=null,$n(e,t)),t=!1;var p=Ke;e:do try{if(Te!==0&&ce!==null){var v=ce,S=Pt;switch(Te){case 8:Xs(),p=6;break e;case 3:case 2:case 9:case 6:wt.current===null&&(t=!0);var P=Te;if(Te=0,Pt=null,Zn(e,v,S,P),a&&Fn){p=0;break e}break;default:P=Te,Te=0,Pt=null,Zn(e,v,S,P)}}Iv(),p=Ke;break}catch(O){up(e,O)}while(!0);return t&&e.shellSuspendCounter++,la=ln=null,Ce=n,M.H=r,M.A=c,ce===null&&(Re=null,fe=0,xl()),p}function Iv(){for(;ce!==null;)pp(ce)}function jv(e,t){var a=Ce;Ce|=2;var n=dp(),r=fp();Re!==e||fe!==t?(ho=null,po=bt()+500,$n(e,t)):Fn=fi(e,t);e:do try{if(Te!==0&&ce!==null){t=ce;var c=Pt;t:switch(Te){case 1:Te=0,Pt=null,Zn(e,t,c,1);break;case 2:case 9:if(Ad(c)){Te=0,Pt=null,hp(t);break}t=function(){Te!==2&&Te!==9||Re!==e||(Te=7),$t(e)},c.then(t,t);break e;case 3:Te=7;break e;case 4:Te=5;break e;case 7:Ad(c)?(Te=0,Pt=null,hp(t)):(Te=0,Pt=null,Zn(e,t,c,7));break;case 5:var p=null;switch(ce.tag){case 26:p=ce.memoizedState;case 5:case 27:var v=ce;if(p?Jp(p):v.stateNode.complete){Te=0,Pt=null;var S=v.sibling;if(S!==null)ce=S;else{var P=v.return;P!==null?(ce=P,vo(P)):ce=null}break t}}Te=0,Pt=null,Zn(e,t,c,5);break;case 6:Te=0,Pt=null,Zn(e,t,c,6);break;case 8:Xs(),Ke=6;break e;default:throw Error(s(462))}}Hv();break}catch(O){up(e,O)}while(!0);return la=ln=null,M.H=n,M.A=r,Ce=a,ce!==null?0:(Re=null,fe=0,xl(),Ke)}function Hv(){for(;ce!==null&&!cg();)pp(ce)}function pp(e){var t=Uf(e.alternate,e,ma);e.memoizedProps=e.pendingProps,t===null?vo(e):ce=t}function hp(e){var t=e,a=t.alternate;switch(t.tag){case 15:case 0:t=Of(a,t,t.pendingProps,t.type,void 0,fe);break;case 11:t=Of(a,t,t.pendingProps,t.type.render,t.ref,fe);break;case 5:hs(t);default:If(a,t),t=ce=dd(t,ma),t=Uf(a,t,ma)}e.memoizedProps=e.pendingProps,t===null?vo(e):ce=t}function Zn(e,t,a,n){la=ln=null,hs(t),In=null,Li=0;var r=t.return;try{if(Lv(e,r,t,a,fe)){Ke=1,no(e,_t(a,e.current)),ce=null;return}}catch(c){if(r!==null)throw ce=r,c;Ke=1,no(e,_t(a,e.current)),ce=null;return}t.flags&32768?(he||n===1?e=!0:Fn||(fe&536870912)!==0?e=!1:(Ra=e=!0,(n===2||n===9||n===3||n===6)&&(n=wt.current,n!==null&&n.tag===13&&(n.flags|=16384))),mp(t,e)):vo(t)}function vo(e){var t=e;do{if((t.flags&32768)!==0){mp(t,Ra);return}e=t.return;var a=Dv(t.alternate,t,ma);if(a!==null){ce=a;return}if(t=t.sibling,t!==null){ce=t;return}ce=t=e}while(t!==null);Ke===0&&(Ke=5)}function mp(e,t){do{var a=Rv(e.alternate,e);if(a!==null){a.flags&=32767,ce=a;return}if(a=e.return,a!==null&&(a.flags|=32768,a.subtreeFlags=0,a.deletions=null),!t&&(e=e.sibling,e!==null)){ce=e;return}ce=e=a}while(e!==null);Ke=6,ce=null}function gp(e,t,a,n,r,c,p,v,S){e.cancelPendingCommit=null;do yo();while(Ze!==0);if((Ce&6)!==0)throw Error(s(327));if(t!==null){if(t===e.current)throw Error(s(177));if(c=t.lanes|t.childLanes,c|=Hr,Sg(e,a,c,p,v,S),e===Re&&(ce=Re=null,fe=0),Wn=t,Na=e,ga=a,$s=c,Zs=r,lp=n,(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?(e.callbackNode=null,e.callbackPriority=0,Vv(bl,function(){return Cp(),null})):(e.callbackNode=null,e.callbackPriority=0),n=(t.flags&13878)!==0,(t.subtreeFlags&13878)!==0||n){n=M.T,M.T=null,r=H.p,H.p=2,p=Ce,Ce|=4;try{_v(e,t,a)}finally{Ce=p,H.p=r,M.T=n}}Ze=1,vp(),yp(),bp()}}function vp(){if(Ze===1){Ze=0;var e=Na,t=Wn,a=(t.flags&13878)!==0;if((t.subtreeFlags&13878)!==0||a){a=M.T,M.T=null;var n=H.p;H.p=2;var r=Ce;Ce|=4;try{Qf(t,e);var c=du,p=ad(e.containerInfo),v=c.focusedElem,S=c.selectionRange;if(p!==v&&v&&v.ownerDocument&&td(v.ownerDocument.documentElement,v)){if(S!==null&&Nr(v)){var P=S.start,O=S.end;if(O===void 0&&(O=P),"selectionStart"in v)v.selectionStart=P,v.selectionEnd=Math.min(O,v.value.length);else{var U=v.ownerDocument||document,z=U&&U.defaultView||window;if(z.getSelection){var L=z.getSelection(),$=v.textContent.length,ae=Math.min(S.start,$),Oe=S.end===void 0?ae:Math.min(S.end,$);!L.extend&&ae>Oe&&(p=Oe,Oe=ae,ae=p);var w=ed(v,ae),A=ed(v,Oe);if(w&&A&&(L.rangeCount!==1||L.anchorNode!==w.node||L.anchorOffset!==w.offset||L.focusNode!==A.node||L.focusOffset!==A.offset)){var T=U.createRange();T.setStart(w.node,w.offset),L.removeAllRanges(),ae>Oe?(L.addRange(T),L.extend(A.node,A.offset)):(T.setEnd(A.node,A.offset),L.addRange(T))}}}}for(U=[],L=v;L=L.parentNode;)L.nodeType===1&&U.push({element:L,left:L.scrollLeft,top:L.scrollTop});for(typeof v.focus=="function"&&v.focus(),v=0;v<U.length;v++){var _=U[v];_.element.scrollLeft=_.left,_.element.scrollTop=_.top}}Mo=!!cu,du=cu=null}finally{Ce=r,H.p=n,M.T=a}}e.current=t,Ze=2}}function yp(){if(Ze===2){Ze=0;var e=Na,t=Wn,a=(t.flags&8772)!==0;if((t.subtreeFlags&8772)!==0||a){a=M.T,M.T=null;var n=H.p;H.p=2;var r=Ce;Ce|=4;try{Ff(e,t.alternate,t)}finally{Ce=r,H.p=n,M.T=a}}Ze=3}}function bp(){if(Ze===4||Ze===3){Ze=0,dg();var e=Na,t=Wn,a=ga,n=lp;(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?Ze=5:(Ze=0,Wn=Na=null,Sp(e,e.pendingLanes));var r=e.pendingLanes;if(r===0&&(xa=null),vr(a),t=t.stateNode,St&&typeof St.onCommitFiberRoot=="function")try{St.onCommitFiberRoot(di,t,void 0,(t.current.flags&128)===128)}catch{}if(n!==null){t=M.T,r=H.p,H.p=2,M.T=null;try{for(var c=e.onRecoverableError,p=0;p<n.length;p++){var v=n[p];c(v.value,{componentStack:v.stack})}}finally{M.T=t,H.p=r}}(ga&3)!==0&&yo(),$t(e),r=e.pendingLanes,(a&261930)!==0&&(r&42)!==0?e===Qs?Fi++:(Fi=0,Qs=e):Fi=0,Yi(0)}}function Sp(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,zi(t)))}function yo(){return vp(),yp(),bp(),Cp()}function Cp(){if(Ze!==5)return!1;var e=Na,t=$s;$s=0;var a=vr(ga),n=M.T,r=H.p;try{H.p=32>a?32:a,M.T=null,a=Zs,Zs=null;var c=Na,p=ga;if(Ze=0,Wn=Na=null,ga=0,(Ce&6)!==0)throw Error(s(331));var v=Ce;if(Ce|=4,ap(c.current),Jf(c,c.current,p,a),Ce=v,Yi(0,!1),St&&typeof St.onPostCommitFiberRoot=="function")try{St.onPostCommitFiberRoot(di,c)}catch{}return!0}finally{H.p=r,M.T=n,Sp(e,t)}}function Ap(e,t,a){t=_t(a,t),t=Ls(e.stateNode,t,2),e=La(e,t,2),e!==null&&(pi(e,2),$t(e))}function Pe(e,t,a){if(e.tag===3)Ap(e,e,a);else for(;t!==null;){if(t.tag===3){Ap(t,e,a);break}else if(t.tag===1){var n=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof n.componentDidCatch=="function"&&(xa===null||!xa.has(n))){e=_t(a,e),a=Ef(2),n=La(t,a,2),n!==null&&(wf(a,n,t,e),pi(n,2),$t(n));break}}t=t.return}}function eu(e,t,a){var n=e.pingCache;if(n===null){n=e.pingCache=new Uv;var r=new Set;n.set(t,r)}else r=n.get(t),r===void 0&&(r=new Set,n.set(t,r));r.has(a)||(Fs=!0,r.add(a),e=Kv.bind(null,e,t,a),t.then(e,e))}function Kv(e,t,a){var n=e.pingCache;n!==null&&n.delete(t),e.pingedLanes|=e.suspendedLanes&a,e.warmLanes&=~a,Re===e&&(fe&a)===a&&(Ke===4||Ke===3&&(fe&62914560)===fe&&300>bt()-fo?(Ce&2)===0&&$n(e,0):Ys|=a,Yn===fe&&(Yn=0)),$t(e)}function Ep(e,t){t===0&&(t=gc()),e=tn(e,t),e!==null&&(pi(e,t),$t(e))}function qv(e){var t=e.memoizedState,a=0;t!==null&&(a=t.retryLane),Ep(e,a)}function Gv(e,t){var a=0;switch(e.tag){case 31:case 13:var n=e.stateNode,r=e.memoizedState;r!==null&&(a=r.retryLane);break;case 19:n=e.stateNode;break;case 22:n=e.stateNode._retryCache;break;default:throw Error(s(314))}n!==null&&n.delete(t),Ep(e,a)}function Vv(e,t){return pr(e,t)}var bo=null,Qn=null,tu=!1,So=!1,au=!1,Ba=0;function $t(e){e!==Qn&&e.next===null&&(Qn===null?bo=Qn=e:Qn=Qn.next=e),So=!0,tu||(tu=!0,Yv())}function Yi(e,t){if(!au&&So){au=!0;do for(var a=!1,n=bo;n!==null;){if(e!==0){var r=n.pendingLanes;if(r===0)var c=0;else{var p=n.suspendedLanes,v=n.pingedLanes;c=(1<<31-Ct(42|e)+1)-1,c&=r&~(p&~v),c=c&201326741?c&201326741|1:c?c|2:0}c!==0&&(a=!0,zp(n,c))}else c=fe,c=El(n,n===Re?c:0,n.cancelPendingCommit!==null||n.timeoutHandle!==-1),(c&3)===0||fi(n,c)||(a=!0,zp(n,c));n=n.next}while(a);au=!1}}function Fv(){wp()}function wp(){So=tu=!1;var e=0;Ba!==0&&ny()&&(e=Ba);for(var t=bt(),a=null,n=bo;n!==null;){var r=n.next,c=Tp(n,t);c===0?(n.next=null,a===null?bo=r:a.next=r,r===null&&(Qn=a)):(a=n,(e!==0||(c&3)!==0)&&(So=!0)),n=r}Ze!==0&&Ze!==5||Yi(e),Ba!==0&&(Ba=0)}function Tp(e,t){for(var a=e.suspendedLanes,n=e.pingedLanes,r=e.expirationTimes,c=e.pendingLanes&-62914561;0<c;){var p=31-Ct(c),v=1<<p,S=r[p];S===-1?((v&a)===0||(v&n)!==0)&&(r[p]=bg(v,t)):S<=t&&(e.expiredLanes|=v),c&=~v}if(t=Re,a=fe,a=El(e,e===t?a:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),n=e.callbackNode,a===0||e===t&&(Te===2||Te===9)||e.cancelPendingCommit!==null)return n!==null&&n!==null&&hr(n),e.callbackNode=null,e.callbackPriority=0;if((a&3)===0||fi(e,a)){if(t=a&-a,t===e.callbackPriority)return t;switch(n!==null&&hr(n),vr(a)){case 2:case 8:a=hc;break;case 32:a=bl;break;case 268435456:a=mc;break;default:a=bl}return n=Pp.bind(null,e),a=pr(a,n),e.callbackPriority=t,e.callbackNode=a,t}return n!==null&&n!==null&&hr(n),e.callbackPriority=2,e.callbackNode=null,2}function Pp(e,t){if(Ze!==0&&Ze!==5)return e.callbackNode=null,e.callbackPriority=0,null;var a=e.callbackNode;if(yo()&&e.callbackNode!==a)return null;var n=fe;return n=El(e,e===Re?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),n===0?null:(rp(e,n,t),Tp(e,bt()),e.callbackNode!=null&&e.callbackNode===a?Pp.bind(null,e):null)}function zp(e,t){if(yo())return null;rp(e,t,!0)}function Yv(){ly(function(){(Ce&6)!==0?pr(pc,Fv):wp()})}function nu(){if(Ba===0){var e=Nn;e===0&&(e=Sl,Sl<<=1,(Sl&261888)===0&&(Sl=256)),Ba=e}return Ba}function kp(e){return e==null||typeof e=="symbol"||typeof e=="boolean"?null:typeof e=="function"?e:zl(""+e)}function Lp(e,t){var a=t.ownerDocument.createElement("input");return a.name=t.name,a.value=t.value,e.id&&a.setAttribute("form",e.id),t.parentNode.insertBefore(a,t),e=new FormData(e),a.parentNode.removeChild(a),e}function Wv(e,t,a,n,r){if(t==="submit"&&a&&a.stateNode===r){var c=kp((r[ft]||null).action),p=n.submitter;p&&(t=(t=p[ft]||null)?kp(t.formAction):p.getAttribute("formAction"),t!==null&&(c=t,p=null));var v=new Ol("action","action",null,n,r);e.push({event:v,listeners:[{instance:null,listener:function(){if(n.defaultPrevented){if(Ba!==0){var S=p?Lp(r,p):new FormData(r);Es(a,{pending:!0,data:S,method:r.method,action:c},null,S)}}else typeof c=="function"&&(v.preventDefault(),S=p?Lp(r,p):new FormData(r),Es(a,{pending:!0,data:S,method:r.method,action:c},c,S))},currentTarget:r}]})}}for(var iu=0;iu<jr.length;iu++){var lu=jr[iu],$v=lu.toLowerCase(),Zv=lu[0].toUpperCase()+lu.slice(1);qt($v,"on"+Zv)}qt(ld,"onAnimationEnd"),qt(od,"onAnimationIteration"),qt(rd,"onAnimationStart"),qt("dblclick","onDoubleClick"),qt("focusin","onFocus"),qt("focusout","onBlur"),qt(fv,"onTransitionRun"),qt(pv,"onTransitionStart"),qt(hv,"onTransitionCancel"),qt(sd,"onTransitionEnd"),An("onMouseEnter",["mouseout","mouseover"]),An("onMouseLeave",["mouseout","mouseover"]),An("onPointerEnter",["pointerout","pointerover"]),An("onPointerLeave",["pointerout","pointerover"]),Qa("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),Qa("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),Qa("onBeforeInput",["compositionend","keypress","textInput","paste"]),Qa("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),Qa("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),Qa("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Wi="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Qv=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(Wi));function Mp(e,t){t=(t&4)!==0;for(var a=0;a<e.length;a++){var n=e[a],r=n.event;n=n.listeners;e:{var c=void 0;if(t)for(var p=n.length-1;0<=p;p--){var v=n[p],S=v.instance,P=v.currentTarget;if(v=v.listener,S!==c&&r.isPropagationStopped())break e;c=v,r.currentTarget=P;try{c(r)}catch(O){_l(O)}r.currentTarget=null,c=S}else for(p=0;p<n.length;p++){if(v=n[p],S=v.instance,P=v.currentTarget,v=v.listener,S!==c&&r.isPropagationStopped())break e;c=v,r.currentTarget=P;try{c(r)}catch(O){_l(O)}r.currentTarget=null,c=S}}}}function de(e,t){var a=t[yr];a===void 0&&(a=t[yr]=new Set);var n=e+"__bubble";a.has(n)||(Op(t,e,2,!1),a.add(n))}function ou(e,t,a){var n=0;t&&(n|=4),Op(a,e,n,t)}var Co="_reactListening"+Math.random().toString(36).slice(2);function ru(e){if(!e[Co]){e[Co]=!0,Ec.forEach(function(a){a!=="selectionchange"&&(Qv.has(a)||ou(a,!1,e),ou(a,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Co]||(t[Co]=!0,ou("selectionchange",!1,t))}}function Op(e,t,a,n){switch(oh(t)){case 2:var r=Ty;break;case 8:r=Py;break;default:r=Au}a=r.bind(null,t,a,e),r=void 0,!zr||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(r=!0),n?r!==void 0?e.addEventListener(t,a,{capture:!0,passive:r}):e.addEventListener(t,a,!0):r!==void 0?e.addEventListener(t,a,{passive:r}):e.addEventListener(t,a,!1)}function su(e,t,a,n,r){var c=n;if((t&1)===0&&(t&2)===0&&n!==null)e:for(;;){if(n===null)return;var p=n.tag;if(p===3||p===4){var v=n.stateNode.containerInfo;if(v===r)break;if(p===4)for(p=n.return;p!==null;){var S=p.tag;if((S===3||S===4)&&p.stateNode.containerInfo===r)return;p=p.return}for(;v!==null;){if(p=bn(v),p===null)return;if(S=p.tag,S===5||S===6||S===26||S===27){n=c=p;continue e}v=v.parentNode}}n=n.return}xc(function(){var P=c,O=Tr(a),U=[];e:{var z=ud.get(e);if(z!==void 0){var L=Ol,$=e;switch(e){case"keypress":if(Ll(a)===0)break e;case"keydown":case"keyup":L=Gg;break;case"focusin":$="focus",L=Or;break;case"focusout":$="blur",L=Or;break;case"beforeblur":case"afterblur":L=Or;break;case"click":if(a.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":L=Bc;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":L=Dg;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":L=Yg;break;case ld:case od:case rd:L=xg;break;case sd:L=$g;break;case"scroll":case"scrollend":L=Mg;break;case"wheel":L=Qg;break;case"copy":case"cut":case"paste":L=Ug;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":L=jc;break;case"toggle":case"beforetoggle":L=Jg}var ae=(t&4)!==0,Oe=!ae&&(e==="scroll"||e==="scrollend"),w=ae?z!==null?z+"Capture":null:z;ae=[];for(var A=P,T;A!==null;){var _=A;if(T=_.stateNode,_=_.tag,_!==5&&_!==26&&_!==27||T===null||w===null||(_=gi(A,w),_!=null&&ae.push($i(A,_,T))),Oe)break;A=A.return}0<ae.length&&(z=new L(z,$,null,a,O),U.push({event:z,listeners:ae}))}}if((t&7)===0){e:{if(z=e==="mouseover"||e==="pointerover",L=e==="mouseout"||e==="pointerout",z&&a!==wr&&($=a.relatedTarget||a.fromElement)&&(bn($)||$[yn]))break e;if((L||z)&&(z=O.window===O?O:(z=O.ownerDocument)?z.defaultView||z.parentWindow:window,L?($=a.relatedTarget||a.toElement,L=P,$=$?bn($):null,$!==null&&(Oe=d($),ae=$.tag,$!==Oe||ae!==5&&ae!==27&&ae!==6)&&($=null)):(L=null,$=P),L!==$)){if(ae=Bc,_="onMouseLeave",w="onMouseEnter",A="mouse",(e==="pointerout"||e==="pointerover")&&(ae=jc,_="onPointerLeave",w="onPointerEnter",A="pointer"),Oe=L==null?z:mi(L),T=$==null?z:mi($),z=new ae(_,A+"leave",L,a,O),z.target=Oe,z.relatedTarget=T,_=null,bn(O)===P&&(ae=new ae(w,A+"enter",$,a,O),ae.target=T,ae.relatedTarget=Oe,_=ae),Oe=_,L&&$)t:{for(ae=Xv,w=L,A=$,T=0,_=w;_;_=ae(_))T++;_=0;for(var X=A;X;X=ae(X))_++;for(;0<T-_;)w=ae(w),T--;for(;0<_-T;)A=ae(A),_--;for(;T--;){if(w===A||A!==null&&w===A.alternate){ae=w;break t}w=ae(w),A=ae(A)}ae=null}else ae=null;L!==null&&Dp(U,z,L,ae,!1),$!==null&&Oe!==null&&Dp(U,Oe,$,ae,!0)}}e:{if(z=P?mi(P):window,L=z.nodeName&&z.nodeName.toLowerCase(),L==="select"||L==="input"&&z.type==="file")var ve=Wc;else if(Fc(z))if($c)ve=uv;else{ve=rv;var Z=ov}else L=z.nodeName,!L||L.toLowerCase()!=="input"||z.type!=="checkbox"&&z.type!=="radio"?P&&Er(P.elementType)&&(ve=Wc):ve=sv;if(ve&&(ve=ve(e,P))){Yc(U,ve,a,O);break e}Z&&Z(e,z,P),e==="focusout"&&P&&z.type==="number"&&P.memoizedProps.value!=null&&Ar(z,"number",z.value)}switch(Z=P?mi(P):window,e){case"focusin":(Fc(Z)||Z.contentEditable==="true")&&(kn=Z,Ur=P,wi=null);break;case"focusout":wi=Ur=kn=null;break;case"mousedown":Br=!0;break;case"contextmenu":case"mouseup":case"dragend":Br=!1,nd(U,a,O);break;case"selectionchange":if(dv)break;case"keydown":case"keyup":nd(U,a,O)}var se;if(Rr)e:{switch(e){case"compositionstart":var pe="onCompositionStart";break e;case"compositionend":pe="onCompositionEnd";break e;case"compositionupdate":pe="onCompositionUpdate";break e}pe=void 0}else zn?Gc(e,a)&&(pe="onCompositionEnd"):e==="keydown"&&a.keyCode===229&&(pe="onCompositionStart");pe&&(Hc&&a.locale!=="ko"&&(zn||pe!=="onCompositionStart"?pe==="onCompositionEnd"&&zn&&(se=Nc()):(Aa=O,kr="value"in Aa?Aa.value:Aa.textContent,zn=!0)),Z=Ao(P,pe),0<Z.length&&(pe=new Ic(pe,e,null,a,O),U.push({event:pe,listeners:Z}),se?pe.data=se:(se=Vc(a),se!==null&&(pe.data=se)))),(se=tv?av(e,a):nv(e,a))&&(pe=Ao(P,"onBeforeInput"),0<pe.length&&(Z=new Ic("onBeforeInput","beforeinput",null,a,O),U.push({event:Z,listeners:pe}),Z.data=se)),Wv(U,e,P,a,O)}Mp(U,t)})}function $i(e,t,a){return{instance:e,listener:t,currentTarget:a}}function Ao(e,t){for(var a=t+"Capture",n=[];e!==null;){var r=e,c=r.stateNode;if(r=r.tag,r!==5&&r!==26&&r!==27||c===null||(r=gi(e,a),r!=null&&n.unshift($i(e,r,c)),r=gi(e,t),r!=null&&n.push($i(e,r,c))),e.tag===3)return n;e=e.return}return[]}function Xv(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function Dp(e,t,a,n,r){for(var c=t._reactName,p=[];a!==null&&a!==n;){var v=a,S=v.alternate,P=v.stateNode;if(v=v.tag,S!==null&&S===n)break;v!==5&&v!==26&&v!==27||P===null||(S=P,r?(P=gi(a,c),P!=null&&p.unshift($i(a,P,S))):r||(P=gi(a,c),P!=null&&p.push($i(a,P,S)))),a=a.return}p.length!==0&&e.push({event:t,listeners:p})}var Jv=/\r\n?/g,ey=/\u0000|\uFFFD/g;function Rp(e){return(typeof e=="string"?e:""+e).replace(Jv,`
10
+ `).replace(ey,"")}function _p(e,t){return t=Rp(t),Rp(e)===t}function Me(e,t,a,n,r,c){switch(a){case"children":typeof n=="string"?t==="body"||t==="textarea"&&n===""||wn(e,n):(typeof n=="number"||typeof n=="bigint")&&t!=="body"&&wn(e,""+n);break;case"className":Tl(e,"class",n);break;case"tabIndex":Tl(e,"tabindex",n);break;case"dir":case"role":case"viewBox":case"width":case"height":Tl(e,a,n);break;case"style":Rc(e,n,c);break;case"data":if(t!=="object"){Tl(e,"data",n);break}case"src":case"href":if(n===""&&(t!=="a"||a!=="href")){e.removeAttribute(a);break}if(n==null||typeof n=="function"||typeof n=="symbol"||typeof n=="boolean"){e.removeAttribute(a);break}n=zl(""+n),e.setAttribute(a,n);break;case"action":case"formAction":if(typeof n=="function"){e.setAttribute(a,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof c=="function"&&(a==="formAction"?(t!=="input"&&Me(e,t,"name",r.name,r,null),Me(e,t,"formEncType",r.formEncType,r,null),Me(e,t,"formMethod",r.formMethod,r,null),Me(e,t,"formTarget",r.formTarget,r,null)):(Me(e,t,"encType",r.encType,r,null),Me(e,t,"method",r.method,r,null),Me(e,t,"target",r.target,r,null)));if(n==null||typeof n=="symbol"||typeof n=="boolean"){e.removeAttribute(a);break}n=zl(""+n),e.setAttribute(a,n);break;case"onClick":n!=null&&(e.onclick=ta);break;case"onScroll":n!=null&&de("scroll",e);break;case"onScrollEnd":n!=null&&de("scrollend",e);break;case"dangerouslySetInnerHTML":if(n!=null){if(typeof n!="object"||!("__html"in n))throw Error(s(61));if(a=n.__html,a!=null){if(r.children!=null)throw Error(s(60));e.innerHTML=a}}break;case"multiple":e.multiple=n&&typeof n!="function"&&typeof n!="symbol";break;case"muted":e.muted=n&&typeof n!="function"&&typeof n!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(n==null||typeof n=="function"||typeof n=="boolean"||typeof n=="symbol"){e.removeAttribute("xlink:href");break}a=zl(""+n),e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",a);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":n!=null&&typeof n!="function"&&typeof n!="symbol"?e.setAttribute(a,""+n):e.removeAttribute(a);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":n&&typeof n!="function"&&typeof n!="symbol"?e.setAttribute(a,""):e.removeAttribute(a);break;case"capture":case"download":n===!0?e.setAttribute(a,""):n!==!1&&n!=null&&typeof n!="function"&&typeof n!="symbol"?e.setAttribute(a,n):e.removeAttribute(a);break;case"cols":case"rows":case"size":case"span":n!=null&&typeof n!="function"&&typeof n!="symbol"&&!isNaN(n)&&1<=n?e.setAttribute(a,n):e.removeAttribute(a);break;case"rowSpan":case"start":n==null||typeof n=="function"||typeof n=="symbol"||isNaN(n)?e.removeAttribute(a):e.setAttribute(a,n);break;case"popover":de("beforetoggle",e),de("toggle",e),wl(e,"popover",n);break;case"xlinkActuate":ea(e,"http://www.w3.org/1999/xlink","xlink:actuate",n);break;case"xlinkArcrole":ea(e,"http://www.w3.org/1999/xlink","xlink:arcrole",n);break;case"xlinkRole":ea(e,"http://www.w3.org/1999/xlink","xlink:role",n);break;case"xlinkShow":ea(e,"http://www.w3.org/1999/xlink","xlink:show",n);break;case"xlinkTitle":ea(e,"http://www.w3.org/1999/xlink","xlink:title",n);break;case"xlinkType":ea(e,"http://www.w3.org/1999/xlink","xlink:type",n);break;case"xmlBase":ea(e,"http://www.w3.org/XML/1998/namespace","xml:base",n);break;case"xmlLang":ea(e,"http://www.w3.org/XML/1998/namespace","xml:lang",n);break;case"xmlSpace":ea(e,"http://www.w3.org/XML/1998/namespace","xml:space",n);break;case"is":wl(e,"is",n);break;case"innerText":case"textContent":break;default:(!(2<a.length)||a[0]!=="o"&&a[0]!=="O"||a[1]!=="n"&&a[1]!=="N")&&(a=kg.get(a)||a,wl(e,a,n))}}function uu(e,t,a,n,r,c){switch(a){case"style":Rc(e,n,c);break;case"dangerouslySetInnerHTML":if(n!=null){if(typeof n!="object"||!("__html"in n))throw Error(s(61));if(a=n.__html,a!=null){if(r.children!=null)throw Error(s(60));e.innerHTML=a}}break;case"children":typeof n=="string"?wn(e,n):(typeof n=="number"||typeof n=="bigint")&&wn(e,""+n);break;case"onScroll":n!=null&&de("scroll",e);break;case"onScrollEnd":n!=null&&de("scrollend",e);break;case"onClick":n!=null&&(e.onclick=ta);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!wc.hasOwnProperty(a))e:{if(a[0]==="o"&&a[1]==="n"&&(r=a.endsWith("Capture"),t=a.slice(2,r?a.length-7:void 0),c=e[ft]||null,c=c!=null?c[a]:null,typeof c=="function"&&e.removeEventListener(t,c,r),typeof n=="function")){typeof c!="function"&&c!==null&&(a in e?e[a]=null:e.hasAttribute(a)&&e.removeAttribute(a)),e.addEventListener(t,n,r);break e}a in e?e[a]=n:n===!0?e.setAttribute(a,""):wl(e,a,n)}}}function it(e,t,a){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":de("error",e),de("load",e);var n=!1,r=!1,c;for(c in a)if(a.hasOwnProperty(c)){var p=a[c];if(p!=null)switch(c){case"src":n=!0;break;case"srcSet":r=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(s(137,t));default:Me(e,t,c,p,a,null)}}r&&Me(e,t,"srcSet",a.srcSet,a,null),n&&Me(e,t,"src",a.src,a,null);return;case"input":de("invalid",e);var v=c=p=r=null,S=null,P=null;for(n in a)if(a.hasOwnProperty(n)){var O=a[n];if(O!=null)switch(n){case"name":r=O;break;case"type":p=O;break;case"checked":S=O;break;case"defaultChecked":P=O;break;case"value":c=O;break;case"defaultValue":v=O;break;case"children":case"dangerouslySetInnerHTML":if(O!=null)throw Error(s(137,t));break;default:Me(e,t,n,O,a,null)}}Lc(e,c,v,S,P,p,r,!1);return;case"select":de("invalid",e),n=p=c=null;for(r in a)if(a.hasOwnProperty(r)&&(v=a[r],v!=null))switch(r){case"value":c=v;break;case"defaultValue":p=v;break;case"multiple":n=v;default:Me(e,t,r,v,a,null)}t=c,a=p,e.multiple=!!n,t!=null?En(e,!!n,t,!1):a!=null&&En(e,!!n,a,!0);return;case"textarea":de("invalid",e),c=r=n=null;for(p in a)if(a.hasOwnProperty(p)&&(v=a[p],v!=null))switch(p){case"value":n=v;break;case"defaultValue":r=v;break;case"children":c=v;break;case"dangerouslySetInnerHTML":if(v!=null)throw Error(s(91));break;default:Me(e,t,p,v,a,null)}Oc(e,n,r,c);return;case"option":for(S in a)a.hasOwnProperty(S)&&(n=a[S],n!=null)&&(S==="selected"?e.selected=n&&typeof n!="function"&&typeof n!="symbol":Me(e,t,S,n,a,null));return;case"dialog":de("beforetoggle",e),de("toggle",e),de("cancel",e),de("close",e);break;case"iframe":case"object":de("load",e);break;case"video":case"audio":for(n=0;n<Wi.length;n++)de(Wi[n],e);break;case"image":de("error",e),de("load",e);break;case"details":de("toggle",e);break;case"embed":case"source":case"link":de("error",e),de("load",e);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(P in a)if(a.hasOwnProperty(P)&&(n=a[P],n!=null))switch(P){case"children":case"dangerouslySetInnerHTML":throw Error(s(137,t));default:Me(e,t,P,n,a,null)}return;default:if(Er(t)){for(O in a)a.hasOwnProperty(O)&&(n=a[O],n!==void 0&&uu(e,t,O,n,a,void 0));return}}for(v in a)a.hasOwnProperty(v)&&(n=a[v],n!=null&&Me(e,t,v,n,a,null))}function ty(e,t,a,n){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var r=null,c=null,p=null,v=null,S=null,P=null,O=null;for(L in a){var U=a[L];if(a.hasOwnProperty(L)&&U!=null)switch(L){case"checked":break;case"value":break;case"defaultValue":S=U;default:n.hasOwnProperty(L)||Me(e,t,L,null,n,U)}}for(var z in n){var L=n[z];if(U=a[z],n.hasOwnProperty(z)&&(L!=null||U!=null))switch(z){case"type":c=L;break;case"name":r=L;break;case"checked":P=L;break;case"defaultChecked":O=L;break;case"value":p=L;break;case"defaultValue":v=L;break;case"children":case"dangerouslySetInnerHTML":if(L!=null)throw Error(s(137,t));break;default:L!==U&&Me(e,t,z,L,n,U)}}Cr(e,p,v,S,P,O,c,r);return;case"select":L=p=v=z=null;for(c in a)if(S=a[c],a.hasOwnProperty(c)&&S!=null)switch(c){case"value":break;case"multiple":L=S;default:n.hasOwnProperty(c)||Me(e,t,c,null,n,S)}for(r in n)if(c=n[r],S=a[r],n.hasOwnProperty(r)&&(c!=null||S!=null))switch(r){case"value":z=c;break;case"defaultValue":v=c;break;case"multiple":p=c;default:c!==S&&Me(e,t,r,c,n,S)}t=v,a=p,n=L,z!=null?En(e,!!a,z,!1):!!n!=!!a&&(t!=null?En(e,!!a,t,!0):En(e,!!a,a?[]:"",!1));return;case"textarea":L=z=null;for(v in a)if(r=a[v],a.hasOwnProperty(v)&&r!=null&&!n.hasOwnProperty(v))switch(v){case"value":break;case"children":break;default:Me(e,t,v,null,n,r)}for(p in n)if(r=n[p],c=a[p],n.hasOwnProperty(p)&&(r!=null||c!=null))switch(p){case"value":z=r;break;case"defaultValue":L=r;break;case"children":break;case"dangerouslySetInnerHTML":if(r!=null)throw Error(s(91));break;default:r!==c&&Me(e,t,p,r,n,c)}Mc(e,z,L);return;case"option":for(var $ in a)z=a[$],a.hasOwnProperty($)&&z!=null&&!n.hasOwnProperty($)&&($==="selected"?e.selected=!1:Me(e,t,$,null,n,z));for(S in n)z=n[S],L=a[S],n.hasOwnProperty(S)&&z!==L&&(z!=null||L!=null)&&(S==="selected"?e.selected=z&&typeof z!="function"&&typeof z!="symbol":Me(e,t,S,z,n,L));return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var ae in a)z=a[ae],a.hasOwnProperty(ae)&&z!=null&&!n.hasOwnProperty(ae)&&Me(e,t,ae,null,n,z);for(P in n)if(z=n[P],L=a[P],n.hasOwnProperty(P)&&z!==L&&(z!=null||L!=null))switch(P){case"children":case"dangerouslySetInnerHTML":if(z!=null)throw Error(s(137,t));break;default:Me(e,t,P,z,n,L)}return;default:if(Er(t)){for(var Oe in a)z=a[Oe],a.hasOwnProperty(Oe)&&z!==void 0&&!n.hasOwnProperty(Oe)&&uu(e,t,Oe,void 0,n,z);for(O in n)z=n[O],L=a[O],!n.hasOwnProperty(O)||z===L||z===void 0&&L===void 0||uu(e,t,O,z,n,L);return}}for(var w in a)z=a[w],a.hasOwnProperty(w)&&z!=null&&!n.hasOwnProperty(w)&&Me(e,t,w,null,n,z);for(U in n)z=n[U],L=a[U],!n.hasOwnProperty(U)||z===L||z==null&&L==null||Me(e,t,U,z,n,L)}function xp(e){switch(e){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function ay(){if(typeof performance.getEntriesByType=="function"){for(var e=0,t=0,a=performance.getEntriesByType("resource"),n=0;n<a.length;n++){var r=a[n],c=r.transferSize,p=r.initiatorType,v=r.duration;if(c&&v&&xp(p)){for(p=0,v=r.responseEnd,n+=1;n<a.length;n++){var S=a[n],P=S.startTime;if(P>v)break;var O=S.transferSize,U=S.initiatorType;O&&xp(U)&&(S=S.responseEnd,p+=O*(S<v?1:(v-P)/(S-P)))}if(--n,t+=8*(c+p)/(r.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e=="number")?e:5}var cu=null,du=null;function Eo(e){return e.nodeType===9?e:e.ownerDocument}function Np(e){switch(e){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function Up(e,t){if(e===0)switch(t){case"svg":return 1;case"math":return 2;default:return 0}return e===1&&t==="foreignObject"?0:e}function fu(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.children=="bigint"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var pu=null;function ny(){var e=window.event;return e&&e.type==="popstate"?e===pu?!1:(pu=e,!0):(pu=null,!1)}var Bp=typeof setTimeout=="function"?setTimeout:void 0,iy=typeof clearTimeout=="function"?clearTimeout:void 0,Ip=typeof Promise=="function"?Promise:void 0,ly=typeof queueMicrotask=="function"?queueMicrotask:typeof Ip<"u"?function(e){return Ip.resolve(null).then(e).catch(oy)}:Bp;function oy(e){setTimeout(function(){throw e})}function Ia(e){return e==="head"}function jp(e,t){var a=t,n=0;do{var r=a.nextSibling;if(e.removeChild(a),r&&r.nodeType===8)if(a=r.data,a==="/$"||a==="/&"){if(n===0){e.removeChild(r),ti(t);return}n--}else if(a==="$"||a==="$?"||a==="$~"||a==="$!"||a==="&")n++;else if(a==="html")Zi(e.ownerDocument.documentElement);else if(a==="head"){a=e.ownerDocument.head,Zi(a);for(var c=a.firstChild;c;){var p=c.nextSibling,v=c.nodeName;c[hi]||v==="SCRIPT"||v==="STYLE"||v==="LINK"&&c.rel.toLowerCase()==="stylesheet"||a.removeChild(c),c=p}}else a==="body"&&Zi(e.ownerDocument.body);a=r}while(a);ti(t)}function Hp(e,t){var a=e;e=0;do{var n=a.nextSibling;if(a.nodeType===1?t?(a._stashedDisplay=a.style.display,a.style.display="none"):(a.style.display=a._stashedDisplay||"",a.getAttribute("style")===""&&a.removeAttribute("style")):a.nodeType===3&&(t?(a._stashedText=a.nodeValue,a.nodeValue=""):a.nodeValue=a._stashedText||""),n&&n.nodeType===8)if(a=n.data,a==="/$"){if(e===0)break;e--}else a!=="$"&&a!=="$?"&&a!=="$~"&&a!=="$!"||e++;a=n}while(a)}function hu(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var a=t;switch(t=t.nextSibling,a.nodeName){case"HTML":case"HEAD":case"BODY":hu(a),br(a);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(a.rel.toLowerCase()==="stylesheet")continue}e.removeChild(a)}}function ry(e,t,a,n){for(;e.nodeType===1;){var r=a;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!n&&(e.nodeName!=="INPUT"||e.type!=="hidden"))break}else if(n){if(!e[hi])switch(t){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if(c=e.getAttribute("rel"),c==="stylesheet"&&e.hasAttribute("data-precedence"))break;if(c!==r.rel||e.getAttribute("href")!==(r.href==null||r.href===""?null:r.href)||e.getAttribute("crossorigin")!==(r.crossOrigin==null?null:r.crossOrigin)||e.getAttribute("title")!==(r.title==null?null:r.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(c=e.getAttribute("src"),(c!==(r.src==null?null:r.src)||e.getAttribute("type")!==(r.type==null?null:r.type)||e.getAttribute("crossorigin")!==(r.crossOrigin==null?null:r.crossOrigin))&&c&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else if(t==="input"&&e.type==="hidden"){var c=r.name==null?null:""+r.name;if(r.type==="hidden"&&e.getAttribute("name")===c)return e}else return e;if(e=It(e.nextSibling),e===null)break}return null}function sy(e,t,a){if(t==="")return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!a||(e=It(e.nextSibling),e===null))return null;return e}function Kp(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!t||(e=It(e.nextSibling),e===null))return null;return e}function mu(e){return e.data==="$?"||e.data==="$~"}function gu(e){return e.data==="$!"||e.data==="$?"&&e.ownerDocument.readyState!=="loading"}function uy(e,t){var a=e.ownerDocument;if(e.data==="$~")e._reactRetry=t;else if(e.data!=="$?"||a.readyState!=="loading")t();else{var n=function(){t(),a.removeEventListener("DOMContentLoaded",n)};a.addEventListener("DOMContentLoaded",n),e._reactRetry=n}}function It(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?"||t==="$~"||t==="&"||t==="F!"||t==="F")break;if(t==="/$"||t==="/&")return null}}return e}var vu=null;function qp(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var a=e.data;if(a==="/$"||a==="/&"){if(t===0)return It(e.nextSibling);t--}else a!=="$"&&a!=="$!"&&a!=="$?"&&a!=="$~"&&a!=="&"||t++}e=e.nextSibling}return null}function Gp(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var a=e.data;if(a==="$"||a==="$!"||a==="$?"||a==="$~"||a==="&"){if(t===0)return e;t--}else a!=="/$"&&a!=="/&"||t++}e=e.previousSibling}return null}function Vp(e,t,a){switch(t=Eo(a),e){case"html":if(e=t.documentElement,!e)throw Error(s(452));return e;case"head":if(e=t.head,!e)throw Error(s(453));return e;case"body":if(e=t.body,!e)throw Error(s(454));return e;default:throw Error(s(451))}}function Zi(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);br(e)}var jt=new Map,Fp=new Set;function wo(e){return typeof e.getRootNode=="function"?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var va=H.d;H.d={f:cy,r:dy,D:fy,C:py,L:hy,m:my,X:vy,S:gy,M:yy};function cy(){var e=va.f(),t=mo();return e||t}function dy(e){var t=Sn(e);t!==null&&t.tag===5&&t.type==="form"?uf(t):va.r(e)}var Xn=typeof document>"u"?null:document;function Yp(e,t,a){var n=Xn;if(n&&typeof t=="string"&&t){var r=Dt(t);r='link[rel="'+e+'"][href="'+r+'"]',typeof a=="string"&&(r+='[crossorigin="'+a+'"]'),Fp.has(r)||(Fp.add(r),e={rel:e,crossOrigin:a,href:t},n.querySelector(r)===null&&(t=n.createElement("link"),it(t,"link",e),Qe(t),n.head.appendChild(t)))}}function fy(e){va.D(e),Yp("dns-prefetch",e,null)}function py(e,t){va.C(e,t),Yp("preconnect",e,t)}function hy(e,t,a){va.L(e,t,a);var n=Xn;if(n&&e&&t){var r='link[rel="preload"][as="'+Dt(t)+'"]';t==="image"&&a&&a.imageSrcSet?(r+='[imagesrcset="'+Dt(a.imageSrcSet)+'"]',typeof a.imageSizes=="string"&&(r+='[imagesizes="'+Dt(a.imageSizes)+'"]')):r+='[href="'+Dt(e)+'"]';var c=r;switch(t){case"style":c=Jn(e);break;case"script":c=ei(e)}jt.has(c)||(e=y({rel:"preload",href:t==="image"&&a&&a.imageSrcSet?void 0:e,as:t},a),jt.set(c,e),n.querySelector(r)!==null||t==="style"&&n.querySelector(Qi(c))||t==="script"&&n.querySelector(Xi(c))||(t=n.createElement("link"),it(t,"link",e),Qe(t),n.head.appendChild(t)))}}function my(e,t){va.m(e,t);var a=Xn;if(a&&e){var n=t&&typeof t.as=="string"?t.as:"script",r='link[rel="modulepreload"][as="'+Dt(n)+'"][href="'+Dt(e)+'"]',c=r;switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":c=ei(e)}if(!jt.has(c)&&(e=y({rel:"modulepreload",href:e},t),jt.set(c,e),a.querySelector(r)===null)){switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(a.querySelector(Xi(c)))return}n=a.createElement("link"),it(n,"link",e),Qe(n),a.head.appendChild(n)}}}function gy(e,t,a){va.S(e,t,a);var n=Xn;if(n&&e){var r=Cn(n).hoistableStyles,c=Jn(e);t=t||"default";var p=r.get(c);if(!p){var v={loading:0,preload:null};if(p=n.querySelector(Qi(c)))v.loading=5;else{e=y({rel:"stylesheet",href:e,"data-precedence":t},a),(a=jt.get(c))&&yu(e,a);var S=p=n.createElement("link");Qe(S),it(S,"link",e),S._p=new Promise(function(P,O){S.onload=P,S.onerror=O}),S.addEventListener("load",function(){v.loading|=1}),S.addEventListener("error",function(){v.loading|=2}),v.loading|=4,To(p,t,n)}p={type:"stylesheet",instance:p,count:1,state:v},r.set(c,p)}}}function vy(e,t){va.X(e,t);var a=Xn;if(a&&e){var n=Cn(a).hoistableScripts,r=ei(e),c=n.get(r);c||(c=a.querySelector(Xi(r)),c||(e=y({src:e,async:!0},t),(t=jt.get(r))&&bu(e,t),c=a.createElement("script"),Qe(c),it(c,"link",e),a.head.appendChild(c)),c={type:"script",instance:c,count:1,state:null},n.set(r,c))}}function yy(e,t){va.M(e,t);var a=Xn;if(a&&e){var n=Cn(a).hoistableScripts,r=ei(e),c=n.get(r);c||(c=a.querySelector(Xi(r)),c||(e=y({src:e,async:!0,type:"module"},t),(t=jt.get(r))&&bu(e,t),c=a.createElement("script"),Qe(c),it(c,"link",e),a.head.appendChild(c)),c={type:"script",instance:c,count:1,state:null},n.set(r,c))}}function Wp(e,t,a,n){var r=(r=ue.current)?wo(r):null;if(!r)throw Error(s(446));switch(e){case"meta":case"title":return null;case"style":return typeof a.precedence=="string"&&typeof a.href=="string"?(t=Jn(a.href),a=Cn(r).hoistableStyles,n=a.get(t),n||(n={type:"style",instance:null,count:0,state:null},a.set(t,n)),n):{type:"void",instance:null,count:0,state:null};case"link":if(a.rel==="stylesheet"&&typeof a.href=="string"&&typeof a.precedence=="string"){e=Jn(a.href);var c=Cn(r).hoistableStyles,p=c.get(e);if(p||(r=r.ownerDocument||r,p={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},c.set(e,p),(c=r.querySelector(Qi(e)))&&!c._p&&(p.instance=c,p.state.loading=5),jt.has(e)||(a={rel:"preload",as:"style",href:a.href,crossOrigin:a.crossOrigin,integrity:a.integrity,media:a.media,hrefLang:a.hrefLang,referrerPolicy:a.referrerPolicy},jt.set(e,a),c||by(r,e,a,p.state))),t&&n===null)throw Error(s(528,""));return p}if(t&&n!==null)throw Error(s(529,""));return null;case"script":return t=a.async,a=a.src,typeof a=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=ei(a),a=Cn(r).hoistableScripts,n=a.get(t),n||(n={type:"script",instance:null,count:0,state:null},a.set(t,n)),n):{type:"void",instance:null,count:0,state:null};default:throw Error(s(444,e))}}function Jn(e){return'href="'+Dt(e)+'"'}function Qi(e){return'link[rel="stylesheet"]['+e+"]"}function $p(e){return y({},e,{"data-precedence":e.precedence,precedence:null})}function by(e,t,a,n){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?n.loading=1:(t=e.createElement("link"),n.preload=t,t.addEventListener("load",function(){return n.loading|=1}),t.addEventListener("error",function(){return n.loading|=2}),it(t,"link",a),Qe(t),e.head.appendChild(t))}function ei(e){return'[src="'+Dt(e)+'"]'}function Xi(e){return"script[async]"+e}function Zp(e,t,a){if(t.count++,t.instance===null)switch(t.type){case"style":var n=e.querySelector('style[data-href~="'+Dt(a.href)+'"]');if(n)return t.instance=n,Qe(n),n;var r=y({},a,{"data-href":a.href,"data-precedence":a.precedence,href:null,precedence:null});return n=(e.ownerDocument||e).createElement("style"),Qe(n),it(n,"style",r),To(n,a.precedence,e),t.instance=n;case"stylesheet":r=Jn(a.href);var c=e.querySelector(Qi(r));if(c)return t.state.loading|=4,t.instance=c,Qe(c),c;n=$p(a),(r=jt.get(r))&&yu(n,r),c=(e.ownerDocument||e).createElement("link"),Qe(c);var p=c;return p._p=new Promise(function(v,S){p.onload=v,p.onerror=S}),it(c,"link",n),t.state.loading|=4,To(c,a.precedence,e),t.instance=c;case"script":return c=ei(a.src),(r=e.querySelector(Xi(c)))?(t.instance=r,Qe(r),r):(n=a,(r=jt.get(c))&&(n=y({},a),bu(n,r)),e=e.ownerDocument||e,r=e.createElement("script"),Qe(r),it(r,"link",n),e.head.appendChild(r),t.instance=r);case"void":return null;default:throw Error(s(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(n=t.instance,t.state.loading|=4,To(n,a.precedence,e));return t.instance}function To(e,t,a){for(var n=a.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),r=n.length?n[n.length-1]:null,c=r,p=0;p<n.length;p++){var v=n[p];if(v.dataset.precedence===t)c=v;else if(c!==r)break}c?c.parentNode.insertBefore(e,c.nextSibling):(t=a.nodeType===9?a.head:a,t.insertBefore(e,t.firstChild))}function yu(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.title==null&&(e.title=t.title)}function bu(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.integrity==null&&(e.integrity=t.integrity)}var Po=null;function Qp(e,t,a){if(Po===null){var n=new Map,r=Po=new Map;r.set(a,n)}else r=Po,n=r.get(a),n||(n=new Map,r.set(a,n));if(n.has(e))return n;for(n.set(e,null),a=a.getElementsByTagName(e),r=0;r<a.length;r++){var c=a[r];if(!(c[hi]||c[et]||e==="link"&&c.getAttribute("rel")==="stylesheet")&&c.namespaceURI!=="http://www.w3.org/2000/svg"){var p=c.getAttribute(t)||"";p=e+p;var v=n.get(p);v?v.push(c):n.set(p,[c])}}return n}function Xp(e,t,a){e=e.ownerDocument||e,e.head.insertBefore(a,t==="title"?e.querySelector("head > title"):null)}function Sy(e,t,a){if(a===1||t.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;return t.rel==="stylesheet"?(e=t.disabled,typeof t.precedence=="string"&&e==null):!0;case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function Jp(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function Cy(e,t,a,n){if(a.type==="stylesheet"&&(typeof n.media!="string"||matchMedia(n.media).matches!==!1)&&(a.state.loading&4)===0){if(a.instance===null){var r=Jn(n.href),c=t.querySelector(Qi(r));if(c){t=c._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=zo.bind(e),t.then(e,e)),a.state.loading|=4,a.instance=c,Qe(c);return}c=t.ownerDocument||t,n=$p(n),(r=jt.get(r))&&yu(n,r),c=c.createElement("link"),Qe(c);var p=c;p._p=new Promise(function(v,S){p.onload=v,p.onerror=S}),it(c,"link",n),a.instance=c}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(a,t),(t=a.state.preload)&&(a.state.loading&3)===0&&(e.count++,a=zo.bind(e),t.addEventListener("load",a),t.addEventListener("error",a))}}var Su=0;function Ay(e,t){return e.stylesheets&&e.count===0&&Lo(e,e.stylesheets),0<e.count||0<e.imgCount?function(a){var n=setTimeout(function(){if(e.stylesheets&&Lo(e,e.stylesheets),e.unsuspend){var c=e.unsuspend;e.unsuspend=null,c()}},6e4+t);0<e.imgBytes&&Su===0&&(Su=62500*ay());var r=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&Lo(e,e.stylesheets),e.unsuspend)){var c=e.unsuspend;e.unsuspend=null,c()}},(e.imgBytes>Su?50:800)+t);return e.unsuspend=a,function(){e.unsuspend=null,clearTimeout(n),clearTimeout(r)}}:null}function zo(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Lo(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var ko=null;function Lo(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,ko=new Map,t.forEach(Ey,e),ko=null,zo.call(e))}function Ey(e,t){if(!(t.state.loading&4)){var a=ko.get(e);if(a)var n=a.get(null);else{a=new Map,ko.set(e,a);for(var r=e.querySelectorAll("link[data-precedence],style[data-precedence]"),c=0;c<r.length;c++){var p=r[c];(p.nodeName==="LINK"||p.getAttribute("media")!=="not all")&&(a.set(p.dataset.precedence,p),n=p)}n&&a.set(null,n)}r=t.instance,p=r.getAttribute("data-precedence"),c=a.get(p)||n,c===n&&a.set(null,r),a.set(p,r),this.count++,n=zo.bind(this),r.addEventListener("load",n),r.addEventListener("error",n),c?c.parentNode.insertBefore(r,c.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(r,e.firstChild)),t.state.loading|=4}}var Ji={$$typeof:q,Provider:null,Consumer:null,_currentValue:J,_currentValue2:J,_threadCount:0};function wy(e,t,a,n,r,c,p,v,S){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=mr(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=mr(0),this.hiddenUpdates=mr(null),this.identifierPrefix=n,this.onUncaughtError=r,this.onCaughtError=c,this.onRecoverableError=p,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=S,this.incompleteTransitions=new Map}function eh(e,t,a,n,r,c,p,v,S,P,O,U){return e=new wy(e,t,a,p,S,P,O,U,v),t=1,c===!0&&(t|=24),c=Et(3,null,null,t),e.current=c,c.stateNode=e,t=Jr(),t.refCount++,e.pooledCache=t,t.refCount++,c.memoizedState={element:n,isDehydrated:a,cache:t},ns(c),e}function th(e){return e?(e=On,e):On}function ah(e,t,a,n,r,c){r=th(r),n.context===null?n.context=r:n.pendingContext=r,n=ka(t),n.payload={element:a},c=c===void 0?null:c,c!==null&&(n.callback=c),a=La(e,n,t),a!==null&&(yt(a,e,t),Oi(a,e,t))}function nh(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var a=e.retryLane;e.retryLane=a!==0&&a<t?a:t}}function Cu(e,t){nh(e,t),(e=e.alternate)&&nh(e,t)}function ih(e){if(e.tag===13||e.tag===31){var t=tn(e,67108864);t!==null&&yt(t,e,67108864),Cu(e,67108864)}}function lh(e){if(e.tag===13||e.tag===31){var t=kt();t=gr(t);var a=tn(e,t);a!==null&&yt(a,e,t),Cu(e,t)}}var Mo=!0;function Ty(e,t,a,n){var r=M.T;M.T=null;var c=H.p;try{H.p=2,Au(e,t,a,n)}finally{H.p=c,M.T=r}}function Py(e,t,a,n){var r=M.T;M.T=null;var c=H.p;try{H.p=8,Au(e,t,a,n)}finally{H.p=c,M.T=r}}function Au(e,t,a,n){if(Mo){var r=Eu(n);if(r===null)su(e,t,n,Oo,a),rh(e,n);else if(ky(r,e,t,a,n))n.stopPropagation();else if(rh(e,n),t&4&&-1<zy.indexOf(e)){for(;r!==null;){var c=Sn(r);if(c!==null)switch(c.tag){case 3:if(c=c.stateNode,c.current.memoizedState.isDehydrated){var p=Za(c.pendingLanes);if(p!==0){var v=c;for(v.pendingLanes|=2,v.entangledLanes|=2;p;){var S=1<<31-Ct(p);v.entanglements[1]|=S,p&=~S}$t(c),(Ce&6)===0&&(po=bt()+500,Yi(0))}}break;case 31:case 13:v=tn(c,2),v!==null&&yt(v,c,2),mo(),Cu(c,2)}if(c=Eu(n),c===null&&su(e,t,n,Oo,a),c===r)break;r=c}r!==null&&n.stopPropagation()}else su(e,t,n,null,a)}}function Eu(e){return e=Tr(e),wu(e)}var Oo=null;function wu(e){if(Oo=null,e=bn(e),e!==null){var t=d(e);if(t===null)e=null;else{var a=t.tag;if(a===13){if(e=f(t),e!==null)return e;e=null}else if(a===31){if(e=h(t),e!==null)return e;e=null}else if(a===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return Oo=e,null}function oh(e){switch(e){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(fg()){case pc:return 2;case hc:return 8;case bl:case pg:return 32;case mc:return 268435456;default:return 32}default:return 32}}var Tu=!1,ja=null,Ha=null,Ka=null,el=new Map,tl=new Map,qa=[],zy="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function rh(e,t){switch(e){case"focusin":case"focusout":ja=null;break;case"dragenter":case"dragleave":Ha=null;break;case"mouseover":case"mouseout":Ka=null;break;case"pointerover":case"pointerout":el.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":tl.delete(t.pointerId)}}function al(e,t,a,n,r,c){return e===null||e.nativeEvent!==c?(e={blockedOn:t,domEventName:a,eventSystemFlags:n,nativeEvent:c,targetContainers:[r]},t!==null&&(t=Sn(t),t!==null&&ih(t)),e):(e.eventSystemFlags|=n,t=e.targetContainers,r!==null&&t.indexOf(r)===-1&&t.push(r),e)}function ky(e,t,a,n,r){switch(t){case"focusin":return ja=al(ja,e,t,a,n,r),!0;case"dragenter":return Ha=al(Ha,e,t,a,n,r),!0;case"mouseover":return Ka=al(Ka,e,t,a,n,r),!0;case"pointerover":var c=r.pointerId;return el.set(c,al(el.get(c)||null,e,t,a,n,r)),!0;case"gotpointercapture":return c=r.pointerId,tl.set(c,al(tl.get(c)||null,e,t,a,n,r)),!0}return!1}function sh(e){var t=bn(e.target);if(t!==null){var a=d(t);if(a!==null){if(t=a.tag,t===13){if(t=f(a),t!==null){e.blockedOn=t,Cc(e.priority,function(){lh(a)});return}}else if(t===31){if(t=h(a),t!==null){e.blockedOn=t,Cc(e.priority,function(){lh(a)});return}}else if(t===3&&a.stateNode.current.memoizedState.isDehydrated){e.blockedOn=a.tag===3?a.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Do(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var a=Eu(e.nativeEvent);if(a===null){a=e.nativeEvent;var n=new a.constructor(a.type,a);wr=n,a.target.dispatchEvent(n),wr=null}else return t=Sn(a),t!==null&&ih(t),e.blockedOn=a,!1;t.shift()}return!0}function uh(e,t,a){Do(e)&&a.delete(t)}function Ly(){Tu=!1,ja!==null&&Do(ja)&&(ja=null),Ha!==null&&Do(Ha)&&(Ha=null),Ka!==null&&Do(Ka)&&(Ka=null),el.forEach(uh),tl.forEach(uh)}function Ro(e,t){e.blockedOn===t&&(e.blockedOn=null,Tu||(Tu=!0,i.unstable_scheduleCallback(i.unstable_NormalPriority,Ly)))}var _o=null;function ch(e){_o!==e&&(_o=e,i.unstable_scheduleCallback(i.unstable_NormalPriority,function(){_o===e&&(_o=null);for(var t=0;t<e.length;t+=3){var a=e[t],n=e[t+1],r=e[t+2];if(typeof n!="function"){if(wu(n||a)===null)continue;break}var c=Sn(a);c!==null&&(e.splice(t,3),t-=3,Es(c,{pending:!0,data:r,method:a.method,action:n},n,r))}}))}function ti(e){function t(S){return Ro(S,e)}ja!==null&&Ro(ja,e),Ha!==null&&Ro(Ha,e),Ka!==null&&Ro(Ka,e),el.forEach(t),tl.forEach(t);for(var a=0;a<qa.length;a++){var n=qa[a];n.blockedOn===e&&(n.blockedOn=null)}for(;0<qa.length&&(a=qa[0],a.blockedOn===null);)sh(a),a.blockedOn===null&&qa.shift();if(a=(e.ownerDocument||e).$$reactFormReplay,a!=null)for(n=0;n<a.length;n+=3){var r=a[n],c=a[n+1],p=r[ft]||null;if(typeof c=="function")p||ch(a);else if(p){var v=null;if(c&&c.hasAttribute("formAction")){if(r=c,p=c[ft]||null)v=p.formAction;else if(wu(r)!==null)continue}else v=p.action;typeof v=="function"?a[n+1]=v:(a.splice(n,3),n-=3),ch(a)}}}function dh(){function e(c){c.canIntercept&&c.info==="react-transition"&&c.intercept({handler:function(){return new Promise(function(p){return r=p})},focusReset:"manual",scroll:"manual"})}function t(){r!==null&&(r(),r=null),n||setTimeout(a,20)}function a(){if(!n&&!navigation.transition){var c=navigation.currentEntry;c&&c.url!=null&&navigation.navigate(c.url,{state:c.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var n=!1,r=null;return navigation.addEventListener("navigate",e),navigation.addEventListener("navigatesuccess",t),navigation.addEventListener("navigateerror",t),setTimeout(a,100),function(){n=!0,navigation.removeEventListener("navigate",e),navigation.removeEventListener("navigatesuccess",t),navigation.removeEventListener("navigateerror",t),r!==null&&(r(),r=null)}}}function Pu(e){this._internalRoot=e}xo.prototype.render=Pu.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(s(409));var a=t.current,n=kt();ah(a,n,e,t,null,null)},xo.prototype.unmount=Pu.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;ah(e.current,2,null,e,null,null),mo(),t[yn]=null}};function xo(e){this._internalRoot=e}xo.prototype.unstable_scheduleHydration=function(e){if(e){var t=Sc();e={blockedOn:null,target:e,priority:t};for(var a=0;a<qa.length&&t!==0&&t<qa[a].priority;a++);qa.splice(a,0,e),a===0&&sh(e)}};var fh=l.version;if(fh!=="19.2.4")throw Error(s(527,fh,"19.2.4"));H.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(s(188)):(e=Object.keys(e).join(","),Error(s(268,e)));return e=g(t),e=e!==null?b(e):null,e=e===null?null:e.stateNode,e};var My={bundleType:0,version:"19.2.4",rendererPackageName:"react-dom",currentDispatcherRef:M,reconcilerVersion:"19.2.4"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var No=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!No.isDisabled&&No.supportsFiber)try{di=No.inject(My),St=No}catch{}}return il.createRoot=function(e,t){if(!o(e))throw Error(s(299));var a=!1,n="",r=bf,c=Sf,p=Cf;return t!=null&&(t.unstable_strictMode===!0&&(a=!0),t.identifierPrefix!==void 0&&(n=t.identifierPrefix),t.onUncaughtError!==void 0&&(r=t.onUncaughtError),t.onCaughtError!==void 0&&(c=t.onCaughtError),t.onRecoverableError!==void 0&&(p=t.onRecoverableError)),t=eh(e,1,!1,null,null,a,n,null,r,c,p,dh),e[yn]=t.current,ru(e),new Pu(t)},il.hydrateRoot=function(e,t,a){if(!o(e))throw Error(s(299));var n=!1,r="",c=bf,p=Sf,v=Cf,S=null;return a!=null&&(a.unstable_strictMode===!0&&(n=!0),a.identifierPrefix!==void 0&&(r=a.identifierPrefix),a.onUncaughtError!==void 0&&(c=a.onUncaughtError),a.onCaughtError!==void 0&&(p=a.onCaughtError),a.onRecoverableError!==void 0&&(v=a.onRecoverableError),a.formState!==void 0&&(S=a.formState)),t=eh(e,1,!0,t,a??null,n,r,S,c,p,v,dh),t.context=th(null),a=t.current,n=kt(),n=gr(n),r=ka(n),r.callback=null,La(a,r,n),a=n,t.current.lanes=a,pi(t,a),$t(t),e[yn]=t.current,ru(e),new xo(t)},il.version="19.2.4",il}var Eh;function qy(){if(Eh)return Lu.exports;Eh=1;function i(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(i)}catch(l){console.error(l)}}return i(),Lu.exports=Ky(),Lu.exports}var Gy=qy();var wh="popstate";function Th(i){return typeof i=="object"&&i!=null&&"pathname"in i&&"search"in i&&"hash"in i&&"state"in i&&"key"in i}function Vy(i={}){function l(s,o){let d=o.state?.masked,{pathname:f,search:h,hash:m}=d||s.location;return Yu("",{pathname:f,search:h,hash:m},o.state&&o.state.usr||null,o.state&&o.state.key||"default",d?{pathname:s.location.pathname,search:s.location.search,hash:s.location.hash}:void 0)}function u(s,o){return typeof o=="string"?o:fl(o)}return Yy(l,u,null,i)}function je(i,l){if(i===!1||i===null||typeof i>"u")throw new Error(l)}function Ht(i,l){if(!i){typeof console<"u"&&console.warn(l);try{throw new Error(l)}catch{}}}function Fy(){return Math.random().toString(36).substring(2,10)}function Ph(i,l){return{usr:i.state,key:i.key,idx:l,masked:i.unstable_mask?{pathname:i.pathname,search:i.search,hash:i.hash}:void 0}}function Yu(i,l,u=null,s,o){return{pathname:typeof i=="string"?i:i.pathname,search:"",hash:"",...typeof l=="string"?ri(l):l,state:u,key:l&&l.key||s||Fy(),unstable_mask:o}}function fl({pathname:i="/",search:l="",hash:u=""}){return l&&l!=="?"&&(i+=l.charAt(0)==="?"?l:"?"+l),u&&u!=="#"&&(i+=u.charAt(0)==="#"?u:"#"+u),i}function ri(i){let l={};if(i){let u=i.indexOf("#");u>=0&&(l.hash=i.substring(u),i=i.substring(0,u));let s=i.indexOf("?");s>=0&&(l.search=i.substring(s),i=i.substring(0,s)),i&&(l.pathname=i)}return l}function Yy(i,l,u,s={}){let{window:o=document.defaultView,v5Compat:d=!1}=s,f=o.history,h="POP",m=null,g=b();g==null&&(g=0,f.replaceState({...f.state,idx:g},""));function b(){return(f.state||{idx:null}).idx}function y(){h="POP";let N=b(),K=N==null?null:N-g;g=N,m&&m({action:h,location:I.location,delta:K})}function k(N,K){h="PUSH";let j=Th(N)?N:Yu(I.location,N,K);g=b()+1;let q=Ph(j,g),Q=I.createHref(j.unstable_mask||j);try{f.pushState(q,"",Q)}catch(ee){if(ee instanceof DOMException&&ee.name==="DataCloneError")throw ee;o.location.assign(Q)}d&&m&&m({action:h,location:I.location,delta:1})}function D(N,K){h="REPLACE";let j=Th(N)?N:Yu(I.location,N,K);g=b();let q=Ph(j,g),Q=I.createHref(j.unstable_mask||j);f.replaceState(q,"",Q),d&&m&&m({action:h,location:I.location,delta:0})}function x(N){return Wy(N)}let I={get action(){return h},get location(){return i(o,f)},listen(N){if(m)throw new Error("A history only accepts one active listener");return o.addEventListener(wh,y),m=N,()=>{o.removeEventListener(wh,y),m=null}},createHref(N){return l(o,N)},createURL:x,encodeLocation(N){let K=x(N);return{pathname:K.pathname,search:K.search,hash:K.hash}},push:k,replace:D,go(N){return f.go(N)}};return I}function Wy(i,l=!1){let u="http://localhost";typeof window<"u"&&(u=window.location.origin!=="null"?window.location.origin:window.location.href),je(u,"No window.location.(origin|href) available to create URL");let s=typeof i=="string"?i:fl(i);return s=s.replace(/ $/,"%20"),!l&&s.startsWith("//")&&(s=u+s),new URL(s,u)}function fm(i,l,u="/"){return $y(i,l,u,!1)}function $y(i,l,u,s){let o=typeof l=="string"?ri(l):l,d=ya(o.pathname||"/",u);if(d==null)return null;let f=pm(i);Zy(f);let h=null;for(let m=0;h==null&&m<f.length;++m){let g=rb(d);h=lb(f[m],g,s)}return h}function pm(i,l=[],u=[],s="",o=!1){let d=(f,h,m=o,g)=>{let b={relativePath:g===void 0?f.path||"":g,caseSensitive:f.caseSensitive===!0,childrenIndex:h,route:f};if(b.relativePath.startsWith("/")){if(!b.relativePath.startsWith(s)&&m)return;je(b.relativePath.startsWith(s),`Absolute route path "${b.relativePath}" nested under path "${s}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),b.relativePath=b.relativePath.slice(s.length)}let y=Xt([s,b.relativePath]),k=u.concat(b);f.children&&f.children.length>0&&(je(f.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${y}".`),pm(f.children,l,k,y,m)),!(f.path==null&&!f.index)&&l.push({path:y,score:nb(y,f.index),routesMeta:k})};return i.forEach((f,h)=>{if(f.path===""||!f.path?.includes("?"))d(f,h);else for(let m of hm(f.path))d(f,h,!0,m)}),l}function hm(i){let l=i.split("/");if(l.length===0)return[];let[u,...s]=l,o=u.endsWith("?"),d=u.replace(/\?$/,"");if(s.length===0)return o?[d,""]:[d];let f=hm(s.join("/")),h=[];return h.push(...f.map(m=>m===""?d:[d,m].join("/"))),o&&h.push(...f),h.map(m=>i.startsWith("/")&&m===""?"/":m)}function Zy(i){i.sort((l,u)=>l.score!==u.score?u.score-l.score:ib(l.routesMeta.map(s=>s.childrenIndex),u.routesMeta.map(s=>s.childrenIndex)))}var Qy=/^:[\w-]+$/,Xy=3,Jy=2,eb=1,tb=10,ab=-2,zh=i=>i==="*";function nb(i,l){let u=i.split("/"),s=u.length;return u.some(zh)&&(s+=ab),l&&(s+=Jy),u.filter(o=>!zh(o)).reduce((o,d)=>o+(Qy.test(d)?Xy:d===""?eb:tb),s)}function ib(i,l){return i.length===l.length&&i.slice(0,-1).every((s,o)=>s===l[o])?i[i.length-1]-l[l.length-1]:0}function lb(i,l,u=!1){let{routesMeta:s}=i,o={},d="/",f=[];for(let h=0;h<s.length;++h){let m=s[h],g=h===s.length-1,b=d==="/"?l:l.slice(d.length)||"/",y=Fo({path:m.relativePath,caseSensitive:m.caseSensitive,end:g},b),k=m.route;if(!y&&g&&u&&!s[s.length-1].route.index&&(y=Fo({path:m.relativePath,caseSensitive:m.caseSensitive,end:!1},b)),!y)return null;Object.assign(o,y.params),f.push({params:o,pathname:Xt([d,y.pathname]),pathnameBase:db(Xt([d,y.pathnameBase])),route:k}),y.pathnameBase!=="/"&&(d=Xt([d,y.pathnameBase]))}return f}function Fo(i,l){typeof i=="string"&&(i={path:i,caseSensitive:!1,end:!0});let[u,s]=ob(i.path,i.caseSensitive,i.end),o=l.match(u);if(!o)return null;let d=o[0],f=d.replace(/(.)\/+$/,"$1"),h=o.slice(1);return{params:s.reduce((g,{paramName:b,isOptional:y},k)=>{if(b==="*"){let x=h[k]||"";f=d.slice(0,d.length-x.length).replace(/(.)\/+$/,"$1")}const D=h[k];return y&&!D?g[b]=void 0:g[b]=(D||"").replace(/%2F/g,"/"),g},{}),pathname:d,pathnameBase:f,pattern:i}}function ob(i,l=!1,u=!0){Ht(i==="*"||!i.endsWith("*")||i.endsWith("/*"),`Route path "${i}" will be treated as if it were "${i.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${i.replace(/\*$/,"/*")}".`);let s=[],o="^"+i.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(f,h,m,g,b)=>{if(s.push({paramName:h,isOptional:m!=null}),m){let y=b.charAt(g+f.length);return y&&y!=="/"?"/([^\\/]*)":"(?:/([^\\/]*))?"}return"/([^\\/]+)"}).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return i.endsWith("*")?(s.push({paramName:"*"}),o+=i==="*"||i==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):u?o+="\\/*$":i!==""&&i!=="/"&&(o+="(?:(?=\\/|$))"),[new RegExp(o,l?void 0:"i"),s]}function rb(i){try{return i.split("/").map(l=>decodeURIComponent(l).replace(/\//g,"%2F")).join("/")}catch(l){return Ht(!1,`The URL path "${i}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${l}).`),i}}function ya(i,l){if(l==="/")return i;if(!i.toLowerCase().startsWith(l.toLowerCase()))return null;let u=l.endsWith("/")?l.length-1:l.length,s=i.charAt(u);return s&&s!=="/"?null:i.slice(u)||"/"}var sb=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;function ub(i,l="/"){let{pathname:u,search:s="",hash:o=""}=typeof i=="string"?ri(i):i,d;return u?(u=u.replace(/\/\/+/g,"/"),u.startsWith("/")?d=kh(u.substring(1),"/"):d=kh(u,l)):d=l,{pathname:d,search:fb(s),hash:pb(o)}}function kh(i,l){let u=l.replace(/\/+$/,"").split("/");return i.split("/").forEach(o=>{o===".."?u.length>1&&u.pop():o!=="."&&u.push(o)}),u.length>1?u.join("/"):"/"}function Ru(i,l,u,s){return`Cannot include a '${i}' character in a manually specified \`to.${l}\` field [${JSON.stringify(s)}]. Please separate it out to the \`to.${u}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function cb(i){return i.filter((l,u)=>u===0||l.route.path&&l.route.path.length>0)}function ac(i){let l=cb(i);return l.map((u,s)=>s===l.length-1?u.pathname:u.pathnameBase)}function Xo(i,l,u,s=!1){let o;typeof i=="string"?o=ri(i):(o={...i},je(!o.pathname||!o.pathname.includes("?"),Ru("?","pathname","search",o)),je(!o.pathname||!o.pathname.includes("#"),Ru("#","pathname","hash",o)),je(!o.search||!o.search.includes("#"),Ru("#","search","hash",o)));let d=i===""||o.pathname==="",f=d?"/":o.pathname,h;if(f==null)h=u;else{let y=l.length-1;if(!s&&f.startsWith("..")){let k=f.split("/");for(;k[0]==="..";)k.shift(),y-=1;o.pathname=k.join("/")}h=y>=0?l[y]:"/"}let m=ub(o,h),g=f&&f!=="/"&&f.endsWith("/"),b=(d||f===".")&&u.endsWith("/");return!m.pathname.endsWith("/")&&(g||b)&&(m.pathname+="/"),m}var Xt=i=>i.join("/").replace(/\/\/+/g,"/"),db=i=>i.replace(/\/+$/,"").replace(/^\/*/,"/"),fb=i=>!i||i==="?"?"":i.startsWith("?")?i:"?"+i,pb=i=>!i||i==="#"?"":i.startsWith("#")?i:"#"+i,hb=class{constructor(i,l,u,s=!1){this.status=i,this.statusText=l||"",this.internal=s,u instanceof Error?(this.data=u.toString(),this.error=u):this.data=u}};function mb(i){return i!=null&&typeof i.status=="number"&&typeof i.statusText=="string"&&typeof i.internal=="boolean"&&"data"in i}function gb(i){return i.map(l=>l.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}var mm=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function gm(i,l){let u=i;if(typeof u!="string"||!sb.test(u))return{absoluteURL:void 0,isExternal:!1,to:u};let s=u,o=!1;if(mm)try{let d=new URL(window.location.href),f=u.startsWith("//")?new URL(d.protocol+u):new URL(u),h=ya(f.pathname,l);f.origin===d.origin&&h!=null?u=h+f.search+f.hash:o=!0}catch{Ht(!1,`<Link to="${u}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:s,isExternal:o,to:u}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var vm=["POST","PUT","PATCH","DELETE"];new Set(vm);var vb=["GET",...vm];new Set(vb);var si=E.createContext(null);si.displayName="DataRouter";var Jo=E.createContext(null);Jo.displayName="DataRouterState";var yb=E.createContext(!1),ym=E.createContext({isTransitioning:!1});ym.displayName="ViewTransition";var bb=E.createContext(new Map);bb.displayName="Fetchers";var Sb=E.createContext(null);Sb.displayName="Await";var Mt=E.createContext(null);Mt.displayName="Navigation";var hl=E.createContext(null);hl.displayName="Location";var Kt=E.createContext({outlet:null,matches:[],isDataRoute:!1});Kt.displayName="Route";var nc=E.createContext(null);nc.displayName="RouteError";var bm="REACT_ROUTER_ERROR",Cb="REDIRECT",Ab="ROUTE_ERROR_RESPONSE";function Eb(i){if(i.startsWith(`${bm}:${Cb}:{`))try{let l=JSON.parse(i.slice(28));if(typeof l=="object"&&l&&typeof l.status=="number"&&typeof l.statusText=="string"&&typeof l.location=="string"&&typeof l.reloadDocument=="boolean"&&typeof l.replace=="boolean")return l}catch{}}function wb(i){if(i.startsWith(`${bm}:${Ab}:{`))try{let l=JSON.parse(i.slice(40));if(typeof l=="object"&&l&&typeof l.status=="number"&&typeof l.statusText=="string")return new hb(l.status,l.statusText,l.data)}catch{}}function Tb(i,{relative:l}={}){je(ui(),"useHref() may be used only in the context of a <Router> component.");let{basename:u,navigator:s}=E.useContext(Mt),{hash:o,pathname:d,search:f}=ml(i,{relative:l}),h=d;return u!=="/"&&(h=d==="/"?u:Xt([u,d])),s.createHref({pathname:h,search:f,hash:o})}function ui(){return E.useContext(hl)!=null}function Jt(){return je(ui(),"useLocation() may be used only in the context of a <Router> component."),E.useContext(hl).location}var Sm="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Cm(i){E.useContext(Mt).static||E.useLayoutEffect(i)}function ic(){let{isDataRoute:i}=E.useContext(Kt);return i?jb():Pb()}function Pb(){je(ui(),"useNavigate() may be used only in the context of a <Router> component.");let i=E.useContext(si),{basename:l,navigator:u}=E.useContext(Mt),{matches:s}=E.useContext(Kt),{pathname:o}=Jt(),d=JSON.stringify(ac(s)),f=E.useRef(!1);return Cm(()=>{f.current=!0}),E.useCallback((m,g={})=>{if(Ht(f.current,Sm),!f.current)return;if(typeof m=="number"){u.go(m);return}let b=Xo(m,JSON.parse(d),o,g.relative==="path");i==null&&l!=="/"&&(b.pathname=b.pathname==="/"?l:Xt([l,b.pathname])),(g.replace?u.replace:u.push)(b,g.state,g)},[l,u,d,o,i])}var zb=E.createContext(null);function kb(i){let l=E.useContext(Kt).outlet;return E.useMemo(()=>l&&E.createElement(zb.Provider,{value:i},l),[l,i])}function $T(){let{matches:i}=E.useContext(Kt),l=i[i.length-1];return l?l.params:{}}function ml(i,{relative:l}={}){let{matches:u}=E.useContext(Kt),{pathname:s}=Jt(),o=JSON.stringify(ac(u));return E.useMemo(()=>Xo(i,JSON.parse(o),s,l==="path"),[i,o,s,l])}function Lb(i,l){return Am(i,l)}function Am(i,l,u){je(ui(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:s}=E.useContext(Mt),{matches:o}=E.useContext(Kt),d=o[o.length-1],f=d?d.params:{},h=d?d.pathname:"/",m=d?d.pathnameBase:"/",g=d&&d.route;{let N=g&&g.path||"";wm(h,!g||N.endsWith("*")||N.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${h}" (under <Route path="${N}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
11
+
12
+ Please change the parent <Route path="${N}"> to <Route path="${N==="/"?"*":`${N}/*`}">.`)}let b=Jt(),y;if(l){let N=typeof l=="string"?ri(l):l;je(m==="/"||N.pathname?.startsWith(m),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${m}" but pathname "${N.pathname}" was given in the \`location\` prop.`),y=N}else y=b;let k=y.pathname||"/",D=k;if(m!=="/"){let N=m.replace(/^\//,"").split("/");D="/"+k.replace(/^\//,"").split("/").slice(N.length).join("/")}let x=fm(i,{pathname:D});Ht(g||x!=null,`No routes matched location "${y.pathname}${y.search}${y.hash}" `),Ht(x==null||x[x.length-1].route.element!==void 0||x[x.length-1].route.Component!==void 0||x[x.length-1].route.lazy!==void 0,`Matched leaf route at location "${y.pathname}${y.search}${y.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let I=_b(x&&x.map(N=>Object.assign({},N,{params:Object.assign({},f,N.params),pathname:Xt([m,s.encodeLocation?s.encodeLocation(N.pathname.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:N.pathname]),pathnameBase:N.pathnameBase==="/"?m:Xt([m,s.encodeLocation?s.encodeLocation(N.pathnameBase.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:N.pathnameBase])})),o,u);return l&&I?E.createElement(hl.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",unstable_mask:void 0,...y},navigationType:"POP"}},I):I}function Mb(){let i=Ib(),l=mb(i)?`${i.status} ${i.statusText}`:i instanceof Error?i.message:JSON.stringify(i),u=i instanceof Error?i.stack:null,s="rgba(200,200,200, 0.5)",o={padding:"0.5rem",backgroundColor:s},d={padding:"2px 4px",backgroundColor:s},f=null;return console.error("Error handled by React Router default ErrorBoundary:",i),f=E.createElement(E.Fragment,null,E.createElement("p",null,"💿 Hey developer 👋"),E.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",E.createElement("code",{style:d},"ErrorBoundary")," or"," ",E.createElement("code",{style:d},"errorElement")," prop on your route.")),E.createElement(E.Fragment,null,E.createElement("h2",null,"Unexpected Application Error!"),E.createElement("h3",{style:{fontStyle:"italic"}},l),u?E.createElement("pre",{style:o},u):null,f)}var Ob=E.createElement(Mb,null),Em=class extends E.Component{constructor(i){super(i),this.state={location:i.location,revalidation:i.revalidation,error:i.error}}static getDerivedStateFromError(i){return{error:i}}static getDerivedStateFromProps(i,l){return l.location!==i.location||l.revalidation!=="idle"&&i.revalidation==="idle"?{error:i.error,location:i.location,revalidation:i.revalidation}:{error:i.error!==void 0?i.error:l.error,location:l.location,revalidation:i.revalidation||l.revalidation}}componentDidCatch(i,l){this.props.onError?this.props.onError(i,l):console.error("React Router caught the following error during render",i)}render(){let i=this.state.error;if(this.context&&typeof i=="object"&&i&&"digest"in i&&typeof i.digest=="string"){const u=wb(i.digest);u&&(i=u)}let l=i!==void 0?E.createElement(Kt.Provider,{value:this.props.routeContext},E.createElement(nc.Provider,{value:i,children:this.props.component})):this.props.children;return this.context?E.createElement(Db,{error:i},l):l}};Em.contextType=yb;var _u=new WeakMap;function Db({children:i,error:l}){let{basename:u}=E.useContext(Mt);if(typeof l=="object"&&l&&"digest"in l&&typeof l.digest=="string"){let s=Eb(l.digest);if(s){let o=_u.get(l);if(o)throw o;let d=gm(s.location,u);if(mm&&!_u.get(l))if(d.isExternal||s.reloadDocument)window.location.href=d.absoluteURL||d.to;else{const f=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(d.to,{replace:s.replace}));throw _u.set(l,f),f}return E.createElement("meta",{httpEquiv:"refresh",content:`0;url=${d.absoluteURL||d.to}`})}}return i}function Rb({routeContext:i,match:l,children:u}){let s=E.useContext(si);return s&&s.static&&s.staticContext&&(l.route.errorElement||l.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=l.route.id),E.createElement(Kt.Provider,{value:i},u)}function _b(i,l=[],u){let s=u?.state;if(i==null){if(!s)return null;if(s.errors)i=s.matches;else if(l.length===0&&!s.initialized&&s.matches.length>0)i=s.matches;else return null}let o=i,d=s?.errors;if(d!=null){let b=o.findIndex(y=>y.route.id&&d?.[y.route.id]!==void 0);je(b>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(d).join(",")}`),o=o.slice(0,Math.min(o.length,b+1))}let f=!1,h=-1;if(u&&s){f=s.renderFallback;for(let b=0;b<o.length;b++){let y=o[b];if((y.route.HydrateFallback||y.route.hydrateFallbackElement)&&(h=b),y.route.id){let{loaderData:k,errors:D}=s,x=y.route.loader&&!k.hasOwnProperty(y.route.id)&&(!D||D[y.route.id]===void 0);if(y.route.lazy||x){u.isStatic&&(f=!0),h>=0?o=o.slice(0,h+1):o=[o[0]];break}}}}let m=u?.onError,g=s&&m?(b,y)=>{m(b,{location:s.location,params:s.matches?.[0]?.params??{},unstable_pattern:gb(s.matches),errorInfo:y})}:void 0;return o.reduceRight((b,y,k)=>{let D,x=!1,I=null,N=null;s&&(D=d&&y.route.id?d[y.route.id]:void 0,I=y.route.errorElement||Ob,f&&(h<0&&k===0?(wm("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),x=!0,N=null):h===k&&(x=!0,N=y.route.hydrateFallbackElement||null)));let K=l.concat(o.slice(0,k+1)),j=()=>{let q;return D?q=I:x?q=N:y.route.Component?q=E.createElement(y.route.Component,null):y.route.element?q=y.route.element:q=b,E.createElement(Rb,{match:y,routeContext:{outlet:b,matches:K,isDataRoute:s!=null},children:q})};return s&&(y.route.ErrorBoundary||y.route.errorElement||k===0)?E.createElement(Em,{location:s.location,revalidation:s.revalidation,component:I,error:D,children:j(),routeContext:{outlet:null,matches:K,isDataRoute:!0},onError:g}):j()},null)}function lc(i){return`${i} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function xb(i){let l=E.useContext(si);return je(l,lc(i)),l}function Nb(i){let l=E.useContext(Jo);return je(l,lc(i)),l}function Ub(i){let l=E.useContext(Kt);return je(l,lc(i)),l}function oc(i){let l=Ub(i),u=l.matches[l.matches.length-1];return je(u.route.id,`${i} can only be used on routes that contain a unique "id"`),u.route.id}function Bb(){return oc("useRouteId")}function Ib(){let i=E.useContext(nc),l=Nb("useRouteError"),u=oc("useRouteError");return i!==void 0?i:l.errors?.[u]}function jb(){let{router:i}=xb("useNavigate"),l=oc("useNavigate"),u=E.useRef(!1);return Cm(()=>{u.current=!0}),E.useCallback(async(o,d={})=>{Ht(u.current,Sm),u.current&&(typeof o=="number"?await i.navigate(o):await i.navigate(o,{fromRouteId:l,...d}))},[i,l])}var Lh={};function wm(i,l,u){!l&&!Lh[i]&&(Lh[i]=!0,Ht(!1,u))}E.memo(Hb);function Hb({routes:i,future:l,state:u,isStatic:s,onError:o}){return Am(i,void 0,{state:u,isStatic:s,onError:o})}function ZT({to:i,replace:l,state:u,relative:s}){je(ui(),"<Navigate> may be used only in the context of a <Router> component.");let{static:o}=E.useContext(Mt);Ht(!o,"<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.");let{matches:d}=E.useContext(Kt),{pathname:f}=Jt(),h=ic(),m=Xo(i,ac(d),f,s==="path"),g=JSON.stringify(m);return E.useEffect(()=>{h(JSON.parse(g),{replace:l,state:u,relative:s})},[h,g,s,l,u]),null}function Kb(i){return kb(i.context)}function ze(i){je(!1,"A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.")}function qb({basename:i="/",children:l=null,location:u,navigationType:s="POP",navigator:o,static:d=!1,unstable_useTransitions:f}){je(!ui(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let h=i.replace(/^\/*/,"/"),m=E.useMemo(()=>({basename:h,navigator:o,static:d,unstable_useTransitions:f,future:{}}),[h,o,d,f]);typeof u=="string"&&(u=ri(u));let{pathname:g="/",search:b="",hash:y="",state:k=null,key:D="default",unstable_mask:x}=u,I=E.useMemo(()=>{let N=ya(g,h);return N==null?null:{location:{pathname:N,search:b,hash:y,state:k,key:D,unstable_mask:x},navigationType:s}},[h,g,b,y,k,D,s,x]);return Ht(I!=null,`<Router basename="${h}"> is not able to match the URL "${g}${b}${y}" because it does not start with the basename, so the <Router> won't render anything.`),I==null?null:E.createElement(Mt.Provider,{value:m},E.createElement(hl.Provider,{children:l,value:I}))}function Gb({children:i,location:l}){return Lb(Wu(i),l)}function Wu(i,l=[]){let u=[];return E.Children.forEach(i,(s,o)=>{if(!E.isValidElement(s))return;let d=[...l,o];if(s.type===E.Fragment){u.push.apply(u,Wu(s.props.children,d));return}je(s.type===ze,`[${typeof s.type=="string"?s.type:s.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),je(!s.props.index||!s.props.children,"An index route cannot have child routes.");let f={id:s.props.id||d.join("-"),caseSensitive:s.props.caseSensitive,element:s.props.element,Component:s.props.Component,index:s.props.index,path:s.props.path,middleware:s.props.middleware,loader:s.props.loader,action:s.props.action,hydrateFallbackElement:s.props.hydrateFallbackElement,HydrateFallback:s.props.HydrateFallback,errorElement:s.props.errorElement,ErrorBoundary:s.props.ErrorBoundary,hasErrorBoundary:s.props.hasErrorBoundary===!0||s.props.ErrorBoundary!=null||s.props.errorElement!=null,shouldRevalidate:s.props.shouldRevalidate,handle:s.props.handle,lazy:s.props.lazy};s.props.children&&(f.children=Wu(s.props.children,d)),u.push(f)}),u}var Ho="get",Ko="application/x-www-form-urlencoded";function er(i){return typeof HTMLElement<"u"&&i instanceof HTMLElement}function Vb(i){return er(i)&&i.tagName.toLowerCase()==="button"}function Fb(i){return er(i)&&i.tagName.toLowerCase()==="form"}function Yb(i){return er(i)&&i.tagName.toLowerCase()==="input"}function Wb(i){return!!(i.metaKey||i.altKey||i.ctrlKey||i.shiftKey)}function $b(i,l){return i.button===0&&(!l||l==="_self")&&!Wb(i)}function $u(i=""){return new URLSearchParams(typeof i=="string"||Array.isArray(i)||i instanceof URLSearchParams?i:Object.keys(i).reduce((l,u)=>{let s=i[u];return l.concat(Array.isArray(s)?s.map(o=>[u,o]):[[u,s]])},[]))}function Zb(i,l){let u=$u(i);return l&&l.forEach((s,o)=>{u.has(o)||l.getAll(o).forEach(d=>{u.append(o,d)})}),u}var Uo=null;function Qb(){if(Uo===null)try{new FormData(document.createElement("form"),0),Uo=!1}catch{Uo=!0}return Uo}var Xb=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function xu(i){return i!=null&&!Xb.has(i)?(Ht(!1,`"${i}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Ko}"`),null):i}function Jb(i,l){let u,s,o,d,f;if(Fb(i)){let h=i.getAttribute("action");s=h?ya(h,l):null,u=i.getAttribute("method")||Ho,o=xu(i.getAttribute("enctype"))||Ko,d=new FormData(i)}else if(Vb(i)||Yb(i)&&(i.type==="submit"||i.type==="image")){let h=i.form;if(h==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let m=i.getAttribute("formaction")||h.getAttribute("action");if(s=m?ya(m,l):null,u=i.getAttribute("formmethod")||h.getAttribute("method")||Ho,o=xu(i.getAttribute("formenctype"))||xu(h.getAttribute("enctype"))||Ko,d=new FormData(h,i),!Qb()){let{name:g,type:b,value:y}=i;if(b==="image"){let k=g?`${g}.`:"";d.append(`${k}x`,"0"),d.append(`${k}y`,"0")}else g&&d.append(g,y)}}else{if(er(i))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');u=Ho,s=null,o=Ko,f=i}return d&&o==="text/plain"&&(f=d,d=void 0),{action:s,method:u.toLowerCase(),encType:o,formData:d,body:f}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function rc(i,l){if(i===!1||i===null||typeof i>"u")throw new Error(l)}function eS(i,l,u,s){let o=typeof i=="string"?new URL(i,typeof window>"u"?"server://singlefetch/":window.location.origin):i;return u?o.pathname.endsWith("/")?o.pathname=`${o.pathname}_.${s}`:o.pathname=`${o.pathname}.${s}`:o.pathname==="/"?o.pathname=`_root.${s}`:l&&ya(o.pathname,l)==="/"?o.pathname=`${l.replace(/\/$/,"")}/_root.${s}`:o.pathname=`${o.pathname.replace(/\/$/,"")}.${s}`,o}async function tS(i,l){if(i.id in l)return l[i.id];try{let u=await import(i.module);return l[i.id]=u,u}catch(u){return console.error(`Error loading route module \`${i.module}\`, reloading page...`),console.error(u),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function aS(i){return i==null?!1:i.href==null?i.rel==="preload"&&typeof i.imageSrcSet=="string"&&typeof i.imageSizes=="string":typeof i.rel=="string"&&typeof i.href=="string"}async function nS(i,l,u){let s=await Promise.all(i.map(async o=>{let d=l.routes[o.route.id];if(d){let f=await tS(d,u);return f.links?f.links():[]}return[]}));return rS(s.flat(1).filter(aS).filter(o=>o.rel==="stylesheet"||o.rel==="preload").map(o=>o.rel==="stylesheet"?{...o,rel:"prefetch",as:"style"}:{...o,rel:"prefetch"}))}function Mh(i,l,u,s,o,d){let f=(m,g)=>u[g]?m.route.id!==u[g].route.id:!0,h=(m,g)=>u[g].pathname!==m.pathname||u[g].route.path?.endsWith("*")&&u[g].params["*"]!==m.params["*"];return d==="assets"?l.filter((m,g)=>f(m,g)||h(m,g)):d==="data"?l.filter((m,g)=>{let b=s.routes[m.route.id];if(!b||!b.hasLoader)return!1;if(f(m,g)||h(m,g))return!0;if(m.route.shouldRevalidate){let y=m.route.shouldRevalidate({currentUrl:new URL(o.pathname+o.search+o.hash,window.origin),currentParams:u[0]?.params||{},nextUrl:new URL(i,window.origin),nextParams:m.params,defaultShouldRevalidate:!0});if(typeof y=="boolean")return y}return!0}):[]}function iS(i,l,{includeHydrateFallback:u}={}){return lS(i.map(s=>{let o=l.routes[s.route.id];if(!o)return[];let d=[o.module];return o.clientActionModule&&(d=d.concat(o.clientActionModule)),o.clientLoaderModule&&(d=d.concat(o.clientLoaderModule)),u&&o.hydrateFallbackModule&&(d=d.concat(o.hydrateFallbackModule)),o.imports&&(d=d.concat(o.imports)),d}).flat(1))}function lS(i){return[...new Set(i)]}function oS(i){let l={},u=Object.keys(i).sort();for(let s of u)l[s]=i[s];return l}function rS(i,l){let u=new Set;return new Set(l),i.reduce((s,o)=>{let d=JSON.stringify(oS(o));return u.has(d)||(u.add(d),s.push({key:d,link:o})),s},[])}function Tm(){let i=E.useContext(si);return rc(i,"You must render this element inside a <DataRouterContext.Provider> element"),i}function sS(){let i=E.useContext(Jo);return rc(i,"You must render this element inside a <DataRouterStateContext.Provider> element"),i}var sc=E.createContext(void 0);sc.displayName="FrameworkContext";function Pm(){let i=E.useContext(sc);return rc(i,"You must render this element inside a <HydratedRouter> element"),i}function uS(i,l){let u=E.useContext(sc),[s,o]=E.useState(!1),[d,f]=E.useState(!1),{onFocus:h,onBlur:m,onMouseEnter:g,onMouseLeave:b,onTouchStart:y}=l,k=E.useRef(null);E.useEffect(()=>{if(i==="render"&&f(!0),i==="viewport"){let I=K=>{K.forEach(j=>{f(j.isIntersecting)})},N=new IntersectionObserver(I,{threshold:.5});return k.current&&N.observe(k.current),()=>{N.disconnect()}}},[i]),E.useEffect(()=>{if(s){let I=setTimeout(()=>{f(!0)},100);return()=>{clearTimeout(I)}}},[s]);let D=()=>{o(!0)},x=()=>{o(!1),f(!1)};return u?i!=="intent"?[d,k,{}]:[d,k,{onFocus:ll(h,D),onBlur:ll(m,x),onMouseEnter:ll(g,D),onMouseLeave:ll(b,x),onTouchStart:ll(y,D)}]:[!1,k,{}]}function ll(i,l){return u=>{i&&i(u),u.defaultPrevented||l(u)}}function cS({page:i,...l}){let{router:u}=Tm(),s=E.useMemo(()=>fm(u.routes,i,u.basename),[u.routes,i,u.basename]);return s?E.createElement(fS,{page:i,matches:s,...l}):null}function dS(i){let{manifest:l,routeModules:u}=Pm(),[s,o]=E.useState([]);return E.useEffect(()=>{let d=!1;return nS(i,l,u).then(f=>{d||o(f)}),()=>{d=!0}},[i,l,u]),s}function fS({page:i,matches:l,...u}){let s=Jt(),{future:o,manifest:d,routeModules:f}=Pm(),{basename:h}=Tm(),{loaderData:m,matches:g}=sS(),b=E.useMemo(()=>Mh(i,l,g,d,s,"data"),[i,l,g,d,s]),y=E.useMemo(()=>Mh(i,l,g,d,s,"assets"),[i,l,g,d,s]),k=E.useMemo(()=>{if(i===s.pathname+s.search+s.hash)return[];let I=new Set,N=!1;if(l.forEach(j=>{let q=d.routes[j.route.id];!q||!q.hasLoader||(!b.some(Q=>Q.route.id===j.route.id)&&j.route.id in m&&f[j.route.id]?.shouldRevalidate||q.hasClientLoader?N=!0:I.add(j.route.id))}),I.size===0)return[];let K=eS(i,h,o.unstable_trailingSlashAwareDataRequests,"data");return N&&I.size>0&&K.searchParams.set("_routes",l.filter(j=>I.has(j.route.id)).map(j=>j.route.id).join(",")),[K.pathname+K.search]},[h,o.unstable_trailingSlashAwareDataRequests,m,s,d,b,l,i,f]),D=E.useMemo(()=>iS(y,d),[y,d]),x=dS(y);return E.createElement(E.Fragment,null,k.map(I=>E.createElement("link",{key:I,rel:"prefetch",as:"fetch",href:I,...u})),D.map(I=>E.createElement("link",{key:I,rel:"modulepreload",href:I,...u})),x.map(({key:I,link:N})=>E.createElement("link",{key:I,nonce:u.nonce,...N,crossOrigin:N.crossOrigin??u.crossOrigin})))}function pS(...i){return l=>{i.forEach(u=>{typeof u=="function"?u(l):u!=null&&(u.current=l)})}}var hS=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{hS&&(window.__reactRouterVersion="7.13.2")}catch{}function mS({basename:i,children:l,unstable_useTransitions:u,window:s}){let o=E.useRef();o.current==null&&(o.current=Vy({window:s,v5Compat:!0}));let d=o.current,[f,h]=E.useState({action:d.action,location:d.location}),m=E.useCallback(g=>{u===!1?h(g):E.startTransition(()=>h(g))},[u]);return E.useLayoutEffect(()=>d.listen(m),[d,m]),E.createElement(qb,{basename:i,children:l,location:f.location,navigationType:f.action,navigator:d,unstable_useTransitions:u})}var zm=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,km=E.forwardRef(function({onClick:l,discover:u="render",prefetch:s="none",relative:o,reloadDocument:d,replace:f,unstable_mask:h,state:m,target:g,to:b,preventScrollReset:y,viewTransition:k,unstable_defaultShouldRevalidate:D,...x},I){let{basename:N,navigator:K,unstable_useTransitions:j}=E.useContext(Mt),q=typeof b=="string"&&zm.test(b),Q=gm(b,N);b=Q.to;let ee=Tb(b,{relative:o}),F=Jt(),V=null;if(h){let xe=Xo(h,[],F.unstable_mask?F.unstable_mask.pathname:"/",!0);N!=="/"&&(xe.pathname=xe.pathname==="/"?N:Xt([N,xe.pathname])),V=K.createHref(xe)}let[te,ne,me]=uS(s,x),De=bS(b,{replace:f,unstable_mask:h,state:m,target:g,preventScrollReset:y,relative:o,viewTransition:k,unstable_defaultShouldRevalidate:D,unstable_useTransitions:j});function Ae(xe){l&&l(xe),xe.defaultPrevented||De(xe)}let Se=!(Q.isExternal||d),ke=E.createElement("a",{...x,...me,href:(Se?V:void 0)||Q.absoluteURL||ee,onClick:Se?Ae:l,ref:pS(I,ne),target:g,"data-discover":!q&&u==="render"?"true":void 0});return te&&!q?E.createElement(E.Fragment,null,ke,E.createElement(cS,{page:ee})):ke});km.displayName="Link";var gS=E.forwardRef(function({"aria-current":l="page",caseSensitive:u=!1,className:s="",end:o=!1,style:d,to:f,viewTransition:h,children:m,...g},b){let y=ml(f,{relative:g.relative}),k=Jt(),D=E.useContext(Jo),{navigator:x,basename:I}=E.useContext(Mt),N=D!=null&&wS(y)&&h===!0,K=x.encodeLocation?x.encodeLocation(y).pathname:y.pathname,j=k.pathname,q=D&&D.navigation&&D.navigation.location?D.navigation.location.pathname:null;u||(j=j.toLowerCase(),q=q?q.toLowerCase():null,K=K.toLowerCase()),q&&I&&(q=ya(q,I)||q);const Q=K!=="/"&&K.endsWith("/")?K.length-1:K.length;let ee=j===K||!o&&j.startsWith(K)&&j.charAt(Q)==="/",F=q!=null&&(q===K||!o&&q.startsWith(K)&&q.charAt(K.length)==="/"),V={isActive:ee,isPending:F,isTransitioning:N},te=ee?l:void 0,ne;typeof s=="function"?ne=s(V):ne=[s,ee?"active":null,F?"pending":null,N?"transitioning":null].filter(Boolean).join(" ");let me=typeof d=="function"?d(V):d;return E.createElement(km,{...g,"aria-current":te,className:ne,ref:b,style:me,to:f,viewTransition:h},typeof m=="function"?m(V):m)});gS.displayName="NavLink";var vS=E.forwardRef(({discover:i="render",fetcherKey:l,navigate:u,reloadDocument:s,replace:o,state:d,method:f=Ho,action:h,onSubmit:m,relative:g,preventScrollReset:b,viewTransition:y,unstable_defaultShouldRevalidate:k,...D},x)=>{let{unstable_useTransitions:I}=E.useContext(Mt),N=AS(),K=ES(h,{relative:g}),j=f.toLowerCase()==="get"?"get":"post",q=typeof h=="string"&&zm.test(h),Q=ee=>{if(m&&m(ee),ee.defaultPrevented)return;ee.preventDefault();let F=ee.nativeEvent.submitter,V=F?.getAttribute("formmethod")||f,te=()=>N(F||ee.currentTarget,{fetcherKey:l,method:V,navigate:u,replace:o,state:d,relative:g,preventScrollReset:b,viewTransition:y,unstable_defaultShouldRevalidate:k});I&&u!==!1?E.startTransition(()=>te()):te()};return E.createElement("form",{ref:x,method:j,action:K,onSubmit:s?m:Q,...D,"data-discover":!q&&i==="render"?"true":void 0})});vS.displayName="Form";function yS(i){return`${i} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Lm(i){let l=E.useContext(si);return je(l,yS(i)),l}function bS(i,{target:l,replace:u,unstable_mask:s,state:o,preventScrollReset:d,relative:f,viewTransition:h,unstable_defaultShouldRevalidate:m,unstable_useTransitions:g}={}){let b=ic(),y=Jt(),k=ml(i,{relative:f});return E.useCallback(D=>{if($b(D,l)){D.preventDefault();let x=u!==void 0?u:fl(y)===fl(k),I=()=>b(i,{replace:x,unstable_mask:s,state:o,preventScrollReset:d,relative:f,viewTransition:h,unstable_defaultShouldRevalidate:m});g?E.startTransition(()=>I()):I()}},[y,b,k,u,s,o,l,i,d,f,h,m,g])}function QT(i){Ht(typeof URLSearchParams<"u","You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let l=E.useRef($u(i)),u=E.useRef(!1),s=Jt(),o=E.useMemo(()=>Zb(s.search,u.current?null:l.current),[s.search]),d=ic(),f=E.useCallback((h,m)=>{const g=$u(typeof h=="function"?h(new URLSearchParams(o)):h);u.current=!0,d("?"+g,m)},[d,o]);return[o,f]}var SS=0,CS=()=>`__${String(++SS)}__`;function AS(){let{router:i}=Lm("useSubmit"),{basename:l}=E.useContext(Mt),u=Bb(),s=i.fetch,o=i.navigate;return E.useCallback(async(d,f={})=>{let{action:h,method:m,encType:g,formData:b,body:y}=Jb(d,l);if(f.navigate===!1){let k=f.fetcherKey||CS();await s(k,u,f.action||h,{unstable_defaultShouldRevalidate:f.unstable_defaultShouldRevalidate,preventScrollReset:f.preventScrollReset,formData:b,body:y,formMethod:f.method||m,formEncType:f.encType||g,flushSync:f.flushSync})}else await o(f.action||h,{unstable_defaultShouldRevalidate:f.unstable_defaultShouldRevalidate,preventScrollReset:f.preventScrollReset,formData:b,body:y,formMethod:f.method||m,formEncType:f.encType||g,replace:f.replace,state:f.state,fromRouteId:u,flushSync:f.flushSync,viewTransition:f.viewTransition})},[s,o,l,u])}function ES(i,{relative:l}={}){let{basename:u}=E.useContext(Mt),s=E.useContext(Kt);je(s,"useFormAction must be used inside a RouteContext");let[o]=s.matches.slice(-1),d={...ml(i||".",{relative:l})},f=Jt();if(i==null){d.search=f.search;let h=new URLSearchParams(d.search),m=h.getAll("index");if(m.some(b=>b==="")){h.delete("index"),m.filter(y=>y).forEach(y=>h.append("index",y));let b=h.toString();d.search=b?`?${b}`:""}}return(!i||i===".")&&o.route.index&&(d.search=d.search?d.search.replace(/^\?/,"?index&"):"?index"),u!=="/"&&(d.pathname=d.pathname==="/"?u:Xt([u,d.pathname])),fl(d)}function wS(i,{relative:l}={}){let u=E.useContext(ym);je(u!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:s}=Lm("useViewTransitionState"),o=ml(i,{relative:l});if(!u.isTransitioning)return!1;let d=ya(u.currentLocation.pathname,s)||u.currentLocation.pathname,f=ya(u.nextLocation.pathname,s)||u.nextLocation.pathname;return Fo(o.pathname,f)!=null||Fo(o.pathname,d)!=null}var TS=dm(),Nu={};const ie=i=>typeof i=="string",ol=()=>{let i,l;const u=new Promise((s,o)=>{i=s,l=o});return u.resolve=i,u.reject=l,u},Oh=i=>i==null?"":""+i,PS=(i,l,u)=>{i.forEach(s=>{l[s]&&(u[s]=l[s])})},zS=/###/g,Dh=i=>i&&i.indexOf("###")>-1?i.replace(zS,"."):i,Rh=i=>!i||ie(i),sl=(i,l,u)=>{const s=ie(l)?l.split("."):l;let o=0;for(;o<s.length-1;){if(Rh(i))return{};const d=Dh(s[o]);!i[d]&&u&&(i[d]=new u),Object.prototype.hasOwnProperty.call(i,d)?i=i[d]:i={},++o}return Rh(i)?{}:{obj:i,k:Dh(s[o])}},_h=(i,l,u)=>{const{obj:s,k:o}=sl(i,l,Object);if(s!==void 0||l.length===1){s[o]=u;return}let d=l[l.length-1],f=l.slice(0,l.length-1),h=sl(i,f,Object);for(;h.obj===void 0&&f.length;)d=`${f[f.length-1]}.${d}`,f=f.slice(0,f.length-1),h=sl(i,f,Object),h?.obj&&typeof h.obj[`${h.k}.${d}`]<"u"&&(h.obj=void 0);h.obj[`${h.k}.${d}`]=u},kS=(i,l,u,s)=>{const{obj:o,k:d}=sl(i,l,Object);o[d]=o[d]||[],o[d].push(u)},Yo=(i,l)=>{const{obj:u,k:s}=sl(i,l);if(u&&Object.prototype.hasOwnProperty.call(u,s))return u[s]},LS=(i,l,u)=>{const s=Yo(i,u);return s!==void 0?s:Yo(l,u)},Mm=(i,l,u)=>{for(const s in l)s!=="__proto__"&&s!=="constructor"&&(s in i?ie(i[s])||i[s]instanceof String||ie(l[s])||l[s]instanceof String?u&&(i[s]=l[s]):Mm(i[s],l[s],u):i[s]=l[s]);return i},mn=i=>i.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var MS={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"};const OS=i=>ie(i)?i.replace(/[&<>"'\/]/g,l=>MS[l]):i;class DS{constructor(l){this.capacity=l,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(l){const u=this.regExpMap.get(l);if(u!==void 0)return u;const s=new RegExp(l);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(l,s),this.regExpQueue.push(l),s}}const RS=[" ",",","?","!",";"],_S=new DS(20),xS=(i,l,u)=>{l=l||"",u=u||"";const s=RS.filter(f=>l.indexOf(f)<0&&u.indexOf(f)<0);if(s.length===0)return!0;const o=_S.getRegExp(`(${s.map(f=>f==="?"?"\\?":f).join("|")})`);let d=!o.test(i);if(!d){const f=i.indexOf(u);f>0&&!o.test(i.substring(0,f))&&(d=!0)}return d},Zu=(i,l,u=".")=>{if(!i)return;if(i[l])return Object.prototype.hasOwnProperty.call(i,l)?i[l]:void 0;const s=l.split(u);let o=i;for(let d=0;d<s.length;){if(!o||typeof o!="object")return;let f,h="";for(let m=d;m<s.length;++m)if(m!==d&&(h+=u),h+=s[m],f=o[h],f!==void 0){if(["string","number","boolean"].indexOf(typeof f)>-1&&m<s.length-1)continue;d+=m-d+1;break}o=f}return o},pl=i=>i?.replace(/_/g,"-"),NS={type:"logger",log(i){this.output("log",i)},warn(i){this.output("warn",i)},error(i){this.output("error",i)},output(i,l){console?.[i]?.apply?.(console,l)}};class Wo{constructor(l,u={}){this.init(l,u)}init(l,u={}){this.prefix=u.prefix||"i18next:",this.logger=l||NS,this.options=u,this.debug=u.debug}log(...l){return this.forward(l,"log","",!0)}warn(...l){return this.forward(l,"warn","",!0)}error(...l){return this.forward(l,"error","")}deprecate(...l){return this.forward(l,"warn","WARNING DEPRECATED: ",!0)}forward(l,u,s,o){return o&&!this.debug?null:(ie(l[0])&&(l[0]=`${s}${this.prefix} ${l[0]}`),this.logger[u](l))}create(l){return new Wo(this.logger,{prefix:`${this.prefix}:${l}:`,...this.options})}clone(l){return l=l||this.options,l.prefix=l.prefix||this.prefix,new Wo(this.logger,l)}}var Qt=new Wo;class tr{constructor(){this.observers={}}on(l,u){return l.split(" ").forEach(s=>{this.observers[s]||(this.observers[s]=new Map);const o=this.observers[s].get(u)||0;this.observers[s].set(u,o+1)}),this}off(l,u){if(this.observers[l]){if(!u){delete this.observers[l];return}this.observers[l].delete(u)}}emit(l,...u){this.observers[l]&&Array.from(this.observers[l].entries()).forEach(([o,d])=>{for(let f=0;f<d;f++)o(...u)}),this.observers["*"]&&Array.from(this.observers["*"].entries()).forEach(([o,d])=>{for(let f=0;f<d;f++)o.apply(o,[l,...u])})}}class xh extends tr{constructor(l,u={ns:["translation"],defaultNS:"translation"}){super(),this.data=l||{},this.options=u,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(l){this.options.ns.indexOf(l)<0&&this.options.ns.push(l)}removeNamespaces(l){const u=this.options.ns.indexOf(l);u>-1&&this.options.ns.splice(u,1)}getResource(l,u,s,o={}){const d=o.keySeparator!==void 0?o.keySeparator:this.options.keySeparator,f=o.ignoreJSONStructure!==void 0?o.ignoreJSONStructure:this.options.ignoreJSONStructure;let h;l.indexOf(".")>-1?h=l.split("."):(h=[l,u],s&&(Array.isArray(s)?h.push(...s):ie(s)&&d?h.push(...s.split(d)):h.push(s)));const m=Yo(this.data,h);return!m&&!u&&!s&&l.indexOf(".")>-1&&(l=h[0],u=h[1],s=h.slice(2).join(".")),m||!f||!ie(s)?m:Zu(this.data?.[l]?.[u],s,d)}addResource(l,u,s,o,d={silent:!1}){const f=d.keySeparator!==void 0?d.keySeparator:this.options.keySeparator;let h=[l,u];s&&(h=h.concat(f?s.split(f):s)),l.indexOf(".")>-1&&(h=l.split("."),o=u,u=h[1]),this.addNamespaces(u),_h(this.data,h,o),d.silent||this.emit("added",l,u,s,o)}addResources(l,u,s,o={silent:!1}){for(const d in s)(ie(s[d])||Array.isArray(s[d]))&&this.addResource(l,u,d,s[d],{silent:!0});o.silent||this.emit("added",l,u,s)}addResourceBundle(l,u,s,o,d,f={silent:!1,skipCopy:!1}){let h=[l,u];l.indexOf(".")>-1&&(h=l.split("."),o=s,s=u,u=h[1]),this.addNamespaces(u);let m=Yo(this.data,h)||{};f.skipCopy||(s=JSON.parse(JSON.stringify(s))),o?Mm(m,s,d):m={...m,...s},_h(this.data,h,m),f.silent||this.emit("added",l,u,s)}removeResourceBundle(l,u){this.hasResourceBundle(l,u)&&delete this.data[l][u],this.removeNamespaces(u),this.emit("removed",l,u)}hasResourceBundle(l,u){return this.getResource(l,u)!==void 0}getResourceBundle(l,u){return u||(u=this.options.defaultNS),this.getResource(l,u)}getDataByLanguage(l){return this.data[l]}hasLanguageSomeTranslations(l){const u=this.getDataByLanguage(l);return!!(u&&Object.keys(u)||[]).find(o=>u[o]&&Object.keys(u[o]).length>0)}toJSON(){return this.data}}var Om={processors:{},addPostProcessor(i){this.processors[i.name]=i},handle(i,l,u,s,o){return i.forEach(d=>{l=this.processors[d]?.process(l,u,s,o)??l}),l}};const Dm=Symbol("i18next/PATH_KEY");function US(){const i=[],l=Object.create(null);let u;return l.get=(s,o)=>(u?.revoke?.(),o===Dm?i:(i.push(o),u=Proxy.revocable(s,l),u.proxy)),Proxy.revocable(Object.create(null),l).proxy}function oi(i,l){const{[Dm]:u}=i(US()),s=l?.keySeparator??".",o=l?.nsSeparator??":";if(u.length>1&&o){const d=l?.ns,f=Array.isArray(d)?d:null;if(f&&f.length>1&&f.slice(1).includes(u[0]))return`${u[0]}${o}${u.slice(1).join(s)}`}return u.join(s)}const Nh={},Uu=i=>!ie(i)&&typeof i!="boolean"&&typeof i!="number";class $o extends tr{constructor(l,u={}){super(),PS(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],l,this),this.options=u,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=Qt.create("translator")}changeLanguage(l){l&&(this.language=l)}exists(l,u={interpolation:{}}){const s={...u};if(l==null)return!1;const o=this.resolve(l,s);if(o?.res===void 0)return!1;const d=Uu(o.res);return!(s.returnObjects===!1&&d)}extractFromKey(l,u){let s=u.nsSeparator!==void 0?u.nsSeparator:this.options.nsSeparator;s===void 0&&(s=":");const o=u.keySeparator!==void 0?u.keySeparator:this.options.keySeparator;let d=u.ns||this.options.defaultNS||[];const f=s&&l.indexOf(s)>-1,h=!this.options.userDefinedKeySeparator&&!u.keySeparator&&!this.options.userDefinedNsSeparator&&!u.nsSeparator&&!xS(l,s,o);if(f&&!h){const m=l.match(this.interpolator.nestingRegexp);if(m&&m.length>0)return{key:l,namespaces:ie(d)?[d]:d};const g=l.split(s);(s!==o||s===o&&this.options.ns.indexOf(g[0])>-1)&&(d=g.shift()),l=g.join(o)}return{key:l,namespaces:ie(d)?[d]:d}}translate(l,u,s){let o=typeof u=="object"?{...u}:u;if(typeof o!="object"&&this.options.overloadTranslationOptionHandler&&(o=this.options.overloadTranslationOptionHandler(arguments)),typeof o=="object"&&(o={...o}),o||(o={}),l==null)return"";typeof l=="function"&&(l=oi(l,{...this.options,...o})),Array.isArray(l)||(l=[String(l)]),l=l.map(Se=>typeof Se=="function"?oi(Se,{...this.options,...o}):String(Se));const d=o.returnDetails!==void 0?o.returnDetails:this.options.returnDetails,f=o.keySeparator!==void 0?o.keySeparator:this.options.keySeparator,{key:h,namespaces:m}=this.extractFromKey(l[l.length-1],o),g=m[m.length-1];let b=o.nsSeparator!==void 0?o.nsSeparator:this.options.nsSeparator;b===void 0&&(b=":");const y=o.lng||this.language,k=o.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(y?.toLowerCase()==="cimode")return k?d?{res:`${g}${b}${h}`,usedKey:h,exactUsedKey:h,usedLng:y,usedNS:g,usedParams:this.getUsedParamsDetails(o)}:`${g}${b}${h}`:d?{res:h,usedKey:h,exactUsedKey:h,usedLng:y,usedNS:g,usedParams:this.getUsedParamsDetails(o)}:h;const D=this.resolve(l,o);let x=D?.res;const I=D?.usedKey||h,N=D?.exactUsedKey||h,K=["[object Number]","[object Function]","[object RegExp]"],j=o.joinArrays!==void 0?o.joinArrays:this.options.joinArrays,q=!this.i18nFormat||this.i18nFormat.handleAsObject,Q=o.count!==void 0&&!ie(o.count),ee=$o.hasDefaultValue(o),F=Q?this.pluralResolver.getSuffix(y,o.count,o):"",V=o.ordinal&&Q?this.pluralResolver.getSuffix(y,o.count,{ordinal:!1}):"",te=Q&&!o.ordinal&&o.count===0,ne=te&&o[`defaultValue${this.options.pluralSeparator}zero`]||o[`defaultValue${F}`]||o[`defaultValue${V}`]||o.defaultValue;let me=x;q&&!x&&ee&&(me=ne);const De=Uu(me),Ae=Object.prototype.toString.apply(me);if(q&&me&&De&&K.indexOf(Ae)<0&&!(ie(j)&&Array.isArray(me))){if(!o.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const Se=this.options.returnedObjectHandler?this.options.returnedObjectHandler(I,me,{...o,ns:m}):`key '${h} (${this.language})' returned an object instead of string.`;return d?(D.res=Se,D.usedParams=this.getUsedParamsDetails(o),D):Se}if(f){const Se=Array.isArray(me),ke=Se?[]:{},xe=Se?N:I;for(const M in me)if(Object.prototype.hasOwnProperty.call(me,M)){const H=`${xe}${f}${M}`;ee&&!x?ke[M]=this.translate(H,{...o,defaultValue:Uu(ne)?ne[M]:void 0,joinArrays:!1,ns:m}):ke[M]=this.translate(H,{...o,joinArrays:!1,ns:m}),ke[M]===H&&(ke[M]=me[M])}x=ke}}else if(q&&ie(j)&&Array.isArray(x))x=x.join(j),x&&(x=this.extendTranslation(x,l,o,s));else{let Se=!1,ke=!1;!this.isValidLookup(x)&&ee&&(Se=!0,x=ne),this.isValidLookup(x)||(ke=!0,x=h);const M=(o.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&ke?void 0:x,H=ee&&ne!==x&&this.options.updateMissing;if(ke||Se||H){if(this.logger.log(H?"updateKey":"missingKey",y,g,h,H?ne:x),f){const C=this.resolve(h,{...o,keySeparator:!1});C&&C.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let J=[];const ge=this.languageUtils.getFallbackCodes(this.options.fallbackLng,o.lng||this.language);if(this.options.saveMissingTo==="fallback"&&ge&&ge[0])for(let C=0;C<ge.length;C++)J.push(ge[C]);else this.options.saveMissingTo==="all"?J=this.languageUtils.toResolveHierarchy(o.lng||this.language):J.push(o.lng||this.language);const Ee=(C,R,G)=>{const W=ee&&G!==x?G:M;this.options.missingKeyHandler?this.options.missingKeyHandler(C,g,R,W,H,o):this.backendConnector?.saveMissing&&this.backendConnector.saveMissing(C,g,R,W,H,o),this.emit("missingKey",C,g,R,x)};this.options.saveMissing&&(this.options.saveMissingPlurals&&Q?J.forEach(C=>{const R=this.pluralResolver.getSuffixes(C,o);te&&o[`defaultValue${this.options.pluralSeparator}zero`]&&R.indexOf(`${this.options.pluralSeparator}zero`)<0&&R.push(`${this.options.pluralSeparator}zero`),R.forEach(G=>{Ee([C],h+G,o[`defaultValue${G}`]||ne)})}):Ee(J,h,ne))}x=this.extendTranslation(x,l,o,D,s),ke&&x===h&&this.options.appendNamespaceToMissingKey&&(x=`${g}${b}${h}`),(ke||Se)&&this.options.parseMissingKeyHandler&&(x=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${g}${b}${h}`:h,Se?x:void 0,o))}return d?(D.res=x,D.usedParams=this.getUsedParamsDetails(o),D):x}extendTranslation(l,u,s,o,d){if(this.i18nFormat?.parse)l=this.i18nFormat.parse(l,{...this.options.interpolation.defaultVariables,...s},s.lng||this.language||o.usedLng,o.usedNS,o.usedKey,{resolved:o});else if(!s.skipInterpolation){s.interpolation&&this.interpolator.init({...s,interpolation:{...this.options.interpolation,...s.interpolation}});const m=ie(l)&&(s?.interpolation?.skipOnVariables!==void 0?s.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let g;if(m){const y=l.match(this.interpolator.nestingRegexp);g=y&&y.length}let b=s.replace&&!ie(s.replace)?s.replace:s;if(this.options.interpolation.defaultVariables&&(b={...this.options.interpolation.defaultVariables,...b}),l=this.interpolator.interpolate(l,b,s.lng||this.language||o.usedLng,s),m){const y=l.match(this.interpolator.nestingRegexp),k=y&&y.length;g<k&&(s.nest=!1)}!s.lng&&o&&o.res&&(s.lng=this.language||o.usedLng),s.nest!==!1&&(l=this.interpolator.nest(l,(...y)=>d?.[0]===y[0]&&!s.context?(this.logger.warn(`It seems you are nesting recursively key: ${y[0]} in key: ${u[0]}`),null):this.translate(...y,u),s)),s.interpolation&&this.interpolator.reset()}const f=s.postProcess||this.options.postProcess,h=ie(f)?[f]:f;return l!=null&&h?.length&&s.applyPostProcessor!==!1&&(l=Om.handle(h,l,u,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...o,usedParams:this.getUsedParamsDetails(s)},...s}:s,this)),l}resolve(l,u={}){let s,o,d,f,h;return ie(l)&&(l=[l]),Array.isArray(l)&&(l=l.map(m=>typeof m=="function"?oi(m,{...this.options,...u}):m)),l.forEach(m=>{if(this.isValidLookup(s))return;const g=this.extractFromKey(m,u),b=g.key;o=b;let y=g.namespaces;this.options.fallbackNS&&(y=y.concat(this.options.fallbackNS));const k=u.count!==void 0&&!ie(u.count),D=k&&!u.ordinal&&u.count===0,x=u.context!==void 0&&(ie(u.context)||typeof u.context=="number")&&u.context!=="",I=u.lngs?u.lngs:this.languageUtils.toResolveHierarchy(u.lng||this.language,u.fallbackLng);y.forEach(N=>{this.isValidLookup(s)||(h=N,!Nh[`${I[0]}-${N}`]&&this.utils?.hasLoadedNamespace&&!this.utils?.hasLoadedNamespace(h)&&(Nh[`${I[0]}-${N}`]=!0,this.logger.warn(`key "${o}" for languages "${I.join(", ")}" won't get resolved as namespace "${h}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),I.forEach(K=>{if(this.isValidLookup(s))return;f=K;const j=[b];if(this.i18nFormat?.addLookupKeys)this.i18nFormat.addLookupKeys(j,b,K,N,u);else{let Q;k&&(Q=this.pluralResolver.getSuffix(K,u.count,u));const ee=`${this.options.pluralSeparator}zero`,F=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(k&&(u.ordinal&&Q.indexOf(F)===0&&j.push(b+Q.replace(F,this.options.pluralSeparator)),j.push(b+Q),D&&j.push(b+ee)),x){const V=`${b}${this.options.contextSeparator||"_"}${u.context}`;j.push(V),k&&(u.ordinal&&Q.indexOf(F)===0&&j.push(V+Q.replace(F,this.options.pluralSeparator)),j.push(V+Q),D&&j.push(V+ee))}}let q;for(;q=j.pop();)this.isValidLookup(s)||(d=q,s=this.getResource(K,N,q,u))}))})}),{res:s,usedKey:o,exactUsedKey:d,usedLng:f,usedNS:h}}isValidLookup(l){return l!==void 0&&!(!this.options.returnNull&&l===null)&&!(!this.options.returnEmptyString&&l==="")}getResource(l,u,s,o={}){return this.i18nFormat?.getResource?this.i18nFormat.getResource(l,u,s,o):this.resourceStore.getResource(l,u,s,o)}getUsedParamsDetails(l={}){const u=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],s=l.replace&&!ie(l.replace);let o=s?l.replace:l;if(s&&typeof l.count<"u"&&(o.count=l.count),this.options.interpolation.defaultVariables&&(o={...this.options.interpolation.defaultVariables,...o}),!s){o={...o};for(const d of u)delete o[d]}return o}static hasDefaultValue(l){const u="defaultValue";for(const s in l)if(Object.prototype.hasOwnProperty.call(l,s)&&u===s.substring(0,u.length)&&l[s]!==void 0)return!0;return!1}}class Uh{constructor(l){this.options=l,this.supportedLngs=this.options.supportedLngs||!1,this.logger=Qt.create("languageUtils")}getScriptPartFromCode(l){if(l=pl(l),!l||l.indexOf("-")<0)return null;const u=l.split("-");return u.length===2||(u.pop(),u[u.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(u.join("-"))}getLanguagePartFromCode(l){if(l=pl(l),!l||l.indexOf("-")<0)return l;const u=l.split("-");return this.formatLanguageCode(u[0])}formatLanguageCode(l){if(ie(l)&&l.indexOf("-")>-1){let u;try{u=Intl.getCanonicalLocales(l)[0]}catch{}return u&&this.options.lowerCaseLng&&(u=u.toLowerCase()),u||(this.options.lowerCaseLng?l.toLowerCase():l)}return this.options.cleanCode||this.options.lowerCaseLng?l.toLowerCase():l}isSupportedCode(l){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(l=this.getLanguagePartFromCode(l)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(l)>-1}getBestMatchFromCodes(l){if(!l)return null;let u;return l.forEach(s=>{if(u)return;const o=this.formatLanguageCode(s);(!this.options.supportedLngs||this.isSupportedCode(o))&&(u=o)}),!u&&this.options.supportedLngs&&l.forEach(s=>{if(u)return;const o=this.getScriptPartFromCode(s);if(this.isSupportedCode(o))return u=o;const d=this.getLanguagePartFromCode(s);if(this.isSupportedCode(d))return u=d;u=this.options.supportedLngs.find(f=>{if(f===d)return f;if(!(f.indexOf("-")<0&&d.indexOf("-")<0)&&(f.indexOf("-")>0&&d.indexOf("-")<0&&f.substring(0,f.indexOf("-"))===d||f.indexOf(d)===0&&d.length>1))return f})}),u||(u=this.getFallbackCodes(this.options.fallbackLng)[0]),u}getFallbackCodes(l,u){if(!l)return[];if(typeof l=="function"&&(l=l(u)),ie(l)&&(l=[l]),Array.isArray(l))return l;if(!u)return l.default||[];let s=l[u];return s||(s=l[this.getScriptPartFromCode(u)]),s||(s=l[this.formatLanguageCode(u)]),s||(s=l[this.getLanguagePartFromCode(u)]),s||(s=l.default),s||[]}toResolveHierarchy(l,u){const s=this.getFallbackCodes((u===!1?[]:u)||this.options.fallbackLng||[],l),o=[],d=f=>{f&&(this.isSupportedCode(f)?o.push(f):this.logger.warn(`rejecting language code not found in supportedLngs: ${f}`))};return ie(l)&&(l.indexOf("-")>-1||l.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&d(this.formatLanguageCode(l)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&d(this.getScriptPartFromCode(l)),this.options.load!=="currentOnly"&&d(this.getLanguagePartFromCode(l))):ie(l)&&d(this.formatLanguageCode(l)),s.forEach(f=>{o.indexOf(f)<0&&d(this.formatLanguageCode(f))}),o}}const Bh={zero:0,one:1,two:2,few:3,many:4,other:5},Ih={select:i=>i===1?"one":"other",resolvedOptions:()=>({pluralCategories:["one","other"]})};class BS{constructor(l,u={}){this.languageUtils=l,this.options=u,this.logger=Qt.create("pluralResolver"),this.pluralRulesCache={}}clearCache(){this.pluralRulesCache={}}getRule(l,u={}){const s=pl(l==="dev"?"en":l),o=u.ordinal?"ordinal":"cardinal",d=JSON.stringify({cleanedCode:s,type:o});if(d in this.pluralRulesCache)return this.pluralRulesCache[d];let f;try{f=new Intl.PluralRules(s,{type:o})}catch{if(typeof Intl>"u")return this.logger.error("No Intl support, please use an Intl polyfill!"),Ih;if(!l.match(/-|_/))return Ih;const m=this.languageUtils.getLanguagePartFromCode(l);f=this.getRule(m,u)}return this.pluralRulesCache[d]=f,f}needsPlural(l,u={}){let s=this.getRule(l,u);return s||(s=this.getRule("dev",u)),s?.resolvedOptions().pluralCategories.length>1}getPluralFormsOfKey(l,u,s={}){return this.getSuffixes(l,s).map(o=>`${u}${o}`)}getSuffixes(l,u={}){let s=this.getRule(l,u);return s||(s=this.getRule("dev",u)),s?s.resolvedOptions().pluralCategories.sort((o,d)=>Bh[o]-Bh[d]).map(o=>`${this.options.prepend}${u.ordinal?`ordinal${this.options.prepend}`:""}${o}`):[]}getSuffix(l,u,s={}){const o=this.getRule(l,s);return o?`${this.options.prepend}${s.ordinal?`ordinal${this.options.prepend}`:""}${o.select(u)}`:(this.logger.warn(`no plural rule found for: ${l}`),this.getSuffix("dev",u,s))}}const jh=(i,l,u,s=".",o=!0)=>{let d=LS(i,l,u);return!d&&o&&ie(u)&&(d=Zu(i,u,s),d===void 0&&(d=Zu(l,u,s))),d},Bu=i=>i.replace(/\$/g,"$$$$");class Hh{constructor(l={}){this.logger=Qt.create("interpolator"),this.options=l,this.format=l?.interpolation?.format||(u=>u),this.init(l)}init(l={}){l.interpolation||(l.interpolation={escapeValue:!0});const{escape:u,escapeValue:s,useRawValueToEscape:o,prefix:d,prefixEscaped:f,suffix:h,suffixEscaped:m,formatSeparator:g,unescapeSuffix:b,unescapePrefix:y,nestingPrefix:k,nestingPrefixEscaped:D,nestingSuffix:x,nestingSuffixEscaped:I,nestingOptionsSeparator:N,maxReplaces:K,alwaysFormat:j}=l.interpolation;this.escape=u!==void 0?u:OS,this.escapeValue=s!==void 0?s:!0,this.useRawValueToEscape=o!==void 0?o:!1,this.prefix=d?mn(d):f||"{{",this.suffix=h?mn(h):m||"}}",this.formatSeparator=g||",",this.unescapePrefix=b?"":y||"-",this.unescapeSuffix=this.unescapePrefix?"":b||"",this.nestingPrefix=k?mn(k):D||mn("$t("),this.nestingSuffix=x?mn(x):I||mn(")"),this.nestingOptionsSeparator=N||",",this.maxReplaces=K||1e3,this.alwaysFormat=j!==void 0?j:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const l=(u,s)=>u?.source===s?(u.lastIndex=0,u):new RegExp(s,"g");this.regexp=l(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=l(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=l(this.nestingRegexp,`${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`)}interpolate(l,u,s,o){let d,f,h;const m=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},g=D=>{if(D.indexOf(this.formatSeparator)<0){const K=jh(u,m,D,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(K,void 0,s,{...o,...u,interpolationkey:D}):K}const x=D.split(this.formatSeparator),I=x.shift().trim(),N=x.join(this.formatSeparator).trim();return this.format(jh(u,m,I,this.options.keySeparator,this.options.ignoreJSONStructure),N,s,{...o,...u,interpolationkey:I})};this.resetRegExp();const b=o?.missingInterpolationHandler||this.options.missingInterpolationHandler,y=o?.interpolation?.skipOnVariables!==void 0?o.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:D=>Bu(D)},{regex:this.regexp,safeValue:D=>this.escapeValue?Bu(this.escape(D)):Bu(D)}].forEach(D=>{for(h=0;d=D.regex.exec(l);){const x=d[1].trim();if(f=g(x),f===void 0)if(typeof b=="function"){const N=b(l,d,o);f=ie(N)?N:""}else if(o&&Object.prototype.hasOwnProperty.call(o,x))f="";else if(y){f=d[0];continue}else this.logger.warn(`missed to pass in variable ${x} for interpolating ${l}`),f="";else!ie(f)&&!this.useRawValueToEscape&&(f=Oh(f));const I=D.safeValue(f);if(l=l.replace(d[0],I),y?(D.regex.lastIndex+=f.length,D.regex.lastIndex-=d[0].length):D.regex.lastIndex=0,h++,h>=this.maxReplaces)break}}),l}nest(l,u,s={}){let o,d,f;const h=(m,g)=>{const b=this.nestingOptionsSeparator;if(m.indexOf(b)<0)return m;const y=m.split(new RegExp(`${mn(b)}[ ]*{`));let k=`{${y[1]}`;m=y[0],k=this.interpolate(k,f);const D=k.match(/'/g),x=k.match(/"/g);((D?.length??0)%2===0&&!x||(x?.length??0)%2!==0)&&(k=k.replace(/'/g,'"'));try{f=JSON.parse(k),g&&(f={...g,...f})}catch(I){return this.logger.warn(`failed parsing options string in nesting for key ${m}`,I),`${m}${b}${k}`}return f.defaultValue&&f.defaultValue.indexOf(this.prefix)>-1&&delete f.defaultValue,m};for(;o=this.nestingRegexp.exec(l);){let m=[];f={...s},f=f.replace&&!ie(f.replace)?f.replace:f,f.applyPostProcessor=!1,delete f.defaultValue;const g=/{.*}/.test(o[1])?o[1].lastIndexOf("}")+1:o[1].indexOf(this.formatSeparator);if(g!==-1&&(m=o[1].slice(g).split(this.formatSeparator).map(b=>b.trim()).filter(Boolean),o[1]=o[1].slice(0,g)),d=u(h.call(this,o[1].trim(),f),f),d&&o[0]===l&&!ie(d))return d;ie(d)||(d=Oh(d)),d||(this.logger.warn(`missed to resolve ${o[1]} for nesting ${l}`),d=""),m.length&&(d=m.reduce((b,y)=>this.format(b,y,s.lng,{...s,interpolationkey:o[1].trim()}),d.trim())),l=l.replace(o[0],d),this.regexp.lastIndex=0}return l}}const IS=i=>{let l=i.toLowerCase().trim();const u={};if(i.indexOf("(")>-1){const s=i.split("(");l=s[0].toLowerCase().trim();const o=s[1].substring(0,s[1].length-1);l==="currency"&&o.indexOf(":")<0?u.currency||(u.currency=o.trim()):l==="relativetime"&&o.indexOf(":")<0?u.range||(u.range=o.trim()):o.split(";").forEach(f=>{if(f){const[h,...m]=f.split(":"),g=m.join(":").trim().replace(/^'+|'+$/g,""),b=h.trim();u[b]||(u[b]=g),g==="false"&&(u[b]=!1),g==="true"&&(u[b]=!0),isNaN(g)||(u[b]=parseInt(g,10))}})}return{formatName:l,formatOptions:u}},Kh=i=>{const l={};return(u,s,o)=>{let d=o;o&&o.interpolationkey&&o.formatParams&&o.formatParams[o.interpolationkey]&&o[o.interpolationkey]&&(d={...d,[o.interpolationkey]:void 0});const f=s+JSON.stringify(d);let h=l[f];return h||(h=i(pl(s),o),l[f]=h),h(u)}},jS=i=>(l,u,s)=>i(pl(u),s)(l);class HS{constructor(l={}){this.logger=Qt.create("formatter"),this.options=l,this.init(l)}init(l,u={interpolation:{}}){this.formatSeparator=u.interpolation.formatSeparator||",";const s=u.cacheInBuiltFormats?Kh:jS;this.formats={number:s((o,d)=>{const f=new Intl.NumberFormat(o,{...d});return h=>f.format(h)}),currency:s((o,d)=>{const f=new Intl.NumberFormat(o,{...d,style:"currency"});return h=>f.format(h)}),datetime:s((o,d)=>{const f=new Intl.DateTimeFormat(o,{...d});return h=>f.format(h)}),relativetime:s((o,d)=>{const f=new Intl.RelativeTimeFormat(o,{...d});return h=>f.format(h,d.range||"day")}),list:s((o,d)=>{const f=new Intl.ListFormat(o,{...d});return h=>f.format(h)})}}add(l,u){this.formats[l.toLowerCase().trim()]=u}addCached(l,u){this.formats[l.toLowerCase().trim()]=Kh(u)}format(l,u,s,o={}){const d=u.split(this.formatSeparator);if(d.length>1&&d[0].indexOf("(")>1&&d[0].indexOf(")")<0&&d.find(h=>h.indexOf(")")>-1)){const h=d.findIndex(m=>m.indexOf(")")>-1);d[0]=[d[0],...d.splice(1,h)].join(this.formatSeparator)}return d.reduce((h,m)=>{const{formatName:g,formatOptions:b}=IS(m);if(this.formats[g]){let y=h;try{const k=o?.formatParams?.[o.interpolationkey]||{},D=k.locale||k.lng||o.locale||o.lng||s;y=this.formats[g](h,D,{...b,...o,...k})}catch(k){this.logger.warn(k)}return y}else this.logger.warn(`there was no format function for ${g}`);return h},l)}}const KS=(i,l)=>{i.pending[l]!==void 0&&(delete i.pending[l],i.pendingCount--)};class qS extends tr{constructor(l,u,s,o={}){super(),this.backend=l,this.store=u,this.services=s,this.languageUtils=s.languageUtils,this.options=o,this.logger=Qt.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=o.maxParallelReads||10,this.readingCalls=0,this.maxRetries=o.maxRetries>=0?o.maxRetries:5,this.retryTimeout=o.retryTimeout>=1?o.retryTimeout:350,this.state={},this.queue=[],this.backend?.init?.(s,o.backend,o)}queueLoad(l,u,s,o){const d={},f={},h={},m={};return l.forEach(g=>{let b=!0;u.forEach(y=>{const k=`${g}|${y}`;!s.reload&&this.store.hasResourceBundle(g,y)?this.state[k]=2:this.state[k]<0||(this.state[k]===1?f[k]===void 0&&(f[k]=!0):(this.state[k]=1,b=!1,f[k]===void 0&&(f[k]=!0),d[k]===void 0&&(d[k]=!0),m[y]===void 0&&(m[y]=!0)))}),b||(h[g]=!0)}),(Object.keys(d).length||Object.keys(f).length)&&this.queue.push({pending:f,pendingCount:Object.keys(f).length,loaded:{},errors:[],callback:o}),{toLoad:Object.keys(d),pending:Object.keys(f),toLoadLanguages:Object.keys(h),toLoadNamespaces:Object.keys(m)}}loaded(l,u,s){const o=l.split("|"),d=o[0],f=o[1];u&&this.emit("failedLoading",d,f,u),!u&&s&&this.store.addResourceBundle(d,f,s,void 0,void 0,{skipCopy:!0}),this.state[l]=u?-1:2,u&&s&&(this.state[l]=0);const h={};this.queue.forEach(m=>{kS(m.loaded,[d],f),KS(m,l),u&&m.errors.push(u),m.pendingCount===0&&!m.done&&(Object.keys(m.loaded).forEach(g=>{h[g]||(h[g]={});const b=m.loaded[g];b.length&&b.forEach(y=>{h[g][y]===void 0&&(h[g][y]=!0)})}),m.done=!0,m.errors.length?m.callback(m.errors):m.callback())}),this.emit("loaded",h),this.queue=this.queue.filter(m=>!m.done)}read(l,u,s,o=0,d=this.retryTimeout,f){if(!l.length)return f(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:l,ns:u,fcName:s,tried:o,wait:d,callback:f});return}this.readingCalls++;const h=(g,b)=>{if(this.readingCalls--,this.waitingReads.length>0){const y=this.waitingReads.shift();this.read(y.lng,y.ns,y.fcName,y.tried,y.wait,y.callback)}if(g&&b&&o<this.maxRetries){setTimeout(()=>{this.read.call(this,l,u,s,o+1,d*2,f)},d);return}f(g,b)},m=this.backend[s].bind(this.backend);if(m.length===2){try{const g=m(l,u);g&&typeof g.then=="function"?g.then(b=>h(null,b)).catch(h):h(null,g)}catch(g){h(g)}return}return m(l,u,h)}prepareLoading(l,u,s={},o){if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),o&&o();ie(l)&&(l=this.languageUtils.toResolveHierarchy(l)),ie(u)&&(u=[u]);const d=this.queueLoad(l,u,s,o);if(!d.toLoad.length)return d.pending.length||o(),null;d.toLoad.forEach(f=>{this.loadOne(f)})}load(l,u,s){this.prepareLoading(l,u,{},s)}reload(l,u,s){this.prepareLoading(l,u,{reload:!0},s)}loadOne(l,u=""){const s=l.split("|"),o=s[0],d=s[1];this.read(o,d,"read",void 0,void 0,(f,h)=>{f&&this.logger.warn(`${u}loading namespace ${d} for language ${o} failed`,f),!f&&h&&this.logger.log(`${u}loaded namespace ${d} for language ${o}`,h),this.loaded(l,f,h)})}saveMissing(l,u,s,o,d,f={},h=()=>{}){if(this.services?.utils?.hasLoadedNamespace&&!this.services?.utils?.hasLoadedNamespace(u)){this.logger.warn(`did not save key "${s}" as the namespace "${u}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(s==null||s==="")){if(this.backend?.create){const m={...f,isUpdate:d},g=this.backend.create.bind(this.backend);if(g.length<6)try{let b;g.length===5?b=g(l,u,s,o,m):b=g(l,u,s,o),b&&typeof b.then=="function"?b.then(y=>h(null,y)).catch(h):h(null,b)}catch(b){h(b)}else g(l,u,s,o,h,m)}!l||!l[0]||this.store.addResource(l[0],u,s,o)}}}const Iu=()=>({debug:!1,initAsync:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:i=>{let l={};if(typeof i[1]=="object"&&(l=i[1]),ie(i[1])&&(l.defaultValue=i[1]),ie(i[2])&&(l.tDescription=i[2]),typeof i[2]=="object"||typeof i[3]=="object"){const u=i[3]||i[2];Object.keys(u).forEach(s=>{l[s]=u[s]})}return l},interpolation:{escapeValue:!0,format:i=>i,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),qh=i=>(ie(i.ns)&&(i.ns=[i.ns]),ie(i.fallbackLng)&&(i.fallbackLng=[i.fallbackLng]),ie(i.fallbackNS)&&(i.fallbackNS=[i.fallbackNS]),i.supportedLngs?.indexOf?.("cimode")<0&&(i.supportedLngs=i.supportedLngs.concat(["cimode"])),typeof i.initImmediate=="boolean"&&(i.initAsync=i.initImmediate),i),Bo=()=>{},GS=i=>{Object.getOwnPropertyNames(Object.getPrototypeOf(i)).forEach(u=>{typeof i[u]=="function"&&(i[u]=i[u].bind(i))})},Rm="__i18next_supportNoticeShown",VS=()=>!!(typeof globalThis<"u"&&globalThis[Rm]||typeof process<"u"&&Nu&&Nu.I18NEXT_NO_SUPPORT_NOTICE||typeof process<"u"&&Nu),FS=()=>{typeof globalThis<"u"&&(globalThis[Rm]=!0)},YS=i=>!!(i?.modules?.backend?.name?.indexOf("Locize")>0||i?.modules?.backend?.constructor?.name?.indexOf("Locize")>0||i?.options?.backend?.backends&&i.options.backend.backends.some(l=>l?.name?.indexOf("Locize")>0||l?.constructor?.name?.indexOf("Locize")>0)||i?.options?.backend?.projectId||i?.options?.backend?.backendOptions&&i.options.backend.backendOptions.some(l=>l?.projectId));class ul extends tr{constructor(l={},u){if(super(),this.options=qh(l),this.services={},this.logger=Qt,this.modules={external:[]},GS(this),u&&!this.isInitialized&&!l.isClone){if(!this.options.initAsync)return this.init(l,u),this;setTimeout(()=>{this.init(l,u)},0)}}init(l={},u){this.isInitializing=!0,typeof l=="function"&&(u=l,l={}),l.defaultNS==null&&l.ns&&(ie(l.ns)?l.defaultNS=l.ns:l.ns.indexOf("translation")<0&&(l.defaultNS=l.ns[0]));const s=Iu();this.options={...s,...this.options,...qh(l)},this.options.interpolation={...s.interpolation,...this.options.interpolation},l.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=l.keySeparator),l.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=l.nsSeparator),typeof this.options.overloadTranslationOptionHandler!="function"&&(this.options.overloadTranslationOptionHandler=s.overloadTranslationOptionHandler),this.options.showSupportNotice!==!1&&!YS(this)&&!VS()&&(typeof console<"u"&&typeof console.info<"u"&&console.info("🌐 i18next is made possible by our own product, Locize — consider powering your project with managed localization (AI, CDN, integrations): https://locize.com 💙"),FS());const o=g=>g?typeof g=="function"?new g:g:null;if(!this.options.isClone){this.modules.logger?Qt.init(o(this.modules.logger),this.options):Qt.init(null,this.options);let g;this.modules.formatter?g=this.modules.formatter:g=HS;const b=new Uh(this.options);this.store=new xh(this.options.resources,this.options);const y=this.services;y.logger=Qt,y.resourceStore=this.store,y.languageUtils=b,y.pluralResolver=new BS(b,{prepend:this.options.pluralSeparator,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),this.options.interpolation.format&&this.options.interpolation.format!==s.interpolation.format&&this.logger.deprecate("init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting"),g&&(!this.options.interpolation.format||this.options.interpolation.format===s.interpolation.format)&&(y.formatter=o(g),y.formatter.init&&y.formatter.init(y,this.options),this.options.interpolation.format=y.formatter.format.bind(y.formatter)),y.interpolator=new Hh(this.options),y.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},y.backendConnector=new qS(o(this.modules.backend),y.resourceStore,y,this.options),y.backendConnector.on("*",(D,...x)=>{this.emit(D,...x)}),this.modules.languageDetector&&(y.languageDetector=o(this.modules.languageDetector),y.languageDetector.init&&y.languageDetector.init(y,this.options.detection,this.options)),this.modules.i18nFormat&&(y.i18nFormat=o(this.modules.i18nFormat),y.i18nFormat.init&&y.i18nFormat.init(this)),this.translator=new $o(this.services,this.options),this.translator.on("*",(D,...x)=>{this.emit(D,...x)}),this.modules.external.forEach(D=>{D.init&&D.init(this)})}if(this.format=this.options.interpolation.format,u||(u=Bo),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const g=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);g.length>0&&g[0]!=="dev"&&(this.options.lng=g[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(g=>{this[g]=(...b)=>this.store[g](...b)}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(g=>{this[g]=(...b)=>(this.store[g](...b),this)});const h=ol(),m=()=>{const g=(b,y)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),h.resolve(y),u(b,y)};if(this.languages&&!this.isInitialized)return g(null,this.t.bind(this));this.changeLanguage(this.options.lng,g)};return this.options.resources||!this.options.initAsync?m():setTimeout(m,0),h}loadResources(l,u=Bo){let s=u;const o=ie(l)?l:this.language;if(typeof l=="function"&&(s=l),!this.options.resources||this.options.partialBundledLanguages){if(o?.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return s();const d=[],f=h=>{if(!h||h==="cimode")return;this.services.languageUtils.toResolveHierarchy(h).forEach(g=>{g!=="cimode"&&d.indexOf(g)<0&&d.push(g)})};o?f(o):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(m=>f(m)),this.options.preload?.forEach?.(h=>f(h)),this.services.backendConnector.load(d,this.options.ns,h=>{!h&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),s(h)})}else s(null)}reloadResources(l,u,s){const o=ol();return typeof l=="function"&&(s=l,l=void 0),typeof u=="function"&&(s=u,u=void 0),l||(l=this.languages),u||(u=this.options.ns),s||(s=Bo),this.services.backendConnector.reload(l,u,d=>{o.resolve(),s(d)}),o}use(l){if(!l)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!l.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return l.type==="backend"&&(this.modules.backend=l),(l.type==="logger"||l.log&&l.warn&&l.error)&&(this.modules.logger=l),l.type==="languageDetector"&&(this.modules.languageDetector=l),l.type==="i18nFormat"&&(this.modules.i18nFormat=l),l.type==="postProcessor"&&Om.addPostProcessor(l),l.type==="formatter"&&(this.modules.formatter=l),l.type==="3rdParty"&&this.modules.external.push(l),this}setResolvedLanguage(l){if(!(!l||!this.languages)&&!(["cimode","dev"].indexOf(l)>-1)){for(let u=0;u<this.languages.length;u++){const s=this.languages[u];if(!(["cimode","dev"].indexOf(s)>-1)&&this.store.hasLanguageSomeTranslations(s)){this.resolvedLanguage=s;break}}!this.resolvedLanguage&&this.languages.indexOf(l)<0&&this.store.hasLanguageSomeTranslations(l)&&(this.resolvedLanguage=l,this.languages.unshift(l))}}changeLanguage(l,u){this.isLanguageChangingTo=l;const s=ol();this.emit("languageChanging",l);const o=h=>{this.language=h,this.languages=this.services.languageUtils.toResolveHierarchy(h),this.resolvedLanguage=void 0,this.setResolvedLanguage(h)},d=(h,m)=>{m?this.isLanguageChangingTo===l&&(o(m),this.translator.changeLanguage(m),this.isLanguageChangingTo=void 0,this.emit("languageChanged",m),this.logger.log("languageChanged",m)):this.isLanguageChangingTo=void 0,s.resolve((...g)=>this.t(...g)),u&&u(h,(...g)=>this.t(...g))},f=h=>{!l&&!h&&this.services.languageDetector&&(h=[]);const m=ie(h)?h:h&&h[0],g=this.store.hasLanguageSomeTranslations(m)?m:this.services.languageUtils.getBestMatchFromCodes(ie(h)?[h]:h);g&&(this.language||o(g),this.translator.language||this.translator.changeLanguage(g),this.services.languageDetector?.cacheUserLanguage?.(g)),this.loadResources(g,b=>{d(b,g)})};return!l&&this.services.languageDetector&&!this.services.languageDetector.async?f(this.services.languageDetector.detect()):!l&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(f):this.services.languageDetector.detect(f):f(l),s}getFixedT(l,u,s){const o=(d,f,...h)=>{let m;typeof f!="object"?m=this.options.overloadTranslationOptionHandler([d,f].concat(h)):m={...f},m.lng=m.lng||o.lng,m.lngs=m.lngs||o.lngs,m.ns=m.ns||o.ns,m.keyPrefix!==""&&(m.keyPrefix=m.keyPrefix||s||o.keyPrefix);const g={...this.options,...m};typeof m.keyPrefix=="function"&&(m.keyPrefix=oi(m.keyPrefix,g));const b=this.options.keySeparator||".";let y;return m.keyPrefix&&Array.isArray(d)?y=d.map(k=>(typeof k=="function"&&(k=oi(k,g)),`${m.keyPrefix}${b}${k}`)):(typeof d=="function"&&(d=oi(d,g)),y=m.keyPrefix?`${m.keyPrefix}${b}${d}`:d),this.t(y,m)};return ie(l)?o.lng=l:o.lngs=l,o.ns=u,o.keyPrefix=s,o}t(...l){return this.translator?.translate(...l)}exists(...l){return this.translator?.exists(...l)}setDefaultNamespace(l){this.options.defaultNS=l}hasLoadedNamespace(l,u={}){if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const s=u.lng||this.resolvedLanguage||this.languages[0],o=this.options?this.options.fallbackLng:!1,d=this.languages[this.languages.length-1];if(s.toLowerCase()==="cimode")return!0;const f=(h,m)=>{const g=this.services.backendConnector.state[`${h}|${m}`];return g===-1||g===0||g===2};if(u.precheck){const h=u.precheck(this,f);if(h!==void 0)return h}return!!(this.hasResourceBundle(s,l)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||f(s,l)&&(!o||f(d,l)))}loadNamespaces(l,u){const s=ol();return this.options.ns?(ie(l)&&(l=[l]),l.forEach(o=>{this.options.ns.indexOf(o)<0&&this.options.ns.push(o)}),this.loadResources(o=>{s.resolve(),u&&u(o)}),s):(u&&u(),Promise.resolve())}loadLanguages(l,u){const s=ol();ie(l)&&(l=[l]);const o=this.options.preload||[],d=l.filter(f=>o.indexOf(f)<0&&this.services.languageUtils.isSupportedCode(f));return d.length?(this.options.preload=o.concat(d),this.loadResources(f=>{s.resolve(),u&&u(f)}),s):(u&&u(),Promise.resolve())}dir(l){if(l||(l=this.resolvedLanguage||(this.languages?.length>0?this.languages[0]:this.language)),!l)return"rtl";try{const o=new Intl.Locale(l);if(o&&o.getTextInfo){const d=o.getTextInfo();if(d&&d.direction)return d.direction}}catch{}const u=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],s=this.services?.languageUtils||new Uh(Iu());return l.toLowerCase().indexOf("-latn")>1?"ltr":u.indexOf(s.getLanguagePartFromCode(l))>-1||l.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(l={},u){const s=new ul(l,u);return s.createInstance=ul.createInstance,s}cloneInstance(l={},u=Bo){const s=l.forkResourceStore;s&&delete l.forkResourceStore;const o={...this.options,...l,isClone:!0},d=new ul(o);if((l.debug!==void 0||l.prefix!==void 0)&&(d.logger=d.logger.clone(l)),["store","services","language"].forEach(h=>{d[h]=this[h]}),d.services={...this.services},d.services.utils={hasLoadedNamespace:d.hasLoadedNamespace.bind(d)},s){const h=Object.keys(this.store.data).reduce((m,g)=>(m[g]={...this.store.data[g]},m[g]=Object.keys(m[g]).reduce((b,y)=>(b[y]={...m[g][y]},b),m[g]),m),{});d.store=new xh(h,o),d.services.resourceStore=d.store}if(l.interpolation){const m={...Iu().interpolation,...this.options.interpolation,...l.interpolation},g={...o,interpolation:m};d.services.interpolator=new Hh(g)}return d.translator=new $o(d.services,o),d.translator.on("*",(h,...m)=>{d.emit(h,...m)}),d.init(o,u),d.translator.options=o,d.translator.backendConnector.services.utils={hasLoadedNamespace:d.hasLoadedNamespace.bind(d)},d}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const dt=ul.createInstance();dt.createInstance;dt.dir;dt.init;dt.loadResources;dt.reloadResources;dt.use;dt.changeLanguage;dt.getFixedT;dt.t;dt.exists;dt.setDefaultNamespace;dt.hasLoadedNamespace;dt.loadNamespaces;dt.loadLanguages;const WS=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,$S={"&amp;":"&","&#38;":"&","&lt;":"<","&#60;":"<","&gt;":">","&#62;":">","&apos;":"'","&#39;":"'","&quot;":'"',"&#34;":'"',"&nbsp;":" ","&#160;":" ","&copy;":"©","&#169;":"©","&reg;":"®","&#174;":"®","&hellip;":"…","&#8230;":"…","&#x2F;":"/","&#47;":"/"},ZS=i=>$S[i],QS=i=>i.replace(WS,ZS);let Qu={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:QS,transDefaultProps:void 0};const XS=(i={})=>{Qu={...Qu,...i}},XT=()=>Qu;let _m;const JS=i=>{_m=i},JT=()=>_m,eC={type:"3rdParty",init(i){XS(i.options.react),JS(i)}},{slice:tC,forEach:aC}=[];function nC(i){return aC.call(tC.call(arguments,1),l=>{if(l)for(const u in l)i[u]===void 0&&(i[u]=l[u])}),i}function iC(i){return typeof i!="string"?!1:[/<\s*script.*?>/i,/<\s*\/\s*script\s*>/i,/<\s*img.*?on\w+\s*=/i,/<\s*\w+\s*on\w+\s*=.*?>/i,/javascript\s*:/i,/vbscript\s*:/i,/expression\s*\(/i,/eval\s*\(/i,/alert\s*\(/i,/document\.cookie/i,/document\.write\s*\(/i,/window\.location/i,/innerHTML/i].some(u=>u.test(i))}const Gh=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,lC=function(i,l){const s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{path:"/"},o=encodeURIComponent(l);let d=`${i}=${o}`;if(s.maxAge>0){const f=s.maxAge-0;if(Number.isNaN(f))throw new Error("maxAge should be a Number");d+=`; Max-Age=${Math.floor(f)}`}if(s.domain){if(!Gh.test(s.domain))throw new TypeError("option domain is invalid");d+=`; Domain=${s.domain}`}if(s.path){if(!Gh.test(s.path))throw new TypeError("option path is invalid");d+=`; Path=${s.path}`}if(s.expires){if(typeof s.expires.toUTCString!="function")throw new TypeError("option expires is invalid");d+=`; Expires=${s.expires.toUTCString()}`}if(s.httpOnly&&(d+="; HttpOnly"),s.secure&&(d+="; Secure"),s.sameSite)switch(typeof s.sameSite=="string"?s.sameSite.toLowerCase():s.sameSite){case!0:d+="; SameSite=Strict";break;case"lax":d+="; SameSite=Lax";break;case"strict":d+="; SameSite=Strict";break;case"none":d+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}return s.partitioned&&(d+="; Partitioned"),d},Vh={create(i,l,u,s){let o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{path:"/",sameSite:"strict"};u&&(o.expires=new Date,o.expires.setTime(o.expires.getTime()+u*60*1e3)),s&&(o.domain=s),document.cookie=lC(i,l,o)},read(i){const l=`${i}=`,u=document.cookie.split(";");for(let s=0;s<u.length;s++){let o=u[s];for(;o.charAt(0)===" ";)o=o.substring(1,o.length);if(o.indexOf(l)===0)return o.substring(l.length,o.length)}return null},remove(i,l){this.create(i,"",-1,l)}};var oC={name:"cookie",lookup(i){let{lookupCookie:l}=i;if(l&&typeof document<"u")return Vh.read(l)||void 0},cacheUserLanguage(i,l){let{lookupCookie:u,cookieMinutes:s,cookieDomain:o,cookieOptions:d}=l;u&&typeof document<"u"&&Vh.create(u,i,s,o,d)}},rC={name:"querystring",lookup(i){let{lookupQuerystring:l}=i,u;if(typeof window<"u"){let{search:s}=window.location;!window.location.search&&window.location.hash?.indexOf("?")>-1&&(s=window.location.hash.substring(window.location.hash.indexOf("?")));const d=s.substring(1).split("&");for(let f=0;f<d.length;f++){const h=d[f].indexOf("=");h>0&&d[f].substring(0,h)===l&&(u=d[f].substring(h+1))}}return u}},sC={name:"hash",lookup(i){let{lookupHash:l,lookupFromHashIndex:u}=i,s;if(typeof window<"u"){const{hash:o}=window.location;if(o&&o.length>2){const d=o.substring(1);if(l){const f=d.split("&");for(let h=0;h<f.length;h++){const m=f[h].indexOf("=");m>0&&f[h].substring(0,m)===l&&(s=f[h].substring(m+1))}}if(s)return s;if(!s&&u>-1){const f=o.match(/\/([a-zA-Z-]*)/g);return Array.isArray(f)?f[typeof u=="number"?u:0]?.replace("/",""):void 0}}}return s}};let ai=null;const Fh=()=>{if(ai!==null)return ai;try{if(ai=typeof window<"u"&&window.localStorage!==null,!ai)return!1;const i="i18next.translate.boo";window.localStorage.setItem(i,"foo"),window.localStorage.removeItem(i)}catch{ai=!1}return ai};var uC={name:"localStorage",lookup(i){let{lookupLocalStorage:l}=i;if(l&&Fh())return window.localStorage.getItem(l)||void 0},cacheUserLanguage(i,l){let{lookupLocalStorage:u}=l;u&&Fh()&&window.localStorage.setItem(u,i)}};let ni=null;const Yh=()=>{if(ni!==null)return ni;try{if(ni=typeof window<"u"&&window.sessionStorage!==null,!ni)return!1;const i="i18next.translate.boo";window.sessionStorage.setItem(i,"foo"),window.sessionStorage.removeItem(i)}catch{ni=!1}return ni};var cC={name:"sessionStorage",lookup(i){let{lookupSessionStorage:l}=i;if(l&&Yh())return window.sessionStorage.getItem(l)||void 0},cacheUserLanguage(i,l){let{lookupSessionStorage:u}=l;u&&Yh()&&window.sessionStorage.setItem(u,i)}},dC={name:"navigator",lookup(i){const l=[];if(typeof navigator<"u"){const{languages:u,userLanguage:s,language:o}=navigator;if(u)for(let d=0;d<u.length;d++)l.push(u[d]);s&&l.push(s),o&&l.push(o)}return l.length>0?l:void 0}},fC={name:"htmlTag",lookup(i){let{htmlTag:l}=i,u;const s=l||(typeof document<"u"?document.documentElement:null);return s&&typeof s.getAttribute=="function"&&(u=s.getAttribute("lang")),u}},pC={name:"path",lookup(i){let{lookupFromPathIndex:l}=i;if(typeof window>"u")return;const u=window.location.pathname.match(/\/([a-zA-Z-]*)/g);return Array.isArray(u)?u[typeof l=="number"?l:0]?.replace("/",""):void 0}},hC={name:"subdomain",lookup(i){let{lookupFromSubdomainIndex:l}=i;const u=typeof l=="number"?l+1:1,s=typeof window<"u"&&window.location?.hostname?.match(/^(\w{2,5})\.(([a-z0-9-]{1,63}\.[a-z]{2,6})|localhost)/i);if(s)return s[u]}};let xm=!1;try{document.cookie,xm=!0}catch{}const Nm=["querystring","cookie","localStorage","sessionStorage","navigator","htmlTag"];xm||Nm.splice(1,1);const mC=()=>({order:Nm,lookupQuerystring:"lng",lookupCookie:"i18next",lookupLocalStorage:"i18nextLng",lookupSessionStorage:"i18nextLng",caches:["localStorage"],excludeCacheFor:["cimode"],convertDetectedLanguage:i=>i});class Um{constructor(l){let u=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.type="languageDetector",this.detectors={},this.init(l,u)}init(){let l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{languageUtils:{}},u=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.services=l,this.options=nC(u,this.options||{},mC()),typeof this.options.convertDetectedLanguage=="string"&&this.options.convertDetectedLanguage.indexOf("15897")>-1&&(this.options.convertDetectedLanguage=o=>o.replace("-","_")),this.options.lookupFromUrlIndex&&(this.options.lookupFromPathIndex=this.options.lookupFromUrlIndex),this.i18nOptions=s,this.addDetector(oC),this.addDetector(rC),this.addDetector(uC),this.addDetector(cC),this.addDetector(dC),this.addDetector(fC),this.addDetector(pC),this.addDetector(hC),this.addDetector(sC)}addDetector(l){return this.detectors[l.name]=l,this}detect(){let l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.order,u=[];return l.forEach(s=>{if(this.detectors[s]){let o=this.detectors[s].lookup(this.options);o&&typeof o=="string"&&(o=[o]),o&&(u=u.concat(o))}}),u=u.filter(s=>s!=null&&!iC(s)).map(s=>this.options.convertDetectedLanguage(s)),this.services&&this.services.languageUtils&&this.services.languageUtils.getBestMatchFromCodes?u:u.length>0?u[0]:null}cacheUserLanguage(l){let u=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.options.caches;u&&(this.options.excludeCacheFor&&this.options.excludeCacheFor.indexOf(l)>-1||u.forEach(s=>{this.detectors[s]&&this.detectors[s].cacheUserLanguage(l,this.options)}))}}Um.type="languageDetector";const gC={buttons:{login:"Login",logout:"Logout",signup:"Sign Up",cancel:"Cancel",save:"Save",delete:"Delete",close:"Close",back:"Back",next:"Next",retry:"Retry",refresh:"Refresh",send:"Send",stop:"Stop",start:"Start",restart:"Restart",create:"Create",add:"Add",copy:"Copy",copied:"Copied!",hide:"Hide",show:"Show",docs:"Docs",admin:"Admin",profile:"Profile",templates:"Templates",groupChats:"Group Chats",createInstance:"Create Instance",backToDashboard:"Back to Dashboard",backToInstances:"← Back to Instances"},labels:{email:"Email",password:"Password",displayName:"Display Name",name:"Name",status:"Status",type:"Type",image:"Image",target:"Target",created:"Created",updated:"Updated",provider:"Provider",model:"Model",loading:"Loading...",or:"or",to:"to",and:"and",of:"of",by:"By",none:"None"},status:{created:"created",starting:"starting",running:"running",stopping:"stopping",stopped:"stopped",error:"error",healthy:"Healthy",unhealthy:"Unhealthy",active:"Active",expired:"Expired",revoked:"Revoked"},deploymentTarget:{docker:"Docker",kubernetes:"Kubernetes"},agentType:{openclaw:"OpenClaw",opencode:"OpenCode","claude-code":"Claude Code"},errors:{generic:"An error occurred",failedToLoad:"Failed to load",actionFailed:"Action failed",deleteFailed:"Delete failed"},time:{justNow:"just now",minutesAgo:"{{count}}m ago",hoursAgo:"{{count}}h ago",daysAgo:"{{count}}d ago"},pagination:{previous:"← Previous",next:"Next →",pageOf:"Page {{page}} of {{totalPages}}"},comingSoon:"Coming soon",loading:"Loading...",enabled:"Enabled",disabled:"Disabled"},vC={login:{title:"Login",emailLabel:"Email",passwordLabel:"Password",submitButton:"Login",noAccount:"Don't have an account?",signupLink:"Sign up",docsLink:"Documentation & About",welcome:"Welcome Back",subtitle:"Sign in to continue with Aquarium",emailPlaceholder:"Enter your email",passwordPlaceholder:"Enter your password",forgotPassword:"Forgot password?",workosButton:"Sign in with WorkOS",workosHint:"You'll be redirected to sign in securely via your organization's identity provider.",workosError:"Authentication failed. Please try again."},signup:{title:"Sign Up",displayNameLabel:"Display Name",emailLabel:"Email",passwordLabel:"Password",submitButton:"Sign Up",hasAccount:"Already have an account?",loginLink:"Login",docsLink:"Documentation & About",welcome:"Create Account",subtitle:"Sign up to get started with Aquarium",displayNamePlaceholder:"Enter your name",emailPlaceholder:"Enter your email",passwordPlaceholder:"Enter your password",workosButton:"Sign up with WorkOS"},waitlist:{title:"Join the Waitlist",subtitle:"We're gradually rolling out access. Leave your email and we'll notify you when it's your turn.",emailLabel:"Email",emailPlaceholder:"Enter your email",submitButton:"Join Waitlist",submitting:"Joining...",success:"You're on the list! We'll be in touch soon.",alreadyInvited:"Already invited?",loginLink:"Sign in here"},errors:{generic:"An error occurred"},showPassword:"Show password",hidePassword:"Hide password"},yC={title:"Change Your Password",subtitle:"Your password has been reset by an administrator. Please set a new password to continue.",tempPasswordLabel:"Temporary Password",tempPasswordPlaceholder:"Enter the temporary password provided by admin",newPasswordLabel:"New Password",newPasswordPlaceholder:"Enter your new password (at least 6 characters)",confirmPasswordLabel:"Confirm New Password",confirmPasswordPlaceholder:"Re-enter your new password",submitButton:"Set New Password",passwordTooShort:"Password must be at least 6 characters",passwordsDoNotMatch:"Passwords do not match"},bC={title:"Workbench",subtitle:"Welcome back, here's your platform overview",greeting:"Hi, {{name}}",loading:"Loading...",noInstances:"No instances yet. Create one to get started.",platformUsage:"Platform Usage",totalSpend:"total spend",budget:"of ${{amount}} budget",instanceCard:{type:"Type: {{type}}",image:"Image: {{image}}",created:"Created: {{date}}"},quickStart:{title:"Quick Start",description:"New to AI assistants? Deploy one in seconds",button:"Create New Assistant"},kpi:{activeAssistants:"Active Assistants",messageGroups:"Message Groups",todaySpend:"Today's Spend",apiCalls:"API Calls"},chart:{title:"Usage Trends",subtitle:"API calls over the last 14 days",noData:"No usage data yet",trendLabel:"vs last week"},activity:{title:"Recent Activity",noActivity:"No recent activity",emptyGuide:"No activity yet — create your first assistant to get started",timeJustNow:"Just now",timeMinutesAgo:"{{count}}m ago",timeHoursAgo:"{{count}}h ago",timeDaysAgo:"{{count}}d ago",event:{created:"{{name}} was created",started:"{{name}} started",stopped:"{{name}} stopped",deleted:"{{name}} was deleted",purged:"{{name}} was purged",cloned:"{{name}} was cloned",CHAT_MESSAGE:"{{name}} received a chat message",BUDGET_EXHAUSTED:"{{name}} budget exhausted",BUDGET_CRITICAL:"{{name}} budget critical",BUDGET_WARNING:"{{name}} budget warning"}}},SC={loading:"Loading...",notFound:"Instance not found",deleteConfirm:"Delete this instance? This cannot be undone.",backToDashboard:"← Dashboard",statusBar:{status:"Status:",type:"Type: {{type}}",image:"Image: {{tag}}",target:"Target: {{target}}"},tabs:{overview:"Overview",credentials:"Credentials",chat:"Chat",health:"Health",agentManagement:"Agent Management",groupChats:"Group Chats",usage:"Usage",files:"Files",snapshots:"Snapshots",logs:"Logs",events:"Events",settings:"Settings",security:"Security",more:"More"},overview:{title:"Instance Details",start:"Start",starting:"Starting…",stop:"Stop",stopping:"Stopping…",restart:"Restart",restarting:"Restarting…",fields:{id:"ID",name:"Name",agentType:"Agent Type",imageTag:"Image Tag",status:"Status",securityProfile:"Security Profile",deployment:"Deployment",aiProvider:"AI Provider",defaultModel:"Default Model",created:"Created",updated:"Updated"},oauthAuthenticated:"{{provider}} authenticated",setupRequired:"Setup Required: Authenticate {{provider}}",setupRequiredDescription:"This instance uses {{provider}} as the AI provider. Complete the OAuth flow below to connect your account.",platformAI:"Platform AI",securityProfiles:{strict:"Strict",standard:"Standard",developer:"Developer",unrestricted:"Unrestricted"},changeSecurityProfile:"Change",savingSecurityProfile:"Saving...",exportTemplate:"Export as Template"},credentials:{title:"Credentials",loading:"Loading credentials...",noCredentials:"No credentials configured.",addCredential:"Add Credential",deleteConfirm:"Delete this credential?",providerLabel:"Provider",selectProvider:"Select a provider...",otherProvider:"Other...",providerNameLabel:"Provider Name",providerNamePlaceholder:"e.g. fal_ai, elevenlabs, replicate",authMethodLabel:"Authentication Method",apiKeyOption:"API Key",oauthOption:"OAuth",apiKeyLabel:"API Key",apiKeyPlaceholder:"Enter your API key",typeLabel:"Type: {{type}}",addedLabel:"Added: {{date}}",selectOrEnterProvider:"Please select or enter a provider",templateChecklist:{requiredByTemplate:"{{count}} credential required by template",requiredByTemplate_plural:"{{count}} credentials required by template",allConfigured:"All template credentials configured",addNow:"Add Now"}},health:{title:"Health & Status",loading:"Loading health data...",startRequired:"Start the instance to view health status.",statusLabel:"Status",uptimeLabel:"Uptime",versionLabel:"Version",availableModels:"Available Models",modelColumn:"Model",providerColumn:"Provider",healthyStatus:"● Healthy",unhealthyStatus:"● Unhealthy"},groupChats:{description:"Manage group chats that include this instance.",viewAll:"View All Group Chats →"},logs:{filterPlaceholder:"Filter logs...",autoFollow:"Auto-follow",startRequired:"Start the instance to view logs.",noEntries:"No log entries.",truncated:"Log output truncated; showing latest chunk.",levels:{trace:"trace",debug:"debug",info:"info",warn:"warn",error:"error",fatal:"fatal"}},events:{title:"Events",loading:"Loading events...",noEvents:"No events recorded.",columns:{time:"Time",event:"Event",details:"Details"}},settings:{aiConfiguration:"AI Configuration",providerLabel:"Provider",modelLabel:"Model",modelPlaceholder:"e.g., gpt-4o-mini",saveButton:"Save AI Configuration",saving:"Saving...",saveSuccess:"AI configuration updated. Restart the instance to apply changes.",saveError:"Failed to update configuration",defaultSuffix:"(Default)",dangerZone:"Danger Zone",deleteInstance:"Delete Instance"},usage:{title:"Usage & Cost",loading:"Loading usage data...",loadingPlatformSpend:"Loading platform spend...",startRequired:"Start the instance to view session-level usage data.",noData:"No usage data available yet.",byokMessage:"This instance uses your own API keys. Usage is tracked directly by the provider.",dateRangeTo:"to",platformSpend:"Platform Spend",totalSpend:"Total Spend",budgetLimit:"Budget Limit",used:"{{amount}} used",limit:"{{amount}} limit",totalTokens:"Total Tokens",totalCost:"Total Cost",messages:"Messages",toolCalls:"Tool Calls",dailyTokens:"Daily Tokens",dailyCost:"Daily Cost",byModel:"By Model",topTools:"Top Tools",tokenBreakdown:"Token Breakdown",columns:{model:"Model",provider:"Provider",requests:"Requests",tokens:"Tokens",cost:"Cost",spend:"Spend",tool:"Tool",calls:"Calls",category:"Category"},tokenCategories:{input:"Input",output:"Output",cacheRead:"Cache Read",cacheWrite:"Cache Write"}},security:{title:"Security Dashboard",timeline:{title:"Security Event Timeline",noEvents:"No security events recorded",filterBySeverity:"Severity",filterByType:"Event Type",allSeverities:"All Severities",allTypes:"All Types",loadMore:"Load More",page:"Page {{page}} of {{total}}"},status:{title:"Protection Status",events24h:"Events (24h)",criticalEvents:"Critical",warningEvents:"Warning",infoEvents:"Info",protectionIndicators:"Protection Indicators",trustLayers:"Trust Layers",injectionDetection:"Injection Detection",outputFiltering:"Output Filtering",dlpScanning:"DLP Scanning",configIntegrity:"Config Integrity",enabled:"Enabled",disabled:"Disabled",recentEvents:"Recent Events"},severity:{critical:"Critical",warning:"Warning",info:"Info"},eventType:{"security:prompt_injection":"Prompt Injection","security:trust_violation":"Trust Violation","security:tool_abuse":"Tool Abuse","security:credential_accessed":"Credential Access","security:config_changed":"Config Changed","security:suspicious_activity":"Suspicious Activity"},dashboard:{title:"Security Overview",totalEvents:"Total Events",criticalRecent:"Critical (24h)",noEvents:"No security events"}},oauth:{github:{title:"GitHub Copilot Authentication",description:"This will open GitHub in a new tab. You'll enter a code to authorize access.",authenticateButton:"Authenticate with GitHub",startingButton:"Starting...",step1:"Step 1:",step1Text:"Copy this code:",step2:"Step 2:",step2Text:"Paste it at GitHub (opened automatically):",step3:"Step 3:",step3Text:'Click "Authorize" on GitHub, then wait here.',openAgain:"Open again",waitingForAuth:"Waiting for authorization...",copiedCode:"✓ Copied",failedToStart:"Failed to start OAuth flow",pollingFailed:"Polling failed",oauthError:"OAuth error: {{status}}"},openai:{title:"OpenAI Authentication",description:"This will open OpenAI in a new tab. You'll enter a code to authorize access for Codex.",authenticateButton:"Authenticate with OpenAI",startingButton:"Starting...",step1:"Step 1:",step1Text:"Copy this code:",step2:"Step 2:",step2Text:"Paste it at OpenAI (opened automatically):",step3:"Step 3:",step3Text:"Authorize on OpenAI, then wait here.",openAgain:"Open again",waitingForAuth:"Waiting for authorization...",copiedCode:"✓ Copied",failedToStart:"Failed to start OpenAI OAuth flow",pollingFailed:"Polling failed",oauthError:"OAuth error: {{status}}"},google:{title:"Google Authentication",description:"This will redirect you to Google to authorize access. You'll be brought back here after authorization.",authenticateButton:"Authenticate with Google",redirectingButton:"Redirecting...",failedToStart:"Failed to start Google OAuth flow"}}},CC={pageTitle:"New Assistant",pageSubtitle:"Configure your AI assistant step by step",steps:{agentType:"Type",naming:"Name",principles:"Principles",identity:"Identity",confirm:"Confirm"},agentType:{title:"Choose agent type",subtitle:"Select the type of AI agent you want to deploy.",comingSoon:"Coming Soon"},avatar:{general:"General",business:"Business",tech:"Tech",personal:"Personal",uploadLabel:"Upload custom",uploadHint:"JPG, PNG or WebP, max 2MB",removeLabel:"Remove avatar"},naming:{title:"Name your assistant",subtitle:"A name helps you identify this assistant in the list.",nameLabel:"Assistant Name",namePlaceholder:"e.g. My Work Assistant",nameHint:"Supports letters and numbers, up to 60 characters",descPlaceholder:"Brief description of what this assistant does (optional)",avatarLabel:"Choose avatar"},principles:{title:"Set assistant principles",subtitle:"Principles define how the assistant behaves and responds.",defaultTitle:"Use default configuration",defaultDesc:"Use the platform's built-in general behavior principles, suitable for most scenarios.",customTitle:"Custom principles",customDesc:"Write your own system prompt to fully control the assistant's behavior and style.",previewLabel:"Default principles preview",customLabel:"Custom principles content",customPlaceholder:"Enter a system prompt describing the assistant's role, style, and limits…",customHint:"One rule per line, clearly expressing constraints",placeholder:"Enter a system prompt describing the assistant's role, style, and limits…",charCount:"{{current}} / {{max}}",templates:"Quick-fill templates:",templateProfessional:"Professional",templateCreative:"Creative Writing",templateTech:"Tech Expert"},identity:{title:"Describe the assistant's identity",subtitle:"Describe the assistant's role and professional background in a paragraph.",descLabel:"Identity description",descPlaceholder:"e.g. You are a senior product manager with extensive internet industry experience, specializing in requirements analysis and product planning…",quickTemplates:"Quick templates:",credentialSection:"AI Source",platformTitle:"Platform Managed",platformDesc:"No API key needed. Usage-based billing with smart model routing.",byokTitle:"Bring Your Own Key (BYOK)",byokDesc:"Use your own API key with OpenAI, Anthropic, and more.",recommended:"Recommended",byokProvider:"Select provider",byokApiKey:"API Key",byokApiKeyPlaceholder:"Enter your API key",modelSection:"Model Parameters",modelLabel:"Model",contextLabel:"Context Length",temperatureLabel:"Temperature",temperatureHint:"0 = precise & consistent, 2 = highly creative"},confirm:{title:"Confirm configuration",subtitle:"Review your settings before finishing.",nameLabel:"Assistant Name",principlesLabel:"Behavior Principles",principlesDefault:"Using default configuration",identityLabel:"Identity Description",nameSection:"Name",principlesSection:"Principles",principlesEmpty:"Using defaults",viewAll:"View all",credentialSection:"AI Source",platformTitle:"Platform Managed Credentials",platformDesc:"No API key needed. Usage-based billing.",byokTitle:"Bring Your Own Key (BYOK)",byokDesc:"Use your own API key.",credInfoTitle:"Platform Credentials",credInfoReady:"Ready",platformCredInfo:"Platform Credentials",platformCredBadge:"Ready",platformCredCount:"{{count}} credentials configured",platformCredReady:"Available",credName:"Credential Name",credProvider:"Provider",credModel:"Model",credBalance:"Balance",credInfoName:"Credential Name",credInfoProvider:"Provider",credInfoModel:"Model",credInfoBalance:"Balance",byokProvider:"Select provider",byokProviderPlaceholder:"Select a provider...",byokModelCount:"{{count}} models",byokApiKey:"API Key",byokApiKeyPlaceholder:"Enter your API key",byokModelLabel:"Model (optional)",byokModelPlaceholder:"Auto-detect by provider",modelLabel:"Model",modelHint:"Automatically selects the best model",modelsLoading:"Loading available models...",modelSearchPlaceholder:"Search models...",modelAuto:"Automatic",modelAutoDesc:"Platform selects the best model",modelRecommended:"Recommended",contextLabel:"Context Length",contextHint:"Affects the number of conversation turns the assistant remembers",tempLabel:"Creativity (Temperature)",temperatureLabel:"Creativity (Temperature)",tempHint:"Higher values produce more creative responses",tempCurrent:"Current value:",temperatureCurrent:"Current value:",temp_work:"Work",temp_work_sub:"Precise & stable",temp_life:"Life",temp_life_sub:"Natural & fluid",temp_creative:"Creative",temp_creative_sub:"Wild & imaginative",modelSection:"Model Configuration",model:"Model",context:"Context",temperature:{work:"Work",life:"Life",creative:"Creative"},summaryTitle:"Configuration Summary",summaryName:"Assistant Name",summaryPrinciples:"Behavior Principles",summaryIdentity:"Identity Description",summaryCredential:"Credential Source",summaryDefault:"Default",summaryCustom:"Custom"},navigation:{backToAssistants:"← Back to My Assistants",cancel:"Cancel",back:"Previous",next:"Next",creating:"Creating…",finish:"Finish & Start Chat",create:"Create Assistant"},errors:{failedToCreate:"Failed to create assistant. Please try again.",failedToLoadAgentTypes:"Failed to load agent types. Please try again."},security:{profiles:{strict:{title:"Strict",description:"Maximum security, restricts all sensitive operations"},standard:{title:"Standard",description:"Balanced security and functionality for most use cases"},developer:{title:"Developer",description:"Relaxed restrictions for development and testing"},unrestricted:{title:"Unrestricted",description:"Fully open, recommended only for trusted environments"}}}},AC={list:{title:"Group Chats",loading:"Loading...",noChats:"No group chats yet. Create one to start chatting with your bots.",createButton:"Create Group Chat",memberCount:"{{count}} members",created:"Created: {{date}}",mode:"Mode: {{mode}}"},create:{title:"Create New Group Chat",chatNameLabel:"Chat Name",chatNamePlaceholder:"e.g., Brainstorming Session",selectInstances:"Select Instances",noInstances:"No instances available. Create instances first.",displayNameInChat:"Display Name in Chat:",roleLabel:"Role (optional):",rolePlaceholder:"e.g., Product designer with 10 years experience",inviteHumans:"Invite Human Members (optional)",searchByEmail:"Search by email...",searching:"Searching...",selectedHumans:"Selected Humans:",removeHuman:"Remove {{name}}",preview:"{{name}} — Preview",untitledChat:"Untitled Chat",selectAtLeastOne:"Please select at least one instance",creating:"Creating...",createAndInvite:"Create & Invite",createGroupChat:"Create Group Chat",failedToCreate:"Failed to create group chat",failedToLoadGroupChats:"Failed to load group chats"},detail:{loadingChat:"Loading chat...",chatNotFound:"Chat not found",deleteChat:"Delete Chat",deleteChatConfirm:"Delete this group chat? This cannot be undone.",loadOlderMessages:"Load older messages",loadingMessages:"Loading...",failedToLoadChat:"Failed to load chat",failedToLoadOlderMessages:"Failed to load older messages",failedToSendMessage:"Failed to send message",failedToAddMember:"Failed to add member",failedToRemoveMember:"Failed to remove member",failedToUpdateMember:"Failed to update member",removeMemberConfirm:"Are you sure you want to remove this member?",messagePlaceholder:"Type a message... Use @ to mention bots",senderYou:"You",senderUnknown:"Unknown",typeBadgeHuman:"Human",typeBadgeBot:"Bot"},members:{title:"Members",addButton:"Add Member",addTitle:"Add Member",editTitle:"Edit",removeTitle:"Remove",tabBot:"Bot Instance",tabHuman:"Human User",selectInstance:"Select Instance",selectInstancePlaceholder:"Select an instance...",searchUserByEmail:"Search User by Email",searchPlaceholder:"search@example.com",displayNameLabel:"Display Name",displayNamePlaceholderBot:"Bot Name",displayNamePlaceholderHuman:"Display Name",roleLabel:"Role (optional)",rolePlaceholder:"e.g. Moderator, Helper",adding:"Adding...",addMember:"Add Member",save:"Save",cancel:"Cancel"},delivery:{pending:"✓",delivered:"✓✓",processing:"⚡",completed:"✅",error:"❌"}},EC={title:"Agent Market",loading:"Loading...",searchPlaceholder:"Search assistants...",noTemplates:"No templates available yet.",officialTab:"Official Templates",communityTab:"Community",officialBadge:"Official",useTemplate:"Use this assistant →",installs:"{{count}} installs",forks:"{{count}} forks",version:"v{{version}}",requires:"Requires: {{providers}}",categories:{all:"All Categories",customerService:"Customer Service",sales:"Sales",marketing:"Marketing",devops:"DevOps",education:"Education",personal:"Personal",custom:"Custom",general:"General",coding:"Coding",dataAnalysis:"Data Analysis",contentCreation:"Content Creation"},instantiate:{title:"Create from Template",templateLabel:"Template: {{name}} v{{version}}",credentialsRequired:"This template requires credentials for: {{credentials}}. You can configure them on the instance page after creation.",instanceNameLabel:"Instance Name",billingModeLabel:"LLM Billing Mode",platformProvided:"Platform Provided",platformDescription:"Use platform LLM — no API key needed",bringYourOwnKey:"Bring Your Own Key",byokDescription:"Use your own API keys for LLM access",creating:"Creating...",createButton:"Create from Template",failedToCreate:"Failed to create instance",failedToLoad:"Failed to load templates",securityProfileLabel:"Security Profile",securityProfileDescription:"This template requires a minimum security level.",minSecurityBadge:"Min: {{profile}}",securityProfileDisabled:"Below minimum security level",lowSecurityWarning:"This template has a low security score. Consider reviewing its security configuration before deploying.",geoCredentialLabel:"GEO Platform Credentials",geoCredentialDescription:"Connect to SaleVoice to enable GEO monitoring for your brand.",geoOAuthLabel:"Connect with SaleVoice",geoOAuthDescription:"Sign in to your SaleVoice account",geoApiKeyLabel:"API Key",geoApiKeyDescription:"Paste your SaleVoice API token",geoConnectButton:"Connect with SaleVoice →",geoConnecting:"Connecting...",geoConnected:"Connected to SaleVoice",geoApiKeyPlaceholder:"geo_xxxxxxxxxxxxx",geoSaveButton:"Save",geoAuthFailed:"Failed to start SaleVoice authentication",geoSaveFailed:"Failed to save API key",geoRequired:"Please connect SaleVoice before creating the instance"}},wC={subtitle:"Discover and deploy intelligent assistants for your business",featured:"Featured",allAssistants:"All Assistants",usageCount:"uses",featuredBadge:"Featured"},TC={title:"System Config",subtitle:"Manage platform-wide settings and feature configuration",adminBadge:"Admin",saveConfig:"Save Config",resetDefaults:"Reset Defaults",saving:"Saving...",saved:"Config saved",failedToSave:"Failed to save config",failedToLoad:"Failed to load config",nav:{general:"General",api:"API Config",notifications:"Notifications",security:"Security",data:"Data Management",permissions:"User Permissions"},general:{basicSettings:"Basic Settings",platformName:"Platform Name",platformNamePlaceholder:"My AI Platform",platformDescription:"Platform Description",platformDescriptionPlaceholder:"A powerful AI assistant management platform",timezone:"Timezone",language:"Language",featureToggles:"Feature Toggles",enableUserRegistration:"User Registration",enableUserRegistrationDesc:"Allow new users to create accounts via the signup page"},api:{rateLimiting:"Rate Limiting",rateLimitGeneral:"General API",rateLimitLogin:"Login",rateLimitCredentials:"Credentials",windowMinutes:"Window (minutes)",maxRequests:"Max Requests",corsOrigins:"CORS Allowed Origins",corsOriginsDesc:"Additional origins allowed to make cross-origin requests to this platform",addOrigin:"Add",originPlaceholder:"https://example.com",invalidOrigin:"Origin must start with http:// or https://",webhookUrl:"Webhook URL",webhookUrlDesc:"External URL to receive platform event notifications",webhookPlaceholder:"https://example.com/webhook",apiKeys:"API Keys",apiKeysDesc:"Platform-level API keys for external integrations",keyName:"Key Name",keyPrefix:"Key Prefix",createdAt:"Created",actions:"Actions",revoke:"Revoke",generateKey:"Generate",keyNamePlaceholder:"My integration key",generatedKeyMsg:"API key generated. Copy it now — it won't be shown again:",noKeys:"No API keys yet",remove:"Remove",failedToGenerateKey:"Failed to generate API key",failedToRevokeKey:"Failed to revoke API key"},data:{retentionPolicies:"Data Retention Policies",retentionPoliciesDesc:"Configure how long different types of data are retained before cleanup",eventLogRetention:"Event Log Retention (days)",authEventRetention:"Auth Event Retention (days)",auditLogRetention:"Audit Log Retention (days)",autoCleanup:"Auto Cleanup",autoCleanupDesc:"Automatically remove expired data based on retention policies",storageUsage:"Storage Usage",storageUsageDesc:"Database table sizes and row counts",refreshStats:"Refresh",loadingStats:"Loading storage stats...",tableName:"Table",tableSize:"Size",tableRows:"Rows",totalSize:"Total",manualCleanup:"Manual Cleanup",manualCleanupDesc:"Remove expired data now based on current retention settings",runCleanup:"Run Cleanup",cleanupConfirm:"This will permanently delete expired data based on retention settings. Continue?",cleanupSuccess:"Cleanup complete. Deleted: {{events}} events, {{authEvents}} auth events, {{auditLog}} audit log entries.",cleanupFailed:"Cleanup failed",dataExport:"Data Export",dataExportDesc:"Export platform data in JSON or CSV format",exportUsers:"Export Users",exportInstances:"Export Instances",exportEvents:"Export Events",exportFormat:"Format",exporting:"Exporting...",failedToLoadStats:"Failed to load storage stats",exportFailed:"Export failed",formatJson:"JSON",formatCsv:"CSV"},permissions:{adminEmails:"Admin Email List",adminEmailsDesc:"Admins configured via ADMIN_EMAILS environment variable",noAdminEmails:"No admin emails configured in environment",roleManagement:"User Role Management",roleManagementDesc:"Assign roles to control access levels. Admins have full access, Users can manage their own instances, Viewers have read-only access.",searchUsers:"Search users by email or name...",userName:"Name",userEmail:"Email",userRole:"Role",userInstances:"Instances",userJoined:"Joined",roleAdmin:"Admin",roleUser:"User",roleViewer:"Viewer",roleUpdated:"Role updated",roleUpdateFailed:"Failed to update role",loadingUsers:"Loading users...",instanceQuota:"Instance Quota",instanceQuotaDesc:"Maximum number of instances each user can create (0 = unlimited)",quotaPerUser:"Quota per User",defaultRole:"Default Role for New Users",defaultRoleDesc:"Role automatically assigned when a new user registers",failedToLoadUsers:"Failed to load users",noMatchingUsers:"No matching users",noUsersFound:"No users found"}},PC={title:"Profile",accountInfo:"Account Information",emailLabel:"Email",memberSince:"Member since",userId:"User ID",displayNameLabel:"Display Name",updateProfile:"Update Profile",saving:"Saving...",profileUpdated:"Profile updated",failedToUpdateProfile:"Failed to update profile",usageBilling:"Usage & Billing",loadingUsage:"Loading usage data…",totalSpend:"Total Spend",budgetLimit:"Budget Limit",budgetUsed:"Budget used",noUsageData:"No usage data available. Usage tracking starts when you use Platform AI instances.",failedToLoadUsage:"Failed to load usage data",error:"Error: {{message}}.",changePassword:"Change Password",currentPassword:"Current Password",newPassword:"New Password",confirmNewPassword:"Confirm New Password",changePasswordButton:"Change Password",changingPassword:"Changing...",passwordChanged:"Password changed successfully",passwordTooShort:"New password must be at least 6 characters",passwordsDoNotMatch:"Passwords do not match",failedToChangePassword:"Failed to change password"},zC={title:"Admin Dashboard",loading:"Loading...",greeting:"Hi, {{name}}",failedToLoad:"Failed to load admin data",stats:{totalUsers:"Total Users",totalInstances:"Total Instances",running:"Running",stopped:"Stopped",error:"Error",signups7d:"Signups (7d)"},deploymentTargets:"Deployment Targets",platformUsage:"Platform Usage",globalSpend:"Global Spend",activeSpenders:"Active Spenders",usageTable:{user:"User",email:"Email",spend:"Spend",budgetLimit:"Budget Limit",setBudget:"Set Budget"},users:{title:"Users ({{count}})",columns:{name:"Name",email:"Email",instances:"Instances",running:"Running",joined:"Joined"},showInstances:"Show",hideInstances:"Hide",resetPwd:"Reset Pwd",loadingInstances:"Loading instances...",noInstances:"No instances found",failedToLoadInstances:"Failed to load instances"},resetPassword:{title:"Reset Password",description:"Reset password for: {{email}}",confirmDescription:"Are you sure you want to reset the password for {{email}}? A temporary password will be generated.",newPasswordLabel:"New Password",resetButton:"Reset Password",confirmReset:"Confirm Reset",resetting:"Resetting...",passwordTooShort:"Password must be at least 6 characters",success:"Password reset for {{email}}",failed:"Failed to reset password",generatedDescription:"A temporary password has been generated for {{email}}. This will only be shown once.",copy:"Copy",tempPasswordHint:"Please share this password with the user securely. They will be required to change it on their next login."},budget:{title:"Set Budget Limit",description:"Set monthly budget for: {{email}}",limitLabel:"Budget Limit (USD)",limitPlaceholder:"Leave empty to remove limit",saveButton:"Save Budget",saving:"Saving...",invalidBudget:"Budget must be a positive number or empty to remove",success:"Budget updated for {{email}}",failed:"Failed to update budget"}},kC={startRequired:"Start the instance to use Chat.",emptyState:"Send a message to start chatting with the agent.",inputPlaceholder:"Type a message... (Shift+Enter for newline)",settings:"Settings",newChat:"+ New Chat",copyMessage:"Copy message",noResponseError:"No response from agent — the gateway connection may not be ready. Try again in a few seconds.",failedToSend:"Failed to send",chatError:"Chat error",failedToUpdateSettings:"Failed to update settings",sessionSettings:{modelLabel:"Model",modelPlaceholder:"e.g. claude-sonnet-4",thinkingLevelLabel:"Thinking Level",thinkingLevels:{default:"Default",off:"Off",low:"Low",medium:"Medium",high:"High"},saving:"Saving...",save:"Save"},loadingAgentUI:"Loading Agent UI…",error:{title:{timeout:"Response Timeout",auth:"Authentication Error",quota:"Quota Exceeded",model:"Model Error",gateway:"Gateway Error",unknown:"Error"},description:{timeout:"The agent did not respond within the expected time.",auth:"Your API key or credentials may be invalid or expired.",quota:"You may have exceeded your API quota or rate limit.",model:"The configured model may not be available.",gateway:"Unable to connect to the agent gateway.",unknown:"An unexpected error occurred."},suggestion:{timeout:"Check your credentials and try again.",auth:"Update your API key in the AI credentials tab.",quota:"Check your billing status or wait and try again.",model:"Change the model in session settings.",gateway:"Ensure the instance is running and try again.",unknown:"Try again or contact support if the issue persists."},action:{retry:"Retry",retrying:"Retrying…",dismiss:"Dismiss",goToCredentials:"Go to Credentials",goToOverview:"Go to Overview",openSettings:"Open Settings"}},sessionDrawer:{toggleSessions:"Sessions",sessions:"Sessions",today:"Today",yesterday:"Yesterday",thisWeek:"This Week",older:"Older",newChat:"New Chat",emptyState:"No conversations yet",fetchError:"Failed to load sessions",deleteConfirm:"Delete this conversation? This cannot be undone.",deleteTitle:"Delete Conversation",deleteCancel:"Cancel",deleting:"Deleting..."},attachments:{invalidType:"Only image, Excel, Word, and PDF files are supported",tooLarge:"File is too large (images max 5MB, documents max 10MB)",maxReached:"Maximum 5 attachments allowed",dropHint:"Drop files here",removeAttachment:"Remove attachment",attachFile:"Attach file",fileTypes:{excel:"Excel",word:"Word",pdf:"PDF"}},scrollToBottom:"Scroll to latest messages"},LC={unavailable:{title:"Agent UI Unavailable",description:"Start the instance to access the Agent UI."},notSupported:{title:"Web UI Not Supported",description:"This agent type does not support embedded web UI."},loadFailed:{title:"Failed to Load Agent UI",description:"The gateway may be starting up or temporarily unavailable."},iframeTitle:"Agent Web UI"},MC={title:"Snapshots",createButton:"Create Snapshot",viewVersionHistory:"Version History",creating:"Creating…",loading:"Loading snapshots...",noSnapshots:"No snapshots yet. Create one to capture the current configuration state.",instanceMustBeRunning:"Instance must be running to create new snapshots. Existing snapshots can still be viewed and restored.",deleteConfirm:"Delete this snapshot? This cannot be undone.",noDescription:"No description",failedToLoad:"Failed to load snapshots",failedToCreate:"Failed to create snapshot",failedToDelete:"Failed to delete snapshot",failedToRestore:"Failed to restore snapshot",triggerTypes:{manual:"Manual",preOperation:"Auto",daily:"Daily"},diff:{title:"Snapshot Diff",takenAt:"Taken {{date}} · {{count}} change",takenAt_plural:"Taken {{date}} · {{count}} changes",restoreButton:"Restore this Snapshot",loadingDiff:"Loading diff...",failedToLoadDiff:"Failed to load diff",noChanges:"No changes — snapshot matches current state.",changeTypes:{modified:"Modified",added:"Added",removed:"Removed",unchanged:"Unchanged"},snapshotWillBeRestored:"Snapshot (will be restored)",currentWillBeRemoved:"Current (will be removed)",current:"Current"},restore:{title:"Restore Snapshot",description:"This will restore the instance configuration to the state captured on {{date}}.",runningWarning:"Instance is currently running. Restoring will trigger a hot-reload or restart.",safetySnapshot:"A safety snapshot of the current state will be created automatically before restoring.",loadingAffectedFiles:"Loading affected files...",affectedFilesTitle:"The following files will be affected:",noFileChanges:"No file changes detected — snapshot matches current state.",snapshotId:"Snapshot ID:",restoreButton:"Restore",restoring:"Restoring…",diffBadges:{modified:"M",added:"A",removed:"R"}}},OC={title:"Burn Rate",loading:"Loading...",today:"Today",sevenDayAvg:"7d avg",thirtyDayAvg:"30d avg",daysUntilExhaustion:"Days until exhaustion",daysCount:"{{count}} days",projectedMonthly:"Projected monthly",trends:{fastBurn:"Fast burn",rising:"Rising",steady:"Steady",cooling:"Cooling",idle:"Idle"},notProvisioned:"Burn rate will be available after the instance starts for the first time.",noUsage:"No usage recorded yet. Start using the instance to see burn rate data.",fetchError:"Unable to load burn rate data. Please try again later."},DC={title:"Notifications",buttonLabel:"Notifications",buttonLabelWithCount:"Notifications ({{count}} unread)",markAllRead:"Mark all read",empty:"No notifications yet",unreadBadge:"99+"},RC={title:"My Assistants",subtitle:"Manage all your AI assistants",createNew:"New Assistant",chat:"Chat",view:"Details",configure:"Configure",disable:"Disable",enable:"Enable",model:"Model",emptyTitle:"Quick Start",emptyDescription:"No assistants yet? Create your first AI assistant now",createFirst:"Create Assistant",loadFailed:"Failed to load assistants",actionFailed:"Action failed, please try again"},_C={online:"Online",alwaysReady:"Always ready",quickSuggestions:"Quick task suggestions",inputPlaceholder:"Describe your task, press Enter to send, Shift+Enter for new line...",disclaimer:"AI-generated content is for reference only. Please verify important decisions.",suggestion1:"Analyze last week's sales data",suggestion2:"Organize today's to-do list",suggestion3:"Draft a product requirements document",suggestion4:"Check code for potential bugs",notRunning:"Assistant is not running. Please enable it first."},xC={backToAssistants:"Back to My Assistants",titleSuffix:"Version History",currentVersion:"Current Version",versionList:"Version List",compareDiff:"Compare",restoreVersion:"Restore This Version",restoring:"Restoring...",noVersions:"No version history yet",loadFailed:"Failed to load version history",restoreFailed:"Restore failed, please try again",temperature:"Temperature",persona:"Persona",rules:"Rules",contextLength:"Context Length",model:"Model",mockDesc1:"Optimize conversation flow, improve response speed",mockDesc2:"Fix known issues, improve stability",mockDesc3:"Add emotion recognition description"},NC={backButton:"Back to My Assistants",saveButton:"Save Configuration",title:"Configure Assistant",subtitle:"Modify",subtitleOf:"'s configuration",nameSection:"Assistant Name",avatarSection:"Avatar",principlesSection:"Behavior Principles",identitySection:"Identity Description",savingText:"Saving...",savedText:"Saved",saveError:"Save failed, please try again later",loadError:"Failed to load assistant information",loading:"Loading...",deleteConfirm:"Are you sure you want to delete this assistant? This action cannot be undone and all data will be permanently lost.",deleteError:"Failed to delete",dangerZone:{title:"Danger Zone",description:"Deleting the assistant will permanently remove all configuration and data. This cannot be undone.",deleteButton:"Delete Assistant",deleting:"Deleting..."},deleteModal:{title:"Confirm Delete Assistant",description:"Are you sure you want to delete this assistant?",warning:"⚠ This action cannot be undone. All configuration and data will be permanently lost.",cancel:"Cancel",confirm:"Delete"}},UC={chat:"Chat",groupChats:"Group Chats",dashboard:"Dashboard",skills:"Agent Market",assistants:"My Assistants",proComingSoon:"Pro plan coming soon",billingGroup:"Billing & Costs",billing:"Billing Overview",orders:"Orders",costs:"Cost Management",userGroup:"User Management",credentials:"Credentials",account:"Account",systemConfig:"System Config",communityEdition:"Community Edition"},BC={title:"Credential Management",subtitle:"Manage your API keys and access credentials",tabs:{myCredentials:"My Credentials",mySubscriptions:"My Subscriptions"},addCredential:"Add Credential",editCredential:"Edit Credential",noCredentials:"No credentials yet",noCredentialsDesc:"Add your first API key to get started",provider:"Provider",credentialType:"Credential Type",displayName:"Display Name",displayNamePlaceholder:"Enter credential display name",value:"Credential Value",valuePlaceholder:"Enter API Key or secret",valueHelpText:"Credential values are encrypted before storage",role:{label:"Role",default:"Default",backup:"Backup",dedicated:"Dedicated"},status:{label:"Status",active:"Active",disabled:"Disabled"},usageCount:"Usage Count",maskedValue:"Key",enableCredential:"Enable",disableCredential:"Disable",deleteConfirm:"Are you sure you want to delete this credential? This action cannot be undone.",deleteSuccess:"Credential deleted",saveSuccess:"Credential saved",statusUpdateSuccess:"Credential status updated",failedToLoad:"Failed to load credentials",failedToSave:"Failed to save credential",failedToDelete:"Failed to delete credential",failedToUpdateStatus:"Failed to update credential status",securityTip:"Security Tip: Rotate your API keys regularly to ensure security",providerOptions:{openai:"OpenAI",anthropic:"Anthropic",google:"Google",azure:"Azure OpenAI",deepseek:"DeepSeek",groq:"Groq",mistral:"Mistral",xai:"xAI",custom:"Custom"},typeOptions:{api_key:"API Key",refresh_token:"Refresh Token",oauth_token:"OAuth Token"},subscriptions:{noSubscriptions:"No subscriptions yet",noSubscriptionsDesc:"You don't have any active subscription plans",currentPlan:"Current Plan",status:"Status",period:"Billing Period",autoRenew:"Auto Renew",active:"Active",expired:"Expired",cancelled:"Cancelled",yes:"Yes",no:"No"}},IC={title:"Billing Overview",subtitle:"View your account balance and spending",kpi:{balance:"Account Balance",balanceUnit:"¥",balanceSubtext:"Includes subscription + top-up balance",todaySpend:"Today's Spend",todaySpendUnit:"¥",monthlyProjection:"Monthly Projection",monthlyProjectionUnit:"¥",monthlyProjectionSubtext:"Based on 7-day average consumption",vsYesterday:"vs yesterday"},charts:{dailySpend:"Daily Spend",spendByInstance:"Spend by Instance",last7Days:"Last 7 days",amount:"Amount (¥)",noData:"No data available"},nav:{overview:"Overview",orders:"Orders"}},jC={title:"Orders & Billing",subtitle:"View order history and billing details",tabs:{orders:"Orders",billingDetails:"Billing Details"},table:{orderNumber:"Order #",planName:"Plan Name",orderType:"Order Type",amount:"Amount",date:"Date",status:"Status",paymentMethod:"Payment Method"},billingTable:{instanceName:"Instance",date:"Date",model:"Model",requests:"Requests",inputTokens:"Input Tokens",outputTokens:"Output Tokens",cost:"Cost"},noOrders:"No orders yet",noOrdersDesc:"You don't have any order records",noBillingDetails:"No billing details",noBillingDetailsDesc:"No billing details have been generated yet",export:"Export",orderType:{subscription:"Subscription",recharge:"Top-up",upgrade:"Upgrade"},orderStatus:{pending:"Pending",completed:"Completed",failed:"Failed",refunded:"Refunded"},failedToLoadOrders:"Failed to load orders",failedToLoadBilling:"Failed to load billing details"},HC={title:"Cost Management",subtitle:"View cost overview and manage budgets",overview:{title:"Cost Overview",thisMonth:"This Month",lastMonth:"Last Month",yearToDate:"Year to Date",monthOverMonth:"MoM",calls:"calls",times:"times",increase:"increase",decrease:"decrease",budgetUsed:"budget used"},budget:{title:"Budget Management",monthlyBudget:"Monthly Budget",annualBudget:"Annual Budget",setBudget:"Set Budget",budgetPlaceholder:"Enter budget amount",alertThreshold:"Alert Threshold",alertEnabled:"Enable Alerts",used:"Used",remaining:"Remaining",noBudget:"Not set",saveBudget:"Save Budget",saving:"Saving...",saveSuccess:"Budget saved",saveFailed:"Failed to save budget",loadFailed:"Failed to load budget",unit:"¥",editBudget:"Edit Budget"},trend:{title:"Spending Trend",last7Days:"Last 7 days",amount:"Amount (¥)",noData:"No trend data available"}},KC={providerMode:{title:"Provider Mode",platformTitle:"Platform AI",platformDesc:"Managed by the platform. No API key required. Usage tracked and billed through Platform AI.",byokTitle:"Bring Your Own Key",byokDesc:"Use your own API key. You manage billing directly with the provider.",immutableNote:"Switching provider mode requires restarting the instance to take effect.",switchConfirm:"Switching to {{mode}} mode will require an instance restart. Continue?",switchSuccess:"Provider mode updated to {{mode}}. Please restart the instance to apply changes.",switchError:"Failed to switch provider mode.",switching:"Switching...",restartNow:"Restart Now",restartLater:"Restart Later",confirmTitle:"Switch Provider Mode",confirmCancel:"Cancel",confirmOk:"Continue"},model:{title:"Model",autoTitle:"Auto (Recommended)",autoDesc:"Cost-optimized routing. The platform picks the best model based on task complexity:",autoRouting1:"Simple tasks → GPT-4o Mini ($0.15/M tokens)",autoRouting2:"Standard tasks → Claude Sonnet 4 ($3/M tokens)",autoRouting3:"Complex tasks → Claude Opus 4 ($15/M tokens)",specificTitle:"Specific Model",specificDesc:"Always use a single model for all tasks.",placeholder:"e.g. anthropic/claude-sonnet-4",providerLabel:"Provider",modelLabel:"Model",defaultSuffix:"(Default)"},save:{button:"Save AI Configuration",saving:"Saving...",success:"AI configuration saved successfully.",error:"Failed to save."},byokCredential:{label:"API Key",configured:"Configured (added {{date}})",hint:"Enter the API key for this provider to enable BYOK mode.",placeholder:"Enter API key",updatePlaceholder:"Enter new API key to replace existing",saveButton:"Save Key",updateButton:"Update Key",deleteButton:"Remove",saved:"API key saved.",saveFailed:"Failed to save API key.",deleted:"API key removed.",deleteFailed:"Failed to remove API key."},toolCredentials:{title:"Tool Credentials",description:"API keys for tools and channels (web search, Telegram, Discord, etc.). These work in both Platform AI and BYOK modes.",noCredentials:"No tool credentials configured.",required:"Required: {{count}} missing credential(s)",addButton:"Add Credential",deleteConfirm:"Delete this credential?",deleteButton:"Delete",type:"Type:",added:"Added:",selectProvider:"Select a provider...",providerName:"Provider Name",providerPlaceholder:"e.g. brave",apiKeyLabel:"API Key",apiKeyPlaceholder:"Enter API key",other:"Other...",toolsGroup:"Tools",aiProvidersGroup:"AI Providers",cancel:"Cancel",selectError:"Please select or enter a provider.",addFailed:"Failed to add credential.",deleteFailed:"Failed to delete.",loadFailed:"Failed to load credentials",loading:"Loading credentials...",salevoice:{title:"SaleVoice (GEO Platform)",description:"Connect your SaleVoice account for GEO capabilities. Choose OAuth for seamless login or enter your API key directly.",oauthLabel:"Connect via OAuth",oauthDescription:"Sign in with your SaleVoice account (recommended)",apiKeyLabel:"API Key",apiKeyDescription:"Enter your SaleVoice API key manually",connectButton:"Connect SaleVoice",connecting:"Connecting...",connected:"SaleVoice Connected",apiKeyPlaceholder:"Enter SaleVoice API key",saveButton:"Save",authFailed:"SaleVoice authentication failed.",saveFailed:"Failed to save SaleVoice credential."}}},qC={title:"Account Management",subtitle:"Manage your account information and security settings",basicInfo:{title:"Basic Information",avatar:"Avatar",changeAvatar:"Change Avatar",displayName:"Display Name",email:"Email Address",role:"Role",roleAdmin:"Admin",roleUser:"User",memberId:"User ID",memberSince:"Member Since",updateProfile:"Update Profile",updating:"Updating...",updateSuccess:"Profile updated",updateFailed:"Failed to update profile"},security:{title:"Security Settings",password:"Password",passwordDesc:"Last changed on {{date}}",passwordNeverChanged:"Never changed",managedByWorkOS:"Password and security settings are managed by your organization's identity provider.",changePassword:"Change Password",twoFactor:"Two-Factor Authentication",twoFactorDesc:"Use an authenticator app to enhance account security",twoFactorEnabled:"Enabled",twoFactorDisabled:"Not enabled",enableTwoFactor:"Enable",disableTwoFactor:"Disable",loginHistory:"Login History",loginHistoryDesc:"View recent account login records",viewHistory:"View History",hideHistory:"Hide History",noHistory:"No login records found",historyTime:"Time",historyEvent:"Event",historyIp:"IP Address",historyDevice:"Device",eventLogin:"Login",eventLoginFailed:"Login Failed",eventSignup:"Signup",eventPasswordChanged:"Password Changed",eventLogout:"Logout"},passwordModal:{title:"Change Password",currentPassword:"Current Password",newPassword:"New Password",confirmPassword:"Confirm New Password",passwordTooShort:"Password must be at least 6 characters",passwordsDoNotMatch:"Passwords do not match",changeButton:"Change Password",changing:"Changing...",success:"Password changed successfully",failed:"Failed to change password"},dangerZone:{title:"Danger Zone",deleteAccount:"Delete Account",deleteAccountDesc:"Permanently delete your account and all data. This action cannot be undone.",deleteButton:"Delete Account",deleteConfirm:"Are you sure you want to delete your account? All data will be permanently deleted and cannot be recovered."}},GC={agents:"Agents",showAgents:"Show agents",hideAgents:"Hide agents",searchAgents:"Search agents...",noMatch:"No agents match your search",createAgent:"New Agent",selectAgent:"Select an agent to start chatting",emptyTitle:"No Agents Yet",emptyDesc:"Create your first AI assistant to start chatting",createFirst:"Create Agent",startAgent:"Start Agent",starting:"Starting...",waitingStart:"Starting up...",status:{running:"Online",starting:"Starting",stopping:"Stopping",stopped:"Offline",created:"Not started",error:"Error"}},VC={title:"Export as Template",loading:"Extracting template data...",error:"Failed to extract template",retry:"Retry",name:"Template Name",slug:"Slug",description:"Description",tags:"Tags",tagsHint:"Comma-separated tags",category:"Category",agentType:"Agent Type",tabs:{overview:"Overview",files:"Files",mcp:"MCP Servers",warnings:"Warnings"},summary:{files:"Workspace Files",mcpServers:"MCP Servers",skills:"Skills",credentials:"Required Credentials",channels:"Channels",plugins:"Plugins"},noWarnings:"No security warnings",noFiles:"No workspace files",noMcp:"No MCP servers configured",downloadJson:"Download JSON",saveTemplate:"Save as Template",saving:"Saving...",cancel:"Cancel"},FC={startRequired:"Start the instance to view files.",refresh:"Refresh",emptyState:"No files found.",table:{name:"Name",size:"Size",type:"Type",modified:"Modified",actions:"Actions"},actions:{view:"View",download:"Download"},errors:{listFailed:"Failed to list files.",readFailed:"Failed to read file."},typeBadge:{excel:"Excel",word:"Word",pdf:"PDF",image:"Image",file:"File"},previewNotAvailable:"Preview not available for this file type. Use the Download button."},YC={common:gC,auth:vC,forcePasswordChange:yC,dashboard:bC,instance:SC,wizard:CC,groupChat:AC,templates:EC,skillMarket:wC,systemConfig:TC,profile:PC,admin:zC,chat:kC,agentUI:LC,snapshots:MC,burnRate:OC,notifications:DC,myAssistants:RC,assistantChat:_C,assistantVersions:xC,assistantEdit:NC,sidebar:UC,credentials:BC,billing:IC,orders:jC,costs:HC,aiTab:KC,profilePage:qC,chatHub:GC,exportWizard:VC,files:FC},WC={buttons:{login:"登录",logout:"退出登录",signup:"注册",cancel:"取消",save:"保存",delete:"删除",close:"关闭",back:"返回",next:"下一步",retry:"重试",refresh:"刷新",send:"发送",stop:"停止",start:"启动",restart:"重启",create:"创建",add:"添加",copy:"复制",copied:"已复制!",hide:"隐藏",show:"显示",docs:"文档",admin:"管理",profile:"个人资料",templates:"模板",groupChats:"群聊",createInstance:"创建实例",backToDashboard:"返回控制台",backToInstances:"← 返回实例列表"},labels:{email:"邮箱",password:"密码",displayName:"显示名称",name:"名称",status:"状态",type:"类型",image:"镜像",target:"目标",created:"创建时间",updated:"更新时间",provider:"提供商",model:"模型",loading:"加载中...",or:"或",to:"至",and:"和",of:"/",by:"由",none:"无"},status:{created:"已创建",starting:"启动中",running:"运行中",stopping:"停止中",stopped:"已停止",error:"异常",healthy:"健康",unhealthy:"异常",active:"有效",expired:"已过期",revoked:"已吊销"},deploymentTarget:{docker:"Docker",kubernetes:"Kubernetes"},agentType:{openclaw:"OpenClaw",opencode:"OpenCode","claude-code":"Claude Code"},errors:{generic:"发生错误",failedToLoad:"加载失败",actionFailed:"操作失败",deleteFailed:"删除失败"},time:{justNow:"刚刚",minutesAgo:"{{count}}分钟前",hoursAgo:"{{count}}小时前",daysAgo:"{{count}}天前"},pagination:{previous:"← 上一页",next:"下一页 →",pageOf:"第 {{page}} 页 / 共 {{totalPages}} 页"},comingSoon:"即将推出",loading:"加载中...",enabled:"已启用",disabled:"已停用"},$C={login:{title:"登录",emailLabel:"邮箱",passwordLabel:"密码",submitButton:"登录",noAccount:"还没有账号?",signupLink:"立即注册",docsLink:"文档与关于",welcome:"欢迎回来",subtitle:"登录以继续使用 Aquarium",emailPlaceholder:"请输入邮箱地址",passwordPlaceholder:"请输入密码",forgotPassword:"忘记密码?",workosButton:"使用 WorkOS 登录",workosHint:"您将被重定向到组织的身份提供商进行安全登录。",workosError:"认证失败,请重试。"},signup:{title:"注册",displayNameLabel:"显示名称",emailLabel:"邮箱",passwordLabel:"密码",submitButton:"注册",hasAccount:"已有账号?",loginLink:"登录",docsLink:"文档与关于",welcome:"创建账号",subtitle:"注册以开始使用 Aquarium",displayNamePlaceholder:"请输入您的名称",emailPlaceholder:"请输入邮箱地址",passwordPlaceholder:"请输入密码",workosButton:"使用 WorkOS 注册"},waitlist:{title:"加入候补名单",subtitle:"我们正在逐步开放访问权限。留下您的邮箱,轮到您时会通知您。",emailLabel:"邮箱",emailPlaceholder:"请输入邮箱地址",submitButton:"加入候补",submitting:"提交中…",success:"您已加入候补名单!我们会尽快与您联系。",alreadyInvited:"已收到邀请?",loginLink:"点此登录"},errors:{generic:"发生错误"},showPassword:"显示密码",hidePassword:"隐藏密码"},ZC={title:"修改密码",subtitle:"管理员已重置您的密码,请设置新密码以继续使用。",tempPasswordLabel:"临时密码",tempPasswordPlaceholder:"请输入管理员提供的临时密码",newPasswordLabel:"新密码",newPasswordPlaceholder:"请输入新密码(至少 6 个字符)",confirmPasswordLabel:"确认新密码",confirmPasswordPlaceholder:"请再次输入新密码",submitButton:"设置新密码",passwordTooShort:"密码至少需要 6 个字符",passwordsDoNotMatch:"两次输入的密码不一致"},QC={title:"工作台",subtitle:"欢迎回来,以下是您的平台实时概览",greeting:"你好,{{name}}",loading:"加载中...",noInstances:"暂无实例。创建一个开始使用吧。",platformUsage:"平台用量",totalSpend:"总消费",budget:"预算 ${{amount}}",instanceCard:{type:"类型:{{type}}",image:"镜像:{{image}}",created:"创建时间:{{date}}"},quickStart:{title:"快速开始",description:"不了解智能助手,快速部署一个试试",button:"新建智能小助手"},kpi:{activeAssistants:"活跃助手",messageGroups:"消息群组",todaySpend:"今日消耗",apiCalls:"调用次数"},chart:{title:"使用量趋势",subtitle:"最近 14 天 API 调用次数",noData:"暂无使用数据",trendLabel:"较上周"},activity:{title:"最近动态",noActivity:"暂无最近动态",emptyGuide:"还没有动态,创建你的第一个助手开始吧",timeJustNow:"刚刚",timeMinutesAgo:"{{count}}分钟前",timeHoursAgo:"{{count}}小时前",timeDaysAgo:"{{count}}天前",event:{created:"{{name}} 已创建",started:"{{name}} 已启动",stopped:"{{name}} 已停止",deleted:"{{name}} 已删除",purged:"{{name}} 已清除",cloned:"{{name}} 已克隆",CHAT_MESSAGE:"{{name}} 收到聊天消息",BUDGET_EXHAUSTED:"{{name}} 预算耗尽",BUDGET_CRITICAL:"{{name}} 预算告急",BUDGET_WARNING:"{{name}} 预算警告"}}},XC={loading:"加载中...",notFound:"未找到实例",deleteConfirm:"确定删除此实例?此操作不可撤销。",backToDashboard:"← 控制台",statusBar:{status:"状态:",type:"类型:{{type}}",image:"镜像:{{tag}}",target:"目标:{{target}}"},tabs:{overview:"概览",credentials:"凭证",chat:"对话",health:"健康状态",agentManagement:"Agent 管理",groupChats:"群聊",usage:"用量",files:"文件",snapshots:"快照",logs:"日志",events:"事件",settings:"设置",security:"安全",more:"更多"},overview:{title:"实例详情",start:"启动",starting:"启动中…",stop:"停止",stopping:"停止中…",restart:"重启",restarting:"重启中…",fields:{id:"ID",name:"名称",agentType:"Agent 类型",imageTag:"镜像标签",status:"状态",securityProfile:"安全策略",deployment:"部署方式",aiProvider:"AI 提供商",defaultModel:"默认模型",created:"创建时间",updated:"更新时间"},oauthAuthenticated:"已通过 {{provider}} 认证",setupRequired:"需要设置:认证 {{provider}}",setupRequiredDescription:"此实例使用 {{provider}} 作为 AI 提供商。请完成以下 OAuth 流程以连接您的账号。",platformAI:"平台 AI",securityProfiles:{strict:"严格",standard:"标准",developer:"开发者",unrestricted:"无限制"},changeSecurityProfile:"更改",savingSecurityProfile:"保存中...",exportTemplate:"导出为模板"},credentials:{title:"凭证",loading:"加载凭证...",noCredentials:"暂无配置凭证。",addCredential:"添加凭证",deleteConfirm:"确定删除此凭证?",providerLabel:"提供商",selectProvider:"选择提供商...",otherProvider:"其他...",providerNameLabel:"提供商名称",providerNamePlaceholder:"例如 fal_ai、elevenlabs、replicate",authMethodLabel:"认证方式",apiKeyOption:"API Key",oauthOption:"OAuth",apiKeyLabel:"API Key",apiKeyPlaceholder:"输入您的 API Key",typeLabel:"类型:{{type}}",addedLabel:"添加时间:{{date}}",selectOrEnterProvider:"请选择或输入提供商",templateChecklist:{requiredByTemplate:"模板需要 {{count}} 个凭证",requiredByTemplate_plural:"模板需要 {{count}} 个凭证",allConfigured:"所有模板凭证已配置",addNow:"立即添加"}},health:{title:"健康状态",loading:"加载健康数据...",startRequired:"启动实例以查看健康状态。",statusLabel:"状态",uptimeLabel:"运行时间",versionLabel:"版本",availableModels:"可用模型",modelColumn:"模型",providerColumn:"提供商",healthyStatus:"● 健康",unhealthyStatus:"● 异常"},groupChats:{description:"管理包含此实例的群聊。",viewAll:"查看所有群聊 →"},logs:{filterPlaceholder:"筛选日志...",autoFollow:"自动跟踪",startRequired:"启动实例以查看日志。",noEntries:"暂无日志记录。",truncated:"日志输出已截断,仅显示最新部分。",levels:{trace:"trace",debug:"debug",info:"info",warn:"warn",error:"error",fatal:"fatal"}},events:{title:"事件",loading:"加载事件...",noEvents:"暂无事件记录。",columns:{time:"时间",event:"事件",details:"详情"}},settings:{aiConfiguration:"AI 配置",providerLabel:"提供商",modelLabel:"模型",modelPlaceholder:"例如 gpt-4o-mini",saveButton:"保存 AI 配置",saving:"保存中...",saveSuccess:"AI 配置已更新。重启实例以应用更改。",saveError:"更新配置失败",defaultSuffix:"(默认)",dangerZone:"危险操作",deleteInstance:"删除实例"},usage:{title:"用量与费用",loading:"加载用量数据...",loadingPlatformSpend:"加载平台消费...",startRequired:"启动实例以查看会话级用量数据。",noData:"暂无用量数据。",byokMessage:"此实例使用您自己的 API Key。用量由提供商直接统计。",dateRangeTo:"至",platformSpend:"平台消费",totalSpend:"总消费",budgetLimit:"预算上限",used:"已用 {{amount}}",limit:"上限 {{amount}}",totalTokens:"总 Token 数",totalCost:"总费用",messages:"消息数",toolCalls:"工具调用",dailyTokens:"每日 Token",dailyCost:"每日费用",byModel:"按模型",topTools:"热门工具",tokenBreakdown:"Token 明细",columns:{model:"模型",provider:"提供商",requests:"请求数",tokens:"Token 数",cost:"费用",spend:"消费",tool:"工具",calls:"调用次数",category:"类别"},tokenCategories:{input:"输入",output:"输出",cacheRead:"缓存读取",cacheWrite:"缓存写入"}},security:{title:"安全仪表板",timeline:{title:"安全事件时间线",noEvents:"暂无安全事件记录",filterBySeverity:"严重程度",filterByType:"事件类型",allSeverities:"所有严重程度",allTypes:"所有类型",loadMore:"加载更多",page:"第 {{page}} / {{total}} 页"},status:{title:"防护状态",events24h:"事件数 (24小时)",criticalEvents:"严重",warningEvents:"警告",infoEvents:"信息",protectionIndicators:"防护指标",trustLayers:"信任层级",injectionDetection:"注入检测",outputFiltering:"输出过滤",dlpScanning:"DLP 扫描",configIntegrity:"配置完整性",enabled:"已启用",disabled:"未启用",recentEvents:"最近事件"},severity:{critical:"严重",warning:"警告",info:"信息"},eventType:{"security:prompt_injection":"提示注入","security:trust_violation":"信任违规","security:tool_abuse":"工具滥用","security:credential_accessed":"凭证访问","security:config_changed":"配置变更","security:suspicious_activity":"可疑活动"},dashboard:{title:"安全概览",totalEvents:"总事件数",criticalRecent:"严重 (24小时)",noEvents:"暂无安全事件"}},oauth:{github:{title:"GitHub Copilot 认证",description:"将在新标签页中打开 GitHub。您需要输入验证码以授权访问。",authenticateButton:"通过 GitHub 认证",startingButton:"启动中...",step1:"第一步:",step1Text:"复制此验证码:",step2:"第二步:",step2Text:"在 GitHub 页面粘贴(已自动打开):",step3:"第三步:",step3Text:"在 GitHub 点击「授权」,然后在此等待。",openAgain:"重新打开",waitingForAuth:"等待授权...",copiedCode:"✓ 已复制",failedToStart:"启动 OAuth 流程失败",pollingFailed:"轮询失败",oauthError:"OAuth 错误:{{status}}"},openai:{title:"OpenAI 认证",description:"将在新标签页中打开 OpenAI。您需要输入验证码以授权 Codex 访问。",authenticateButton:"通过 OpenAI 认证",startingButton:"启动中...",step1:"第一步:",step1Text:"复制此验证码:",step2:"第二步:",step2Text:"在 OpenAI 页面粘贴(已自动打开):",step3:"第三步:",step3Text:"在 OpenAI 授权,然后在此等待。",openAgain:"重新打开",waitingForAuth:"等待授权...",copiedCode:"✓ 已复制",failedToStart:"启动 OpenAI OAuth 流程失败",pollingFailed:"轮询失败",oauthError:"OAuth 错误:{{status}}"},google:{title:"Google 认证",description:"将跳转至 Google 进行授权。授权完成后将返回此页面。",authenticateButton:"通过 Google 认证",redirectingButton:"跳转中...",failedToStart:"启动 Google OAuth 流程失败"}}},JC={pageTitle:"新建助手",pageSubtitle:"按步骤完成助手的个性化配置",steps:{agentType:"类型",naming:"命名",principles:"原则",identity:"身份",confirm:"确认配置"},agentType:{title:"选择代理类型",subtitle:"选择您要部署的 AI 代理类型。",comingSoon:"即将推出"},avatar:{general:"通用",business:"商业",tech:"技术",personal:"个人",uploadLabel:"上传自定义",uploadHint:"JPG、PNG 或 WebP,最大 2MB",removeLabel:"移除头像"},naming:{title:"为助手命名",subtitle:"给助手起一个便于识别的名称",nameLabel:"助手名称",namePlaceholder:"例如:客服助手、代码审查助手...",nameHint:"名称将显示在助手列表和对话界面中",descPlaceholder:"简短描述这个助手的用途(可选)",avatarLabel:"选择头像"},principles:{title:"设定行为原则",subtitle:"明确助手必须遵守且不能突破的底线规则",defaultTitle:"使用默认配置",defaultDesc:"系统推荐的安全底线",customTitle:"自定义原则",customDesc:"根据业务场景自定义",previewLabel:"原则内容(只读预览)",customLabel:"自定义原则内容",customPlaceholder:"输入系统提示词,描述助手的角色、风格和限制…",customHint:"每行一条规则,清晰表达约束边界",placeholder:"输入系统提示词,描述助手的角色、风格和限制…",charCount:"{{current}} / {{max}}",templates:"快速填充模板:",templateProfessional:"专业助理",templateCreative:"创意写作",templateTech:"技术专家"},identity:{title:"定义助手身份",subtitle:"为助手添加技能描述和身份信息,塑造专属人设",descLabel:"身份与技能描述",descPlaceholder:"例如:你是一名资深产品经理,拥有丰富的互联网行业经验,擅长需求分析和产品规划…",quickTemplates:"快速套用模板:",credentialSection:"AI 来源",platformTitle:"平台托管",platformDesc:"无需 API Key,按用量计费,智能路由最优模型。",byokTitle:"自带密钥(BYOK)",byokDesc:"使用自己的 API Key,支持 OpenAI、Anthropic 等主流服务商。",recommended:"推荐",byokProvider:"选择服务商",byokApiKey:"API Key",byokApiKeyPlaceholder:"输入您的 API Key",modelSection:"模型参数",modelLabel:"选择模型",contextLabel:"上下文长度",temperatureLabel:"创意度(Temperature)",temperatureHint:"0 = 精确稳定,2 = 极富创意"},confirm:{title:"确认助手配置",subtitle:"核对配置信息,参数可在此调整",nameLabel:"助手名称",principlesLabel:"行为原则",principlesDefault:"默认配置",identityLabel:"身份描述",nameSection:"名称",principlesSection:"原则",principlesEmpty:"使用默认设置",viewAll:"查看全部",credentialSection:"使用凭证",platformTitle:"默认凭证",platformDesc:"平台统一托管",byokTitle:"自有凭证",byokDesc:"使用自己的 Key",platformCredInfo:"默认凭证信息",platformCredBadge:"已就绪",platformCredCount:"已配置 {{count}} 个凭证",platformCredReady:"可用",credInfoTitle:"默认凭证信息",credInfoReady:"已就绪",credName:"凭证名称",credProvider:"服务商",credModel:"默认模型",credBalance:"可用额度",credInfoName:"凭证名称",credInfoProvider:"服务商",credInfoModel:"默认模型",credInfoBalance:"可用额度",byokProvider:"选择服务商",byokProviderPlaceholder:"请选择服务商",byokModelCount:"{{count}} 个模型",byokApiKey:"API Key",byokApiKeyPlaceholder:"输入您的 API Key",byokModelLabel:"模型(可选)",byokModelPlaceholder:"由服务商自动选择",modelLabel:"模型",modelHint:"自动选择最优模型",modelsLoading:"加载可用模型中...",modelSearchPlaceholder:"搜索模型...",modelAuto:"自动",modelAutoDesc:"平台自动选择最优模型",modelRecommended:"推荐",contextLabel:"上下文长度",contextHint:"单次对话的最大记忆容量",tempLabel:"温度参数",temperatureLabel:"创意度(Temperature)",tempHint:"控制回答的风格倾向",tempCurrent:"当前值 ",temperatureCurrent:"当前值",temp_work:"工作",temp_work_sub:"严谨·精准·克制",temp_life:"生活",temp_life_sub:"自然·平衡·流畅",temp_creative:"创意",temp_creative_sub:"发散·灵感·多样",temperature:{work:"工作",life:"生活",creative:"创意"},summaryTitle:"配置汇总",summaryName:"助手名称",summaryPrinciples:"行为原则",summaryIdentity:"身份描述",summaryCredential:"凭证方式",summaryDefault:"默认配置",summaryCustom:"自定义",modelSection:"模型配置",model:"模型",context:"上下文"},navigation:{backToAssistants:"返回我的助手",cancel:"取消",back:"上一步",next:"下一步",creating:"创建中…",finish:"完成并开始对话",create:"创建助手"},errors:{failedToCreate:"创建助手失败,请稍后重试",failedToLoadAgentTypes:"加载代理类型失败,请稍后重试"},security:{profiles:{strict:{title:"严格模式",description:"最高安全级别,限制所有敏感操作"},standard:{title:"标准模式",description:"平衡安全与功能,适合大多数场景"},developer:{title:"开发者模式",description:"放宽限制,适合开发和测试环境"},unrestricted:{title:"无限制模式",description:"完全开放,仅建议受信任环境使用"}}}},eA={list:{title:"群聊",loading:"加载中...",noChats:"暂无群聊。创建一个开始与 Bot 聊天吧。",createButton:"创建群聊",memberCount:"{{count}} 名成员",created:"创建时间:{{date}}",mode:"模式:{{mode}}"},create:{title:"创建新群聊",chatNameLabel:"群聊名称",chatNamePlaceholder:"例如:头脑风暴会议",selectInstances:"选择实例",noInstances:"暂无可用实例。请先创建实例。",displayNameInChat:"群聊显示名称:",roleLabel:"角色(可选):",rolePlaceholder:"例如:拥有10年经验的产品设计师",inviteHumans:"邀请成员(可选)",searchByEmail:"按邮箱搜索...",searching:"搜索中...",selectedHumans:"已选成员:",removeHuman:"移除 {{name}}",preview:"{{name}} — 预览",untitledChat:"未命名群聊",selectAtLeastOne:"请至少选择一个实例",creating:"创建中...",createAndInvite:"创建并邀请",createGroupChat:"创建群聊",failedToCreate:"创建群聊失败",failedToLoadGroupChats:"加载群聊失败"},detail:{loadingChat:"加载聊天...",chatNotFound:"未找到群聊",deleteChat:"删除群聊",deleteChatConfirm:"确定删除此群聊?此操作不可撤销。",loadOlderMessages:"加载更早的消息",loadingMessages:"加载中...",failedToLoadChat:"加载群聊失败",failedToLoadOlderMessages:"加载更早消息失败",failedToSendMessage:"发送消息失败",failedToAddMember:"添加成员失败",failedToRemoveMember:"移除成员失败",failedToUpdateMember:"更新成员失败",removeMemberConfirm:"确定要移除此成员吗?",messagePlaceholder:"输入消息... 使用 @ 提及 Bot",senderYou:"你",senderUnknown:"未知",typeBadgeHuman:"人类",typeBadgeBot:"Bot"},members:{title:"成员",addButton:"添加成员",addTitle:"添加成员",editTitle:"编辑",removeTitle:"移除",tabBot:"Bot 实例",tabHuman:"人类用户",selectInstance:"选择实例",selectInstancePlaceholder:"选择一个实例...",searchUserByEmail:"按邮箱搜索用户",searchPlaceholder:"search@example.com",displayNameLabel:"显示名称",displayNamePlaceholderBot:"Bot 名称",displayNamePlaceholderHuman:"显示名称",roleLabel:"角色(可选)",rolePlaceholder:"例如:管理员、助手",adding:"添加中...",addMember:"添加成员",save:"保存",cancel:"取消"},delivery:{pending:"✓",delivered:"✓✓",processing:"⚡",completed:"✅",error:"❌"}},tA={title:"智能体市场",loading:"加载中...",searchPlaceholder:"搜索助手...",noTemplates:"暂无可用模板。",officialTab:"官方模板",communityTab:"社区",officialBadge:"官方",useTemplate:"使用该助手 →",installs:"{{count}} 次安装",forks:"{{count}} 次复刻",version:"v{{version}}",requires:"需要:{{providers}}",categories:{all:"全部分类",customerService:"客服助手",sales:"销售",marketing:"营销",devops:"DevOps",education:"教育",personal:"个人",custom:"自定义",general:"通用助手",coding:"编程助手",dataAnalysis:"数据分析",contentCreation:"内容创作"},instantiate:{title:"从模板创建",templateLabel:"模板:{{name}} v{{version}}",credentialsRequired:"此模板需要以下凭证:{{credentials}}。您可以在创建后的实例页面中配置。",instanceNameLabel:"实例名称",billingModeLabel:"LLM 计费模式",platformProvided:"平台提供",platformDescription:"使用平台 LLM — 无需 API Key",bringYourOwnKey:"自带密钥(BYOK)",byokDescription:"使用您自己的 API Key 访问 LLM",creating:"创建中...",createButton:"从模板创建",failedToCreate:"创建实例失败",failedToLoad:"加载模板失败",securityProfileLabel:"安全配置",securityProfileDescription:"此模板要求最低安全级别。",minSecurityBadge:"最低: {{profile}}",securityProfileDisabled:"低于最低安全级别",lowSecurityWarning:"该模板安全评分较低,建议在部署前检查其安全配置。",geoCredentialLabel:"GEO 平台凭证",geoCredentialDescription:"连接 SaleVoice 以启用品牌 GEO 监控。",geoOAuthLabel:"通过 SaleVoice 连接",geoOAuthDescription:"登录您的 SaleVoice 账户",geoApiKeyLabel:"API 密钥",geoApiKeyDescription:"粘贴您的 SaleVoice API 令牌",geoConnectButton:"连接 SaleVoice →",geoConnecting:"连接中...",geoConnected:"已连接 SaleVoice",geoApiKeyPlaceholder:"geo_xxxxxxxxxxxxx",geoSaveButton:"保存",geoAuthFailed:"无法启动 SaleVoice 认证",geoSaveFailed:"无法保存 API 密钥",geoRequired:"请先连接 SaleVoice 再创建实例"}},aA={subtitle:"发现并部署适合您业务的智能助手",featured:"精选推荐",allAssistants:"全部助手",usageCount:"次使用",featuredBadge:"精选"},nA={title:"系统配置",subtitle:"管理平台全局设置和功能配置",adminBadge:"Admin 权限",saveConfig:"保存配置",resetDefaults:"重置默认",saving:"保存中...",saved:"配置已保存",failedToSave:"保存配置失败",failedToLoad:"加载配置失败",nav:{general:"通用配置",api:"API配置",notifications:"通知设置",security:"安全配置",data:"数据管理",permissions:"用户权限"},general:{basicSettings:"基础设置",platformName:"平台名称",platformNamePlaceholder:"我的AI平台",platformDescription:"平台描述",platformDescriptionPlaceholder:"一个强大的AI助手管理平台",timezone:"时区",language:"语言",featureToggles:"功能开关",enableUserRegistration:"用户注册",enableUserRegistrationDesc:"允许新用户通过注册页面创建账号"},api:{rateLimiting:"速率限制",rateLimitGeneral:"通用 API",rateLimitLogin:"登录",rateLimitCredentials:"凭证",windowMinutes:"时间窗口(分钟)",maxRequests:"最大请求数",corsOrigins:"CORS 允许来源",corsOriginsDesc:"允许向本平台发起跨域请求的额外来源",addOrigin:"添加",originPlaceholder:"https://example.com",invalidOrigin:"来源必须以 http:// 或 https:// 开头",webhookUrl:"Webhook URL",webhookUrlDesc:"用于接收平台事件通知的外部回调地址",webhookPlaceholder:"https://example.com/webhook",apiKeys:"API 密钥",apiKeysDesc:"用于外部集成的平台级 API 密钥",keyName:"密钥名称",keyPrefix:"密钥前缀",createdAt:"创建时间",actions:"操作",revoke:"撤销",generateKey:"生成",keyNamePlaceholder:"我的集成密钥",generatedKeyMsg:"API 密钥已生成,请立即复制——此密钥不会再次显示:",noKeys:"暂无 API 密钥",remove:"移除",failedToGenerateKey:"生成 API 密钥失败",failedToRevokeKey:"撤销 API 密钥失败"},data:{retentionPolicies:"数据保留策略",retentionPoliciesDesc:"配置各类数据在清理前的保留时长",eventLogRetention:"事件日志保留天数",authEventRetention:"认证事件保留天数",auditLogRetention:"审计日志保留天数",autoCleanup:"自动清理",autoCleanupDesc:"根据保留策略自动删除过期数据",storageUsage:"存储使用情况",storageUsageDesc:"数据库各表大小和行数",refreshStats:"刷新",loadingStats:"加载存储统计...",tableName:"表名",tableSize:"大小",tableRows:"行数",totalSize:"总计",manualCleanup:"手动清理",manualCleanupDesc:"根据当前保留设置立即删除过期数据",runCleanup:"执行清理",cleanupConfirm:"此操作将根据保留设置永久删除过期数据。是否继续?",cleanupSuccess:"清理完成。已删除:{{events}} 条事件、{{authEvents}} 条认证事件、{{auditLog}} 条审计日志。",cleanupFailed:"清理失败",dataExport:"数据导出",dataExportDesc:"以 JSON 或 CSV 格式导出平台数据",exportUsers:"导出用户",exportInstances:"导出实例",exportEvents:"导出事件",exportFormat:"格式",exporting:"导出中...",failedToLoadStats:"加载存储统计失败",exportFailed:"导出失败",formatJson:"JSON",formatCsv:"CSV"},permissions:{adminEmails:"管理员邮箱列表",adminEmailsDesc:"通过 ADMIN_EMAILS 环境变量配置的管理员",noAdminEmails:"环境变量中未配置管理员邮箱",roleManagement:"用户角色管理",roleManagementDesc:"分配角色以控制访问级别。管理员拥有全部权限,用户可管理自己的实例,访客仅有只读权限。",searchUsers:"按邮箱或姓名搜索用户...",userName:"姓名",userEmail:"邮箱",userRole:"角色",userInstances:"实例数",userJoined:"加入时间",roleAdmin:"管理员",roleUser:"用户",roleViewer:"访客",roleUpdated:"角色已更新",roleUpdateFailed:"更新角色失败",loadingUsers:"加载用户列表...",instanceQuota:"实例配额",instanceQuotaDesc:"每个用户可创建的最大实例数(0 = 不限制)",quotaPerUser:"每用户配额",defaultRole:"新用户默认角色",defaultRoleDesc:"新用户注册时自动分配的角色",failedToLoadUsers:"加载用户列表失败",noMatchingUsers:"没有匹配的用户",noUsersFound:"暂无用户"}},iA={title:"个人资料",accountInfo:"账号信息",emailLabel:"邮箱",memberSince:"注册时间",userId:"用户 ID",displayNameLabel:"显示名称",updateProfile:"更新资料",saving:"保存中...",profileUpdated:"资料已更新",failedToUpdateProfile:"更新资料失败",usageBilling:"用量与计费",loadingUsage:"加载用量数据…",totalSpend:"总消费",budgetLimit:"预算上限",budgetUsed:"已用预算",noUsageData:"暂无用量数据。使用平台 AI 实例后将开始记录用量。",failedToLoadUsage:"加载用量数据失败",error:"错误:{{message}}。",changePassword:"修改密码",currentPassword:"当前密码",newPassword:"新密码",confirmNewPassword:"确认新密码",changePasswordButton:"修改密码",changingPassword:"修改中...",passwordChanged:"密码修改成功",passwordTooShort:"新密码至少需要 6 个字符",passwordsDoNotMatch:"两次输入的密码不一致",failedToChangePassword:"修改密码失败"},lA={title:"管理后台",loading:"加载中...",greeting:"你好,{{name}}",failedToLoad:"加载管理数据失败",stats:{totalUsers:"总用户数",totalInstances:"总实例数",running:"运行中",stopped:"已停止",error:"异常",signups7d:"近7天注册"},deploymentTargets:"部署目标",platformUsage:"平台用量",globalSpend:"全局消费",activeSpenders:"活跃消费用户",usageTable:{user:"用户",email:"邮箱",spend:"消费",budgetLimit:"预算上限",setBudget:"设置预算"},users:{title:"用户({{count}})",columns:{name:"名称",email:"邮箱",instances:"实例数",running:"运行中",joined:"加入时间"},showInstances:"展开",hideInstances:"收起",resetPwd:"重置密码",loadingInstances:"加载实例...",noInstances:"暂无实例",failedToLoadInstances:"加载实例失败"},resetPassword:{title:"重置密码",description:"重置密码:{{email}}",confirmDescription:"确定要重置 {{email}} 的密码吗?系统将生成一个临时密码。",newPasswordLabel:"新密码",resetButton:"重置密码",confirmReset:"确认重置",resetting:"重置中...",passwordTooShort:"密码至少需要 6 个字符",success:"已重置 {{email}} 的密码",failed:"重置密码失败",generatedDescription:"已为 {{email}} 生成临时密码。此密码仅显示一次。",copy:"复制",tempPasswordHint:"请通过安全方式将此密码发送给用户。用户下次登录后将被要求立即修改密码。"},budget:{title:"设置预算上限",description:"为 {{email}} 设置月度预算",limitLabel:"预算上限(美元)",limitPlaceholder:"留空以取消限额",saveButton:"保存预算",saving:"保存中...",invalidBudget:"预算必须为正数,留空则取消限额",success:"已更新 {{email}} 的预算",failed:"更新预算失败"}},oA={startRequired:"启动实例以使用对话功能。",emptyState:"发送消息开始与 Agent 对话。",inputPlaceholder:"输入消息...(Shift+Enter 换行)",settings:"设置",newChat:"+ 新对话",copyMessage:"复制消息",noResponseError:"Agent 无响应 — Gateway 连接可能尚未就绪。请稍后重试。",failedToSend:"发送失败",chatError:"对话错误",failedToUpdateSettings:"更新设置失败",sessionSettings:{modelLabel:"模型",modelPlaceholder:"例如 claude-sonnet-4",thinkingLevelLabel:"思考级别",thinkingLevels:{default:"默认",off:"关闭",low:"低",medium:"中",high:"高"},saving:"保存中...",save:"保存"},loadingAgentUI:"加载 Agent UI…",error:{title:{timeout:"响应超时",auth:"认证错误",quota:"配额超限",model:"模型错误",gateway:"网关错误",unknown:"错误"},description:{timeout:"智能体在预期时间内未响应。",auth:"您的 API 密钥或凭证可能无效或已过期。",quota:"您可能已超出 API 配额或速率限制。",model:"配置的模型可能不可用。",gateway:"无法连接到智能体网关。",unknown:"发生了意外错误。"},suggestion:{timeout:"检查您的凭证并重试。",auth:"在 AI 凭证标签页中更新 API 密钥。",quota:"检查计费状态或稍后重试。",model:"在会话设置中更换模型。",gateway:"确保实例正在运行并重试。",unknown:"请重试,如问题持续请联系支持。"},action:{retry:"重试",retrying:"重试中…",dismiss:"关闭",goToCredentials:"前往凭证设置",goToOverview:"前往概览",openSettings:"打开设置"}},sessionDrawer:{toggleSessions:"会话列表",sessions:"会话",today:"今天",yesterday:"昨天",thisWeek:"本周",older:"更早",newChat:"新对话",emptyState:"暂无对话记录",fetchError:"加载会话列表失败",deleteConfirm:"确定要删除这个对话吗?此操作不可撤销。",deleteTitle:"删除对话",deleteCancel:"取消",deleting:"删除中..."},attachments:{invalidType:"仅支持图片、Excel、Word 和 PDF 文件",tooLarge:"文件过大(图片最大 5MB,文档最大 10MB)",maxReached:"最多允许 5 个附件",dropHint:"将文件拖放到此处",removeAttachment:"移除附件",attachFile:"附加文件",fileTypes:{excel:"Excel",word:"Word",pdf:"PDF"}},scrollToBottom:"滚动到最新消息"},rA={unavailable:{title:"Agent UI 不可用",description:"启动实例以访问 Agent UI。"},notSupported:{title:"不支持 Web UI",description:"此 Agent 类型不支持嵌入式 Web UI。"},loadFailed:{title:"加载 Agent UI 失败",description:"Gateway 可能正在启动或暂时不可用。"},iframeTitle:"Agent Web UI"},sA={title:"快照",createButton:"创建快照",viewVersionHistory:"版本历史",creating:"创建中…",loading:"加载快照...",noSnapshots:"暂无快照。创建一个以捕获当前配置状态。",instanceMustBeRunning:"实例必须处于运行状态才能创建新快照。现有快照仍可查看和恢复。",deleteConfirm:"确定删除此快照?此操作不可撤销。",noDescription:"无描述",failedToLoad:"加载快照失败",failedToCreate:"创建快照失败",failedToDelete:"删除快照失败",failedToRestore:"恢复快照失败",triggerTypes:{manual:"手动",preOperation:"自动",daily:"每日"},diff:{title:"快照对比",takenAt:"创建于 {{date}} · {{count}} 项变更",takenAt_plural:"创建于 {{date}} · {{count}} 项变更",restoreButton:"恢复此快照",loadingDiff:"加载对比...",failedToLoadDiff:"加载对比失败",noChanges:"无变更 — 快照与当前状态一致。",changeTypes:{modified:"已修改",added:"已添加",removed:"已移除",unchanged:"未变更"},snapshotWillBeRestored:"快照(将被恢复)",currentWillBeRemoved:"当前(将被移除)",current:"当前"},restore:{title:"恢复快照",description:"此操作将把实例配置恢复到 {{date}} 时捕获的状态。",runningWarning:"实例当前正在运行。恢复将触发热重载或重启。",safetySnapshot:"恢复前将自动创建当前状态的安全快照。",loadingAffectedFiles:"加载受影响的文件...",affectedFilesTitle:"以下文件将受到影响:",noFileChanges:"未检测到文件变更 — 快照与当前状态一致。",snapshotId:"快照 ID:",restoreButton:"恢复",restoring:"恢复中…",diffBadges:{modified:"M",added:"A",removed:"R"}}},uA={title:"消耗速率",loading:"加载中...",today:"今日",sevenDayAvg:"7日均值",thirtyDayAvg:"30日均值",daysUntilExhaustion:"预计耗尽天数",daysCount:"{{count}} 天",projectedMonthly:"预估月消费",trends:{fastBurn:"快速消耗",rising:"上升",steady:"平稳",cooling:"下降",idle:"空闲"},notProvisioned:"实例首次启动后即可查看消耗速率。",noUsage:"暂无使用记录。开始使用实例后将显示消耗速率数据。",fetchError:"无法加载消耗速率数据,请稍后重试。"},cA={title:"通知",buttonLabel:"通知",buttonLabelWithCount:"通知({{count}} 条未读)",markAllRead:"全部标为已读",empty:"暂无通知",unreadBadge:"99+"},dA={title:"我的助手",subtitle:"管理您的所有 AI 助手",createNew:"新建助手",chat:"对话",view:"详情",configure:"配置",disable:"停用",enable:"启用",model:"模型",emptyTitle:"快速开始",emptyDescription:"还没有助手?立即创建您的第一个 AI 智能助手",createFirst:"新建智能小助手",loadFailed:"加载助手列表失败",actionFailed:"操作失败,请重试"},fA={online:"在线",alwaysReady:"随时响应",quickSuggestions:"快速任务建议",inputPlaceholder:"输入任务描述,按 Enter 发送,Shift+Enter 换行...",disclaimer:"AI 生成内容仅供参考,重要决策请自行判断",suggestion1:"帮我分析最近一周的销售数据",suggestion2:"整理今天的待办事项",suggestion3:"起草一份产品需求文档",suggestion4:"检查代码中的潜在 bug",notRunning:"助手未运行,请先启用助手"},pA={backToAssistants:"返回我的助手",titleSuffix:"版本历史",currentVersion:"当前版本",versionList:"版本列表",compareDiff:"对比预览",restoreVersion:"恢复此版本",restoring:"恢复中...",noVersions:"暂无版本记录",loadFailed:"加载版本历史失败",restoreFailed:"恢复失败,请重试",temperature:"温度参数",persona:"身份描述",rules:"行为原则",contextLength:"上下文长度",model:"模型",mockDesc1:"优化对话流程,提升响应速度",mockDesc2:"修复已知问题,改善稳定性",mockDesc3:"新增情绪识别功能描述"},hA={chat:"对话",groupChats:"群聊",dashboard:"工作台",skills:"智能体市场",assistants:"我的助手",proComingSoon:"专业版即将推出",billingGroup:"账单与成本",billing:"账单总览",orders:"订单管理",costs:"成本管理",userGroup:"用户管理",credentials:"凭证管理",account:"账号管理",systemConfig:"系统配置",communityEdition:"社区版"},mA={backButton:"返回我的助手",saveButton:"保存配置",title:"配置助手",subtitle:"修改",subtitleOf:"的配置",nameSection:"助手名称",avatarSection:"头像",principlesSection:"行为原则",identitySection:"身份描述",savingText:"保存中...",savedText:"已保存",saveError:"保存失败,请稍后重试",loadError:"加载助手信息失败",loading:"加载中...",deleteConfirm:"确定要删除此助手吗?此操作不可撤销,所有数据将永久丢失。",deleteError:"删除失败",dangerZone:{title:"危险操作",description:"删除助手后,所有配置和数据将被永久删除且无法恢复。",deleteButton:"删除助手",deleting:"删除中..."},deleteModal:{title:"确认删除助手",description:"您确定要删除此助手吗?",warning:"⚠ 此操作不可撤销,所有配置和数据将永久丢失。",cancel:"取消",confirm:"确认删除"}},gA={title:"凭证管理",subtitle:"管理您的 API 密钥和访问凭证",tabs:{myCredentials:"我的凭证",mySubscriptions:"我的订阅"},addCredential:"添加凭证",editCredential:"编辑凭证",noCredentials:"暂无凭证",noCredentialsDesc:"添加您的第一个 API 密钥以开始使用",provider:"提供商",credentialType:"凭证类型",displayName:"显示名称",displayNamePlaceholder:"输入凭证显示名称",value:"凭证值",valuePlaceholder:"输入 API Key 或密钥",valueHelpText:"凭证值将被加密存储",role:{label:"角色",default:"默认",backup:"备用",dedicated:"专用"},status:{label:"状态",active:"正常",disabled:"已禁用"},usageCount:"使用次数",maskedValue:"密钥",enableCredential:"启用",disableCredential:"禁用",deleteConfirm:"确定要删除此凭证吗?此操作不可撤销。",deleteSuccess:"凭证已删除",saveSuccess:"凭证已保存",statusUpdateSuccess:"凭证状态已更新",failedToLoad:"加载凭证失败",failedToSave:"保存凭证失败",failedToDelete:"删除凭证失败",failedToUpdateStatus:"更新凭证状态失败",securityTip:"安全提示:定期轮换您的 API 密钥以确保安全",providerOptions:{openai:"OpenAI",anthropic:"Anthropic",google:"Google",azure:"Azure OpenAI",deepseek:"DeepSeek",groq:"Groq",mistral:"Mistral",xai:"xAI",custom:"自定义"},typeOptions:{api_key:"API Key",refresh_token:"Refresh Token",oauth_token:"OAuth Token"},subscriptions:{noSubscriptions:"暂无订阅",noSubscriptionsDesc:"您还没有任何活跃的订阅计划",currentPlan:"当前计划",status:"状态",period:"计费周期",autoRenew:"自动续费",active:"活跃",expired:"已过期",cancelled:"已取消",yes:"是",no:"否"}},vA={title:"费用概览",subtitle:"查看您的账户余额和消费情况",kpi:{balance:"账户余额",balanceUnit:"¥",balanceSubtext:"包含订阅余额 + 充值余额",todaySpend:"今日消费",todaySpendUnit:"¥",monthlyProjection:"月度预估",monthlyProjectionUnit:"¥",monthlyProjectionSubtext:"基于近 7 天平均消耗预估",vsYesterday:"较昨日"},charts:{dailySpend:"每日消费",spendByInstance:"按实例分布",last7Days:"最近 7 天",amount:"金额 (¥)",noData:"暂无数据"},nav:{overview:"费用概览",orders:"订单记录"}},yA={title:"订单与账单",subtitle:"查看订单记录和账单明细",tabs:{orders:"订购订单",billingDetails:"账单明细"},table:{orderNumber:"订单号",planName:"计划名称",orderType:"订单类型",amount:"金额",date:"日期",status:"状态",paymentMethod:"支付方式"},billingTable:{instanceName:"实例名称",date:"日期",model:"模型",requests:"请求数",inputTokens:"输入 Token",outputTokens:"输出 Token",cost:"费用"},noOrders:"暂无订单",noOrdersDesc:"您还没有任何订单记录",noBillingDetails:"暂无账单明细",noBillingDetailsDesc:"还没有产生任何费用明细",export:"导出",orderType:{subscription:"订阅",recharge:"充值",upgrade:"升级"},orderStatus:{pending:"待支付",completed:"已完成",failed:"失败",refunded:"已退款"},failedToLoadOrders:"加载订单失败",failedToLoadBilling:"加载账单明细失败"},bA={title:"成本管理",subtitle:"查看成本概览和管理预算",overview:{title:"成本概览",thisMonth:"本月消费",lastMonth:"上月消费",yearToDate:"年度累计",monthOverMonth:"环比",calls:"调用",times:"次",increase:"环比增长",decrease:"环比下降",budgetUsed:"预算已用"},budget:{title:"预算管理",monthlyBudget:"月度预算",annualBudget:"年度预算",setBudget:"设置预算",budgetPlaceholder:"输入预算金额",alertThreshold:"预警阈值",alertEnabled:"启用预警",used:"已使用",remaining:"剩余",noBudget:"未设置",saveBudget:"保存预算",saving:"保存中...",saveSuccess:"预算已保存",saveFailed:"保存预算失败",loadFailed:"加载预算失败",unit:"¥",editBudget:"编辑预算"},trend:{title:"消费趋势",last7Days:"最近 7 天",amount:"金额 (¥)",noData:"暂无趋势数据"}},SA={providerMode:{title:"服务商模式",platformTitle:"平台 AI",platformDesc:"由平台托管,无需 API Key。使用量通过平台 AI 统一计费。",byokTitle:"自有密钥",byokDesc:"使用您自己的 API Key,费用由您直接与服务商结算。",immutableNote:"切换服务商模式需要重启实例才能生效。",switchConfirm:"切换到{{mode}}模式需要重启实例,是否继续?",switchSuccess:"服务商模式已更新为{{mode}},请重启实例以使更改生效。",switchError:"切换服务商模式失败。",switching:"切换中…",restartNow:"立即重启",restartLater:"稍后重启",confirmTitle:"切换服务商模式",confirmCancel:"取消",confirmOk:"继续"},model:{title:"模型",autoTitle:"自动(推荐)",autoDesc:"按成本优化路由,平台根据任务复杂度选择最优模型:",autoRouting1:"简单任务 → GPT-4o Mini ($0.15/M tokens)",autoRouting2:"标准任务 → Claude Sonnet 4 ($3/M tokens)",autoRouting3:"复杂任务 → Claude Opus 4 ($15/M tokens)",specificTitle:"指定模型",specificDesc:"所有任务始终使用同一个模型。",placeholder:"例如 anthropic/claude-sonnet-4",providerLabel:"服务商",modelLabel:"模型",defaultSuffix:"(默认)"},save:{button:"保存 AI 配置",saving:"保存中...",success:"AI 配置已保存。",error:"保存失败。"},byokCredential:{label:"API Key",configured:"已配置(添加于 {{date}})",hint:"输入该服务商的 API Key 以启用自有密钥模式。",placeholder:"输入 API Key",updatePlaceholder:"输入新的 API Key 以替换现有密钥",saveButton:"保存密钥",updateButton:"更新密钥",deleteButton:"移除",saved:"API Key 已保存。",saveFailed:"保存 API Key 失败。",deleted:"API Key 已移除。",deleteFailed:"移除 API Key 失败。"},toolCredentials:{title:"工具凭证",description:"工具和频道的 API 密钥(网页搜索、Telegram、Discord 等),在平台 AI 和自有密钥模式下均可使用。",noCredentials:"暂无工具凭证。",required:"需要:缺少 {{count}} 个凭证",addButton:"添加凭证",deleteConfirm:"确定删除此凭证?",deleteButton:"删除",type:"类型:",added:"添加时间:",selectProvider:"选择服务商...",providerName:"服务商名称",providerPlaceholder:"例如 brave",apiKeyLabel:"API Key",apiKeyPlaceholder:"输入 API Key",other:"其他...",toolsGroup:"工具",aiProvidersGroup:"AI 服务商",cancel:"取消",selectError:"请选择或输入服务商。",addFailed:"添加凭证失败。",deleteFailed:"删除失败。",loadFailed:"加载凭证失败",loading:"加载凭证中...",salevoice:{title:"SaleVoice (GEO 平台)",description:"连接您的 SaleVoice 账号以启用 GEO 功能。可选择 OAuth 登录或直接输入 API 密钥。",oauthLabel:"通过 OAuth 连接",oauthDescription:"使用 SaleVoice 账号登录(推荐)",apiKeyLabel:"API 密钥",apiKeyDescription:"手动输入 SaleVoice API 密钥",connectButton:"连接 SaleVoice",connecting:"连接中...",connected:"SaleVoice 已连接",apiKeyPlaceholder:"输入 SaleVoice API 密钥",saveButton:"保存",authFailed:"SaleVoice 认证失败。",saveFailed:"保存 SaleVoice 凭证失败。"}}},CA={title:"账号管理",subtitle:"管理您的账号信息和安全设置",basicInfo:{title:"基本信息",avatar:"头像",changeAvatar:"更换头像",displayName:"显示名称",email:"邮箱地址",role:"角色",roleAdmin:"管理员",roleUser:"普通用户",memberId:"用户 ID",memberSince:"注册时间",updateProfile:"更新资料",updating:"更新中...",updateSuccess:"资料已更新",updateFailed:"更新资料失败"},security:{title:"安全设置",password:"登录密码",passwordDesc:"上次修改于 {{date}}",passwordNeverChanged:"从未修改",managedByWorkOS:"密码和安全设置由您的组织身份提供商管理。",changePassword:"修改密码",twoFactor:"两步验证",twoFactorDesc:"使用验证器应用增强账户安全",twoFactorEnabled:"已启用",twoFactorDisabled:"未启用",enableTwoFactor:"启用",disableTwoFactor:"禁用",loginHistory:"登录历史",loginHistoryDesc:"查看最近的账户登录记录",viewHistory:"查看记录",hideHistory:"收起记录",noHistory:"暂无登录记录",historyTime:"时间",historyEvent:"事件",historyIp:"IP 地址",historyDevice:"设备",eventLogin:"登录成功",eventLoginFailed:"登录失败",eventSignup:"注册",eventPasswordChanged:"修改密码",eventLogout:"退出登录"},passwordModal:{title:"修改密码",currentPassword:"当前密码",newPassword:"新密码",confirmPassword:"确认新密码",passwordTooShort:"密码长度不能少于 6 位",passwordsDoNotMatch:"两次输入的密码不一致",changeButton:"修改密码",changing:"修改中...",success:"密码修改成功",failed:"密码修改失败"},dangerZone:{title:"危险操作",deleteAccount:"注销账号",deleteAccountDesc:"永久删除您的账号和所有数据,此操作不可撤销",deleteButton:"注销账号",deleteConfirm:"确定要注销账号吗?所有数据将被永久删除且无法恢复。"}},AA={agents:"助手列表",showAgents:"显示助手",hideAgents:"隐藏助手",searchAgents:"搜索助手...",noMatch:"没有匹配的助手",createAgent:"新建助手",selectAgent:"选择一个助手开始对话",emptyTitle:"还没有助手",emptyDesc:"创建你的第一个 AI 助手,开始对话",createFirst:"创建助手",startAgent:"启动助手",starting:"启动中...",waitingStart:"正在启动...",status:{running:"在线",starting:"启动中",stopping:"停止中",stopped:"已停止",created:"未启动",error:"错误"}},EA={title:"导出为模板",loading:"正在提取模板数据...",error:"模板提取失败",retry:"重试",name:"模板名称",slug:"标识符",description:"描述",tags:"标签",tagsHint:"逗号分隔的标签",category:"分类",agentType:"Agent 类型",tabs:{overview:"概览",files:"文件",mcp:"MCP 服务",warnings:"安全警告"},summary:{files:"工作区文件",mcpServers:"MCP 服务",skills:"技能",credentials:"所需凭证",channels:"渠道",plugins:"插件"},noWarnings:"无安全警告",noFiles:"无工作区文件",noMcp:"未配置 MCP 服务",downloadJson:"下载 JSON",saveTemplate:"保存为模板",saving:"保存中...",cancel:"取消"},wA={startRequired:"启动实例以查看文件。",refresh:"刷新",emptyState:"未找到文件。",table:{name:"名称",size:"大小",type:"类型",modified:"修改时间",actions:"操作"},actions:{view:"查看",download:"下载"},errors:{listFailed:"获取文件列表失败。",readFailed:"读取文件失败。"},typeBadge:{excel:"Excel",word:"Word",pdf:"PDF",image:"图片",file:"文件"},previewNotAvailable:"此文件类型无法预览,请使用下载按钮。"},TA={common:WC,auth:$C,forcePasswordChange:ZC,dashboard:QC,instance:XC,wizard:JC,groupChat:eA,templates:tA,skillMarket:aA,systemConfig:nA,profile:iA,admin:lA,chat:oA,agentUI:rA,snapshots:sA,burnRate:uA,notifications:cA,myAssistants:dA,assistantChat:fA,assistantVersions:pA,sidebar:hA,assistantEdit:mA,credentials:gA,billing:vA,orders:yA,costs:bA,aiTab:SA,profilePage:CA,chatHub:AA,exportWizard:EA,files:wA},PA={buttons:{login:"Connexion",logout:"Deconnexion",signup:"Inscription",cancel:"Annuler",save:"Enregistrer",delete:"Supprimer",close:"Fermer",back:"Retour",next:"Suivant",retry:"Reessayer",refresh:"Actualiser",send:"Envoyer",stop:"Arreter",start:"Demarrer",restart:"Redemarrer",create:"Creer",add:"Ajouter",copy:"Copier",copied:"Copie !",hide:"Masquer",show:"Afficher",docs:"Documentation",admin:"Administration",profile:"Profil",templates:"Modeles",groupChats:"Discussions de groupe",createInstance:"Creer une instance",backToDashboard:"Retour au tableau de bord",backToInstances:"← Retour aux instances"},labels:{email:"E-mail",password:"Mot de passe",displayName:"Nom d'affichage",name:"Nom",status:"Statut",type:"Type",image:"Image",target:"Cible",created:"Cree le",updated:"Mis a jour le",provider:"Fournisseur",model:"Modele",loading:"Chargement...",or:"ou",to:"a",and:"et",of:"de",by:"Par",none:"Aucun"},status:{created:"cree",starting:"en cours de demarrage",running:"en cours d'execution",stopping:"en cours d'arret",stopped:"arrete",error:"erreur",healthy:"Fonctionnel",unhealthy:"Defaillant"},errors:{generic:"Une erreur est survenue",failedToLoad:"Echec du chargement",actionFailed:"Echec de l'action",deleteFailed:"Echec de la suppression"},time:{justNow:"a l'instant",minutesAgo:"il y a {{count}} min",hoursAgo:"il y a {{count}} h",daysAgo:"il y a {{count}} j"},pagination:{previous:"← Precedent",next:"Suivant →",pageOf:"Page {{page}} sur {{totalPages}}"},comingSoon:"Bientôt disponible"},zA={login:{title:"Connexion",emailLabel:"E-mail",passwordLabel:"Mot de passe",submitButton:"Se connecter",noAccount:"Vous n'avez pas de compte ?",signupLink:"S'inscrire",docsLink:"Documentation et a propos",welcome:"Bon retour",subtitle:"Connectez-vous pour continuer avec Aquarium",emailPlaceholder:"Entrez votre e-mail",passwordPlaceholder:"Entrez votre mot de passe",forgotPassword:"Mot de passe oublié ?"},signup:{title:"Inscription",displayNameLabel:"Nom d'affichage",emailLabel:"E-mail",passwordLabel:"Mot de passe",submitButton:"S'inscrire",hasAccount:"Vous avez deja un compte ?",loginLink:"Se connecter",docsLink:"Documentation et a propos",welcome:"Créer un compte",subtitle:"Inscrivez-vous pour commencer avec Aquarium",displayNamePlaceholder:"Entrez votre nom",emailPlaceholder:"Entrez votre e-mail",passwordPlaceholder:"Entrez votre mot de passe"},errors:{generic:"Une erreur est survenue"},showPassword:"Afficher le mot de passe",hidePassword:"Masquer le mot de passe"},kA={title:"Instances",greeting:"Bonjour, {{name}}",loading:"Chargement...",noInstances:"Aucune instance pour le moment. Creez-en une pour commencer.",platformUsage:"Utilisation de la plateforme",totalSpend:"depenses totales",budget:"sur un budget de {{amount}} $",instanceCard:{type:"Type : {{type}}",image:"Image : {{image}}",created:"Cree le : {{date}}"},quickStart:{title:"Démarrage rapide",description:"Nouveau dans les assistants IA ? Déployez-en un en quelques secondes",button:"Créer un nouvel assistant"},kpi:{activeAssistants:"Assistants actifs",messageGroups:"Groupes de messages",todaySpend:"Dépenses du jour",apiCalls:"Appels API"},chart:{title:"Tendances d'utilisation",subtitle:"Appels API des 14 derniers jours",noData:"Pas encore de données d'utilisation",trendLabel:"vs semaine dernière"},activity:{title:"Activité récente",noActivity:"Aucune activité récente",emptyGuide:"Pas encore d'activité — créez votre premier assistant pour commencer",timeJustNow:"À l'instant",timeMinutesAgo:"Il y a {{count}} min",timeHoursAgo:"Il y a {{count}} h",timeDaysAgo:"Il y a {{count}} j",event:{created:"{{name}} a été créé",started:"{{name}} a démarré",stopped:"{{name}} a été arrêté",deleted:"{{name}} a été supprimé",purged:"{{name}} a été purgé",cloned:"{{name}} a été cloné",CHAT_MESSAGE:"{{name}} a reçu un message",BUDGET_EXHAUSTED:"{{name}} budget épuisé",BUDGET_CRITICAL:"{{name}} budget critique",BUDGET_WARNING:"{{name}} alerte budget"}}},LA={loading:"Chargement...",notFound:"Instance introuvable",deleteConfirm:"Supprimer cette instance ? Cette action est irreversible.",backToDashboard:"← Tableau de bord",statusBar:{status:"Statut :",type:"Type : {{type}}",image:"Image : {{tag}}",target:"Cible : {{target}}"},tabs:{overview:"Apercu",credentials:"Identifiants",chat:"Chat",health:"Sante",agentManagement:"Gestion de l'agent",groupChats:"Discussions de groupe",usage:"Utilisation",snapshots:"Instantanes",logs:"Journaux",events:"Evenements",settings:"Parametres",files:"Fichiers",security:"Sécurité",more:"Plus"},overview:{title:"Details de l'instance",start:"Demarrer",starting:"Demarrage…",stop:"Arreter",stopping:"Arret…",restart:"Redemarrer",restarting:"Redemarrage…",fields:{id:"ID",name:"Nom",agentType:"Type d'agent",imageTag:"Tag de l'image",status:"Statut",deployment:"Deploiement",aiProvider:"Fournisseur IA",defaultModel:"Modele par defaut",created:"Cree le",updated:"Mis a jour le"},oauthAuthenticated:"{{provider}} authentifie",setupRequired:"Configuration requise : authentifiez {{provider}}",setupRequiredDescription:"Cette instance utilise {{provider}} comme fournisseur IA. Completez le flux OAuth ci-dessous pour connecter votre compte.",platformAI:"IA de la plateforme"},credentials:{title:"Identifiants",loading:"Chargement des identifiants...",noCredentials:"Aucun identifiant configure.",addCredential:"Ajouter un identifiant",deleteConfirm:"Supprimer cet identifiant ?",providerLabel:"Fournisseur",selectProvider:"Selectionnez un fournisseur...",otherProvider:"Autre...",providerNameLabel:"Nom du fournisseur",providerNamePlaceholder:"ex. fal_ai, elevenlabs, replicate",authMethodLabel:"Methode d'authentification",apiKeyOption:"Cle API",oauthOption:"OAuth",apiKeyLabel:"Cle API",apiKeyPlaceholder:"Entrez votre cle API",typeLabel:"Type : {{type}}",addedLabel:"Ajoute le : {{date}}",selectOrEnterProvider:"Veuillez selectionner ou saisir un fournisseur",templateChecklist:{requiredByTemplate:"{{count}} identifiant requis par le modele",requiredByTemplate_plural:"{{count}} identifiants requis par le modele",allConfigured:"Tous les identifiants du modele sont configures",addNow:"Ajouter maintenant"}},health:{title:"Sante et statut",loading:"Chargement des donnees de sante...",startRequired:"Demarrez l'instance pour afficher l'etat de sante.",statusLabel:"Statut",uptimeLabel:"Temps de fonctionnement",versionLabel:"Version",availableModels:"Modeles disponibles",modelColumn:"Modele",providerColumn:"Fournisseur",healthyStatus:"● Fonctionnel",unhealthyStatus:"● Defaillant"},groupChats:{description:"Gerez les discussions de groupe incluant cette instance.",viewAll:"Voir toutes les discussions de groupe →"},logs:{filterPlaceholder:"Filtrer les journaux...",autoFollow:"Suivi automatique",startRequired:"Demarrez l'instance pour afficher les journaux.",noEntries:"Aucune entree de journal.",truncated:"Sortie du journal tronquee ; affichage du dernier fragment.",levels:{trace:"trace",debug:"debug",info:"info",warn:"avertissement",error:"erreur",fatal:"fatal"}},events:{title:"Evenements",loading:"Chargement des evenements...",noEvents:"Aucun evenement enregistre.",columns:{time:"Heure",event:"Evenement",details:"Details"}},settings:{aiConfiguration:"Configuration IA",providerLabel:"Fournisseur",modelLabel:"Modele",modelPlaceholder:"ex. gpt-4o-mini",saveButton:"Enregistrer la configuration IA",saving:"Enregistrement...",saveSuccess:"Configuration IA mise a jour. Redemarrez l'instance pour appliquer les modifications.",saveError:"Echec de la mise a jour de la configuration",defaultSuffix:"(Par defaut)",dangerZone:"Zone de danger",deleteInstance:"Supprimer l'instance"},usage:{title:"Utilisation et couts",loading:"Chargement des donnees d'utilisation...",loadingPlatformSpend:"Chargement des depenses de la plateforme...",startRequired:"Demarrez l'instance pour afficher les donnees d'utilisation par session.",noData:"Aucune donnee d'utilisation disponible pour le moment.",byokMessage:"Cette instance utilise vos propres cles API. L'utilisation est suivie directement par le fournisseur.",dateRangeTo:"au",platformSpend:"Depenses de la plateforme",totalSpend:"Depenses totales",budgetLimit:"Limite de budget",used:"{{amount}} utilise",limit:"{{amount}} limite",totalTokens:"Total de jetons",totalCost:"Cout total",messages:"Messages",toolCalls:"Appels d'outils",dailyTokens:"Jetons quotidiens",dailyCost:"Cout quotidien",byModel:"Par modele",topTools:"Outils les plus utilises",tokenBreakdown:"Repartition des jetons",columns:{model:"Modele",provider:"Fournisseur",requests:"Requetes",tokens:"Jetons",cost:"Cout",spend:"Depenses",tool:"Outil",calls:"Appels",category:"Categorie"},tokenCategories:{input:"Entree",output:"Sortie",cacheRead:"Lecture du cache",cacheWrite:"Ecriture du cache"}},oauth:{github:{title:"Authentification GitHub Copilot",description:"Cela ouvrira GitHub dans un nouvel onglet. Vous saisirez un code pour autoriser l'acces.",authenticateButton:"S'authentifier avec GitHub",startingButton:"Demarrage...",step1:"Etape 1 :",step1Text:"Copiez ce code :",step2:"Etape 2 :",step2Text:"Collez-le sur GitHub (ouvert automatiquement) :",step3:"Etape 3 :",step3Text:'Cliquez sur "Autoriser" sur GitHub, puis attendez ici.',openAgain:"Ouvrir a nouveau",waitingForAuth:"En attente de l'autorisation...",copiedCode:"✓ Copie",failedToStart:"Echec du demarrage du flux OAuth",pollingFailed:"Echec de la verification",oauthError:"Erreur OAuth : {{status}}"},openai:{title:"Authentification OpenAI",description:"Cela ouvrira OpenAI dans un nouvel onglet. Vous saisirez un code pour autoriser l'acces a Codex.",authenticateButton:"S'authentifier avec OpenAI",startingButton:"Demarrage...",step1:"Etape 1 :",step1Text:"Copiez ce code :",step2:"Etape 2 :",step2Text:"Collez-le sur OpenAI (ouvert automatiquement) :",step3:"Etape 3 :",step3Text:"Autorisez sur OpenAI, puis attendez ici.",openAgain:"Ouvrir a nouveau",waitingForAuth:"En attente de l'autorisation...",copiedCode:"✓ Copie",failedToStart:"Echec du demarrage du flux OAuth OpenAI",pollingFailed:"Echec de la verification",oauthError:"Erreur OAuth : {{status}}"},google:{title:"Authentification Google",description:"Vous serez redirige vers Google pour autoriser l'acces. Vous reviendrez ici apres l'autorisation.",authenticateButton:"S'authentifier avec Google",redirectingButton:"Redirection...",failedToStart:"Echec du demarrage du flux OAuth Google"}}},MA={title:"Creer une instance",steps:{agentType:"Type d'agent",provider:"Fournisseur IA",model:"Modele",channels:"Canaux",name:"Nom",review:"Verification"},agentType:{title:"Choisissez un type d'agent",description:"Chaque type d'agent dispose d'un ensemble different de capacites et d'integrations.",loading:"Chargement des types d'agent…",capabilities:{webUI:"Interface web",channels:"Canaux",rpc:"RPC"}},provider:{title:"Choisissez un fournisseur IA",titleNoProviders:"Fournisseur IA",description:"Selectionnez le fournisseur IA qui alimentera votre agent.",noConfigRequired:"Ce type d'agent ne necessite pas de configuration de fournisseur.",platformAI:"Utiliser l'IA de la plateforme",platformAIDescription:"Aucune cle API requise — facturation a l'utilisation",modelCount:"{{count}} modele — apportez votre propre cle",modelCount_plural:"{{count}} modeles — apportez votre propre cle"},model:{title:"Modele",chooseTitle:"Choisissez un modele",selectProviderFirst:"Selectionnez d'abord un fournisseur pour choisir un modele.",platformBanner:"Utilisation de l'IA de la plateforme — aucune cle API requise. L'utilisation sera suivie et facturee via la plateforme.",selectModelFrom:"Selectionnez le modele de {{provider}} a utiliser.",apiKeyLabel:"Cle API",apiKeyRequired:"*",apiKeyPlaceholder:"Votre cle API {{provider}}",apiKeyHint:"Votre cle est stockee de maniere chiffree et n'est jamais partagee.",defaultBadge:"Par defaut",defaultModel:"Modele par defaut : {{model}}",autoSelected:"selectionne automatiquement par la plateforme"},channels:{title:"Canaux",messagingTitle:"Canaux de messagerie",description:"Activez les canaux de messagerie que vous souhaitez utiliser pour votre agent. Vous pourrez les configurer apres la creation.",notSupported:"Ce type d'agent ne prend pas en charge les canaux de messagerie.",configureLater:"Vous pourrez connecter des canaux plus tard depuis les parametres de l'instance.",whatsapp:"WhatsApp",whatsappDescription:"Necessite un scan de code QR apres le demarrage de l'instance",telegram:"Telegram",telegramDescription:"Necessite un jeton de bot Telegram depuis @BotFather"},name:{title:"Nommez votre instance",description:"Donnez a votre instance d'agent un nom memorable.",label:"Nom de l'instance",placeholder:"ex. Mon assistant personnel"},review:{title:"Verifier et creer",description:"Verifiez votre configuration avant de creer l'instance.",fields:{agentType:"Type d'agent",billingMode:"Mode de facturation",billingPlatform:"IA de la plateforme",billingBYOK:"BYOK (apportez votre propre cle)",provider:"Fournisseur",model:"Modele",apiKey:"Cle API",apiKeyMasked:"••••••••",apiKeyNone:"(aucune)",whatsapp:"WhatsApp",telegram:"Telegram",enabled:"Active",disabled:"Desactive",instanceName:"Nom de l'instance"}},navigation:{back:"Retour",next:"Suivant",creating:"Creation…",createInstance:"Creer l'instance"},confirm:{title:"Confirm configuration",subtitle:"Review your settings before finishing.",nameLabel:"Assistant Name",principlesLabel:"Behavior Principles",principlesDefault:"Using default configuration",identityLabel:"Identity Description",nameSection:"Name",principlesSection:"Principles",principlesEmpty:"Using defaults",viewAll:"View all",credentialSection:"AI Source",platformTitle:"Platform Managed Credentials",platformDesc:"No API key needed. Usage-based billing.",byokTitle:"Bring Your Own Key (BYOK)",byokDesc:"Use your own API key.",credInfoTitle:"Platform Credentials",credInfoReady:"Ready",platformCredInfo:"Platform Credentials",platformCredBadge:"Ready",credName:"Credential Name",credProvider:"Provider",credModel:"Model",credBalance:"Balance",credInfoName:"Credential Name",credInfoProvider:"Provider",credInfoModel:"Model",credInfoBalance:"Balance",byokProvider:"Select provider",byokProviderPlaceholder:"Select a provider...",byokModelCount:"{{count}} models",byokApiKey:"API Key",byokApiKeyPlaceholder:"Enter your API key",byokModelLabel:"Model (optional)",byokModelPlaceholder:"Auto-detect by provider",modelLabel:"Model",modelsLoading:"Loading available models...",modelSearchPlaceholder:"Search models...",modelAuto:"Automatic",modelAutoDesc:"Platform selects the best model",modelRecommended:"Recommended",contextLabel:"Context Length",contextHint:"Affects the number of conversation turns the assistant remembers",tempLabel:"Creativity (Temperature)",tempHint:"Higher values produce more creative responses",tempCurrent:"Current value:",temperatureCurrent:"Current value:",temp_work:"Work",temp_work_sub:"Precise & stable",temp_life:"Life",temp_life_sub:"Natural & fluid",temp_creative:"Creative",temp_creative_sub:"Wild & imaginative",modelSection:"Model Configuration",model:"Model",context:"Context",temperature:"Temperature"},errors:{failedToCreate:"Echec de la creation de l'instance"}},OA={list:{title:"Discussions de groupe",loading:"Chargement...",noChats:"Aucune discussion de groupe pour le moment. Creez-en une pour commencer a discuter avec vos bots.",createButton:"Creer une discussion de groupe",memberCount:"{{count}} membres",created:"Cree le : {{date}}",mode:"Mode : {{mode}}"},create:{title:"Creer une nouvelle discussion de groupe",chatNameLabel:"Nom de la discussion",chatNamePlaceholder:"ex. Session de brainstorming",selectInstances:"Selectionner des instances",noInstances:"Aucune instance disponible. Creez d'abord des instances.",displayNameInChat:"Nom d'affichage dans la discussion :",roleLabel:"Role (facultatif) :",rolePlaceholder:"ex. Designer produit avec 10 ans d'experience",inviteHumans:"Inviter des membres humains (facultatif)",searchByEmail:"Rechercher par e-mail...",searching:"Recherche...",selectedHumans:"Humains selectionnes :",removeHuman:"Retirer {{name}}",preview:"{{name}} — Apercu",untitledChat:"Discussion sans titre",selectAtLeastOne:"Veuillez selectionner au moins une instance",creating:"Creation...",createAndInvite:"Creer et inviter",createGroupChat:"Creer une discussion de groupe",failedToCreate:"Echec de la creation de la discussion de groupe",failedToLoadGroupChats:"Echec du chargement des discussions de groupe"},detail:{loadingChat:"Chargement de la discussion...",chatNotFound:"Discussion introuvable",deleteChat:"Supprimer la discussion",deleteChatConfirm:"Supprimer cette discussion de groupe ? Cette action est irreversible.",loadOlderMessages:"Charger les messages precedents",loadingMessages:"Chargement...",failedToLoadChat:"Echec du chargement de la discussion",failedToLoadOlderMessages:"Echec du chargement des messages precedents",failedToSendMessage:"Echec de l'envoi du message",failedToAddMember:"Echec de l'ajout du membre",failedToRemoveMember:"Echec du retrait du membre",failedToUpdateMember:"Echec de la mise a jour du membre",removeMemberConfirm:"Etes-vous sur de vouloir retirer ce membre ?",messagePlaceholder:"Saisissez un message... Utilisez @ pour mentionner des bots",senderYou:"Vous",senderUnknown:"Inconnu",typeBadgeHuman:"Humain",typeBadgeBot:"Bot"},members:{title:"Membres",addButton:"Ajouter un membre",addTitle:"Ajouter un membre",editTitle:"Modifier",removeTitle:"Retirer",tabBot:"Instance de bot",tabHuman:"Utilisateur humain",selectInstance:"Selectionner une instance",selectInstancePlaceholder:"Selectionnez une instance...",searchUserByEmail:"Rechercher un utilisateur par e-mail",searchPlaceholder:"recherche@example.com",displayNameLabel:"Nom d'affichage",displayNamePlaceholderBot:"Nom du bot",displayNamePlaceholderHuman:"Nom d'affichage",roleLabel:"Role (facultatif)",rolePlaceholder:"ex. Moderateur, Assistant",adding:"Ajout...",addMember:"Ajouter un membre",save:"Enregistrer",cancel:"Annuler"},delivery:{pending:"✓",delivered:"✓✓",processing:"⚡",completed:"✅",error:"❌"}},DA={title:"Galerie de modeles",loading:"Chargement...",searchPlaceholder:"Rechercher des modeles... (appuyez sur Entree)",noTemplates:"Aucun modele disponible pour le moment.",officialTab:"Modeles officiels",communityTab:"Communaute",officialBadge:"Officiel",useTemplate:"Utiliser le modele",installs:"{{count}} installations",forks:"{{count}} forks",version:"v{{version}}",requires:"Necessite : {{providers}}",categories:{all:"Toutes les categories",customerService:"Service client",sales:"Ventes",marketing:"Marketing",devops:"DevOps",education:"Education",personal:"Personnel",custom:"Personnalise"},instantiate:{title:"Creer a partir d'un modele",templateLabel:"Modele : {{name}} v{{version}}",credentialsRequired:"Ce modele necessite des identifiants pour : {{credentials}}. Vous pourrez les configurer sur la page de l'instance apres la creation.",instanceNameLabel:"Nom de l'instance",billingModeLabel:"Mode de facturation LLM",platformProvided:"Fourni par la plateforme",platformDescription:"Utiliser le LLM de la plateforme — aucune cle API requise",bringYourOwnKey:"BYOK (apportez votre propre cle)",byokDescription:"Utilisez vos propres cles API pour l'acces LLM",creating:"Creation...",createButton:"Creer a partir du modele",failedToCreate:"Echec de la creation de l'instance",failedToLoad:"Echec du chargement des modeles",geoCredentialLabel:"Identifiants de la plateforme GEO",geoCredentialDescription:"Connectez-vous à SaleVoice pour activer le monitoring GEO de votre marque.",geoOAuthLabel:"Se connecter avec SaleVoice",geoOAuthDescription:"Connectez-vous à votre compte SaleVoice",geoApiKeyLabel:"Clé API",geoApiKeyDescription:"Collez votre jeton API SaleVoice",geoConnectButton:"Connecter SaleVoice →",geoConnecting:"Connexion...",geoConnected:"Connecté à SaleVoice",geoApiKeyPlaceholder:"geo_xxxxxxxxxxxxx",geoSaveButton:"Enregistrer",geoAuthFailed:"Echec de l'authentification SaleVoice",geoSaveFailed:"Echec de l'enregistrement de la clé API",geoRequired:"Veuillez connecter SaleVoice avant de créer l'instance"}},RA={title:"Profil",accountInfo:"Informations du compte",emailLabel:"E-mail",memberSince:"Membre depuis",userId:"Identifiant utilisateur",displayNameLabel:"Nom d'affichage",updateProfile:"Mettre a jour le profil",saving:"Enregistrement...",profileUpdated:"Profil mis a jour",failedToUpdateProfile:"Echec de la mise a jour du profil",usageBilling:"Utilisation et facturation",loadingUsage:"Chargement des donnees d'utilisation…",totalSpend:"Depenses totales",budgetLimit:"Limite de budget",budgetUsed:"Budget utilise",noUsageData:"Aucune donnee d'utilisation disponible. Le suivi de l'utilisation commence lorsque vous utilisez des instances avec l'IA de la plateforme.",failedToLoadUsage:"Echec du chargement des donnees d'utilisation",error:"Erreur : {{message}}.",changePassword:"Changer le mot de passe",currentPassword:"Mot de passe actuel",newPassword:"Nouveau mot de passe",confirmNewPassword:"Confirmer le nouveau mot de passe",changePasswordButton:"Changer le mot de passe",changingPassword:"Modification...",passwordChanged:"Mot de passe modifie avec succes",passwordTooShort:"Le nouveau mot de passe doit comporter au moins 6 caracteres",passwordsDoNotMatch:"Les mots de passe ne correspondent pas",failedToChangePassword:"Echec du changement de mot de passe"},_A={title:"Tableau de bord d'administration",loading:"Chargement...",greeting:"Bonjour, {{name}}",failedToLoad:"Echec du chargement des donnees d'administration",stats:{totalUsers:"Utilisateurs totaux",totalInstances:"Instances totales",running:"En cours d'execution",stopped:"Arretees",error:"En erreur",signups7d:"Inscriptions (7j)"},deploymentTargets:"Cibles de deploiement",platformUsage:"Utilisation de la plateforme",globalSpend:"Depenses globales",activeSpenders:"Utilisateurs actifs",usageTable:{user:"Utilisateur",email:"E-mail",spend:"Depenses",budgetLimit:"Limite de budget",setBudget:"Definir le budget"},users:{title:"Utilisateurs ({{count}})",columns:{name:"Nom",email:"E-mail",instances:"Instances",running:"En cours",joined:"Inscription"},showInstances:"Afficher",hideInstances:"Masquer",resetPwd:"Reinitialiser",loadingInstances:"Chargement des instances...",noInstances:"Aucune instance trouvee",failedToLoadInstances:"Echec du chargement des instances"},resetPassword:{title:"Reinitialiser le mot de passe",description:"Reinitialiser le mot de passe pour : {{email}}",newPasswordLabel:"Nouveau mot de passe",resetButton:"Reinitialiser le mot de passe",resetting:"Reinitialisation...",passwordTooShort:"Le mot de passe doit comporter au moins 6 caracteres",success:"Mot de passe reinitialise pour {{email}}",failed:"Echec de la reinitialisation du mot de passe"},budget:{title:"Definir la limite de budget",description:"Definir le budget mensuel pour : {{email}}",limitLabel:"Limite de budget (USD)",limitPlaceholder:"Laisser vide pour supprimer la limite",saveButton:"Enregistrer le budget",saving:"Enregistrement...",invalidBudget:"Le budget doit etre un nombre positif ou vide pour le supprimer",success:"Budget mis a jour pour {{email}}",failed:"Echec de la mise a jour du budget"}},xA={startRequired:"Demarrez l'instance pour utiliser le Chat.",emptyState:"Envoyez un message pour commencer a discuter avec l'agent.",inputPlaceholder:"Saisissez un message... (Maj+Entree pour un retour a la ligne)",settings:"Parametres",newChat:"+ Nouvelle discussion",copyMessage:"Copier le message",noResponseError:"Aucune reponse de l'agent — la connexion Gateway n'est peut-etre pas prete. Reessayez dans quelques secondes.",failedToSend:"Echec de l'envoi",chatError:"Erreur de chat",failedToUpdateSettings:"Echec de la mise a jour des parametres",sessionSettings:{modelLabel:"Modele",modelPlaceholder:"ex. claude-sonnet-4",thinkingLevelLabel:"Niveau de reflexion",thinkingLevels:{default:"Par defaut",off:"Desactive",low:"Faible",medium:"Moyen",high:"Eleve"},saving:"Enregistrement...",save:"Enregistrer"},sessionDrawer:{toggleSessions:"Sessions",sessions:"Sessions",today:"Aujourd'hui",yesterday:"Hier",thisWeek:"Cette semaine",older:"Plus ancien",newChat:"Nouvelle conversation",emptyState:"Aucune conversation",fetchError:"Échec du chargement des sessions",deleteConfirm:"Supprimer cette conversation ? Cette action est irréversible.",deleteTitle:"Supprimer la conversation",deleteCancel:"Annuler",deleting:"Suppression..."},attachments:{invalidType:"Seuls les fichiers image, Excel, Word et PDF sont pris en charge",tooLarge:"Fichier trop volumineux (images max 5 Mo, documents max 10 Mo)",maxReached:"Maximum 5 pièces jointes autorisées",dropHint:"Déposez les fichiers ici",removeAttachment:"Supprimer la pièce jointe",attachFile:"Joindre un fichier",fileTypes:{excel:"Excel",word:"Word",pdf:"PDF"}},scrollToBottom:"Aller aux derniers messages",loadingAgentUI:"Chargement de l'interface de l'agent…"},NA={unavailable:{title:"Interface de l'agent indisponible",description:"Demarrez l'instance pour acceder a l'interface de l'agent."},notSupported:{title:"Interface web non prise en charge",description:"Ce type d'agent ne prend pas en charge l'interface web integree."},loadFailed:{title:"Echec du chargement de l'interface de l'agent",description:"Le Gateway est peut-etre en cours de demarrage ou temporairement indisponible."},iframeTitle:"Interface web de l'agent"},UA={title:"Instantanes",createButton:"Creer un instantane",viewVersionHistory:"Historique des versions",creating:"Creation…",loading:"Chargement des instantanes...",noSnapshots:"Aucun instantane pour le moment. Creez-en un pour capturer l'etat actuel de la configuration.",instanceMustBeRunning:"L'instance doit etre en cours d'execution pour creer de nouveaux instantanes. Les instantanes existants peuvent toujours etre consultes et restaures.",deleteConfirm:"Supprimer cet instantane ? Cette action est irreversible.",noDescription:"Aucune description",failedToLoad:"Echec du chargement des instantanes",failedToCreate:"Echec de la creation de l'instantane",failedToDelete:"Echec de la suppression de l'instantane",failedToRestore:"Echec de la restauration de l'instantane",triggerTypes:{manual:"Manuel",preOperation:"Automatique",daily:"Quotidien"},diff:{title:"Comparaison d'instantanes",takenAt:"Pris le {{date}} · {{count}} modification",takenAt_plural:"Pris le {{date}} · {{count}} modifications",restoreButton:"Restaurer cet instantane",loadingDiff:"Chargement de la comparaison...",failedToLoadDiff:"Echec du chargement de la comparaison",noChanges:"Aucune modification — l'instantane correspond a l'etat actuel.",changeTypes:{modified:"Modifie",added:"Ajoute",removed:"Supprime",unchanged:"Inchange"},snapshotWillBeRestored:"Instantane (sera restaure)",currentWillBeRemoved:"Actuel (sera supprime)",current:"Actuel"},restore:{title:"Restaurer l'instantane",description:"Cela restaurera la configuration de l'instance a l'etat capture le {{date}}.",runningWarning:"L'instance est actuellement en cours d'execution. La restauration declenchera un rechargement a chaud ou un redemarrage.",safetySnapshot:"Un instantane de securite de l'etat actuel sera cree automatiquement avant la restauration.",loadingAffectedFiles:"Chargement des fichiers affectes...",affectedFilesTitle:"Les fichiers suivants seront affectes :",noFileChanges:"Aucune modification de fichier detectee — l'instantane correspond a l'etat actuel.",snapshotId:"ID de l'instantane :",restoreButton:"Restaurer",restoring:"Restauration…",diffBadges:{modified:"M",added:"A",removed:"S"}}},BA={title:"Taux de consommation",loading:"Chargement...",today:"Aujourd'hui",sevenDayAvg:"Moy. 7j",thirtyDayAvg:"Moy. 30j",daysUntilExhaustion:"Jours avant epuisement",daysCount:"{{count}} jours",projectedMonthly:"Projection mensuelle",trends:{fastBurn:"Consommation rapide",rising:"En hausse",steady:"Stable",cooling:"En baisse",idle:"Inactif"},notProvisioned:"Le taux de consommation sera disponible après le premier démarrage de l'instance.",noUsage:"Aucune utilisation enregistrée. Commencez à utiliser l'instance pour voir les données.",fetchError:"Impossible de charger les données de consommation. Veuillez réessayer plus tard."},IA={title:"Notifications",buttonLabel:"Notifications",buttonLabelWithCount:"Notifications ({{count}} non lues)",markAllRead:"Tout marquer comme lu",empty:"Aucune notification pour le moment",unreadBadge:"99+"},jA={groupChats:"Discussions de groupe",dashboard:"Tableau de bord",skills:"Marché des Agents",assistants:"Mes Assistants",proComingSoon:"Offre Pro bientôt disponible",billingGroup:"Facturation et Coûts",billing:"Facturation",costs:"Coûts",userGroup:"Gestion des utilisateurs",credentials:"Identifiants",account:"Compte",systemConfig:"Configuration système",communityEdition:"Edition Communautaire"},HA={providerMode:{title:"Provider Mode",platformTitle:"Platform AI",platformDesc:"Managed by the platform. No API key required. Usage tracked and billed through Platform AI.",byokTitle:"Bring Your Own Key",byokDesc:"Use your own API key. You manage billing directly with the provider.",immutableNote:"Switching provider mode requires restarting the instance to take effect.",switchConfirm:"Switching to {{mode}} mode will require an instance restart. Continue?",switchSuccess:"Provider mode updated to {{mode}}. Please restart the instance to apply changes.",switchError:"Failed to switch provider mode.",switching:"Switching...",restartNow:"Restart Now",restartLater:"Restart Later",confirmTitle:"Switch Provider Mode",confirmCancel:"Cancel",confirmOk:"Continue"},model:{title:"Model",autoTitle:"Auto (Recommended)",autoDesc:"Cost-optimized routing. The platform picks the best model based on task complexity:",autoRouting1:"Simple tasks → GPT-4o Mini ($0.15/M tokens)",autoRouting2:"Standard tasks → Claude Sonnet 4 ($3/M tokens)",autoRouting3:"Complex tasks → Claude Opus 4 ($15/M tokens)",specificTitle:"Specific Model",specificDesc:"Always use a single model for all tasks.",placeholder:"e.g. anthropic/claude-sonnet-4",providerLabel:"Provider",modelLabel:"Model",defaultSuffix:"(Default)"},save:{button:"Save AI Configuration",saving:"Saving...",success:"AI configuration saved successfully.",error:"Failed to save."},byokCredential:{label:"API Key",configured:"Configured (added {{date}})",hint:"Enter the API key for this provider to enable BYOK mode.",placeholder:"Enter API key",updatePlaceholder:"Enter new API key to replace existing",saveButton:"Save Key",updateButton:"Update Key",deleteButton:"Remove",saved:"API key saved.",saveFailed:"Failed to save API key.",deleted:"API key removed.",deleteFailed:"Failed to remove API key."},toolCredentials:{title:"Tool Credentials",description:"API keys for tools and channels (web search, Telegram, Discord, etc.). These work in both Platform AI and BYOK modes.",noCredentials:"No tool credentials configured.",required:"Required: {{count}} missing credential(s)",addButton:"Add Credential",deleteConfirm:"Delete this credential?",deleteButton:"Delete",type:"Type:",added:"Added:",selectProvider:"Select a provider...",providerName:"Provider Name",providerPlaceholder:"e.g. brave",apiKeyLabel:"API Key",apiKeyPlaceholder:"Enter API key",other:"Other...",toolsGroup:"Tools",aiProvidersGroup:"AI Providers",cancel:"Cancel",selectError:"Please select or enter a provider.",addFailed:"Failed to add credential.",deleteFailed:"Failed to delete.",loadFailed:"Failed to load credentials",loading:"Loading credentials...",salevoice:{title:"SaleVoice (Plateforme GEO)",description:"Connectez votre compte SaleVoice pour les fonctionnalités GEO. Choisissez OAuth ou entrez votre clé API.",oauthLabel:"Connexion via OAuth",oauthDescription:"Connectez-vous avec votre compte SaleVoice (recommandé)",apiKeyLabel:"Clé API",apiKeyDescription:"Entrez votre clé API SaleVoice manuellement",connectButton:"Connecter SaleVoice",connecting:"Connexion...",connected:"SaleVoice connecté",apiKeyPlaceholder:"Entrez la clé API SaleVoice",saveButton:"Enregistrer",authFailed:"Échec de l'authentification SaleVoice.",saveFailed:"Échec de l'enregistrement des identifiants SaleVoice."}}},KA={title:"Mes assistants",subtitle:"Gérez tous vos assistants IA",createNew:"Nouvel assistant",chat:"Discussion",view:"Détails",configure:"Configurer",disable:"Désactiver",enable:"Activer",model:"Modèle",emptyTitle:"Démarrage rapide",emptyDescription:"Pas encore d'assistants ? Créez votre premier assistant IA maintenant",createFirst:"Créer un assistant",loadFailed:"Échec du chargement des assistants",actionFailed:"L'action a échoué, veuillez réessayer"},qA={startRequired:"Démarrez l'instance pour voir les fichiers.",refresh:"Actualiser",emptyState:"Aucun fichier trouvé.",table:{name:"Nom",size:"Taille",type:"Type",modified:"Modifié",actions:"Actions"},actions:{view:"Voir",download:"Télécharger"},errors:{listFailed:"Échec de la liste des fichiers.",readFailed:"Échec de la lecture du fichier."},typeBadge:{excel:"Excel",word:"Word",pdf:"PDF",image:"Image",file:"Fichier"},previewNotAvailable:"Aperçu non disponible pour ce type de fichier. Utilisez le bouton Télécharger."},GA={common:PA,auth:zA,dashboard:kA,instance:LA,wizard:MA,groupChat:OA,templates:DA,profile:RA,admin:_A,chat:xA,agentUI:NA,snapshots:UA,burnRate:BA,notifications:IA,sidebar:jA,aiTab:HA,myAssistants:KA,files:qA},VA={buttons:{login:"Iniciar sesión",logout:"Cerrar sesión",signup:"Registrarse",cancel:"Cancelar",save:"Guardar",delete:"Eliminar",close:"Cerrar",back:"Atrás",next:"Siguiente",retry:"Reintentar",refresh:"Actualizar",send:"Enviar",stop:"Detener",start:"Iniciar",restart:"Reiniciar",create:"Crear",add:"Agregar",copy:"Copiar",copied:"¡Copiado!",hide:"Ocultar",show:"Mostrar",docs:"Documentación",admin:"Administración",profile:"Perfil",templates:"Plantillas",groupChats:"Chats grupales",createInstance:"Crear instancia",backToDashboard:"Volver al panel",backToInstances:"← Volver a instancias"},labels:{email:"Correo electrónico",password:"Contraseña",displayName:"Nombre para mostrar",name:"Nombre",status:"Estado",type:"Tipo",image:"Imagen",target:"Destino",created:"Creado",updated:"Actualizado",provider:"Proveedor",model:"Modelo",loading:"Cargando...",or:"o",to:"a",and:"y",of:"de",by:"Por",none:"Ninguno"},status:{created:"creado",starting:"iniciando",running:"en ejecución",stopping:"deteniendo",stopped:"detenido",error:"error",healthy:"Saludable",unhealthy:"No saludable"},errors:{generic:"Ocurrió un error",failedToLoad:"Error al cargar",actionFailed:"La acción falló",deleteFailed:"Error al eliminar"},time:{justNow:"justo ahora",minutesAgo:"hace {{count}}m",hoursAgo:"hace {{count}}h",daysAgo:"hace {{count}}d"},pagination:{previous:"← Anterior",next:"Siguiente →",pageOf:"Página {{page}} de {{totalPages}}"},comingSoon:"Próximamente"},FA={login:{title:"Iniciar sesión",emailLabel:"Correo electrónico",passwordLabel:"Contraseña",submitButton:"Iniciar sesión",noAccount:"¿No tiene una cuenta?",signupLink:"Registrarse",docsLink:"Documentación e información",welcome:"Bienvenido de nuevo",subtitle:"Inicia sesión para continuar con Aquarium",emailPlaceholder:"Introduce tu correo",passwordPlaceholder:"Introduce tu contraseña",forgotPassword:"¿Olvidaste tu contraseña?"},signup:{title:"Registrarse",displayNameLabel:"Nombre para mostrar",emailLabel:"Correo electrónico",passwordLabel:"Contraseña",submitButton:"Registrarse",hasAccount:"¿Ya tiene una cuenta?",loginLink:"Iniciar sesión",docsLink:"Documentación e información",welcome:"Crear cuenta",subtitle:"Regístrate para empezar con Aquarium",displayNamePlaceholder:"Introduce tu nombre",emailPlaceholder:"Introduce tu correo",passwordPlaceholder:"Introduce tu contraseña"},errors:{generic:"Ocurrió un error"},showPassword:"Mostrar contraseña",hidePassword:"Ocultar contraseña"},YA={title:"Instancias",greeting:"Hola, {{name}}",loading:"Cargando...",noInstances:"Aún no hay instancias. Cree una para comenzar.",platformUsage:"Uso de la plataforma",totalSpend:"gasto total",budget:"de ${{amount}} de presupuesto",instanceCard:{type:"Tipo: {{type}}",image:"Imagen: {{image}}",created:"Creado: {{date}}"},quickStart:{title:"Inicio rápido",description:"¿Nuevo en asistentes IA? Despliega uno en segundos",button:"Crear nuevo asistente"},kpi:{activeAssistants:"Asistentes activos",messageGroups:"Grupos de mensajes",todaySpend:"Gasto de hoy",apiCalls:"Llamadas API"},chart:{title:"Tendencias de uso",subtitle:"Llamadas API en los últimos 14 días",noData:"Aún no hay datos de uso",trendLabel:"vs semana pasada"},activity:{title:"Actividad reciente",noActivity:"Sin actividad reciente",emptyGuide:"Aún no hay actividad — crea tu primer asistente para empezar",timeJustNow:"Ahora mismo",timeMinutesAgo:"Hace {{count}} min",timeHoursAgo:"Hace {{count}} h",timeDaysAgo:"Hace {{count}} d",event:{created:"{{name}} fue creado",started:"{{name}} se inició",stopped:"{{name}} se detuvo",deleted:"{{name}} fue eliminado",purged:"{{name}} fue purgado",cloned:"{{name}} fue clonado",CHAT_MESSAGE:"{{name}} recibió un mensaje",BUDGET_EXHAUSTED:"{{name}} presupuesto agotado",BUDGET_CRITICAL:"{{name}} presupuesto crítico",BUDGET_WARNING:"{{name}} alerta de presupuesto"}}},WA={loading:"Cargando...",notFound:"Instancia no encontrada",deleteConfirm:"¿Eliminar esta instancia? Esta acción no se puede deshacer.",backToDashboard:"← Panel",statusBar:{status:"Estado:",type:"Tipo: {{type}}",image:"Imagen: {{tag}}",target:"Destino: {{target}}"},tabs:{overview:"General",credentials:"Credenciales",chat:"Chat",health:"Salud",agentManagement:"Gestión de agentes",groupChats:"Chats grupales",usage:"Uso",snapshots:"Instantáneas",logs:"Registros",events:"Eventos",settings:"Configuración",files:"Archivos",security:"Seguridad",more:"Más"},overview:{title:"Detalles de la instancia",start:"Iniciar",starting:"Iniciando…",stop:"Detener",stopping:"Deteniendo…",restart:"Reiniciar",restarting:"Reiniciando…",fields:{id:"ID",name:"Nombre",agentType:"Tipo de agente",imageTag:"Etiqueta de imagen",status:"Estado",deployment:"Despliegue",aiProvider:"Proveedor de IA",defaultModel:"Modelo predeterminado",created:"Creado",updated:"Actualizado"},oauthAuthenticated:"{{provider}} autenticado",setupRequired:"Configuración requerida: Autenticar {{provider}}",setupRequiredDescription:"Esta instancia utiliza {{provider}} como proveedor de IA. Complete el flujo OAuth a continuación para conectar su cuenta.",platformAI:"IA de la plataforma"},credentials:{title:"Credenciales",loading:"Cargando credenciales...",noCredentials:"No hay credenciales configuradas.",addCredential:"Agregar credencial",deleteConfirm:"¿Eliminar esta credencial?",providerLabel:"Proveedor",selectProvider:"Seleccione un proveedor...",otherProvider:"Otro...",providerNameLabel:"Nombre del proveedor",providerNamePlaceholder:"p. ej. fal_ai, elevenlabs, replicate",authMethodLabel:"Método de autenticación",apiKeyOption:"API Key",oauthOption:"OAuth",apiKeyLabel:"API Key",apiKeyPlaceholder:"Ingrese su API Key",typeLabel:"Tipo: {{type}}",addedLabel:"Agregado: {{date}}",selectOrEnterProvider:"Seleccione o ingrese un proveedor",templateChecklist:{requiredByTemplate:"{{count}} credencial requerida por la plantilla",requiredByTemplate_plural:"{{count}} credenciales requeridas por la plantilla",allConfigured:"Todas las credenciales de la plantilla configuradas",addNow:"Agregar ahora"}},health:{title:"Salud y estado",loading:"Cargando datos de salud...",startRequired:"Inicie la instancia para ver el estado de salud.",statusLabel:"Estado",uptimeLabel:"Tiempo de actividad",versionLabel:"Versión",availableModels:"Modelos disponibles",modelColumn:"Modelo",providerColumn:"Proveedor",healthyStatus:"● Saludable",unhealthyStatus:"● No saludable"},groupChats:{description:"Gestione los chats grupales que incluyen esta instancia.",viewAll:"Ver todos los chats grupales →"},logs:{filterPlaceholder:"Filtrar registros...",autoFollow:"Seguimiento automático",startRequired:"Inicie la instancia para ver los registros.",noEntries:"No hay entradas de registro.",truncated:"Salida de registro truncada; mostrando el fragmento más reciente.",levels:{trace:"trace",debug:"debug",info:"info",warn:"warn",error:"error",fatal:"fatal"}},events:{title:"Eventos",loading:"Cargando eventos...",noEvents:"No hay eventos registrados.",columns:{time:"Hora",event:"Evento",details:"Detalles"}},settings:{aiConfiguration:"Configuración de IA",providerLabel:"Proveedor",modelLabel:"Modelo",modelPlaceholder:"p. ej., gpt-4o-mini",saveButton:"Guardar configuración de IA",saving:"Guardando...",saveSuccess:"Configuración de IA actualizada. Reinicie la instancia para aplicar los cambios.",saveError:"Error al actualizar la configuración",defaultSuffix:"(Predeterminado)",dangerZone:"Zona de peligro",deleteInstance:"Eliminar instancia"},usage:{title:"Uso y costo",loading:"Cargando datos de uso...",loadingPlatformSpend:"Cargando gasto de la plataforma...",startRequired:"Inicie la instancia para ver los datos de uso por sesión.",noData:"Aún no hay datos de uso disponibles.",byokMessage:"Esta instancia utiliza sus propias API Keys. El uso es rastreado directamente por el proveedor.",dateRangeTo:"a",platformSpend:"Gasto de la plataforma",totalSpend:"Gasto total",budgetLimit:"Límite de presupuesto",used:"{{amount}} utilizado",limit:"{{amount}} límite",totalTokens:"Tokens totales",totalCost:"Costo total",messages:"Mensajes",toolCalls:"Llamadas a herramientas",dailyTokens:"Tokens diarios",dailyCost:"Costo diario",byModel:"Por modelo",topTools:"Herramientas principales",tokenBreakdown:"Desglose de tokens",columns:{model:"Modelo",provider:"Proveedor",requests:"Solicitudes",tokens:"Tokens",cost:"Costo",spend:"Gasto",tool:"Herramienta",calls:"Llamadas",category:"Categoría"},tokenCategories:{input:"Entrada",output:"Salida",cacheRead:"Lectura de caché",cacheWrite:"Escritura de caché"}},oauth:{github:{title:"Autenticación de GitHub Copilot",description:"Esto abrirá GitHub en una nueva pestaña. Ingresará un código para autorizar el acceso.",authenticateButton:"Autenticar con GitHub",startingButton:"Iniciando...",step1:"Paso 1:",step1Text:"Copie este código:",step2:"Paso 2:",step2Text:"Péguelo en GitHub (abierto automáticamente):",step3:"Paso 3:",step3Text:'Haga clic en "Autorizar" en GitHub, luego espere aquí.',openAgain:"Abrir de nuevo",waitingForAuth:"Esperando autorización...",copiedCode:"✓ Copiado",failedToStart:"Error al iniciar el flujo OAuth",pollingFailed:"Error en la consulta",oauthError:"Error de OAuth: {{status}}"},openai:{title:"Autenticación de OpenAI",description:"Esto abrirá OpenAI en una nueva pestaña. Ingresará un código para autorizar el acceso a Codex.",authenticateButton:"Autenticar con OpenAI",startingButton:"Iniciando...",step1:"Paso 1:",step1Text:"Copie este código:",step2:"Paso 2:",step2Text:"Péguelo en OpenAI (abierto automáticamente):",step3:"Paso 3:",step3Text:"Autorice en OpenAI, luego espere aquí.",openAgain:"Abrir de nuevo",waitingForAuth:"Esperando autorización...",copiedCode:"✓ Copiado",failedToStart:"Error al iniciar el flujo OAuth de OpenAI",pollingFailed:"Error en la consulta",oauthError:"Error de OAuth: {{status}}"},google:{title:"Autenticación de Google",description:"Esto le redirigirá a Google para autorizar el acceso. Volverá aquí después de la autorización.",authenticateButton:"Autenticar con Google",redirectingButton:"Redirigiendo...",failedToStart:"Error al iniciar el flujo OAuth de Google"}}},$A={title:"Crear instancia",steps:{agentType:"Tipo de agente",provider:"Proveedor de IA",model:"Modelo",channels:"Canales",name:"Nombre",review:"Revisión"},agentType:{title:"Elija un tipo de agente",description:"Cada tipo de agente tiene un conjunto diferente de capacidades e integraciones.",loading:"Cargando tipos de agente…",capabilities:{webUI:"Interfaz web",channels:"Canales",rpc:"RPC"}},provider:{title:"Elija un proveedor de IA",titleNoProviders:"Proveedor de IA",description:"Seleccione el proveedor de IA que impulsará su agente.",noConfigRequired:"Este tipo de agente no requiere configuración de proveedor.",platformAI:"Usar IA de la plataforma",platformAIDescription:"No se necesita API Key — facturación basada en uso",modelCount:"{{count}} modelo — traiga su propia clave",modelCount_plural:"{{count}} modelos — traiga su propia clave"},model:{title:"Modelo",chooseTitle:"Elija un modelo",selectProviderFirst:"Seleccione un proveedor primero para elegir un modelo.",platformBanner:"Usando IA de la plataforma — no se requiere API Key. El uso será rastreado y facturado a través de la plataforma.",selectModelFrom:"Seleccione el modelo de {{provider}} a utilizar.",apiKeyLabel:"API Key",apiKeyRequired:"*",apiKeyPlaceholder:"Su API Key de {{provider}}",apiKeyHint:"Su clave se almacena cifrada y nunca se comparte.",defaultBadge:"Predeterminado",defaultModel:"Modelo predeterminado: {{model}}",autoSelected:"seleccionado automáticamente por la plataforma"},channels:{title:"Canales",messagingTitle:"Canales de mensajería",description:"Habilite los canales de mensajería que desea que su agente utilice. Puede configurarlos después de la creación.",notSupported:"Este tipo de agente no admite canales de mensajería.",configureLater:"Puede conectar canales más adelante desde la configuración de la instancia.",whatsapp:"WhatsApp",whatsappDescription:"Requiere escaneo de código QR después de iniciar la instancia",telegram:"Telegram",telegramDescription:"Requiere un token de bot de Telegram de @BotFather"},name:{title:"Nombre de la instancia",description:"Dé a su instancia de agente un nombre memorable.",label:"Nombre de la instancia",placeholder:"p. ej. Mi asistente personal"},review:{title:"Revisar y crear",description:"Revise su configuración antes de crear la instancia.",fields:{agentType:"Tipo de agente",billingMode:"Modo de facturación",billingPlatform:"IA de la plataforma",billingBYOK:"Traiga su propia clave (BYOK)",provider:"Proveedor",model:"Modelo",apiKey:"API Key",apiKeyMasked:"••••••••",apiKeyNone:"(ninguna)",whatsapp:"WhatsApp",telegram:"Telegram",enabled:"Habilitado",disabled:"Deshabilitado",instanceName:"Nombre de la instancia"}},navigation:{back:"Atrás",next:"Siguiente",creating:"Creando…",createInstance:"Crear instancia"},confirm:{title:"Confirm configuration",subtitle:"Review your settings before finishing.",nameLabel:"Assistant Name",principlesLabel:"Behavior Principles",principlesDefault:"Using default configuration",identityLabel:"Identity Description",nameSection:"Name",principlesSection:"Principles",principlesEmpty:"Using defaults",viewAll:"View all",credentialSection:"AI Source",platformTitle:"Platform Managed Credentials",platformDesc:"No API key needed. Usage-based billing.",byokTitle:"Bring Your Own Key (BYOK)",byokDesc:"Use your own API key.",credInfoTitle:"Platform Credentials",credInfoReady:"Ready",platformCredInfo:"Platform Credentials",platformCredBadge:"Ready",credName:"Credential Name",credProvider:"Provider",credModel:"Model",credBalance:"Balance",credInfoName:"Credential Name",credInfoProvider:"Provider",credInfoModel:"Model",credInfoBalance:"Balance",byokProvider:"Select provider",byokProviderPlaceholder:"Select a provider...",byokModelCount:"{{count}} models",byokApiKey:"API Key",byokApiKeyPlaceholder:"Enter your API key",byokModelLabel:"Model (optional)",byokModelPlaceholder:"Auto-detect by provider",modelLabel:"Model",modelsLoading:"Loading available models...",modelSearchPlaceholder:"Search models...",modelAuto:"Automatic",modelAutoDesc:"Platform selects the best model",modelRecommended:"Recommended",contextLabel:"Context Length",contextHint:"Affects the number of conversation turns the assistant remembers",tempLabel:"Creativity (Temperature)",tempHint:"Higher values produce more creative responses",tempCurrent:"Current value:",temperatureCurrent:"Current value:",temp_work:"Work",temp_work_sub:"Precise & stable",temp_life:"Life",temp_life_sub:"Natural & fluid",temp_creative:"Creative",temp_creative_sub:"Wild & imaginative",modelSection:"Model Configuration",model:"Model",context:"Context",temperature:"Temperature"},errors:{failedToCreate:"Error al crear la instancia"}},ZA={list:{title:"Chats grupales",loading:"Cargando...",noChats:"Aún no hay chats grupales. Cree uno para empezar a chatear con sus bots.",createButton:"Crear chat grupal",memberCount:"{{count}} miembros",created:"Creado: {{date}}",mode:"Modo: {{mode}}"},create:{title:"Crear nuevo chat grupal",chatNameLabel:"Nombre del chat",chatNamePlaceholder:"p. ej., Sesión de lluvia de ideas",selectInstances:"Seleccionar instancias",noInstances:"No hay instancias disponibles. Cree instancias primero.",displayNameInChat:"Nombre en el chat:",roleLabel:"Rol (opcional):",rolePlaceholder:"p. ej., Diseñador de producto con 10 años de experiencia",inviteHumans:"Invitar miembros humanos (opcional)",searchByEmail:"Buscar por correo electrónico...",searching:"Buscando...",selectedHumans:"Humanos seleccionados:",removeHuman:"Eliminar {{name}}",preview:"{{name}} — Vista previa",untitledChat:"Chat sin título",selectAtLeastOne:"Seleccione al menos una instancia",creating:"Creando...",createAndInvite:"Crear e invitar",createGroupChat:"Crear chat grupal",failedToCreate:"Error al crear el chat grupal",failedToLoadGroupChats:"Error al cargar los chats grupales"},detail:{loadingChat:"Cargando chat...",chatNotFound:"Chat no encontrado",deleteChat:"Eliminar chat",deleteChatConfirm:"¿Eliminar este chat grupal? Esta acción no se puede deshacer.",loadOlderMessages:"Cargar mensajes anteriores",loadingMessages:"Cargando...",failedToLoadChat:"Error al cargar el chat",failedToLoadOlderMessages:"Error al cargar mensajes anteriores",failedToSendMessage:"Error al enviar el mensaje",failedToAddMember:"Error al agregar miembro",failedToRemoveMember:"Error al eliminar miembro",failedToUpdateMember:"Error al actualizar miembro",removeMemberConfirm:"¿Está seguro de que desea eliminar a este miembro?",messagePlaceholder:"Escriba un mensaje... Use @ para mencionar bots",senderYou:"Usted",senderUnknown:"Desconocido",typeBadgeHuman:"Humano",typeBadgeBot:"Bot"},members:{title:"Miembros",addButton:"Agregar miembro",addTitle:"Agregar miembro",editTitle:"Editar",removeTitle:"Eliminar",tabBot:"Instancia bot",tabHuman:"Usuario humano",selectInstance:"Seleccionar instancia",selectInstancePlaceholder:"Seleccione una instancia...",searchUserByEmail:"Buscar usuario por correo electrónico",searchPlaceholder:"buscar@ejemplo.com",displayNameLabel:"Nombre para mostrar",displayNamePlaceholderBot:"Nombre del bot",displayNamePlaceholderHuman:"Nombre para mostrar",roleLabel:"Rol (opcional)",rolePlaceholder:"p. ej. Moderador, Ayudante",adding:"Agregando...",addMember:"Agregar miembro",save:"Guardar",cancel:"Cancelar"},delivery:{pending:"✓",delivered:"✓✓",processing:"⚡",completed:"✅",error:"❌"}},QA={title:"Galería de plantillas",loading:"Cargando...",searchPlaceholder:"Buscar plantillas... (presione Enter)",noTemplates:"Aún no hay plantillas disponibles.",officialTab:"Plantillas oficiales",communityTab:"Comunidad",officialBadge:"Oficial",useTemplate:"Usar plantilla",installs:"{{count}} instalaciones",forks:"{{count}} bifurcaciones",version:"v{{version}}",requires:"Requiere: {{providers}}",categories:{all:"Todas las categorías",customerService:"Atención al cliente",sales:"Ventas",marketing:"Marketing",devops:"DevOps",education:"Educación",personal:"Personal",custom:"Personalizado"},instantiate:{title:"Crear desde plantilla",templateLabel:"Plantilla: {{name}} v{{version}}",credentialsRequired:"Esta plantilla requiere credenciales para: {{credentials}}. Puede configurarlas en la página de la instancia después de la creación.",instanceNameLabel:"Nombre de la instancia",billingModeLabel:"Modo de facturación LLM",platformProvided:"Proporcionado por la plataforma",platformDescription:"Usar LLM de la plataforma — no se necesita API Key",bringYourOwnKey:"Traiga su propia clave (BYOK)",byokDescription:"Use sus propias API Keys para acceso LLM",creating:"Creando...",createButton:"Crear desde plantilla",failedToCreate:"Error al crear la instancia",failedToLoad:"Error al cargar las plantillas",geoCredentialLabel:"Credenciales de la plataforma GEO",geoCredentialDescription:"Conéctese a SaleVoice para habilitar el monitoreo GEO de su marca.",geoOAuthLabel:"Conectar con SaleVoice",geoOAuthDescription:"Inicie sesión en su cuenta de SaleVoice",geoApiKeyLabel:"Clave API",geoApiKeyDescription:"Pegue su token de API de SaleVoice",geoConnectButton:"Conectar con SaleVoice →",geoConnecting:"Conectando...",geoConnected:"Conectado a SaleVoice",geoApiKeyPlaceholder:"geo_xxxxxxxxxxxxx",geoSaveButton:"Guardar",geoAuthFailed:"Error al iniciar la autenticación de SaleVoice",geoSaveFailed:"Error al guardar la clave API",geoRequired:"Conecte SaleVoice antes de crear la instancia"}},XA={title:"Perfil",accountInfo:"Información de la cuenta",emailLabel:"Correo electrónico",memberSince:"Miembro desde",userId:"ID de usuario",displayNameLabel:"Nombre para mostrar",updateProfile:"Actualizar perfil",saving:"Guardando...",profileUpdated:"Perfil actualizado",failedToUpdateProfile:"Error al actualizar el perfil",usageBilling:"Uso y facturación",loadingUsage:"Cargando datos de uso…",totalSpend:"Gasto total",budgetLimit:"Límite de presupuesto",budgetUsed:"Presupuesto utilizado",noUsageData:"No hay datos de uso disponibles. El seguimiento de uso comienza cuando utiliza instancias con IA de la plataforma.",failedToLoadUsage:"Error al cargar los datos de uso",error:"Error: {{message}}.",changePassword:"Cambiar contraseña",currentPassword:"Contraseña actual",newPassword:"Nueva contraseña",confirmNewPassword:"Confirmar nueva contraseña",changePasswordButton:"Cambiar contraseña",changingPassword:"Cambiando...",passwordChanged:"Contraseña cambiada exitosamente",passwordTooShort:"La nueva contraseña debe tener al menos 6 caracteres",passwordsDoNotMatch:"Las contraseñas no coinciden",failedToChangePassword:"Error al cambiar la contraseña"},JA={title:"Panel de administración",loading:"Cargando...",greeting:"Hola, {{name}}",failedToLoad:"Error al cargar los datos de administración",stats:{totalUsers:"Usuarios totales",totalInstances:"Instancias totales",running:"En ejecución",stopped:"Detenidas",error:"Error",signups7d:"Registros (7d)"},deploymentTargets:"Destinos de despliegue",platformUsage:"Uso de la plataforma",globalSpend:"Gasto global",activeSpenders:"Usuarios con gasto activo",usageTable:{user:"Usuario",email:"Correo electrónico",spend:"Gasto",budgetLimit:"Límite de presupuesto",setBudget:"Establecer presupuesto"},users:{title:"Usuarios ({{count}})",columns:{name:"Nombre",email:"Correo electrónico",instances:"Instancias",running:"En ejecución",joined:"Registro"},showInstances:"Mostrar",hideInstances:"Ocultar",resetPwd:"Restablecer contraseña",loadingInstances:"Cargando instancias...",noInstances:"No se encontraron instancias",failedToLoadInstances:"Error al cargar las instancias"},resetPassword:{title:"Restablecer contraseña",description:"Restablecer contraseña para: {{email}}",newPasswordLabel:"Nueva contraseña",resetButton:"Restablecer contraseña",resetting:"Restableciendo...",passwordTooShort:"La contraseña debe tener al menos 6 caracteres",success:"Contraseña restablecida para {{email}}",failed:"Error al restablecer la contraseña"},budget:{title:"Establecer límite de presupuesto",description:"Establecer presupuesto mensual para: {{email}}",limitLabel:"Límite de presupuesto (USD)",limitPlaceholder:"Deje vacío para eliminar el límite",saveButton:"Guardar presupuesto",saving:"Guardando...",invalidBudget:"El presupuesto debe ser un número positivo o vacío para eliminar",success:"Presupuesto actualizado para {{email}}",failed:"Error al actualizar el presupuesto"}},eE={startRequired:"Inicie la instancia para usar el Chat.",emptyState:"Envíe un mensaje para comenzar a chatear con el agente.",inputPlaceholder:"Escriba un mensaje... (Shift+Enter para nueva línea)",settings:"Configuración",newChat:"+ Nuevo chat",copyMessage:"Copiar mensaje",noResponseError:"Sin respuesta del agente — la conexión con el Gateway puede no estar lista. Intente de nuevo en unos segundos.",failedToSend:"Error al enviar",chatError:"Error de chat",failedToUpdateSettings:"Error al actualizar la configuración",sessionSettings:{modelLabel:"Modelo",modelPlaceholder:"p. ej. claude-sonnet-4",thinkingLevelLabel:"Nivel de razonamiento",thinkingLevels:{default:"Predeterminado",off:"Desactivado",low:"Bajo",medium:"Medio",high:"Alto"},saving:"Guardando...",save:"Guardar"},sessionDrawer:{toggleSessions:"Sesiones",sessions:"Sesiones",today:"Hoy",yesterday:"Ayer",thisWeek:"Esta semana",older:"Anteriores",newChat:"Nueva conversación",emptyState:"Sin conversaciones aún",fetchError:"Error al cargar sesiones",deleteConfirm:"¿Eliminar esta conversación? Esta acción no se puede deshacer.",deleteTitle:"Eliminar conversación",deleteCancel:"Cancelar",deleting:"Eliminando..."},attachments:{invalidType:"Solo se admiten archivos de imagen, Excel, Word y PDF",tooLarge:"Archivo demasiado grande (imágenes máx. 5 MB, documentos máx. 10 MB)",maxReached:"Máximo 5 archivos adjuntos permitidos",dropHint:"Suelta los archivos aquí",removeAttachment:"Eliminar archivo adjunto",attachFile:"Adjuntar archivo",fileTypes:{excel:"Excel",word:"Word",pdf:"PDF"}},scrollToBottom:"Ir a los últimos mensajes",loadingAgentUI:"Cargando interfaz del agente…"},tE={unavailable:{title:"Interfaz del agente no disponible",description:"Inicie la instancia para acceder a la interfaz del agente."},notSupported:{title:"Interfaz web no compatible",description:"Este tipo de agente no admite interfaz web integrada."},loadFailed:{title:"Error al cargar la interfaz del agente",description:"El Gateway puede estar iniciándose o temporalmente no disponible."},iframeTitle:"Interfaz web del agente"},aE={title:"Instantáneas",createButton:"Crear instantánea",viewVersionHistory:"Historial de versiones",creating:"Creando…",loading:"Cargando instantáneas...",noSnapshots:"Aún no hay instantáneas. Cree una para capturar el estado actual de la configuración.",instanceMustBeRunning:"La instancia debe estar en ejecución para crear nuevas instantáneas. Las instantáneas existentes aún pueden ser vistas y restauradas.",deleteConfirm:"¿Eliminar esta instantánea? Esta acción no se puede deshacer.",noDescription:"Sin descripción",failedToLoad:"Error al cargar las instantáneas",failedToCreate:"Error al crear la instantánea",failedToDelete:"Error al eliminar la instantánea",failedToRestore:"Error al restaurar la instantánea",triggerTypes:{manual:"Manual",preOperation:"Automático",daily:"Diario"},diff:{title:"Diferencias de la instantánea",takenAt:"Tomada {{date}} · {{count}} cambio",takenAt_plural:"Tomada {{date}} · {{count}} cambios",restoreButton:"Restaurar esta instantánea",loadingDiff:"Cargando diferencias...",failedToLoadDiff:"Error al cargar las diferencias",noChanges:"Sin cambios — la instantánea coincide con el estado actual.",changeTypes:{modified:"Modificado",added:"Agregado",removed:"Eliminado",unchanged:"Sin cambios"},snapshotWillBeRestored:"Instantánea (se restaurará)",currentWillBeRemoved:"Actual (se eliminará)",current:"Actual"},restore:{title:"Restaurar instantánea",description:"Esto restaurará la configuración de la instancia al estado capturado el {{date}}.",runningWarning:"La instancia está actualmente en ejecución. La restauración activará una recarga en caliente o un reinicio.",safetySnapshot:"Se creará automáticamente una instantánea de seguridad del estado actual antes de restaurar.",loadingAffectedFiles:"Cargando archivos afectados...",affectedFilesTitle:"Los siguientes archivos se verán afectados:",noFileChanges:"No se detectaron cambios en archivos — la instantánea coincide con el estado actual.",snapshotId:"ID de instantánea:",restoreButton:"Restaurar",restoring:"Restaurando…",diffBadges:{modified:"M",added:"A",removed:"R"}}},nE={title:"Tasa de consumo",loading:"Cargando...",today:"Hoy",sevenDayAvg:"Prom. 7d",thirtyDayAvg:"Prom. 30d",daysUntilExhaustion:"Días hasta agotamiento",daysCount:"{{count}} días",projectedMonthly:"Proyección mensual",trends:{fastBurn:"Consumo rápido",rising:"En aumento",steady:"Estable",cooling:"En descenso",idle:"Inactivo"},notProvisioned:"La tasa de consumo estará disponible después del primer inicio de la instancia.",noUsage:"Aún no hay registros de uso. Comience a usar la instancia para ver los datos.",fetchError:"No se pudieron cargar los datos de consumo. Inténtelo de nuevo más tarde."},iE={title:"Notificaciones",buttonLabel:"Notificaciones",buttonLabelWithCount:"Notificaciones ({{count}} sin leer)",markAllRead:"Marcar todo como leído",empty:"Aún no hay notificaciones",unreadBadge:"99+"},lE={groupChats:"Chats grupales",dashboard:"Panel",skills:"Mercado de Agentes",assistants:"Mis Asistentes",proComingSoon:"Plan Pro próximamente",billingGroup:"Facturación y Costos",billing:"Facturación",costs:"Costos",userGroup:"Gestión de usuarios",credentials:"Credenciales",account:"Cuenta",systemConfig:"Configuración del sistema",communityEdition:"Edicion Comunitaria"},oE={providerMode:{title:"Provider Mode",platformTitle:"Platform AI",platformDesc:"Managed by the platform. No API key required. Usage tracked and billed through Platform AI.",byokTitle:"Bring Your Own Key",byokDesc:"Use your own API key. You manage billing directly with the provider.",immutableNote:"Switching provider mode requires restarting the instance to take effect.",switchConfirm:"Switching to {{mode}} mode will require an instance restart. Continue?",switchSuccess:"Provider mode updated to {{mode}}. Please restart the instance to apply changes.",switchError:"Failed to switch provider mode.",switching:"Switching...",restartNow:"Restart Now",restartLater:"Restart Later",confirmTitle:"Switch Provider Mode",confirmCancel:"Cancel",confirmOk:"Continue"},model:{title:"Model",autoTitle:"Auto (Recommended)",autoDesc:"Cost-optimized routing. The platform picks the best model based on task complexity:",autoRouting1:"Simple tasks → GPT-4o Mini ($0.15/M tokens)",autoRouting2:"Standard tasks → Claude Sonnet 4 ($3/M tokens)",autoRouting3:"Complex tasks → Claude Opus 4 ($15/M tokens)",specificTitle:"Specific Model",specificDesc:"Always use a single model for all tasks.",placeholder:"e.g. anthropic/claude-sonnet-4",providerLabel:"Provider",modelLabel:"Model",defaultSuffix:"(Default)"},save:{button:"Save AI Configuration",saving:"Saving...",success:"AI configuration saved successfully.",error:"Failed to save."},byokCredential:{label:"API Key",configured:"Configured (added {{date}})",hint:"Enter the API key for this provider to enable BYOK mode.",placeholder:"Enter API key",updatePlaceholder:"Enter new API key to replace existing",saveButton:"Save Key",updateButton:"Update Key",deleteButton:"Remove",saved:"API key saved.",saveFailed:"Failed to save API key.",deleted:"API key removed.",deleteFailed:"Failed to remove API key."},toolCredentials:{title:"Tool Credentials",description:"API keys for tools and channels (web search, Telegram, Discord, etc.). These work in both Platform AI and BYOK modes.",noCredentials:"No tool credentials configured.",required:"Required: {{count}} missing credential(s)",addButton:"Add Credential",deleteConfirm:"Delete this credential?",deleteButton:"Delete",type:"Type:",added:"Added:",selectProvider:"Select a provider...",providerName:"Provider Name",providerPlaceholder:"e.g. brave",apiKeyLabel:"API Key",apiKeyPlaceholder:"Enter API key",other:"Other...",toolsGroup:"Tools",aiProvidersGroup:"AI Providers",cancel:"Cancel",selectError:"Please select or enter a provider.",addFailed:"Failed to add credential.",deleteFailed:"Failed to delete.",loadFailed:"Failed to load credentials",loading:"Loading credentials...",salevoice:{title:"SaleVoice (Plataforma GEO)",description:"Conecte su cuenta SaleVoice para las funcionalidades GEO. Elija OAuth o introduzca su clave API.",oauthLabel:"Conectar vía OAuth",oauthDescription:"Inicie sesión con su cuenta SaleVoice (recomendado)",apiKeyLabel:"Clave API",apiKeyDescription:"Introduzca su clave API de SaleVoice manualmente",connectButton:"Conectar SaleVoice",connecting:"Conectando...",connected:"SaleVoice conectado",apiKeyPlaceholder:"Introduzca la clave API de SaleVoice",saveButton:"Guardar",authFailed:"Error de autenticación de SaleVoice.",saveFailed:"Error al guardar las credenciales de SaleVoice."}}},rE={title:"Mis asistentes",subtitle:"Gestione todos sus asistentes de IA",createNew:"Nuevo asistente",chat:"Chat",view:"Detalles",configure:"Configurar",disable:"Desactivar",enable:"Activar",model:"Modelo",emptyTitle:"Inicio rápido",emptyDescription:"¿Aún no tiene asistentes? Cree su primer asistente de IA ahora",createFirst:"Crear asistente",loadFailed:"Error al cargar los asistentes",actionFailed:"La acción falló, inténtelo de nuevo"},sE={startRequired:"Inicie la instancia para ver los archivos.",refresh:"Actualizar",emptyState:"No se encontraron archivos.",table:{name:"Nombre",size:"Tamaño",type:"Tipo",modified:"Modificado",actions:"Acciones"},actions:{view:"Ver",download:"Descargar"},errors:{listFailed:"Error al listar archivos.",readFailed:"Error al leer el archivo."},typeBadge:{excel:"Excel",word:"Word",pdf:"PDF",image:"Imagen",file:"Archivo"},previewNotAvailable:"Vista previa no disponible para este tipo de archivo. Usa el botón Descargar."},uE={common:VA,auth:FA,dashboard:YA,instance:WA,wizard:$A,groupChat:ZA,templates:QA,profile:XA,admin:JA,chat:eE,agentUI:tE,snapshots:aE,burnRate:nE,notifications:iE,sidebar:lE,aiTab:oE,myAssistants:rE,files:sE},cE={buttons:{login:"Anmelden",logout:"Abmelden",signup:"Registrieren",cancel:"Abbrechen",save:"Speichern",delete:"Löschen",close:"Schließen",back:"Zurück",next:"Weiter",retry:"Erneut versuchen",refresh:"Aktualisieren",send:"Senden",stop:"Stoppen",start:"Starten",restart:"Neustarten",create:"Erstellen",add:"Hinzufügen",copy:"Kopieren",copied:"Kopiert!",hide:"Ausblenden",show:"Einblenden",docs:"Dokumentation",admin:"Administration",profile:"Profil",templates:"Vorlagen",groupChats:"Gruppenchats",createInstance:"Instanz erstellen",backToDashboard:"Zurück zum Dashboard",backToInstances:"← Zurück zu Instanzen"},labels:{email:"E-Mail",password:"Passwort",displayName:"Anzeigename",name:"Name",status:"Status",type:"Typ",image:"Image",target:"Ziel",created:"Erstellt",updated:"Aktualisiert",provider:"Anbieter",model:"Modell",loading:"Wird geladen...",or:"oder",to:"bis",and:"und",of:"von",by:"Von",none:"Keine"},status:{created:"Erstellt",starting:"Wird gestartet",running:"Läuft",stopping:"Wird gestoppt",stopped:"Gestoppt",error:"Fehler",healthy:"Fehlerfrei",unhealthy:"Fehlerhaft"},errors:{generic:"Ein Fehler ist aufgetreten",failedToLoad:"Laden fehlgeschlagen",actionFailed:"Aktion fehlgeschlagen",deleteFailed:"Löschen fehlgeschlagen"},time:{justNow:"gerade eben",minutesAgo:"vor {{count}} Min.",hoursAgo:"vor {{count}} Std.",daysAgo:"vor {{count}} T."},pagination:{previous:"← Zurück",next:"Weiter →",pageOf:"Seite {{page}} von {{totalPages}}"},comingSoon:"Demnächst verfügbar"},dE={login:{title:"Anmelden",emailLabel:"E-Mail",passwordLabel:"Passwort",submitButton:"Anmelden",noAccount:"Noch kein Konto?",signupLink:"Registrieren",docsLink:"Dokumentation & Info",welcome:"Willkommen zurück",subtitle:"Anmelden um mit Aquarium fortzufahren",emailPlaceholder:"E-Mail eingeben",passwordPlaceholder:"Passwort eingeben",forgotPassword:"Passwort vergessen?"},signup:{title:"Registrieren",displayNameLabel:"Anzeigename",emailLabel:"E-Mail",passwordLabel:"Passwort",submitButton:"Registrieren",hasAccount:"Bereits ein Konto?",loginLink:"Anmelden",docsLink:"Dokumentation & Info",welcome:"Konto erstellen",subtitle:"Registrieren um mit Aquarium zu starten",displayNamePlaceholder:"Ihren Namen eingeben",emailPlaceholder:"E-Mail eingeben",passwordPlaceholder:"Passwort eingeben"},errors:{generic:"Ein Fehler ist aufgetreten"},showPassword:"Passwort anzeigen",hidePassword:"Passwort verbergen"},fE={title:"Instanzen",greeting:"Hallo, {{name}}",loading:"Wird geladen...",noInstances:"Noch keine Instanzen vorhanden. Erstellen Sie eine, um loszulegen.",platformUsage:"Plattformnutzung",totalSpend:"Gesamtausgaben",budget:"von ${{amount}} Budget",instanceCard:{type:"Typ: {{type}}",image:"Image: {{image}}",created:"Erstellt: {{date}}"},quickStart:{title:"Schnellstart",description:"Neu bei KI-Assistenten? Stellen Sie einen in Sekunden bereit",button:"Neuen Assistenten erstellen"},kpi:{activeAssistants:"Aktive Assistenten",messageGroups:"Nachrichtengruppen",todaySpend:"Heutige Ausgaben",apiCalls:"API-Aufrufe"},chart:{title:"Nutzungstrends",subtitle:"API-Aufrufe der letzten 14 Tage",noData:"Noch keine Nutzungsdaten",trendLabel:"gg. letzte Woche"},activity:{title:"Letzte Aktivität",noActivity:"Keine aktuelle Aktivität",emptyGuide:"Noch keine Aktivität — erstellen Sie Ihren ersten Assistenten, um loszulegen",timeJustNow:"Gerade eben",timeMinutesAgo:"Vor {{count}} Min.",timeHoursAgo:"Vor {{count}} Std.",timeDaysAgo:"Vor {{count}} T.",event:{created:"{{name}} wurde erstellt",started:"{{name}} wurde gestartet",stopped:"{{name}} wurde gestoppt",deleted:"{{name}} wurde gelöscht",purged:"{{name}} wurde bereinigt",cloned:"{{name}} wurde geklont",CHAT_MESSAGE:"{{name}} hat eine Nachricht erhalten",BUDGET_EXHAUSTED:"{{name}} Budget erschöpft",BUDGET_CRITICAL:"{{name}} Budget kritisch",BUDGET_WARNING:"{{name}} Budgetwarnung"}}},pE={loading:"Wird geladen...",notFound:"Instanz nicht gefunden",deleteConfirm:"Diese Instanz löschen? Dies kann nicht rückgängig gemacht werden.",backToDashboard:"← Dashboard",statusBar:{status:"Status:",type:"Typ: {{type}}",image:"Image: {{tag}}",target:"Ziel: {{target}}"},tabs:{overview:"Übersicht",credentials:"Zugangsdaten",chat:"Chat",health:"Zustand",agentManagement:"Agent-Verwaltung",groupChats:"Gruppenchats",usage:"Nutzung",snapshots:"Snapshots",logs:"Protokolle",events:"Ereignisse",settings:"Einstellungen",files:"Dateien",security:"Sicherheit",more:"Mehr"},overview:{title:"Instanzdetails",start:"Starten",starting:"Wird gestartet…",stop:"Stoppen",stopping:"Wird gestoppt…",restart:"Neustarten",restarting:"Wird neugestartet…",fields:{id:"ID",name:"Name",agentType:"Agent-Typ",imageTag:"Image-Tag",status:"Status",deployment:"Bereitstellung",aiProvider:"KI-Anbieter",defaultModel:"Standardmodell",created:"Erstellt",updated:"Aktualisiert"},oauthAuthenticated:"{{provider}} authentifiziert",setupRequired:"Einrichtung erforderlich: {{provider}} authentifizieren",setupRequiredDescription:"Diese Instanz verwendet {{provider}} als KI-Anbieter. Schließen Sie den OAuth-Vorgang unten ab, um Ihr Konto zu verbinden.",platformAI:"Plattform-KI"},credentials:{title:"Zugangsdaten",loading:"Zugangsdaten werden geladen...",noCredentials:"Keine Zugangsdaten konfiguriert.",addCredential:"Zugangsdaten hinzufügen",deleteConfirm:"Diese Zugangsdaten löschen?",providerLabel:"Anbieter",selectProvider:"Anbieter auswählen...",otherProvider:"Andere...",providerNameLabel:"Anbietername",providerNamePlaceholder:"z. B. fal_ai, elevenlabs, replicate",authMethodLabel:"Authentifizierungsmethode",apiKeyOption:"API Key",oauthOption:"OAuth",apiKeyLabel:"API Key",apiKeyPlaceholder:"Geben Sie Ihren API Key ein",typeLabel:"Typ: {{type}}",addedLabel:"Hinzugefügt: {{date}}",selectOrEnterProvider:"Bitte wählen oder geben Sie einen Anbieter ein",templateChecklist:{requiredByTemplate:"{{count}} Zugangsdaten von Vorlage benötigt",requiredByTemplate_plural:"{{count}} Zugangsdaten von Vorlage benötigt",allConfigured:"Alle Vorlagen-Zugangsdaten konfiguriert",addNow:"Jetzt hinzufügen"}},health:{title:"Zustand & Status",loading:"Zustandsdaten werden geladen...",startRequired:"Starten Sie die Instanz, um den Zustand anzuzeigen.",statusLabel:"Status",uptimeLabel:"Betriebszeit",versionLabel:"Version",availableModels:"Verfügbare Modelle",modelColumn:"Modell",providerColumn:"Anbieter",healthyStatus:"● Fehlerfrei",unhealthyStatus:"● Fehlerhaft"},groupChats:{description:"Verwalten Sie Gruppenchats, die diese Instanz einschließen.",viewAll:"Alle Gruppenchats anzeigen →"},logs:{filterPlaceholder:"Protokolle filtern...",autoFollow:"Automatisch folgen",startRequired:"Starten Sie die Instanz, um Protokolle anzuzeigen.",noEntries:"Keine Protokolleinträge.",truncated:"Protokollausgabe gekürzt; neuester Abschnitt wird angezeigt.",levels:{trace:"Trace",debug:"Debug",info:"Info",warn:"Warnung",error:"Fehler",fatal:"Kritisch"}},events:{title:"Ereignisse",loading:"Ereignisse werden geladen...",noEvents:"Keine Ereignisse aufgezeichnet.",columns:{time:"Zeit",event:"Ereignis",details:"Details"}},settings:{aiConfiguration:"KI-Konfiguration",providerLabel:"Anbieter",modelLabel:"Modell",modelPlaceholder:"z. B. gpt-4o-mini",saveButton:"KI-Konfiguration speichern",saving:"Wird gespeichert...",saveSuccess:"KI-Konfiguration aktualisiert. Starten Sie die Instanz neu, um die Änderungen zu übernehmen.",saveError:"Konfiguration konnte nicht aktualisiert werden",defaultSuffix:"(Standard)",dangerZone:"Gefahrenbereich",deleteInstance:"Instanz löschen"},usage:{title:"Nutzung & Kosten",loading:"Nutzungsdaten werden geladen...",loadingPlatformSpend:"Plattformausgaben werden geladen...",startRequired:"Starten Sie die Instanz, um sitzungsbezogene Nutzungsdaten anzuzeigen.",noData:"Noch keine Nutzungsdaten verfügbar.",byokMessage:"Diese Instanz verwendet Ihre eigenen API Keys. Die Nutzung wird direkt vom Anbieter erfasst.",dateRangeTo:"bis",platformSpend:"Plattformausgaben",totalSpend:"Gesamtausgaben",budgetLimit:"Budgetlimit",used:"{{amount}} verbraucht",limit:"{{amount}} Limit",totalTokens:"Tokens gesamt",totalCost:"Gesamtkosten",messages:"Nachrichten",toolCalls:"Tool-Aufrufe",dailyTokens:"Tägliche Tokens",dailyCost:"Tägliche Kosten",byModel:"Nach Modell",topTools:"Meistgenutzte Tools",tokenBreakdown:"Token-Aufschlüsselung",columns:{model:"Modell",provider:"Anbieter",requests:"Anfragen",tokens:"Tokens",cost:"Kosten",spend:"Ausgaben",tool:"Tool",calls:"Aufrufe",category:"Kategorie"},tokenCategories:{input:"Eingabe",output:"Ausgabe",cacheRead:"Cache-Lesen",cacheWrite:"Cache-Schreiben"}},oauth:{github:{title:"GitHub Copilot Authentifizierung",description:"Dies öffnet GitHub in einem neuen Tab. Sie geben einen Code ein, um den Zugriff zu autorisieren.",authenticateButton:"Mit GitHub authentifizieren",startingButton:"Wird gestartet...",step1:"Schritt 1:",step1Text:"Kopieren Sie diesen Code:",step2:"Schritt 2:",step2Text:"Fügen Sie ihn bei GitHub ein (automatisch geöffnet):",step3:"Schritt 3:",step3Text:"Klicken Sie bei GitHub auf „Autorisieren“ und warten Sie hier.",openAgain:"Erneut öffnen",waitingForAuth:"Warte auf Autorisierung...",copiedCode:"✓ Kopiert",failedToStart:"OAuth-Vorgang konnte nicht gestartet werden",pollingFailed:"Abfrage fehlgeschlagen",oauthError:"OAuth-Fehler: {{status}}"},openai:{title:"OpenAI Authentifizierung",description:"Dies öffnet OpenAI in einem neuen Tab. Sie geben einen Code ein, um den Zugriff für Codex zu autorisieren.",authenticateButton:"Mit OpenAI authentifizieren",startingButton:"Wird gestartet...",step1:"Schritt 1:",step1Text:"Kopieren Sie diesen Code:",step2:"Schritt 2:",step2Text:"Fügen Sie ihn bei OpenAI ein (automatisch geöffnet):",step3:"Schritt 3:",step3Text:"Autorisieren Sie bei OpenAI und warten Sie hier.",openAgain:"Erneut öffnen",waitingForAuth:"Warte auf Autorisierung...",copiedCode:"✓ Kopiert",failedToStart:"OpenAI OAuth-Vorgang konnte nicht gestartet werden",pollingFailed:"Abfrage fehlgeschlagen",oauthError:"OAuth-Fehler: {{status}}"},google:{title:"Google Authentifizierung",description:"Sie werden zu Google weitergeleitet, um den Zugriff zu autorisieren. Nach der Autorisierung werden Sie hierher zurückgeleitet.",authenticateButton:"Mit Google authentifizieren",redirectingButton:"Weiterleitung...",failedToStart:"Google OAuth-Vorgang konnte nicht gestartet werden"}}},hE={title:"Instanz erstellen",steps:{agentType:"Agent-Typ",provider:"KI-Anbieter",model:"Modell",channels:"Kanäle",name:"Name",review:"Überprüfung"},agentType:{title:"Wählen Sie einen Agent-Typ",description:"Jeder Agent-Typ verfügt über unterschiedliche Funktionen und Integrationen.",loading:"Agent-Typen werden geladen…",capabilities:{webUI:"Web-UI",channels:"Kanäle",rpc:"RPC"}},provider:{title:"Wählen Sie einen KI-Anbieter",titleNoProviders:"KI-Anbieter",description:"Wählen Sie den KI-Anbieter, der Ihren Agenten betreibt.",noConfigRequired:"Dieser Agent-Typ erfordert keine Anbieterkonfiguration.",platformAI:"Plattform-KI verwenden",platformAIDescription:"Kein API Key erforderlich — nutzungsbasierte Abrechnung",modelCount:"{{count}} Modell — eigenen Key verwenden",modelCount_plural:"{{count}} Modelle — eigenen Key verwenden"},model:{title:"Modell",chooseTitle:"Wählen Sie ein Modell",selectProviderFirst:"Wählen Sie zuerst einen Anbieter, um ein Modell auszuwählen.",platformBanner:"Plattform-KI wird verwendet — kein API Key erforderlich. Die Nutzung wird über die Plattform erfasst und abgerechnet.",selectModelFrom:"Wählen Sie das Modell von {{provider}} aus.",apiKeyLabel:"API Key",apiKeyRequired:"*",apiKeyPlaceholder:"Ihr {{provider}} API Key",apiKeyHint:"Ihr Key wird verschlüsselt gespeichert und niemals weitergegeben.",defaultBadge:"Standard",defaultModel:"Standardmodell: {{model}}",autoSelected:"automatisch von der Plattform ausgewählt"},channels:{title:"Kanäle",messagingTitle:"Messaging-Kanäle",description:"Aktivieren Sie die Messaging-Kanäle, die Ihr Agent nutzen soll. Sie können diese nach der Erstellung konfigurieren.",notSupported:"Dieser Agent-Typ unterstützt keine Messaging-Kanäle.",configureLater:"Sie können Kanäle später in den Instanzeinstellungen verbinden.",whatsapp:"WhatsApp",whatsappDescription:"Erfordert QR-Code-Scan nach dem Start der Instanz",telegram:"Telegram",telegramDescription:"Erfordert einen Telegram-Bot-Token von @BotFather"},name:{title:"Benennen Sie Ihre Instanz",description:"Geben Sie Ihrer Agent-Instanz einen einprägsamen Namen.",label:"Instanzname",placeholder:"z. B. Mein persönlicher Assistent"},review:{title:"Überprüfen & erstellen",description:"Überprüfen Sie Ihre Konfiguration, bevor Sie die Instanz erstellen.",fields:{agentType:"Agent-Typ",billingMode:"Abrechnungsmodus",billingPlatform:"Plattform-KI",billingBYOK:"Eigenen Key verwenden (BYOK)",provider:"Anbieter",model:"Modell",apiKey:"API Key",apiKeyMasked:"••••••••",apiKeyNone:"(keiner)",whatsapp:"WhatsApp",telegram:"Telegram",enabled:"Aktiviert",disabled:"Deaktiviert",instanceName:"Instanzname"}},navigation:{back:"Zurück",next:"Weiter",creating:"Wird erstellt…",createInstance:"Instanz erstellen"},confirm:{title:"Confirm configuration",subtitle:"Review your settings before finishing.",nameLabel:"Assistant Name",principlesLabel:"Behavior Principles",principlesDefault:"Using default configuration",identityLabel:"Identity Description",nameSection:"Name",principlesSection:"Principles",principlesEmpty:"Using defaults",viewAll:"View all",credentialSection:"AI Source",platformTitle:"Platform Managed Credentials",platformDesc:"No API key needed. Usage-based billing.",byokTitle:"Bring Your Own Key (BYOK)",byokDesc:"Use your own API key.",credInfoTitle:"Platform Credentials",credInfoReady:"Ready",platformCredInfo:"Platform Credentials",platformCredBadge:"Ready",credName:"Credential Name",credProvider:"Provider",credModel:"Model",credBalance:"Balance",credInfoName:"Credential Name",credInfoProvider:"Provider",credInfoModel:"Model",credInfoBalance:"Balance",byokProvider:"Select provider",byokProviderPlaceholder:"Select a provider...",byokModelCount:"{{count}} models",byokApiKey:"API Key",byokApiKeyPlaceholder:"Enter your API key",byokModelLabel:"Model (optional)",byokModelPlaceholder:"Auto-detect by provider",modelLabel:"Model",modelsLoading:"Loading available models...",modelSearchPlaceholder:"Search models...",modelAuto:"Automatic",modelAutoDesc:"Platform selects the best model",modelRecommended:"Recommended",contextLabel:"Context Length",contextHint:"Affects the number of conversation turns the assistant remembers",tempLabel:"Creativity (Temperature)",tempHint:"Higher values produce more creative responses",tempCurrent:"Current value:",temperatureCurrent:"Current value:",temp_work:"Work",temp_work_sub:"Precise & stable",temp_life:"Life",temp_life_sub:"Natural & fluid",temp_creative:"Creative",temp_creative_sub:"Wild & imaginative",modelSection:"Model Configuration",model:"Model",context:"Context",temperature:"Temperature"},errors:{failedToCreate:"Instanz konnte nicht erstellt werden"}},mE={list:{title:"Gruppenchats",loading:"Wird geladen...",noChats:"Noch keine Gruppenchats vorhanden. Erstellen Sie einen, um mit Ihren Bots zu chatten.",createButton:"Gruppenchat erstellen",memberCount:"{{count}} Mitglieder",created:"Erstellt: {{date}}",mode:"Modus: {{mode}}"},create:{title:"Neuen Gruppenchat erstellen",chatNameLabel:"Chat-Name",chatNamePlaceholder:"z. B. Brainstorming-Sitzung",selectInstances:"Instanzen auswählen",noInstances:"Keine Instanzen verfügbar. Erstellen Sie zuerst Instanzen.",displayNameInChat:"Anzeigename im Chat:",roleLabel:"Rolle (optional):",rolePlaceholder:"z. B. Produktdesigner mit 10 Jahren Erfahrung",inviteHumans:"Menschliche Mitglieder einladen (optional)",searchByEmail:"Nach E-Mail suchen...",searching:"Suche...",selectedHumans:"Ausgewählte Personen:",removeHuman:"{{name}} entfernen",preview:"{{name}} — Vorschau",untitledChat:"Unbenannter Chat",selectAtLeastOne:"Bitte wählen Sie mindestens eine Instanz aus",creating:"Wird erstellt...",createAndInvite:"Erstellen & Einladen",createGroupChat:"Gruppenchat erstellen",failedToCreate:"Gruppenchat konnte nicht erstellt werden",failedToLoadGroupChats:"Gruppenchats konnten nicht geladen werden"},detail:{loadingChat:"Chat wird geladen...",chatNotFound:"Chat nicht gefunden",deleteChat:"Chat löschen",deleteChatConfirm:"Diesen Gruppenchat löschen? Dies kann nicht rückgängig gemacht werden.",loadOlderMessages:"Ältere Nachrichten laden",loadingMessages:"Wird geladen...",failedToLoadChat:"Chat konnte nicht geladen werden",failedToLoadOlderMessages:"Ältere Nachrichten konnten nicht geladen werden",failedToSendMessage:"Nachricht konnte nicht gesendet werden",failedToAddMember:"Mitglied konnte nicht hinzugefügt werden",failedToRemoveMember:"Mitglied konnte nicht entfernt werden",failedToUpdateMember:"Mitglied konnte nicht aktualisiert werden",removeMemberConfirm:"Möchten Sie dieses Mitglied wirklich entfernen?",messagePlaceholder:"Nachricht eingeben... @ verwenden, um Bots zu erwähnen",senderYou:"Sie",senderUnknown:"Unbekannt",typeBadgeHuman:"Mensch",typeBadgeBot:"Bot"},members:{title:"Mitglieder",addButton:"Mitglied hinzufügen",addTitle:"Mitglied hinzufügen",editTitle:"Bearbeiten",removeTitle:"Entfernen",tabBot:"Bot-Instanz",tabHuman:"Menschlicher Benutzer",selectInstance:"Instanz auswählen",selectInstancePlaceholder:"Instanz auswählen...",searchUserByEmail:"Benutzer per E-Mail suchen",searchPlaceholder:"suche@beispiel.de",displayNameLabel:"Anzeigename",displayNamePlaceholderBot:"Bot-Name",displayNamePlaceholderHuman:"Anzeigename",roleLabel:"Rolle (optional)",rolePlaceholder:"z. B. Moderator, Helfer",adding:"Wird hinzugefügt...",addMember:"Mitglied hinzufügen",save:"Speichern",cancel:"Abbrechen"},delivery:{pending:"✓",delivered:"✓✓",processing:"⚡",completed:"✅",error:"❌"}},gE={title:"Vorlagengalerie",loading:"Wird geladen...",searchPlaceholder:"Vorlagen suchen... (Enter drücken)",noTemplates:"Noch keine Vorlagen verfügbar.",officialTab:"Offizielle Vorlagen",communityTab:"Community",officialBadge:"Offiziell",useTemplate:"Vorlage verwenden",installs:"{{count}} Installationen",forks:"{{count}} Forks",version:"v{{version}}",requires:"Erfordert: {{providers}}",categories:{all:"Alle Kategorien",customerService:"Kundenservice",sales:"Vertrieb",marketing:"Marketing",devops:"DevOps",education:"Bildung",personal:"Persönlich",custom:"Benutzerdefiniert"},instantiate:{title:"Aus Vorlage erstellen",templateLabel:"Vorlage: {{name}} v{{version}}",credentialsRequired:"Diese Vorlage erfordert Zugangsdaten für: {{credentials}}. Sie können diese nach der Erstellung auf der Instanzseite konfigurieren.",instanceNameLabel:"Instanzname",billingModeLabel:"LLM-Abrechnungsmodus",platformProvided:"Von Plattform bereitgestellt",platformDescription:"Plattform-LLM verwenden — kein API Key erforderlich",bringYourOwnKey:"Eigenen Key verwenden (BYOK)",byokDescription:"Eigene API Keys für LLM-Zugriff verwenden",creating:"Wird erstellt...",createButton:"Aus Vorlage erstellen",failedToCreate:"Instanz konnte nicht erstellt werden",failedToLoad:"Vorlagen konnten nicht geladen werden",geoCredentialLabel:"GEO-Plattform-Zugangsdaten",geoCredentialDescription:"Verbinden Sie sich mit SaleVoice, um das GEO-Monitoring für Ihre Marke zu aktivieren.",geoOAuthLabel:"Mit SaleVoice verbinden",geoOAuthDescription:"Melden Sie sich bei Ihrem SaleVoice-Konto an",geoApiKeyLabel:"API-Schlüssel",geoApiKeyDescription:"Fügen Sie Ihren SaleVoice-API-Token ein",geoConnectButton:"Mit SaleVoice verbinden →",geoConnecting:"Verbinden...",geoConnected:"Mit SaleVoice verbunden",geoApiKeyPlaceholder:"geo_xxxxxxxxxxxxx",geoSaveButton:"Speichern",geoAuthFailed:"SaleVoice-Authentifizierung fehlgeschlagen",geoSaveFailed:"API-Schlüssel konnte nicht gespeichert werden",geoRequired:"Bitte verbinden Sie SaleVoice, bevor Sie die Instanz erstellen"}},vE={title:"Profil",accountInfo:"Kontoinformationen",emailLabel:"E-Mail",memberSince:"Mitglied seit",userId:"Benutzer-ID",displayNameLabel:"Anzeigename",updateProfile:"Profil aktualisieren",saving:"Wird gespeichert...",profileUpdated:"Profil aktualisiert",failedToUpdateProfile:"Profil konnte nicht aktualisiert werden",usageBilling:"Nutzung & Abrechnung",loadingUsage:"Nutzungsdaten werden geladen…",totalSpend:"Gesamtausgaben",budgetLimit:"Budgetlimit",budgetUsed:"Budget verbraucht",noUsageData:"Keine Nutzungsdaten verfügbar. Die Nutzungserfassung beginnt, wenn Sie Plattform-KI-Instanzen verwenden.",failedToLoadUsage:"Nutzungsdaten konnten nicht geladen werden",error:"Fehler: {{message}}.",changePassword:"Passwort ändern",currentPassword:"Aktuelles Passwort",newPassword:"Neues Passwort",confirmNewPassword:"Neues Passwort bestätigen",changePasswordButton:"Passwort ändern",changingPassword:"Wird geändert...",passwordChanged:"Passwort erfolgreich geändert",passwordTooShort:"Das neue Passwort muss mindestens 6 Zeichen lang sein",passwordsDoNotMatch:"Passwörter stimmen nicht überein",failedToChangePassword:"Passwort konnte nicht geändert werden"},yE={title:"Admin-Dashboard",loading:"Wird geladen...",greeting:"Hallo, {{name}}",failedToLoad:"Admin-Daten konnten nicht geladen werden",stats:{totalUsers:"Benutzer gesamt",totalInstances:"Instanzen gesamt",running:"Laufend",stopped:"Gestoppt",error:"Fehler",signups7d:"Registrierungen (7 T.)"},deploymentTargets:"Bereitstellungsziele",platformUsage:"Plattformnutzung",globalSpend:"Globale Ausgaben",activeSpenders:"Aktive Nutzer",usageTable:{user:"Benutzer",email:"E-Mail",spend:"Ausgaben",budgetLimit:"Budgetlimit",setBudget:"Budget festlegen"},users:{title:"Benutzer ({{count}})",columns:{name:"Name",email:"E-Mail",instances:"Instanzen",running:"Laufend",joined:"Beigetreten"},showInstances:"Anzeigen",hideInstances:"Ausblenden",resetPwd:"PW zurücksetzen",loadingInstances:"Instanzen werden geladen...",noInstances:"Keine Instanzen gefunden",failedToLoadInstances:"Instanzen konnten nicht geladen werden"},resetPassword:{title:"Passwort zurücksetzen",description:"Passwort zurücksetzen für: {{email}}",newPasswordLabel:"Neues Passwort",resetButton:"Passwort zurücksetzen",resetting:"Wird zurückgesetzt...",passwordTooShort:"Passwort muss mindestens 6 Zeichen lang sein",success:"Passwort für {{email}} zurückgesetzt",failed:"Passwort konnte nicht zurückgesetzt werden"},budget:{title:"Budgetlimit festlegen",description:"Monatliches Budget festlegen für: {{email}}",limitLabel:"Budgetlimit (USD)",limitPlaceholder:"Leer lassen, um das Limit zu entfernen",saveButton:"Budget speichern",saving:"Wird gespeichert...",invalidBudget:"Budget muss eine positive Zahl sein oder leer, um es zu entfernen",success:"Budget für {{email}} aktualisiert",failed:"Budget konnte nicht aktualisiert werden"}},bE={startRequired:"Starten Sie die Instanz, um den Chat zu verwenden.",emptyState:"Senden Sie eine Nachricht, um mit dem Agenten zu chatten.",inputPlaceholder:"Nachricht eingeben... (Umschalt+Enter für neue Zeile)",settings:"Einstellungen",newChat:"+ Neuer Chat",copyMessage:"Nachricht kopieren",noResponseError:"Keine Antwort vom Agenten — die Gateway-Verbindung ist möglicherweise noch nicht bereit. Versuchen Sie es in einigen Sekunden erneut.",failedToSend:"Senden fehlgeschlagen",chatError:"Chat-Fehler",failedToUpdateSettings:"Einstellungen konnten nicht aktualisiert werden",sessionSettings:{modelLabel:"Modell",modelPlaceholder:"z. B. claude-sonnet-4",thinkingLevelLabel:"Denkstufe",thinkingLevels:{default:"Standard",off:"Aus",low:"Niedrig",medium:"Mittel",high:"Hoch"},saving:"Wird gespeichert...",save:"Speichern"},sessionDrawer:{toggleSessions:"Sitzungen",sessions:"Sitzungen",today:"Heute",yesterday:"Gestern",thisWeek:"Diese Woche",older:"Älter",newChat:"Neues Gespräch",emptyState:"Noch keine Gespräche",fetchError:"Sitzungen konnten nicht geladen werden",deleteConfirm:"Dieses Gespräch löschen? Dies kann nicht rückgängig gemacht werden.",deleteTitle:"Gespräch löschen",deleteCancel:"Abbrechen",deleting:"Wird gelöscht..."},attachments:{invalidType:"Nur Bild-, Excel-, Word- und PDF-Dateien werden unterstützt",tooLarge:"Datei ist zu groß (Bilder max 5 MB, Dokumente max 10 MB)",maxReached:"Maximal 5 Anhänge erlaubt",dropHint:"Dateien hier ablegen",removeAttachment:"Anhang entfernen",attachFile:"Datei anhängen",fileTypes:{excel:"Excel",word:"Word",pdf:"PDF"}},scrollToBottom:"Zu den neuesten Nachrichten scrollen",loadingAgentUI:"Agent-UI wird geladen…"},SE={unavailable:{title:"Agent-UI nicht verfügbar",description:"Starten Sie die Instanz, um auf die Agent-UI zuzugreifen."},notSupported:{title:"Web-UI nicht unterstützt",description:"Dieser Agent-Typ unterstützt keine eingebettete Web-UI."},loadFailed:{title:"Agent-UI konnte nicht geladen werden",description:"Das Gateway wird möglicherweise gerade gestartet oder ist vorübergehend nicht verfügbar."},iframeTitle:"Agent Web-UI"},CE={title:"Snapshots",createButton:"Snapshot erstellen",viewVersionHistory:"Versionsverlauf",creating:"Wird erstellt…",loading:"Snapshots werden geladen...",noSnapshots:"Noch keine Snapshots vorhanden. Erstellen Sie einen, um den aktuellen Konfigurationszustand zu erfassen.",instanceMustBeRunning:"Die Instanz muss laufen, um neue Snapshots zu erstellen. Vorhandene Snapshots können weiterhin angezeigt und wiederhergestellt werden.",deleteConfirm:"Diesen Snapshot löschen? Dies kann nicht rückgängig gemacht werden.",noDescription:"Keine Beschreibung",failedToLoad:"Snapshots konnten nicht geladen werden",failedToCreate:"Snapshot konnte nicht erstellt werden",failedToDelete:"Snapshot konnte nicht gelöscht werden",failedToRestore:"Snapshot konnte nicht wiederhergestellt werden",triggerTypes:{manual:"Manuell",preOperation:"Automatisch",daily:"Täglich"},diff:{title:"Snapshot-Vergleich",takenAt:"Erstellt {{date}} · {{count}} Änderung",takenAt_plural:"Erstellt {{date}} · {{count}} Änderungen",restoreButton:"Diesen Snapshot wiederherstellen",loadingDiff:"Vergleich wird geladen...",failedToLoadDiff:"Vergleich konnte nicht geladen werden",noChanges:"Keine Änderungen — Snapshot entspricht dem aktuellen Zustand.",changeTypes:{modified:"Geändert",added:"Hinzugefügt",removed:"Entfernt",unchanged:"Unverändert"},snapshotWillBeRestored:"Snapshot (wird wiederhergestellt)",currentWillBeRemoved:"Aktuell (wird entfernt)",current:"Aktuell"},restore:{title:"Snapshot wiederherstellen",description:"Hiermit wird die Instanzkonfiguration auf den am {{date}} erfassten Zustand zurückgesetzt.",runningWarning:"Die Instanz läuft derzeit. Die Wiederherstellung löst ein Hot-Reload oder einen Neustart aus.",safetySnapshot:"Vor der Wiederherstellung wird automatisch ein Sicherheits-Snapshot des aktuellen Zustands erstellt.",loadingAffectedFiles:"Betroffene Dateien werden geladen...",affectedFilesTitle:"Folgende Dateien werden betroffen sein:",noFileChanges:"Keine Dateiänderungen erkannt — Snapshot entspricht dem aktuellen Zustand.",snapshotId:"Snapshot-ID:",restoreButton:"Wiederherstellen",restoring:"Wird wiederhergestellt…",diffBadges:{modified:"G",added:"H",removed:"E"}}},AE={title:"Verbrauchsrate",loading:"Wird geladen...",today:"Heute",sevenDayAvg:"7-T.-Durchschnitt",thirtyDayAvg:"30-T.-Durchschnitt",daysUntilExhaustion:"Tage bis zur Erschöpfung",daysCount:"{{count}} Tage",projectedMonthly:"Prognostizierter Monatswert",trends:{fastBurn:"Schneller Verbrauch",rising:"Steigend",steady:"Stabil",cooling:"Abnehmend",idle:"Inaktiv"},notProvisioned:"Die Verbrauchsrate wird nach dem ersten Start der Instanz verfügbar sein.",noUsage:"Noch keine Nutzung aufgezeichnet. Beginnen Sie mit der Nutzung der Instanz.",fetchError:"Verbrauchsrate konnte nicht geladen werden. Bitte versuchen Sie es später erneut."},EE={title:"Benachrichtigungen",buttonLabel:"Benachrichtigungen",buttonLabelWithCount:"Benachrichtigungen ({{count}} ungelesen)",markAllRead:"Alle als gelesen markieren",empty:"Noch keine Benachrichtigungen",unreadBadge:"99+"},wE={groupChats:"Gruppenchats",dashboard:"Dashboard",skills:"Agent-Markt",assistants:"Meine Assistenten",proComingSoon:"Pro-Tarif demnächst verfügbar",billingGroup:"Abrechnung & Kosten",billing:"Abrechnung",costs:"Kosten",userGroup:"Benutzerverwaltung",credentials:"Anmeldedaten",account:"Konto",systemConfig:"Systemkonfiguration",communityEdition:"Community Edition"},TE={providerMode:{title:"Provider Mode",platformTitle:"Platform AI",platformDesc:"Managed by the platform. No API key required. Usage tracked and billed through Platform AI.",byokTitle:"Bring Your Own Key",byokDesc:"Use your own API key. You manage billing directly with the provider.",immutableNote:"Switching provider mode requires restarting the instance to take effect.",switchConfirm:"Switching to {{mode}} mode will require an instance restart. Continue?",switchSuccess:"Provider mode updated to {{mode}}. Please restart the instance to apply changes.",switchError:"Failed to switch provider mode.",switching:"Switching...",restartNow:"Restart Now",restartLater:"Restart Later",confirmTitle:"Switch Provider Mode",confirmCancel:"Cancel",confirmOk:"Continue"},model:{title:"Model",autoTitle:"Auto (Recommended)",autoDesc:"Cost-optimized routing. The platform picks the best model based on task complexity:",autoRouting1:"Simple tasks → GPT-4o Mini ($0.15/M tokens)",autoRouting2:"Standard tasks → Claude Sonnet 4 ($3/M tokens)",autoRouting3:"Complex tasks → Claude Opus 4 ($15/M tokens)",specificTitle:"Specific Model",specificDesc:"Always use a single model for all tasks.",placeholder:"e.g. anthropic/claude-sonnet-4",providerLabel:"Provider",modelLabel:"Model",defaultSuffix:"(Default)"},save:{button:"Save AI Configuration",saving:"Saving...",success:"AI configuration saved successfully.",error:"Failed to save."},byokCredential:{label:"API Key",configured:"Configured (added {{date}})",hint:"Enter the API key for this provider to enable BYOK mode.",placeholder:"Enter API key",updatePlaceholder:"Enter new API key to replace existing",saveButton:"Save Key",updateButton:"Update Key",deleteButton:"Remove",saved:"API key saved.",saveFailed:"Failed to save API key.",deleted:"API key removed.",deleteFailed:"Failed to remove API key."},toolCredentials:{title:"Tool Credentials",description:"API keys for tools and channels (web search, Telegram, Discord, etc.). These work in both Platform AI and BYOK modes.",noCredentials:"No tool credentials configured.",required:"Required: {{count}} missing credential(s)",addButton:"Add Credential",deleteConfirm:"Delete this credential?",deleteButton:"Delete",type:"Type:",added:"Added:",selectProvider:"Select a provider...",providerName:"Provider Name",providerPlaceholder:"e.g. brave",apiKeyLabel:"API Key",apiKeyPlaceholder:"Enter API key",other:"Other...",toolsGroup:"Tools",aiProvidersGroup:"AI Providers",cancel:"Cancel",selectError:"Please select or enter a provider.",addFailed:"Failed to add credential.",deleteFailed:"Failed to delete.",loadFailed:"Failed to load credentials",loading:"Loading credentials...",salevoice:{title:"SaleVoice (GEO-Plattform)",description:"Verbinden Sie Ihr SaleVoice-Konto für GEO-Funktionen. Wählen Sie OAuth oder geben Sie Ihren API-Schlüssel ein.",oauthLabel:"Über OAuth verbinden",oauthDescription:"Mit Ihrem SaleVoice-Konto anmelden (empfohlen)",apiKeyLabel:"API-Schlüssel",apiKeyDescription:"SaleVoice API-Schlüssel manuell eingeben",connectButton:"SaleVoice verbinden",connecting:"Verbindung wird hergestellt...",connected:"SaleVoice verbunden",apiKeyPlaceholder:"SaleVoice API-Schlüssel eingeben",saveButton:"Speichern",authFailed:"SaleVoice-Authentifizierung fehlgeschlagen.",saveFailed:"Speichern der SaleVoice-Zugangsdaten fehlgeschlagen."}}},PE={title:"Meine Assistenten",subtitle:"Verwalten Sie alle Ihre KI-Assistenten",createNew:"Neuer Assistent",chat:"Chat",view:"Details",configure:"Konfigurieren",disable:"Deaktivieren",enable:"Aktivieren",model:"Modell",emptyTitle:"Schnellstart",emptyDescription:"Noch keine Assistenten? Erstellen Sie jetzt Ihren ersten KI-Assistenten",createFirst:"Assistent erstellen",loadFailed:"Assistenten konnten nicht geladen werden",actionFailed:"Aktion fehlgeschlagen, bitte erneut versuchen"},zE={startRequired:"Starten Sie die Instanz, um Dateien anzuzeigen.",refresh:"Aktualisieren",emptyState:"Keine Dateien gefunden.",table:{name:"Name",size:"Größe",type:"Typ",modified:"Geändert",actions:"Aktionen"},actions:{view:"Ansehen",download:"Herunterladen"},errors:{listFailed:"Dateiliste konnte nicht geladen werden.",readFailed:"Datei konnte nicht gelesen werden."},typeBadge:{excel:"Excel",word:"Word",pdf:"PDF",image:"Bild",file:"Datei"},previewNotAvailable:"Vorschau für diesen Dateityp nicht verfügbar. Verwenden Sie den Download-Button."},kE={common:cE,auth:dE,dashboard:fE,instance:pE,wizard:hE,groupChat:mE,templates:gE,profile:vE,admin:yE,chat:bE,agentUI:SE,snapshots:CE,burnRate:AE,notifications:EE,sidebar:wE,aiTab:TE,myAssistants:PE,files:zE},LE={buttons:{login:"Accedi",logout:"Esci",signup:"Registrati",cancel:"Annulla",save:"Salva",delete:"Elimina",close:"Chiudi",back:"Indietro",next:"Avanti",retry:"Riprova",refresh:"Aggiorna",send:"Invia",stop:"Arresta",start:"Avvia",restart:"Riavvia",create:"Crea",add:"Aggiungi",copy:"Copia",copied:"Copiato!",hide:"Nascondi",show:"Mostra",docs:"Documentazione",admin:"Amministrazione",profile:"Profilo",templates:"Modelli",groupChats:"Chat di gruppo",createInstance:"Crea istanza",backToDashboard:"Torna alla Dashboard",backToInstances:"← Torna alle istanze"},labels:{email:"Email",password:"Password",displayName:"Nome visualizzato",name:"Nome",status:"Stato",type:"Tipo",image:"Immagine",target:"Destinazione",created:"Creato",updated:"Aggiornato",provider:"Provider",model:"Modello",loading:"Caricamento...",or:"o",to:"a",and:"e",of:"di",by:"Di",none:"Nessuno"},status:{created:"creato",starting:"in avvio",running:"in esecuzione",stopping:"in arresto",stopped:"arrestato",error:"errore",healthy:"Funzionante",unhealthy:"Non funzionante"},errors:{generic:"Si è verificato un errore",failedToLoad:"Caricamento non riuscito",actionFailed:"Azione non riuscita",deleteFailed:"Eliminazione non riuscita"},time:{justNow:"adesso",minutesAgo:"{{count}}m fa",hoursAgo:"{{count}}h fa",daysAgo:"{{count}}g fa"},pagination:{previous:"← Precedente",next:"Successivo →",pageOf:"Pagina {{page}} di {{totalPages}}"},comingSoon:"Prossimamente"},ME={login:{title:"Accesso",emailLabel:"Email",passwordLabel:"Password",submitButton:"Accedi",noAccount:"Non ha ancora un account?",signupLink:"Si registri",docsLink:"Documentazione e informazioni",welcome:"Bentornato",subtitle:"Accedi per continuare con Aquarium",emailPlaceholder:"Inserisci la tua email",passwordPlaceholder:"Inserisci la tua password",forgotPassword:"Password dimenticata?"},signup:{title:"Registrazione",displayNameLabel:"Nome visualizzato",emailLabel:"Email",passwordLabel:"Password",submitButton:"Registrati",hasAccount:"Ha già un account?",loginLink:"Acceda",docsLink:"Documentazione e informazioni",welcome:"Crea account",subtitle:"Registrati per iniziare con Aquarium",displayNamePlaceholder:"Inserisci il tuo nome",emailPlaceholder:"Inserisci la tua email",passwordPlaceholder:"Inserisci la tua password"},errors:{generic:"Si è verificato un errore"},showPassword:"Mostra password",hidePassword:"Nascondi password"},OE={title:"Istanze",greeting:"Buongiorno, {{name}}",loading:"Caricamento...",noInstances:"Nessuna istanza presente. Ne crei una per iniziare.",platformUsage:"Utilizzo della piattaforma",totalSpend:"spesa totale",budget:"di ${{amount}} di budget",instanceCard:{type:"Tipo: {{type}}",image:"Immagine: {{image}}",created:"Creato: {{date}}"},quickStart:{title:"Avvio rapido",description:"Nuovo con gli assistenti IA? Distribuiscine uno in pochi secondi",button:"Crea nuovo assistente"},kpi:{activeAssistants:"Assistenti attivi",messageGroups:"Gruppi di messaggi",todaySpend:"Spesa di oggi",apiCalls:"Chiamate API"},chart:{title:"Tendenze di utilizzo",subtitle:"Chiamate API negli ultimi 14 giorni",noData:"Nessun dato di utilizzo",trendLabel:"vs settimana scorsa"},activity:{title:"Attività recente",noActivity:"Nessuna attività recente",emptyGuide:"Nessuna attività — crea il tuo primo assistente per iniziare",timeJustNow:"Proprio ora",timeMinutesAgo:"{{count}} min fa",timeHoursAgo:"{{count}} ore fa",timeDaysAgo:"{{count}} giorni fa",event:{created:"{{name}} è stato creato",started:"{{name}} è stato avviato",stopped:"{{name}} è stato arrestato",deleted:"{{name}} è stato eliminato",purged:"{{name}} è stato eliminato definitivamente",cloned:"{{name}} è stato clonato",CHAT_MESSAGE:"{{name}} ha ricevuto un messaggio",BUDGET_EXHAUSTED:"{{name}} budget esaurito",BUDGET_CRITICAL:"{{name}} budget critico",BUDGET_WARNING:"{{name}} avviso budget"}}},DE={loading:"Caricamento...",notFound:"Istanza non trovata",deleteConfirm:"Eliminare questa istanza? L'operazione non può essere annullata.",backToDashboard:"← Dashboard",statusBar:{status:"Stato:",type:"Tipo: {{type}}",image:"Immagine: {{tag}}",target:"Destinazione: {{target}}"},tabs:{overview:"Panoramica",credentials:"Credenziali",chat:"Chat",health:"Integrità",agentManagement:"Gestione Agent",groupChats:"Chat di gruppo",usage:"Utilizzo",snapshots:"Snapshot",logs:"Log",events:"Eventi",settings:"Impostazioni",files:"File",security:"Sicurezza",more:"Altro"},overview:{title:"Dettagli istanza",start:"Avvia",starting:"Avvio in corso…",stop:"Arresta",stopping:"Arresto in corso…",restart:"Riavvia",restarting:"Riavvio in corso…",fields:{id:"ID",name:"Nome",agentType:"Tipo di Agent",imageTag:"Tag immagine",status:"Stato",deployment:"Distribuzione",aiProvider:"Provider AI",defaultModel:"Modello predefinito",created:"Creato",updated:"Aggiornato"},oauthAuthenticated:"{{provider}} autenticato",setupRequired:"Configurazione richiesta: autenticare {{provider}}",setupRequiredDescription:"Questa istanza utilizza {{provider}} come provider AI. Completi il flusso OAuth di seguito per collegare il Suo account.",platformAI:"Platform AI"},credentials:{title:"Credenziali",loading:"Caricamento credenziali...",noCredentials:"Nessuna credenziale configurata.",addCredential:"Aggiungi credenziale",deleteConfirm:"Eliminare questa credenziale?",providerLabel:"Provider",selectProvider:"Selezioni un provider...",otherProvider:"Altro...",providerNameLabel:"Nome provider",providerNamePlaceholder:"es. fal_ai, elevenlabs, replicate",authMethodLabel:"Metodo di autenticazione",apiKeyOption:"API Key",oauthOption:"OAuth",apiKeyLabel:"API Key",apiKeyPlaceholder:"Inserisca la Sua API key",typeLabel:"Tipo: {{type}}",addedLabel:"Aggiunto: {{date}}",selectOrEnterProvider:"Selezioni o inserisca un provider",templateChecklist:{requiredByTemplate:"{{count}} credenziale richiesta dal modello",requiredByTemplate_plural:"{{count}} credenziali richieste dal modello",allConfigured:"Tutte le credenziali del modello configurate",addNow:"Aggiungi ora"}},health:{title:"Integrità e stato",loading:"Caricamento dati di integrità...",startRequired:"Avvii l'istanza per visualizzare lo stato di integrità.",statusLabel:"Stato",uptimeLabel:"Tempo di attività",versionLabel:"Versione",availableModels:"Modelli disponibili",modelColumn:"Modello",providerColumn:"Provider",healthyStatus:"● Funzionante",unhealthyStatus:"● Non funzionante"},groupChats:{description:"Gestisca le chat di gruppo che includono questa istanza.",viewAll:"Visualizza tutte le chat di gruppo →"},logs:{filterPlaceholder:"Filtra log...",autoFollow:"Segui automaticamente",startRequired:"Avvii l'istanza per visualizzare i log.",noEntries:"Nessuna voce di log.",truncated:"Output del log troncato; viene mostrato l'ultimo blocco.",levels:{trace:"trace",debug:"debug",info:"info",warn:"warn",error:"error",fatal:"fatal"}},events:{title:"Eventi",loading:"Caricamento eventi...",noEvents:"Nessun evento registrato.",columns:{time:"Ora",event:"Evento",details:"Dettagli"}},settings:{aiConfiguration:"Configurazione AI",providerLabel:"Provider",modelLabel:"Modello",modelPlaceholder:"es. gpt-4o-mini",saveButton:"Salva configurazione AI",saving:"Salvataggio...",saveSuccess:"Configurazione AI aggiornata. Riavvii l'istanza per applicare le modifiche.",saveError:"Aggiornamento della configurazione non riuscito",defaultSuffix:"(Predefinito)",dangerZone:"Zona pericolosa",deleteInstance:"Elimina istanza"},usage:{title:"Utilizzo e costi",loading:"Caricamento dati di utilizzo...",loadingPlatformSpend:"Caricamento spesa piattaforma...",startRequired:"Avvii l'istanza per visualizzare i dati di utilizzo della sessione.",noData:"Nessun dato di utilizzo ancora disponibile.",byokMessage:"Questa istanza utilizza le Sue API key personali. L'utilizzo viene tracciato direttamente dal provider.",dateRangeTo:"a",platformSpend:"Spesa piattaforma",totalSpend:"Spesa totale",budgetLimit:"Limite di budget",used:"{{amount}} utilizzato",limit:"{{amount}} limite",totalTokens:"Token totali",totalCost:"Costo totale",messages:"Messaggi",toolCalls:"Chiamate strumenti",dailyTokens:"Token giornalieri",dailyCost:"Costo giornaliero",byModel:"Per modello",topTools:"Strumenti principali",tokenBreakdown:"Dettaglio token",columns:{model:"Modello",provider:"Provider",requests:"Richieste",tokens:"Token",cost:"Costo",spend:"Spesa",tool:"Strumento",calls:"Chiamate",category:"Categoria"},tokenCategories:{input:"Input",output:"Output",cacheRead:"Lettura cache",cacheWrite:"Scrittura cache"}},oauth:{github:{title:"Autenticazione GitHub Copilot",description:"Verrà aperto GitHub in una nuova scheda. Inserisca un codice per autorizzare l'accesso.",authenticateButton:"Autenticati con GitHub",startingButton:"Avvio...",step1:"Passaggio 1:",step1Text:"Copi questo codice:",step2:"Passaggio 2:",step2Text:"Lo incolli su GitHub (aperto automaticamente):",step3:"Passaggio 3:",step3Text:'Clicchi "Authorize" su GitHub, poi attenda qui.',openAgain:"Apri di nuovo",waitingForAuth:"In attesa dell'autorizzazione...",copiedCode:"✓ Copiato",failedToStart:"Avvio del flusso OAuth non riuscito",pollingFailed:"Polling non riuscito",oauthError:"Errore OAuth: {{status}}"},openai:{title:"Autenticazione OpenAI",description:"Verrà aperto OpenAI in una nuova scheda. Inserisca un codice per autorizzare l'accesso a Codex.",authenticateButton:"Autenticati con OpenAI",startingButton:"Avvio...",step1:"Passaggio 1:",step1Text:"Copi questo codice:",step2:"Passaggio 2:",step2Text:"Lo incolli su OpenAI (aperto automaticamente):",step3:"Passaggio 3:",step3Text:"Autorizzi su OpenAI, poi attenda qui.",openAgain:"Apri di nuovo",waitingForAuth:"In attesa dell'autorizzazione...",copiedCode:"✓ Copiato",failedToStart:"Avvio del flusso OAuth OpenAI non riuscito",pollingFailed:"Polling non riuscito",oauthError:"Errore OAuth: {{status}}"},google:{title:"Autenticazione Google",description:"Verrà reindirizzato a Google per autorizzare l'accesso. Al termine dell'autorizzazione tornerà qui.",authenticateButton:"Autenticati con Google",redirectingButton:"Reindirizzamento...",failedToStart:"Avvio del flusso OAuth Google non riuscito"}}},RE={title:"Crea istanza",steps:{agentType:"Tipo di Agent",provider:"Provider AI",model:"Modello",channels:"Canali",name:"Nome",review:"Riepilogo"},agentType:{title:"Scelga un tipo di agent",description:"Ogni tipo di agent ha un diverso insieme di funzionalità e integrazioni.",loading:"Caricamento tipi di agent…",capabilities:{webUI:"Web UI",channels:"Canali",rpc:"RPC"}},provider:{title:"Scelga un provider AI",titleNoProviders:"Provider AI",description:"Selezioni il provider AI che alimenterà il Suo agent.",noConfigRequired:"Questo tipo di agent non richiede configurazione del provider.",platformAI:"Usa Platform AI",platformAIDescription:"Nessuna API key necessaria — fatturazione basata sull'utilizzo",modelCount:"{{count}} modello — BYOK",modelCount_plural:"{{count}} modelli — BYOK"},model:{title:"Modello",chooseTitle:"Scelga un modello",selectProviderFirst:"Selezioni prima un provider per scegliere un modello.",platformBanner:"Utilizzo di Platform AI — nessuna API key richiesta. L'utilizzo verrà tracciato e fatturato tramite la piattaforma.",selectModelFrom:"Selezioni il modello da {{provider}} da utilizzare.",apiKeyLabel:"API Key",apiKeyRequired:"*",apiKeyPlaceholder:"La Sua API key {{provider}}",apiKeyHint:"La Sua chiave è archiviata in modo crittografato e non viene mai condivisa.",defaultBadge:"Predefinito",defaultModel:"Modello predefinito: {{model}}",autoSelected:"selezionato automaticamente dalla piattaforma"},channels:{title:"Canali",messagingTitle:"Canali di messaggistica",description:"Abiliti i canali di messaggistica che desidera utilizzare con il Suo agent. Potrà configurarli dopo la creazione.",notSupported:"Questo tipo di agent non supporta canali di messaggistica.",configureLater:"Potrà collegare i canali successivamente dalle impostazioni dell'istanza.",whatsapp:"WhatsApp",whatsappDescription:"Richiede la scansione del codice QR dopo l'avvio dell'istanza",telegram:"Telegram",telegramDescription:"Richiede un token bot Telegram da @BotFather"},name:{title:"Assegni un nome alla Sua istanza",description:"Assegni al Suo agent un nome facile da ricordare.",label:"Nome istanza",placeholder:"es. Il mio assistente personale"},review:{title:"Riepilogo e creazione",description:"Verifichi la configurazione prima di creare l'istanza.",fields:{agentType:"Tipo di Agent",billingMode:"Modalità di fatturazione",billingPlatform:"Platform AI",billingBYOK:"BYOK",provider:"Provider",model:"Modello",apiKey:"API Key",apiKeyMasked:"••••••••",apiKeyNone:"(nessuna)",whatsapp:"WhatsApp",telegram:"Telegram",enabled:"Abilitato",disabled:"Disabilitato",instanceName:"Nome istanza"}},navigation:{back:"Indietro",next:"Avanti",creating:"Creazione in corso…",createInstance:"Crea istanza"},confirm:{title:"Confirm configuration",subtitle:"Review your settings before finishing.",nameLabel:"Assistant Name",principlesLabel:"Behavior Principles",principlesDefault:"Using default configuration",identityLabel:"Identity Description",nameSection:"Name",principlesSection:"Principles",principlesEmpty:"Using defaults",viewAll:"View all",credentialSection:"AI Source",platformTitle:"Platform Managed Credentials",platformDesc:"No API key needed. Usage-based billing.",byokTitle:"Bring Your Own Key (BYOK)",byokDesc:"Use your own API key.",credInfoTitle:"Platform Credentials",credInfoReady:"Ready",platformCredInfo:"Platform Credentials",platformCredBadge:"Ready",credName:"Credential Name",credProvider:"Provider",credModel:"Model",credBalance:"Balance",credInfoName:"Credential Name",credInfoProvider:"Provider",credInfoModel:"Model",credInfoBalance:"Balance",byokProvider:"Select provider",byokProviderPlaceholder:"Select a provider...",byokModelCount:"{{count}} models",byokApiKey:"API Key",byokApiKeyPlaceholder:"Enter your API key",byokModelLabel:"Model (optional)",byokModelPlaceholder:"Auto-detect by provider",modelLabel:"Model",modelsLoading:"Loading available models...",modelSearchPlaceholder:"Search models...",modelAuto:"Automatic",modelAutoDesc:"Platform selects the best model",modelRecommended:"Recommended",contextLabel:"Context Length",contextHint:"Affects the number of conversation turns the assistant remembers",tempLabel:"Creativity (Temperature)",tempHint:"Higher values produce more creative responses",tempCurrent:"Current value:",temperatureCurrent:"Current value:",temp_work:"Work",temp_work_sub:"Precise & stable",temp_life:"Life",temp_life_sub:"Natural & fluid",temp_creative:"Creative",temp_creative_sub:"Wild & imaginative",modelSection:"Model Configuration",model:"Model",context:"Context",temperature:"Temperature"},errors:{failedToCreate:"Creazione dell'istanza non riuscita"}},_E={list:{title:"Chat di gruppo",loading:"Caricamento...",noChats:"Nessuna chat di gruppo. Ne crei una per iniziare a chattare con i Suoi bot.",createButton:"Crea chat di gruppo",memberCount:"{{count}} membri",created:"Creato: {{date}}",mode:"Modalità: {{mode}}"},create:{title:"Crea nuova chat di gruppo",chatNameLabel:"Nome della chat",chatNamePlaceholder:"es. Sessione di brainstorming",selectInstances:"Selezioni le istanze",noInstances:"Nessuna istanza disponibile. Crei prima delle istanze.",displayNameInChat:"Nome visualizzato nella chat:",roleLabel:"Ruolo (opzionale):",rolePlaceholder:"es. Product designer con 10 anni di esperienza",inviteHumans:"Invita membri umani (opzionale)",searchByEmail:"Cerca per email...",searching:"Ricerca...",selectedHumans:"Umani selezionati:",removeHuman:"Rimuovi {{name}}",preview:"{{name}} — Anteprima",untitledChat:"Chat senza titolo",selectAtLeastOne:"Selezioni almeno un'istanza",creating:"Creazione...",createAndInvite:"Crea e invita",createGroupChat:"Crea chat di gruppo",failedToCreate:"Creazione della chat di gruppo non riuscita",failedToLoadGroupChats:"Caricamento delle chat di gruppo non riuscito"},detail:{loadingChat:"Caricamento chat...",chatNotFound:"Chat non trovata",deleteChat:"Elimina chat",deleteChatConfirm:"Eliminare questa chat di gruppo? L'operazione non può essere annullata.",loadOlderMessages:"Carica messaggi precedenti",loadingMessages:"Caricamento...",failedToLoadChat:"Caricamento della chat non riuscito",failedToLoadOlderMessages:"Caricamento dei messaggi precedenti non riuscito",failedToSendMessage:"Invio del messaggio non riuscito",failedToAddMember:"Aggiunta del membro non riuscita",failedToRemoveMember:"Rimozione del membro non riuscita",failedToUpdateMember:"Aggiornamento del membro non riuscito",removeMemberConfirm:"Rimuovere questo membro?",messagePlaceholder:"Scriva un messaggio... Usi @ per menzionare i bot",senderYou:"Lei",senderUnknown:"Sconosciuto",typeBadgeHuman:"Umano",typeBadgeBot:"Bot"},members:{title:"Membri",addButton:"Aggiungi membro",addTitle:"Aggiungi membro",editTitle:"Modifica",removeTitle:"Rimuovi",tabBot:"Istanza bot",tabHuman:"Utente umano",selectInstance:"Selezioni un'istanza",selectInstancePlaceholder:"Selezioni un'istanza...",searchUserByEmail:"Cerca utente per email",searchPlaceholder:"cerca@esempio.com",displayNameLabel:"Nome visualizzato",displayNamePlaceholderBot:"Nome del bot",displayNamePlaceholderHuman:"Nome visualizzato",roleLabel:"Ruolo (opzionale)",rolePlaceholder:"es. Moderatore, Assistente",adding:"Aggiunta...",addMember:"Aggiungi membro",save:"Salva",cancel:"Annulla"},delivery:{pending:"✓",delivered:"✓✓",processing:"⚡",completed:"✅",error:"❌"}},xE={title:"Galleria modelli",loading:"Caricamento...",searchPlaceholder:"Cerca modelli... (premi Invio)",noTemplates:"Nessun modello ancora disponibile.",officialTab:"Modelli ufficiali",communityTab:"Community",officialBadge:"Ufficiale",useTemplate:"Usa modello",installs:"{{count}} installazioni",forks:"{{count}} fork",version:"v{{version}}",requires:"Richiede: {{providers}}",categories:{all:"Tutte le categorie",customerService:"Assistenza clienti",sales:"Vendite",marketing:"Marketing",devops:"DevOps",education:"Formazione",personal:"Personale",custom:"Personalizzato"},instantiate:{title:"Crea da modello",templateLabel:"Modello: {{name}} v{{version}}",credentialsRequired:"Questo modello richiede credenziali per: {{credentials}}. Potrà configurarle nella pagina dell'istanza dopo la creazione.",instanceNameLabel:"Nome istanza",billingModeLabel:"Modalità fatturazione LLM",platformProvided:"Fornito dalla piattaforma",platformDescription:"Usa LLM della piattaforma — nessuna API key necessaria",bringYourOwnKey:"BYOK",byokDescription:"Usi le Sue API key per l'accesso LLM",creating:"Creazione...",createButton:"Crea da modello",failedToCreate:"Creazione dell'istanza non riuscita",failedToLoad:"Caricamento dei modelli non riuscito",geoCredentialLabel:"Credenziali piattaforma GEO",geoCredentialDescription:"Connettiti a SaleVoice per abilitare il monitoraggio GEO del tuo brand.",geoOAuthLabel:"Connetti con SaleVoice",geoOAuthDescription:"Accedi al tuo account SaleVoice",geoApiKeyLabel:"Chiave API",geoApiKeyDescription:"Incolla il tuo token API SaleVoice",geoConnectButton:"Connetti SaleVoice →",geoConnecting:"Connessione...",geoConnected:"Connesso a SaleVoice",geoApiKeyPlaceholder:"geo_xxxxxxxxxxxxx",geoSaveButton:"Salva",geoAuthFailed:"Impossibile avviare l'autenticazione SaleVoice",geoSaveFailed:"Impossibile salvare la chiave API",geoRequired:"Collega SaleVoice prima di creare l'istanza"}},NE={title:"Profilo",accountInfo:"Informazioni account",emailLabel:"Email",memberSince:"Membro dal",userId:"ID utente",displayNameLabel:"Nome visualizzato",updateProfile:"Aggiorna profilo",saving:"Salvataggio...",profileUpdated:"Profilo aggiornato",failedToUpdateProfile:"Aggiornamento del profilo non riuscito",usageBilling:"Utilizzo e fatturazione",loadingUsage:"Caricamento dati di utilizzo…",totalSpend:"Spesa totale",budgetLimit:"Limite di budget",budgetUsed:"Budget utilizzato",noUsageData:"Nessun dato di utilizzo disponibile. Il tracciamento dell'utilizzo inizia quando si utilizzano istanze Platform AI.",failedToLoadUsage:"Caricamento dei dati di utilizzo non riuscito",error:"Errore: {{message}}.",changePassword:"Cambia password",currentPassword:"Password attuale",newPassword:"Nuova password",confirmNewPassword:"Conferma nuova password",changePasswordButton:"Cambia password",changingPassword:"Modifica in corso...",passwordChanged:"Password modificata con successo",passwordTooShort:"La nuova password deve contenere almeno 6 caratteri",passwordsDoNotMatch:"Le password non corrispondono",failedToChangePassword:"Modifica della password non riuscita"},UE={title:"Dashboard amministrazione",loading:"Caricamento...",greeting:"Buongiorno, {{name}}",failedToLoad:"Caricamento dei dati di amministrazione non riuscito",stats:{totalUsers:"Utenti totali",totalInstances:"Istanze totali",running:"In esecuzione",stopped:"Arrestate",error:"Errore",signups7d:"Registrazioni (7g)"},deploymentTargets:"Destinazioni di distribuzione",platformUsage:"Utilizzo della piattaforma",globalSpend:"Spesa globale",activeSpenders:"Utenti attivi per spesa",usageTable:{user:"Utente",email:"Email",spend:"Spesa",budgetLimit:"Limite di budget",setBudget:"Imposta budget"},users:{title:"Utenti ({{count}})",columns:{name:"Nome",email:"Email",instances:"Istanze",running:"In esecuzione",joined:"Registrato"},showInstances:"Mostra",hideInstances:"Nascondi",resetPwd:"Reimposta pwd",loadingInstances:"Caricamento istanze...",noInstances:"Nessuna istanza trovata",failedToLoadInstances:"Caricamento delle istanze non riuscito"},resetPassword:{title:"Reimposta password",description:"Reimposta password per: {{email}}",newPasswordLabel:"Nuova password",resetButton:"Reimposta password",resetting:"Reimpostazione...",passwordTooShort:"La password deve contenere almeno 6 caratteri",success:"Password reimpostata per {{email}}",failed:"Reimpostazione della password non riuscita"},budget:{title:"Imposta limite di budget",description:"Imposta budget mensile per: {{email}}",limitLabel:"Limite di budget (USD)",limitPlaceholder:"Lasci vuoto per rimuovere il limite",saveButton:"Salva budget",saving:"Salvataggio...",invalidBudget:"Il budget deve essere un numero positivo oppure vuoto per rimuoverlo",success:"Budget aggiornato per {{email}}",failed:"Aggiornamento del budget non riuscito"}},BE={startRequired:"Avvii l'istanza per utilizzare la Chat.",emptyState:"Invii un messaggio per iniziare a chattare con l'agent.",inputPlaceholder:"Scriva un messaggio... (Shift+Invio per andare a capo)",settings:"Impostazioni",newChat:"+ Nuova chat",copyMessage:"Copia messaggio",noResponseError:"Nessuna risposta dall'agent — la connessione al Gateway potrebbe non essere pronta. Riprovi tra qualche secondo.",failedToSend:"Invio non riuscito",chatError:"Errore chat",failedToUpdateSettings:"Aggiornamento delle impostazioni non riuscito",sessionSettings:{modelLabel:"Modello",modelPlaceholder:"es. claude-sonnet-4",thinkingLevelLabel:"Livello di ragionamento",thinkingLevels:{default:"Predefinito",off:"Disattivato",low:"Basso",medium:"Medio",high:"Alto"},saving:"Salvataggio...",save:"Salva"},sessionDrawer:{toggleSessions:"Sessioni",sessions:"Sessioni",today:"Oggi",yesterday:"Ieri",thisWeek:"Questa settimana",older:"Precedenti",newChat:"Nuova chat",emptyState:"Nessuna conversazione",fetchError:"Impossibile caricare le sessioni",deleteConfirm:"Eliminare questa conversazione? L'azione non può essere annullata.",deleteTitle:"Elimina conversazione",deleteCancel:"Annulla",deleting:"Eliminazione..."},attachments:{invalidType:"Sono supportati solo file immagine, Excel, Word e PDF",tooLarge:"File troppo grande (immagini max 5 MB, documenti max 10 MB)",maxReached:"Massimo 5 allegati consentiti",dropHint:"Trascina i file qui",removeAttachment:"Rimuovi allegato",attachFile:"Allega file",fileTypes:{excel:"Excel",word:"Word",pdf:"PDF"}},scrollToBottom:"Scorri agli ultimi messaggi",loadingAgentUI:"Caricamento Agent UI…"},IE={unavailable:{title:"Agent UI non disponibile",description:"Avvii l'istanza per accedere all'Agent UI."},notSupported:{title:"Web UI non supportata",description:"Questo tipo di agent non supporta la Web UI integrata."},loadFailed:{title:"Caricamento Agent UI non riuscito",description:"Il Gateway potrebbe essere in fase di avvio o temporaneamente non disponibile."},iframeTitle:"Agent Web UI"},jE={title:"Snapshot",createButton:"Crea snapshot",viewVersionHistory:"Cronologia versioni",creating:"Creazione in corso…",loading:"Caricamento snapshot...",noSnapshots:"Nessuno snapshot presente. Ne crei uno per acquisire lo stato attuale della configurazione.",instanceMustBeRunning:"L'istanza deve essere in esecuzione per creare nuovi snapshot. Gli snapshot esistenti possono comunque essere visualizzati e ripristinati.",deleteConfirm:"Eliminare questo snapshot? L'operazione non può essere annullata.",noDescription:"Nessuna descrizione",failedToLoad:"Caricamento degli snapshot non riuscito",failedToCreate:"Creazione dello snapshot non riuscita",failedToDelete:"Eliminazione dello snapshot non riuscita",failedToRestore:"Ripristino dello snapshot non riuscito",triggerTypes:{manual:"Manuale",preOperation:"Automatico",daily:"Giornaliero"},diff:{title:"Confronto snapshot",takenAt:"Acquisito {{date}} · {{count}} modifica",takenAt_plural:"Acquisito {{date}} · {{count}} modifiche",restoreButton:"Ripristina questo snapshot",loadingDiff:"Caricamento confronto...",failedToLoadDiff:"Caricamento del confronto non riuscito",noChanges:"Nessuna modifica — lo snapshot corrisponde allo stato attuale.",changeTypes:{modified:"Modificato",added:"Aggiunto",removed:"Rimosso",unchanged:"Invariato"},snapshotWillBeRestored:"Snapshot (verrà ripristinato)",currentWillBeRemoved:"Attuale (verrà rimosso)",current:"Attuale"},restore:{title:"Ripristina snapshot",description:"Questa operazione ripristinerà la configurazione dell'istanza allo stato acquisito il {{date}}.",runningWarning:"L'istanza è attualmente in esecuzione. Il ripristino attiverà un hot-reload o un riavvio.",safetySnapshot:"Uno snapshot di sicurezza dello stato attuale verrà creato automaticamente prima del ripristino.",loadingAffectedFiles:"Caricamento file interessati...",affectedFilesTitle:"I seguenti file saranno interessati:",noFileChanges:"Nessuna modifica ai file rilevata — lo snapshot corrisponde allo stato attuale.",snapshotId:"ID snapshot:",restoreButton:"Ripristina",restoring:"Ripristino in corso…",diffBadges:{modified:"M",added:"A",removed:"R"}}},HE={title:"Tasso di consumo",loading:"Caricamento...",today:"Oggi",sevenDayAvg:"Media 7g",thirtyDayAvg:"Media 30g",daysUntilExhaustion:"Giorni all'esaurimento",daysCount:"{{count}} giorni",projectedMonthly:"Proiezione mensile",trends:{fastBurn:"Consumo rapido",rising:"In aumento",steady:"Stabile",cooling:"In calo",idle:"Inattivo"},notProvisioned:"Il tasso di consumo sarà disponibile dopo il primo avvio dell'istanza.",noUsage:"Nessun utilizzo registrato. Inizia a usare l'istanza per visualizzare i dati.",fetchError:"Impossibile caricare i dati sul consumo. Riprova più tardi."},KE={title:"Notifiche",buttonLabel:"Notifiche",buttonLabelWithCount:"Notifiche ({{count}} non lette)",markAllRead:"Segna tutte come lette",empty:"Nessuna notifica",unreadBadge:"99+"},qE={groupChats:"Chat di gruppo",dashboard:"Dashboard",skills:"Mercato Agenti",assistants:"I miei Assistenti",proComingSoon:"Piano Pro in arrivo",billingGroup:"Fatturazione e Costi",billing:"Fatturazione",costs:"Costi",userGroup:"Gestione utenti",credentials:"Credenziali",account:"Account",systemConfig:"Configurazione sistema",communityEdition:"Edizione Community"},GE={providerMode:{title:"Provider Mode",platformTitle:"Platform AI",platformDesc:"Managed by the platform. No API key required. Usage tracked and billed through Platform AI.",byokTitle:"Bring Your Own Key",byokDesc:"Use your own API key. You manage billing directly with the provider.",immutableNote:"Switching provider mode requires restarting the instance to take effect.",switchConfirm:"Switching to {{mode}} mode will require an instance restart. Continue?",switchSuccess:"Provider mode updated to {{mode}}. Please restart the instance to apply changes.",switchError:"Failed to switch provider mode.",switching:"Switching...",restartNow:"Restart Now",restartLater:"Restart Later",confirmTitle:"Switch Provider Mode",confirmCancel:"Cancel",confirmOk:"Continue"},model:{title:"Model",autoTitle:"Auto (Recommended)",autoDesc:"Cost-optimized routing. The platform picks the best model based on task complexity:",autoRouting1:"Simple tasks → GPT-4o Mini ($0.15/M tokens)",autoRouting2:"Standard tasks → Claude Sonnet 4 ($3/M tokens)",autoRouting3:"Complex tasks → Claude Opus 4 ($15/M tokens)",specificTitle:"Specific Model",specificDesc:"Always use a single model for all tasks.",placeholder:"e.g. anthropic/claude-sonnet-4",providerLabel:"Provider",modelLabel:"Model",defaultSuffix:"(Default)"},save:{button:"Save AI Configuration",saving:"Saving...",success:"AI configuration saved successfully.",error:"Failed to save."},byokCredential:{label:"API Key",configured:"Configured (added {{date}})",hint:"Enter the API key for this provider to enable BYOK mode.",placeholder:"Enter API key",updatePlaceholder:"Enter new API key to replace existing",saveButton:"Save Key",updateButton:"Update Key",deleteButton:"Remove",saved:"API key saved.",saveFailed:"Failed to save API key.",deleted:"API key removed.",deleteFailed:"Failed to remove API key."},toolCredentials:{title:"Tool Credentials",description:"API keys for tools and channels (web search, Telegram, Discord, etc.). These work in both Platform AI and BYOK modes.",noCredentials:"No tool credentials configured.",required:"Required: {{count}} missing credential(s)",addButton:"Add Credential",deleteConfirm:"Delete this credential?",deleteButton:"Delete",type:"Type:",added:"Added:",selectProvider:"Select a provider...",providerName:"Provider Name",providerPlaceholder:"e.g. brave",apiKeyLabel:"API Key",apiKeyPlaceholder:"Enter API key",other:"Other...",toolsGroup:"Tools",aiProvidersGroup:"AI Providers",cancel:"Cancel",selectError:"Please select or enter a provider.",addFailed:"Failed to add credential.",deleteFailed:"Failed to delete.",loadFailed:"Failed to load credentials",loading:"Loading credentials...",salevoice:{title:"SaleVoice (Piattaforma GEO)",description:"Collega il tuo account SaleVoice per le funzionalità GEO. Scegli OAuth o inserisci la tua chiave API.",oauthLabel:"Connetti tramite OAuth",oauthDescription:"Accedi con il tuo account SaleVoice (consigliato)",apiKeyLabel:"Chiave API",apiKeyDescription:"Inserisci manualmente la chiave API SaleVoice",connectButton:"Connetti SaleVoice",connecting:"Connessione...",connected:"SaleVoice connesso",apiKeyPlaceholder:"Inserisci la chiave API SaleVoice",saveButton:"Salva",authFailed:"Autenticazione SaleVoice fallita.",saveFailed:"Salvataggio credenziali SaleVoice fallito."}}},VE={title:"I miei assistenti",subtitle:"Gestisci tutti i tuoi assistenti IA",createNew:"Nuovo assistente",chat:"Chat",view:"Dettagli",configure:"Configura",disable:"Disattiva",enable:"Attiva",model:"Modello",emptyTitle:"Avvio rapido",emptyDescription:"Non hai ancora assistenti? Crea ora il tuo primo assistente IA",createFirst:"Crea assistente",loadFailed:"Impossibile caricare gli assistenti",actionFailed:"Azione non riuscita, riprova"},FE={startRequired:"Avvia l'istanza per visualizzare i file.",refresh:"Aggiorna",emptyState:"Nessun file trovato.",table:{name:"Nome",size:"Dimensione",type:"Tipo",modified:"Modificato",actions:"Azioni"},actions:{view:"Visualizza",download:"Scarica"},errors:{listFailed:"Impossibile elencare i file.",readFailed:"Impossibile leggere il file."},typeBadge:{excel:"Excel",word:"Word",pdf:"PDF",image:"Immagine",file:"File"},previewNotAvailable:"Anteprima non disponibile per questo tipo di file. Usa il pulsante Scarica."},YE={common:LE,auth:ME,dashboard:OE,instance:DE,wizard:RE,groupChat:_E,templates:xE,profile:NE,admin:UE,chat:BE,agentUI:IE,snapshots:jE,burnRate:HE,notifications:KE,sidebar:qE,aiTab:GE,myAssistants:VE,files:FE},e0={en:{label:"English",flag:"🇬🇧"},zh:{label:"中文",flag:"🇨🇳"},fr:{label:"Français",flag:"🇫🇷"},es:{label:"Español",flag:"🇪🇸"},de:{label:"Deutsch",flag:"🇩🇪"},it:{label:"Italiano",flag:"🇮🇹"}};dt.use(Um).use(eC).init({resources:{en:{translation:YC},zh:{translation:TA},fr:{translation:GA},es:{translation:uE},de:{translation:kE},it:{translation:YE}},fallbackLng:"en",interpolation:{escapeValue:!1},detection:{order:["localStorage","navigator"],caches:["localStorage"],lookupLocalStorage:"openclaw-language"}});var WE=class Bm extends Error{static kind="ClerkError";clerkError=!0;code;longMessage;docsUrl;cause;get name(){return this.constructor.name}constructor(l){super(new.target.formatMessage(new.target.kind,l.message,l.code,l.docsUrl),{cause:l.cause}),Object.setPrototypeOf(this,Bm.prototype),this.code=l.code,this.docsUrl=l.docsUrl,this.longMessage=l.longMessage,this.cause=l.cause}toString(){return`[${this.name}]
13
+ Message:${this.message}`}static formatMessage(l,u,s,o){const d="Clerk:",f=new RegExp(d.replace(" ","\\s*"),"i");return u=u.replace(f,""),u=`${d} ${u.trim()}
14
+
15
+ (code="${s}")
16
+
17
+ `,o&&(u+=`
18
+
19
+ Docs: ${o}`),u}};const $E=Object.freeze({InvalidProxyUrlErrorMessage:"The proxyUrl passed to Clerk is invalid. The expected value for proxyUrl is an absolute URL or a relative path with a leading '/'. (key={{url}})",InvalidPublishableKeyErrorMessage:"The publishableKey passed to Clerk is invalid. You can get your Publishable key at https://dashboard.clerk.com/last-active?path=api-keys. (key={{key}})",MissingPublishableKeyErrorMessage:"Missing publishableKey. You can get your key at https://dashboard.clerk.com/last-active?path=api-keys.",MissingSecretKeyErrorMessage:"Missing secretKey. You can get your key at https://dashboard.clerk.com/last-active?path=api-keys.",MissingClerkProvider:"{{source}} can only be used within the <ClerkProvider /> component. Learn more: https://clerk.com/docs/components/clerk-provider"});function Im({packageName:i,customMessages:l}){let u=i;function s(d,f){if(!f)return`${u}: ${d}`;let h=d;const m=d.matchAll(/{{([a-zA-Z0-9-_]+)}}/g);for(const g of m){const b=(f[g[1]]||"").toString();h=h.replace(`{{${g[1]}}}`,b)}return`${u}: ${h}`}const o={...$E,...l};return{setPackageName({packageName:d}){return typeof d=="string"&&(u=d),this},setMessages({customMessages:d}){return Object.assign(o,d||{}),this},throwInvalidPublishableKeyError(d){throw new Error(s(o.InvalidPublishableKeyErrorMessage,d))},throwInvalidProxyUrl(d){throw new Error(s(o.InvalidProxyUrlErrorMessage,d))},throwMissingPublishableKeyError(){throw new Error(s(o.MissingPublishableKeyErrorMessage))},throwMissingSecretKeyError(){throw new Error(s(o.MissingSecretKeyErrorMessage))},throwMissingClerkProviderError(d){throw new Error(s(o.MissingClerkProvider,d))},throw(d){throw new Error(s(d))}}}var Xu=class jm extends WE{static kind="ClerkRuntimeError";clerkRuntimeError=!0;constructor(l,u){super({...u,message:l}),Object.setPrototypeOf(this,jm.prototype)}};const ZE=[".lcl.dev",".stg.dev",".lclstage.dev",".stgstage.dev",".dev.lclclerk.com",".stg.lclclerk.com",".accounts.lclclerk.com","accountsstage.dev","accounts.dev"],Hm=i=>typeof atob<"u"&&typeof atob=="function"?atob(i):typeof global<"u"&&global.Buffer?new global.Buffer(i,"base64").toString():i,Km="pk_live_",QE="pk_test_";function qm(i){if(!i.endsWith("$"))return!1;const l=i.slice(0,-1);return l.includes("$")?!1:l.includes(".")}function Wh(i,l={}){if(i=i||"",!i||!$h(i)){if(l.fatal&&!i)throw new Error("Publishable key is missing. Ensure that your publishable key is correctly configured. Double-check your environment configuration for your keys, or access them here: https://dashboard.clerk.com/last-active?path=api-keys");if(l.fatal&&!$h(i))throw new Error("Publishable key not valid.");return null}const u=i.startsWith(Km)?"production":"development";let s;try{s=Hm(i.split("_")[2])}catch{if(l.fatal)throw new Error("Publishable key not valid: Failed to decode key.");return null}if(!qm(s)){if(l.fatal)throw new Error("Publishable key not valid: Decoded key has invalid format.");return null}let o=s.slice(0,-1);return l.proxyUrl?o=l.proxyUrl:u!=="development"&&l.domain&&l.isSatellite&&(o=`clerk.${l.domain}`),{instanceType:u,frontendApi:o}}function $h(i=""){try{if(!(i.startsWith(Km)||i.startsWith(QE)))return!1;const l=i.split("_");if(l.length!==3)return!1;const u=l[2];return u?qm(Hm(u)):!1}catch{return!1}}function XE(){const i=new Map;return{isDevOrStagingUrl:l=>{if(!l)return!1;const u=typeof l=="string"?l:l.hostname;let s=i.get(u);return s===void 0&&(s=ZE.some(o=>u.endsWith(o)),i.set(u,s)),s}}}var Zh=Object.prototype.hasOwnProperty;function Qh(i,l,u){for(u of i.keys())if(cl(u,l))return u}function cl(i,l){var u,s,o;if(i===l)return!0;if(i&&l&&(u=i.constructor)===l.constructor){if(u===Date)return i.getTime()===l.getTime();if(u===RegExp)return i.toString()===l.toString();if(u===Array){if((s=i.length)===l.length)for(;s--&&cl(i[s],l[s]););return s===-1}if(u===Set){if(i.size!==l.size)return!1;for(s of i)if(o=s,o&&typeof o=="object"&&(o=Qh(l,o),!o)||!l.has(o))return!1;return!0}if(u===Map){if(i.size!==l.size)return!1;for(s of i)if(o=s[0],o&&typeof o=="object"&&(o=Qh(l,o),!o)||!cl(s[1],l.get(o)))return!1;return!0}if(u===ArrayBuffer)i=new Uint8Array(i),l=new Uint8Array(l);else if(u===DataView){if((s=i.byteLength)===l.byteLength)for(;s--&&i.getInt8(s)===l.getInt8(s););return s===-1}if(ArrayBuffer.isView(i)){if((s=i.byteLength)===l.byteLength)for(;s--&&i[s]===l[s];);return s===-1}if(!u||typeof i=="object"){s=0;for(u in i)if(Zh.call(i,u)&&++s&&!Zh.call(l,u)||!(u in l)||!cl(i[u],l[u]))return!1;return Object.keys(l).length===s}}return i!==i&&l!==l}function JE(i,l){if(!i)throw typeof l=="string"?new Error(l):new Error(`${l.displayName} not found`)}const ba=(i,l)=>{const{assertCtxFn:u=JE}={},s=B.createContext(void 0);return s.displayName=i,[s,()=>{const f=B.useContext(s);return u(f,`${i} not found`),f.value},()=>{const f=B.useContext(s);return f?f.value:{}}]},[ew,tw]=ba("ClerkInstanceContext");ba("UserContext");ba("ClientContext");ba("SessionContext");B.createContext({});ba("CheckoutContext");ba("OrganizationContext");function aw(i){if(!B.useContext(ew)){if(typeof i=="function"){i();return}throw new Error(`${i} can only be used within the <ClerkProvider /> component.
20
+
21
+ Possible fixes:
22
+ 1. Ensure that the <ClerkProvider /> is correctly wrapping your application where this component is used.
23
+ 2. Check for multiple versions of the \`@clerk/shared\` package in your project. Use a tool like \`npm ls @clerk/shared\` to identify multiple versions, and update your dependencies to only rely on one.
24
+
25
+ Learn more: https://clerk.com/docs/components/clerk-provider`.trim())}}typeof window<"u"?B.useLayoutEffect:B.useEffect;const Xh=cl,nw=i=>{const l=E.useRef(i);return E.useEffect(()=>{l.current=i},[i]),l.current},Lt=(i,l,u)=>{const s=!!u,o=E.useRef(u);E.useEffect(()=>{o.current=u},[u]),E.useEffect(()=>{if(!s||!i)return()=>{};const d=(...f)=>{o.current&&o.current(...f)};return i.on(l,d),()=>{i.off(l,d)}},[s,l,i,o])},Gm=B.createContext(null);Gm.displayName="ElementsContext";const iw=(i,l)=>{if(!i)throw new Error(`Could not find Elements context; You need to wrap the part of your app that ${l} in an <Elements> provider.`);return i},Zo=i=>i!==null&&typeof i=="object",lw=(i,l,u)=>Zo(i)?Object.keys(i).reduce((s,o)=>{const d=!Zo(l)||!Vm(i[o],l[o]);return u.includes(o)?(d&&console.warn(`Unsupported prop change: options.${o} is not a mutable property.`),s):d?{...s||{},[o]:i[o]}:s},null):null,Jh="[object Object]",Vm=(i,l)=>{if(!Zo(i)||!Zo(l))return i===l;const u=Array.isArray(i);if(u!==Array.isArray(l))return!1;const s=Object.prototype.toString.call(i)===Jh;if(s!==(Object.prototype.toString.call(l)===Jh))return!1;if(!s&&!u)return i===l;const o=Object.keys(i),d=Object.keys(l);if(o.length!==d.length)return!1;const f={};for(let y=0;y<o.length;y+=1)f[o[y]]=!0;for(let y=0;y<d.length;y+=1)f[d[y]]=!0;const h=Object.keys(f);if(h.length!==o.length)return!1;const m=i,g=l,b=y=>Vm(m[y],g[y]);return h.every(b)},em=i=>iw(B.useContext(Gm),i),ow=i=>i.charAt(0).toUpperCase()+i.slice(1),rw=(i,l)=>{const u=`${ow(i)}Element`,d=l?f=>{em(`mounts <${u}>`);const{id:h,className:m}=f;return B.createElement("div",{id:h,className:m})}:({id:f,className:h,fallback:m,options:g={},onBlur:b,onFocus:y,onReady:k,onChange:D,onEscape:x,onClick:I,onLoadError:N,onLoaderStart:K,onNetworksChange:j,onConfirm:q,onCancel:Q,onShippingAddressChange:ee,onShippingRateChange:F})=>{const V=em(`mounts <${u}>`),te="elements"in V?V.elements:null,[ne,me]=B.useState(null),De=B.useRef(null),Ae=B.useRef(null),[Se,ke]=E.useState(!1);Lt(ne,"blur",b),Lt(ne,"focus",y),Lt(ne,"escape",x),Lt(ne,"click",I),Lt(ne,"loaderror",N),Lt(ne,"loaderstart",K),Lt(ne,"networkschange",j),Lt(ne,"confirm",q),Lt(ne,"cancel",Q),Lt(ne,"shippingaddresschange",ee),Lt(ne,"shippingratechange",F),Lt(ne,"change",D);let xe;k&&(xe=()=>{ke(!0),k(ne)}),Lt(ne,"ready",xe),B.useLayoutEffect(()=>{if(De.current===null&&Ae.current!==null&&te){let H=null;te&&(H=te.create(i,g)),De.current=H,me(H),H&&H.mount(Ae.current)}},[te,g]);const M=nw(g);return B.useEffect(()=>{if(!De.current)return;const H=lw(g,M,["paymentRequest"]);H&&"update"in De.current&&De.current.update(H)},[g,M]),B.useLayoutEffect(()=>()=>{if(De.current&&typeof De.current.destroy=="function")try{De.current.destroy(),De.current=null}catch{}},[]),B.createElement(B.Fragment,null,!Se&&m,B.createElement("div",{id:f,style:{height:Se?"unset":"0px",visibility:Se?"visible":"hidden"},className:h,ref:Ae}))};return d.displayName=u,d.__elementType=i,d};rw("payment",typeof window>"u");ba("PaymentElementContext");ba("StripeUtilsContext");var vn=Im({packageName:"@clerk/clerk-react"});function sw(i){vn.setMessages(i).setPackageName(i)}ba("AuthContext");var uw=tw,cw=i=>`You've passed multiple children components to <${i}/>. You can only pass a single child component or text.`,ju="Unsupported usage of isSatellite, domain or proxyUrl. The usage of isSatellite, domain or proxyUrl as function is not supported in non-browser environments.",dw="<UserProfile.Page /> component needs to be a direct child of `<UserProfile />` or `<UserButton />`.",fw="<UserProfile.Link /> component needs to be a direct child of `<UserProfile />` or `<UserButton />`.",pw="<OrganizationProfile.Page /> component needs to be a direct child of `<OrganizationProfile />` or `<OrganizationSwitcher />`.",hw="<OrganizationProfile.Link /> component needs to be a direct child of `<OrganizationProfile />` or `<OrganizationSwitcher />`.",mw=i=>`<${i} /> can only accept <${i}.Page /> and <${i}.Link /> as its children. Any other provided component will be ignored. Additionally, please ensure that the component is rendered in a client component.`,gw=i=>`Missing props. <${i}.Page /> component requires the following props: url, label, labelIcon, alongside with children to be rendered inside the page.`,vw=i=>`Missing props. <${i}.Link /> component requires the following props: url, label and labelIcon.`,yw="<UserButton /> can only accept <UserButton.UserProfilePage />, <UserButton.UserProfileLink /> and <UserButton.MenuItems /> as its children. Any other provided component will be ignored. Additionally, please ensure that the component is rendered in a client component.",bw="<UserButton.MenuItems /> component can only accept <UserButton.Action /> and <UserButton.Link /> as its children. Any other provided component will be ignored. Additionally, please ensure that the component is rendered in a client component.",Sw="<UserButton.MenuItems /> component needs to be a direct child of `<UserButton />`.",Cw="<UserButton.Action /> component needs to be a direct child of `<UserButton.MenuItems />`.",Aw="<UserButton.Link /> component needs to be a direct child of `<UserButton.MenuItems />`.",Ew="Missing props. <UserButton.Link /> component requires the following props: href, label and labelIcon.",ww="Missing props. <UserButton.Action /> component requires the following props: label.",Tw=i=>{aw(()=>{vn.throwMissingClerkProviderError({source:i})})},_e=(i,l)=>{const s=(typeof l=="string"?l:l?.component)||i.displayName||i.name||"Component";i.displayName=s;const o=typeof l=="string"?void 0:l,d=f=>{Tw(s||"withClerk");const h=uw();return!h.loaded&&!o?.renderWhileLoading?null:B.createElement(i,{...f,component:s,clerk:h})};return d.displayName=`withClerk(${s})`,d};const Pw=()=>{try{return!1}catch{}return!1},zw=()=>{try{return!1}catch{}return!1},kw=()=>{try{return!0}catch{}return!1},tm=new Set,uc=(i,l,u)=>{const s=zw()||kw(),o=i;tm.has(o)||s||(tm.add(o),console.warn(`Clerk - DEPRECATION WARNING: "${i}" is deprecated and will be removed in the next major release.
26
+ ${l}`))};_e(({clerk:i,...l})=>{const{client:u,session:s}=i,o=u.signedInSessions?u.signedInSessions.length>0:u.activeSessions&&u.activeSessions.length>0;return B.useEffect(()=>{s===null&&o?i.redirectToAfterSignOut():i.redirectToSignIn(l)},[]),null},"RedirectToSignIn");_e(({clerk:i,...l})=>(B.useEffect(()=>{i.redirectToSignUp(l)},[]),null),"RedirectToSignUp");_e(({clerk:i,...l})=>(B.useEffect(()=>{i.redirectToTasks(l)},[]),null),"RedirectToTasks");_e(({clerk:i})=>(B.useEffect(()=>{uc("RedirectToUserProfile","Use the `redirectToUserProfile()` method instead."),i.redirectToUserProfile()},[]),null),"RedirectToUserProfile");_e(({clerk:i})=>(B.useEffect(()=>{uc("RedirectToOrganizationProfile","Use the `redirectToOrganizationProfile()` method instead."),i.redirectToOrganizationProfile()},[]),null),"RedirectToOrganizationProfile");_e(({clerk:i})=>(B.useEffect(()=>{uc("RedirectToCreateOrganization","Use the `redirectToCreateOrganization()` method instead."),i.redirectToCreateOrganization()},[]),null),"RedirectToCreateOrganization");_e(({clerk:i,...l})=>(B.useEffect(()=>{i.handleRedirectCallback(l)},[]),null),"AuthenticateWithRedirectCallback");function Hu(i,l,u){if(typeof i=="function")return i(l);if(typeof i<"u")return i;if(typeof u<"u")return u}const ct=i=>{Pw()&&console.error(`Clerk: ${i}`)},am=(i,...l)=>{const u={...i};for(const s of l)delete u[s];return u};var ar=i=>l=>{try{return B.Children.only(i)}catch{return vn.throw(cw(l))}},nr=(i,l)=>(i||(i=l),typeof i=="string"&&(i=B.createElement("button",null,i)),i),ir=i=>(...l)=>{if(i&&typeof i=="function")return i(...l)};function Lw(i){return typeof i=="function"}var dl=i=>{const[l,u]=E.useState(new Map);return i.map(s=>({id:s.id,mount:o=>u(d=>new Map(d).set(String(s.id),o)),unmount:()=>u(o=>{const d=new Map(o);return d.set(String(s.id),null),d}),portal:()=>{const o=l.get(String(s.id));return o?TS.createPortal(s.component,o):null}}))},ut=(i,l)=>!!i&&B.isValidElement(i)&&i?.type===l,Fm=(i,l)=>$m({children:i,reorderItemsLabels:["account","security","billing","apiKeys"],LinkComponent:vl,PageComponent:gl,MenuItemsComponent:or,componentName:"UserProfile"},l),Ym=(i,l)=>$m({children:i,reorderItemsLabels:["general","members","billing","apiKeys"],LinkComponent:sr,PageComponent:rr,componentName:"OrganizationProfile"},l),Wm=i=>{const l=[],u=[sr,rr,or,gl,vl];return B.Children.forEach(i,s=>{u.some(o=>ut(s,o))||l.push(s)}),l},$m=(i,l)=>{const{children:u,LinkComponent:s,PageComponent:o,MenuItemsComponent:d,reorderItemsLabels:f,componentName:h}=i,{allowForAnyChildren:m=!1}=l||{},g=[];B.Children.forEach(u,j=>{if(!ut(j,o)&&!ut(j,s)&&!ut(j,d)){j&&!m&&ct(mw(h));return}const{props:q}=j,{children:Q,label:ee,url:F,labelIcon:V}=q;if(ut(j,o))if(nm(q,f))g.push({label:ee});else if(Ku(q))g.push({label:ee,labelIcon:V,children:Q,url:F});else{ct(gw(h));return}if(ut(j,s))if(qu(q))g.push({label:ee,labelIcon:V,url:F});else{ct(vw(h));return}});const b=[],y=[],k=[];g.forEach((j,q)=>{if(Ku(j)){b.push({component:j.children,id:q}),y.push({component:j.labelIcon,id:q});return}qu(j)&&k.push({component:j.labelIcon,id:q})});const D=dl(b),x=dl(y),I=dl(k),N=[],K=[];return g.forEach((j,q)=>{if(nm(j,f)){N.push({label:j.label});return}if(Ku(j)){const{portal:Q,mount:ee,unmount:F}=D.find(me=>me.id===q),{portal:V,mount:te,unmount:ne}=x.find(me=>me.id===q);N.push({label:j.label,url:j.url,mount:ee,unmount:F,mountIcon:te,unmountIcon:ne}),K.push(Q),K.push(V);return}if(qu(j)){const{portal:Q,mount:ee,unmount:F}=I.find(V=>V.id===q);N.push({label:j.label,url:j.url,mountIcon:ee,unmountIcon:F}),K.push(Q);return}}),{customPages:N,customPagesPortals:K}},nm=(i,l)=>{const{children:u,label:s,url:o,labelIcon:d}=i;return!u&&!o&&!d&&l.some(f=>f===s)},Ku=i=>{const{children:l,label:u,url:s,labelIcon:o}=i;return!!l&&!!s&&!!o&&!!u},qu=i=>{const{children:l,label:u,url:s,labelIcon:o}=i;return!l&&!!s&&!!o&&!!u},Mw=(i,l)=>{var u;return Ow({children:i,reorderItemsLabels:["manageAccount","signOut"],MenuItemsComponent:or,MenuActionComponent:Qm,MenuLinkComponent:Xm,UserProfileLinkComponent:vl,UserProfilePageComponent:gl,allowForAnyChildren:(u=l?.allowForAnyChildren)!=null?u:!1})},Ow=({children:i,MenuItemsComponent:l,MenuActionComponent:u,MenuLinkComponent:s,UserProfileLinkComponent:o,UserProfilePageComponent:d,reorderItemsLabels:f,allowForAnyChildren:h=!1})=>{const m=[],g=[],b=[];B.Children.forEach(i,I=>{if(!ut(I,l)&&!ut(I,o)&&!ut(I,d)){I&&!h&&ct(yw);return}if(ut(I,o)||ut(I,d))return;const{props:N}=I;B.Children.forEach(N.children,K=>{if(!ut(K,u)&&!ut(K,s)){K&&ct(bw);return}const{props:j}=K,{label:q,labelIcon:Q,href:ee,onClick:F,open:V}=j;if(ut(K,u))if(im(j,f))m.push({label:q});else if(Gu(j)){const te={label:q,labelIcon:Q};if(F!==void 0)m.push({...te,onClick:F});else if(V!==void 0)m.push({...te,open:V.startsWith("/")?V:`/${V}`});else{ct("Custom menu item must have either onClick or open property");return}}else{ct(ww);return}if(ut(K,s))if(Vu(j))m.push({label:q,labelIcon:Q,href:ee});else{ct(Ew);return}})});const y=[],k=[];m.forEach((I,N)=>{Gu(I)&&y.push({component:I.labelIcon,id:N}),Vu(I)&&k.push({component:I.labelIcon,id:N})});const D=dl(y),x=dl(k);return m.forEach((I,N)=>{if(im(I,f)&&g.push({label:I.label}),Gu(I)){const{portal:K,mount:j,unmount:q}=D.find(ee=>ee.id===N),Q={label:I.label,mountIcon:j,unmountIcon:q};"onClick"in I?Q.onClick=I.onClick:"open"in I&&(Q.open=I.open),g.push(Q),b.push(K)}if(Vu(I)){const{portal:K,mount:j,unmount:q}=x.find(Q=>Q.id===N);g.push({label:I.label,href:I.href,mountIcon:j,unmountIcon:q}),b.push(K)}}),{customMenuItems:g,customMenuItemsPortals:b}},im=(i,l)=>{const{children:u,label:s,onClick:o,labelIcon:d}=i;return!u&&!o&&!d&&l.some(f=>f===s)},Gu=i=>{const{label:l,labelIcon:u,onClick:s,open:o}=i;return!!u&&!!l&&(typeof s=="function"||typeof o=="string")},Vu=i=>{const{label:l,href:u,labelIcon:s}=i;return!!u&&!!s&&!!l},Dw=i=>{const l=i?.isReady;return u=>new Promise((s,o)=>{const{root:d=document?.body,selector:f,timeout:h=0}=u;if(!d){o(new Error("No root element provided"));return}let m=d;if(f&&(m=d?.querySelector(f)),l(m,f)){s();return}const g=new MutationObserver(b=>{for(const y of b)if(!m&&f&&(m=d?.querySelector(f)),(i.childList&&y.type==="childList"||i.attributes&&y.type==="attributes")&&l(m,f)){g.disconnect(),s();return}});g.observe(d,i),h>0&&setTimeout(()=>{g.disconnect(),o(new Error(`Timeout waiting for ${f}`))},h)})},Rw=Dw({childList:!0,subtree:!0,isReady:(i,l)=>{var u;return!!i?.childElementCount&&((u=i?.matches)==null?void 0:u.call(i,l))&&i.childElementCount>0}});function ot(i,l){const u=E.useRef(),[s,o]=E.useState("rendering");return E.useEffect(()=>{if(!i)throw new Error("Clerk: no component name provided, unable to detect mount.");if(typeof window<"u"&&!u.current){const d=`[data-clerk-component="${i}"]`,f=l?.selector;u.current=Rw({selector:f?d+f:d}).then(()=>{o("rendered")}).catch(()=>{o("error")})}},[i,l?.selector]),s}var Io=i=>"mount"in i,lm=i=>"open"in i,om=i=>i?.map(({mountIcon:l,unmountIcon:u,...s})=>s),Je=class extends B.PureComponent{constructor(){super(...arguments),this.rootRef=B.createRef()}componentDidUpdate(i){var l,u,s,o;if(!Io(i)||!Io(this.props))return;const d=am(i.props,"customPages","customMenuItems","children"),f=am(this.props.props,"customPages","customMenuItems","children"),h=((l=d.customPages)==null?void 0:l.length)!==((u=f.customPages)==null?void 0:u.length),m=((s=d.customMenuItems)==null?void 0:s.length)!==((o=f.customMenuItems)==null?void 0:o.length),g=om(i.props.customMenuItems),b=om(this.props.props.customMenuItems);(!Xh(d,f)||!Xh(g,b)||h||m)&&this.rootRef.current&&this.props.updateProps({node:this.rootRef.current,props:this.props.props})}componentDidMount(){this.rootRef.current&&(Io(this.props)&&this.props.mount(this.rootRef.current,this.props.props),lm(this.props)&&this.props.open(this.props.props))}componentWillUnmount(){this.rootRef.current&&(Io(this.props)&&this.props.unmount(this.rootRef.current),lm(this.props)&&this.props.close())}render(){const{hideRootHtmlElement:i=!1}=this.props,l={ref:this.rootRef,...this.props.rootProps,...this.props.component&&{"data-clerk-component":this.props.component}};return B.createElement(B.Fragment,null,!i&&B.createElement("div",{...l}),this.props.children)}},lr=i=>{var l,u;return B.createElement(B.Fragment,null,(l=i?.customPagesPortals)==null?void 0:l.map((s,o)=>E.createElement(s,{key:o})),(u=i?.customMenuItemsPortals)==null?void 0:u.map((s,o)=>E.createElement(s,{key:o})))};_e(({clerk:i,component:l,fallback:u,...s})=>{const d=ot(l)==="rendering"||!i.loaded,f={...d&&u&&{style:{display:"none"}}};return B.createElement(B.Fragment,null,d&&u,i.loaded&&B.createElement(Je,{component:l,mount:i.mountSignIn,unmount:i.unmountSignIn,updateProps:i.__unstable__updateProps,props:s,rootProps:f}))},{component:"SignIn",renderWhileLoading:!0});_e(({clerk:i,component:l,fallback:u,...s})=>{const d=ot(l)==="rendering"||!i.loaded,f={...d&&u&&{style:{display:"none"}}};return B.createElement(B.Fragment,null,d&&u,i.loaded&&B.createElement(Je,{component:l,mount:i.mountSignUp,unmount:i.unmountSignUp,updateProps:i.__unstable__updateProps,props:s,rootProps:f}))},{component:"SignUp",renderWhileLoading:!0});function gl({children:i}){return ct(dw),B.createElement(B.Fragment,null,i)}function vl({children:i}){return ct(fw),B.createElement(B.Fragment,null,i)}var _w=_e(({clerk:i,component:l,fallback:u,...s})=>{const d=ot(l)==="rendering"||!i.loaded,f={...d&&u&&{style:{display:"none"}}},{customPages:h,customPagesPortals:m}=Fm(s.children);return B.createElement(B.Fragment,null,d&&u,B.createElement(Je,{component:l,mount:i.mountUserProfile,unmount:i.unmountUserProfile,updateProps:i.__unstable__updateProps,props:{...s,customPages:h},rootProps:f},B.createElement(lr,{customPagesPortals:m})))},{component:"UserProfile",renderWhileLoading:!0});Object.assign(_w,{Page:gl,Link:vl});var Zm=E.createContext({mount:()=>{},unmount:()=>{},updateProps:()=>{}}),xw=_e(({clerk:i,component:l,fallback:u,...s})=>{const d=ot(l)==="rendering"||!i.loaded,f={...d&&u&&{style:{display:"none"}}},{customPages:h,customPagesPortals:m}=Fm(s.children,{allowForAnyChildren:!!s.__experimental_asProvider}),g={...s.userProfileProps,customPages:h},{customMenuItems:b,customMenuItemsPortals:y}=Mw(s.children,{allowForAnyChildren:!!s.__experimental_asProvider}),k=Wm(s.children),D={mount:i.mountUserButton,unmount:i.unmountUserButton,updateProps:i.__unstable__updateProps,props:{...s,userProfileProps:g,customMenuItems:b}},x={customPagesPortals:m,customMenuItemsPortals:y};return B.createElement(Zm.Provider,{value:D},d&&u,i.loaded&&B.createElement(Je,{component:l,...D,hideRootHtmlElement:!!s.__experimental_asProvider,rootProps:f},s.__experimental_asProvider?k:null,B.createElement(lr,{...x})))},{component:"UserButton",renderWhileLoading:!0});function or({children:i}){return ct(Sw),B.createElement(B.Fragment,null,i)}function Qm({children:i}){return ct(Cw),B.createElement(B.Fragment,null,i)}function Xm({children:i}){return ct(Aw),B.createElement(B.Fragment,null,i)}function Nw(i){const l=E.useContext(Zm),u={...l,props:{...l.props,...i}};return B.createElement(Je,{...u})}Object.assign(xw,{UserProfilePage:gl,UserProfileLink:vl,MenuItems:or,Action:Qm,Link:Xm,__experimental_Outlet:Nw});function rr({children:i}){return ct(pw),B.createElement(B.Fragment,null,i)}function sr({children:i}){return ct(hw),B.createElement(B.Fragment,null,i)}var Uw=_e(({clerk:i,component:l,fallback:u,...s})=>{const d=ot(l)==="rendering"||!i.loaded,f={...d&&u&&{style:{display:"none"}}},{customPages:h,customPagesPortals:m}=Ym(s.children);return B.createElement(B.Fragment,null,d&&u,i.loaded&&B.createElement(Je,{component:l,mount:i.mountOrganizationProfile,unmount:i.unmountOrganizationProfile,updateProps:i.__unstable__updateProps,props:{...s,customPages:h},rootProps:f},B.createElement(lr,{customPagesPortals:m})))},{component:"OrganizationProfile",renderWhileLoading:!0});Object.assign(Uw,{Page:rr,Link:sr});_e(({clerk:i,component:l,fallback:u,...s})=>{const d=ot(l)==="rendering"||!i.loaded,f={...d&&u&&{style:{display:"none"}}};return B.createElement(B.Fragment,null,d&&u,i.loaded&&B.createElement(Je,{component:l,mount:i.mountCreateOrganization,unmount:i.unmountCreateOrganization,updateProps:i.__unstable__updateProps,props:s,rootProps:f}))},{component:"CreateOrganization",renderWhileLoading:!0});var Jm=E.createContext({mount:()=>{},unmount:()=>{},updateProps:()=>{}}),Bw=_e(({clerk:i,component:l,fallback:u,...s})=>{const d=ot(l)==="rendering"||!i.loaded,f={...d&&u&&{style:{display:"none"}}},{customPages:h,customPagesPortals:m}=Ym(s.children,{allowForAnyChildren:!!s.__experimental_asProvider}),g={...s.organizationProfileProps,customPages:h},b=Wm(s.children),y={mount:i.mountOrganizationSwitcher,unmount:i.unmountOrganizationSwitcher,updateProps:i.__unstable__updateProps,props:{...s,organizationProfileProps:g},rootProps:f,component:l};return i.__experimental_prefetchOrganizationSwitcher(),B.createElement(Jm.Provider,{value:y},B.createElement(B.Fragment,null,d&&u,i.loaded&&B.createElement(Je,{...y,hideRootHtmlElement:!!s.__experimental_asProvider},s.__experimental_asProvider?b:null,B.createElement(lr,{customPagesPortals:m}))))},{component:"OrganizationSwitcher",renderWhileLoading:!0});function Iw(i){const l=E.useContext(Jm),u={...l,props:{...l.props,...i}};return B.createElement(Je,{...u})}Object.assign(Bw,{OrganizationProfilePage:rr,OrganizationProfileLink:sr,__experimental_Outlet:Iw});_e(({clerk:i,component:l,fallback:u,...s})=>{const d=ot(l)==="rendering"||!i.loaded,f={...d&&u&&{style:{display:"none"}}};return B.createElement(B.Fragment,null,d&&u,i.loaded&&B.createElement(Je,{component:l,mount:i.mountOrganizationList,unmount:i.unmountOrganizationList,updateProps:i.__unstable__updateProps,props:s,rootProps:f}))},{component:"OrganizationList",renderWhileLoading:!0});_e(({clerk:i,component:l,fallback:u,...s})=>{const d=ot(l)==="rendering"||!i.loaded,f={...d&&u&&{style:{display:"none"}}};return B.createElement(B.Fragment,null,d&&u,i.loaded&&B.createElement(Je,{component:l,open:i.openGoogleOneTap,close:i.closeGoogleOneTap,updateProps:i.__unstable__updateProps,props:s,rootProps:f}))},{component:"GoogleOneTap",renderWhileLoading:!0});_e(({clerk:i,component:l,fallback:u,...s})=>{const d=ot(l)==="rendering"||!i.loaded,f={...d&&u&&{style:{display:"none"}}};return B.createElement(B.Fragment,null,d&&u,i.loaded&&B.createElement(Je,{component:l,mount:i.mountWaitlist,unmount:i.unmountWaitlist,updateProps:i.__unstable__updateProps,props:s,rootProps:f}))},{component:"Waitlist",renderWhileLoading:!0});_e(({clerk:i,component:l,fallback:u,...s})=>{const d=ot(l,{selector:'[data-component-status="ready"]'})==="rendering"||!i.loaded,f={...d&&u&&{style:{display:"none"}}};return B.createElement(B.Fragment,null,d&&u,i.loaded&&B.createElement(Je,{component:l,mount:i.mountPricingTable,unmount:i.unmountPricingTable,updateProps:i.__unstable__updateProps,props:s,rootProps:f}))},{component:"PricingTable",renderWhileLoading:!0});_e(({clerk:i,component:l,fallback:u,...s})=>{const d=ot(l)==="rendering"||!i.loaded,f={...d&&u&&{style:{display:"none"}}};return B.createElement(B.Fragment,null,d&&u,i.loaded&&B.createElement(Je,{component:l,mount:i.mountAPIKeys,unmount:i.unmountAPIKeys,updateProps:i.__unstable__updateProps,props:s,rootProps:f}))},{component:"ApiKeys",renderWhileLoading:!0});_e(({clerk:i,component:l,fallback:u,...s})=>{const d=ot(l)==="rendering"||!i.loaded,f={...d&&u&&{style:{display:"none"}}};return B.createElement(B.Fragment,null,d&&u,i.loaded&&B.createElement(Je,{component:l,mount:i.mountUserAvatar,unmount:i.unmountUserAvatar,updateProps:i.__unstable__updateProps,props:s,rootProps:f}))},{component:"UserAvatar",renderWhileLoading:!0});_e(({clerk:i,component:l,fallback:u,...s})=>{const d=ot(l)==="rendering"||!i.loaded,f={...d&&u&&{style:{display:"none"}}};return B.createElement(B.Fragment,null,d&&u,i.loaded&&B.createElement(Je,{component:l,mount:i.mountTaskChooseOrganization,unmount:i.unmountTaskChooseOrganization,updateProps:i.__unstable__updateProps,props:s,rootProps:f}))},{component:"TaskChooseOrganization",renderWhileLoading:!0});_e(({clerk:i,component:l,fallback:u,...s})=>{const d=ot(l)==="rendering"||!i.loaded,f={...d&&u&&{style:{display:"none"}}};return B.createElement(B.Fragment,null,d&&u,i.loaded&&B.createElement(Je,{component:l,mount:i.mountTaskResetPassword,unmount:i.unmountTaskResetPassword,updateProps:i.__unstable__updateProps,props:s,rootProps:f}))},{component:"TaskResetPassword",renderWhileLoading:!0});_e(({clerk:i,component:l,fallback:u,...s})=>{const d=ot(l)==="rendering"||!i.loaded,f={...d&&u&&{style:{display:"none"}}};return B.createElement(B.Fragment,null,d&&u,i.loaded&&B.createElement(Je,{component:l,mount:i.mountTaskSetupMFA,unmount:i.unmountTaskSetupMFA,updateProps:i.__unstable__updateProps,props:s,rootProps:f}))},{component:"TaskSetupMFA",renderWhileLoading:!0});var eg=i=>{throw TypeError(i)},cc=(i,l,u)=>l.has(i)||eg("Cannot "+u),Be=(i,l,u)=>(cc(i,l,"read from private field"),u?u.call(i):l.get(i)),Fa=(i,l,u)=>l.has(i)?eg("Cannot add the same private member more than once"):l instanceof WeakSet?l.add(i):l.set(i,u),gn=(i,l,u,s)=>(cc(i,l,"write to private field"),l.set(i,u),u),Fu=(i,l,u)=>(cc(i,l,"access private method"),u);const jw={initialDelay:125,maxDelayBetweenRetries:0,factor:2,shouldRetry:(i,l)=>l<5,retryImmediately:!1,jitter:!0},Hw=100,tg=async i=>new Promise(l=>setTimeout(l,i)),ag=(i,l)=>l?i*(1+Math.random()):i,Kw=i=>{let l=0;const u=()=>{const s=i.initialDelay,o=i.factor;let d=s*Math.pow(o,l);return d=ag(d,i.jitter),Math.min(i.maxDelayBetweenRetries||d,d)};return async()=>{await tg(u()),l++}},qw=async(i,l={})=>{let u=0;const{shouldRetry:s,initialDelay:o,maxDelayBetweenRetries:d,factor:f,retryImmediately:h,jitter:m,onBeforeRetry:g}={...jw,...l},b=Kw({initialDelay:o,maxDelayBetweenRetries:d,factor:f,jitter:m});for(;;)try{return await i()}catch(y){if(u++,!s(y,u))throw y;g&&await g(u),h&&u===1?await tg(ag(Hw,m)):await b()}},Gw="loadScript cannot be called when document does not exist",Vw="loadScript cannot be called without a src";async function Fw(i="",l){const{async:u,defer:s,beforeLoad:o,crossOrigin:d,nonce:f}=l||{};return qw(()=>new Promise((m,g)=>{i||g(new Error(Vw)),(!document||!document.body)&&g(new Error(Gw));const b=document.createElement("script");d&&b.setAttribute("crossorigin",d),b.async=u||!1,b.defer=s||!1,b.addEventListener("load",()=>{b.remove(),m(b)}),b.addEventListener("error",y=>{b.remove(),g(y.error??new Error(`failed to load script: ${i}`))}),b.src=i,b.nonce=f,o?.(b),document.body.appendChild(b)}),{shouldRetry:(m,g)=>g<=5})}function Yw(i){return i?Ww(i)||ng(i):!0}function Ww(i){return/^http(s)?:\/\//.test(i||"")}function ng(i){return i.startsWith("/")}function $w(i){return i?ng(i)?new URL(i,window.location.origin).toString():i:""}function Zw(i){if(!i)return"";let l;if(i.match(/^(clerk\.)+\w*$/))l=/(clerk\.)*(?=clerk\.)/;else{if(i.match(/\.clerk.accounts/))return i;l=/^(clerk\.)*/gi}return`clerk.${i.replace(l,"")}`}const Qw=(i,l="5.125.7")=>{if(i)return i;const u=Xw(l);return u?u==="snapshot"?"5.125.7":u:Jw(l)},Xw=i=>i.trim().replace(/^v/,"").match(/-(.+?)(\.|$)/)?.[1],Jw=i=>i.trim().replace(/^v/,"").split(".")[0],ig="failed_to_load_clerk_js",eT="failed_to_load_clerk_js_timeout",Ju="Failed to load Clerk",{isDevOrStagingUrl:tT}=XE(),lg=Im({packageName:"@clerk/shared"});function aT(i){lg.setPackageName({packageName:i})}function ec(){if(typeof window>"u"||!window.Clerk)return!1;const i=window.Clerk;return typeof i=="object"&&typeof i.load=="function"}function nT(i){if(typeof window>"u"||!window.performance)return!1;const l=performance.getEntriesByName(i,"resource");if(l.length===0)return!1;const u=l[l.length-1];return u.transferSize===0&&u.decodedBodySize===0&&(u.responseEnd===0||u.responseEnd>0&&u.responseStart>0||"responseStatus"in u&&(u.responseStatus>=400||u.responseStatus===0))}function rm(i,l){return new Promise((u,s)=>{let o=!1;const d=(b,y)=>{clearTimeout(b),clearInterval(y)};l?.addEventListener("error",()=>{d(m,g),s(new Xu(Ju,{code:ig}))});const f=()=>{o||ec()&&(o=!0,d(m,g),u(null))},m=setTimeout(()=>{o||(o=!0,d(m,g),ec()?u(null):s(new Xu(Ju,{code:eT})))},i);f();const g=setInterval(()=>{if(o){clearInterval(g);return}f()},100)})}const iT=async i=>{const l=i?.scriptLoadTimeout??15e3;if(ec())return null;if(!i?.publishableKey)return lg.throwMissingPublishableKeyError(),null;const u=lT(i),s=document.querySelector("script[data-clerk-js-script]");if(s)if(nT(u))s.remove();else try{return await rm(l,s),null}catch{s.remove()}const o=rm(l);return Fw(u,{async:!0,crossOrigin:"anonymous",nonce:i.nonce,beforeLoad:rT(i)}).catch(d=>{throw new Xu(Ju+(d.message?`, ${d.message}`:""),{code:ig,cause:d})}),o},lT=i=>{const{clerkJSUrl:l,clerkJSVariant:u,clerkJSVersion:s,proxyUrl:o,domain:d,publishableKey:f}=i;if(l)return l;let h="";o&&Yw(o)?h=$w(o).replace(/http(s)?:\/\//,""):d&&!tT(Wh(f)?.frontendApi||"")?h=Zw(d):h=Wh(f)?.frontendApi||"";const m=u?`${u.replace(/\.+$/,"")}.`:"",g=Qw(s);return`https://${h}/npm/@clerk/clerk-js@${g}/dist/clerk.${m}browser.js`},oT=i=>{const l={};return i.publishableKey&&(l["data-clerk-publishable-key"]=i.publishableKey),i.proxyUrl&&(l["data-clerk-proxy-url"]=i.proxyUrl),i.domain&&(l["data-clerk-domain"]=i.domain),i.nonce&&(l.nonce=i.nonce),l},rT=i=>l=>{const u=oT(i);for(const s in u)l.setAttribute(s,u[s])};function Qo(){return typeof window<"u"}const sm=(i,l,u,s,o)=>{const{notify:d}=o||{};let f=i.get(u);f||(f=[],i.set(u,f)),f.push(s),d&&l.has(u)&&s(l.get(u))},um=(i,l,u)=>(i.get(l)||[]).map(s=>s(u)),cm=(i,l,u)=>{const s=i.get(l);s&&(u?s.splice(s.indexOf(u)>>>0,1):i.set(l,[]))},sT=()=>{const i=new Map,l=new Map,u=new Map;return{on:(...o)=>sm(i,l,...o),prioritizedOn:(...o)=>sm(u,l,...o),emit:(o,d)=>{l.set(o,d),um(u,o,d),um(i,o,d)},off:(...o)=>cm(i,...o),prioritizedOff:(...o)=>cm(u,...o),internal:{retrieveListeners:o=>i.get(o)||[]}}},jo={Status:"status"},uT=()=>sT();typeof window<"u"&&!window.global&&(window.global=typeof global>"u"?window:global);_e(({clerk:i,children:l,...u})=>{const{appearance:s,signUpFallbackRedirectUrl:o,forceRedirectUrl:d,fallbackRedirectUrl:f,signUpForceRedirectUrl:h,mode:m,initialValues:g,withSignUp:b,oauthFlow:y,...k}=u;l=nr(l,"Sign in");const D=ar(l)("SignInButton"),x=()=>{const K={forceRedirectUrl:d,fallbackRedirectUrl:f,signUpFallbackRedirectUrl:o,signUpForceRedirectUrl:h,initialValues:g,withSignUp:b,oauthFlow:y};return m==="modal"?i.openSignIn({...K,appearance:s}):i.redirectToSignIn({...K,signInFallbackRedirectUrl:f,signInForceRedirectUrl:d})},N={...k,onClick:async K=>(D&&typeof D=="object"&&"props"in D&&await ir(D.props.onClick)(K),x())};return B.cloneElement(D,N)},{component:"SignInButton",renderWhileLoading:!0});_e(({clerk:i,children:l,...u})=>{const{redirectUrl:s,...o}=u;l=nr(l,"Sign in with Metamask");const d=ar(l)("SignInWithMetamaskButton"),f=async()=>{async function g(){await i.authenticateWithMetamask({redirectUrl:s||void 0})}g()},m={...o,onClick:async g=>(await ir(d.props.onClick)(g),f())};return B.cloneElement(d,m)},{component:"SignInWithMetamask",renderWhileLoading:!0});_e(({clerk:i,children:l,...u})=>{const{redirectUrl:s="/",signOutOptions:o,...d}=u;l=nr(l,"Sign out");const f=ar(l)("SignOutButton"),h=()=>i.signOut({redirectUrl:s,...o}),g={...d,onClick:async b=>(await ir(f.props.onClick)(b),h())};return B.cloneElement(f,g)},{component:"SignOutButton",renderWhileLoading:!0});_e(({clerk:i,children:l,...u})=>{const{appearance:s,unsafeMetadata:o,fallbackRedirectUrl:d,forceRedirectUrl:f,signInFallbackRedirectUrl:h,signInForceRedirectUrl:m,mode:g,initialValues:b,oauthFlow:y,...k}=u;l=nr(l,"Sign up");const D=ar(l)("SignUpButton"),x=()=>{const K={fallbackRedirectUrl:d,forceRedirectUrl:f,signInFallbackRedirectUrl:h,signInForceRedirectUrl:m,initialValues:b,oauthFlow:y};return g==="modal"?i.openSignUp({...K,appearance:s,unsafeMetadata:o}):i.redirectToSignUp({...K,signUpFallbackRedirectUrl:d,signUpForceRedirectUrl:f})},N={...k,onClick:async K=>(D&&typeof D=="object"&&"props"in D&&await ir(D.props.onClick)(K),x())};return B.cloneElement(D,N)},{component:"SignUpButton",renderWhileLoading:!0});var cT=()=>({fields:{identifier:null,password:null,code:null},raw:null,global:null}),dT=()=>({fields:{firstName:null,lastName:null,emailAddress:null,phoneNumber:null,password:null,username:null,code:null,captcha:null,legalAccepted:null},raw:null,global:null}),fT=class{constructor(i){this.isomorphicClerk=i,this.signInSignalProxy=this.buildSignInProxy(),this.signUpSignalProxy=this.buildSignUpProxy()}signInSignal(){return this.signInSignalProxy}signUpSignal(){return this.signUpSignalProxy}buildSignInProxy(){const i=this.gateProperty.bind(this),l=()=>this.client.signIn.__internal_future;return{errors:cT(),fetchStatus:"idle",signIn:{status:"needs_identifier",availableStrategies:[],isTransferable:!1,get id(){return i(l,"id",void 0)},get supportedFirstFactors(){return i(l,"supportedFirstFactors",[])},get supportedSecondFactors(){return i(l,"supportedSecondFactors",[])},get secondFactorVerification(){return i(l,"secondFactorVerification",{status:null,error:null,expireAt:null,externalVerificationRedirectURL:null,nonce:null,attempts:null,message:null,strategy:null,verifiedAtClient:null,verifiedFromTheSameClient:()=>!1,__internal_toSnapshot:()=>{throw new Error("__internal_toSnapshot called before Clerk is loaded")},pathRoot:"",reload:()=>{throw new Error("__internal_toSnapshot called before Clerk is loaded")}})},get identifier(){return i(l,"identifier",null)},get createdSessionId(){return i(l,"createdSessionId",null)},get userData(){return i(l,"userData",{})},get firstFactorVerification(){return i(l,"firstFactorVerification",{status:null,error:null,expireAt:null,externalVerificationRedirectURL:null,nonce:null,attempts:null,message:null,strategy:null,verifiedAtClient:null,verifiedFromTheSameClient:()=>!1,__internal_toSnapshot:()=>{throw new Error("__internal_toSnapshot called before Clerk is loaded")},pathRoot:"",reload:()=>{throw new Error("__internal_toSnapshot called before Clerk is loaded")}})},create:this.gateMethod(l,"create"),password:this.gateMethod(l,"password"),sso:this.gateMethod(l,"sso"),finalize:this.gateMethod(l,"finalize"),emailCode:this.wrapMethods(()=>l().emailCode,["sendCode","verifyCode"]),emailLink:this.wrapStruct(()=>l().emailLink,["sendLink","waitForVerification"],["verification"],{verification:null}),resetPasswordEmailCode:this.wrapMethods(()=>l().resetPasswordEmailCode,["sendCode","verifyCode","submitPassword"]),phoneCode:this.wrapMethods(()=>l().phoneCode,["sendCode","verifyCode"]),mfa:this.wrapMethods(()=>l().mfa,["sendPhoneCode","verifyPhoneCode","verifyTOTP","verifyBackupCode"]),ticket:this.gateMethod(l,"ticket"),passkey:this.gateMethod(l,"passkey"),web3:this.gateMethod(l,"web3")}}}buildSignUpProxy(){const i=this.gateProperty.bind(this),l=this.gateMethod.bind(this),u=this.wrapMethods.bind(this),s=()=>this.client.signUp.__internal_future;return{errors:dT(),fetchStatus:"idle",signUp:{get id(){return i(s,"id",void 0)},get requiredFields(){return i(s,"requiredFields",[])},get optionalFields(){return i(s,"optionalFields",[])},get missingFields(){return i(s,"missingFields",[])},get username(){return i(s,"username",null)},get firstName(){return i(s,"firstName",null)},get lastName(){return i(s,"lastName",null)},get emailAddress(){return i(s,"emailAddress",null)},get phoneNumber(){return i(s,"phoneNumber",null)},get web3Wallet(){return i(s,"web3Wallet",null)},get hasPassword(){return i(s,"hasPassword",!1)},get unsafeMetadata(){return i(s,"unsafeMetadata",{})},get createdSessionId(){return i(s,"createdSessionId",null)},get createdUserId(){return i(s,"createdUserId",null)},get abandonAt(){return i(s,"abandonAt",null)},get legalAcceptedAt(){return i(s,"legalAcceptedAt",null)},get locale(){return i(s,"locale",null)},get status(){return i(s,"status","missing_requirements")},get unverifiedFields(){return i(s,"unverifiedFields",[])},get isTransferable(){return i(s,"isTransferable",!1)},create:l(s,"create"),update:l(s,"update"),sso:l(s,"sso"),password:l(s,"password"),ticket:l(s,"ticket"),web3:l(s,"web3"),finalize:l(s,"finalize"),verifications:u(()=>s().verifications,["sendEmailCode","verifyEmailCode","sendPhoneCode","verifyPhoneCode"])}}}__internal_effect(i){throw new Error("__internal_effect called before Clerk is loaded")}__internal_computed(i){throw new Error("__internal_computed called before Clerk is loaded")}get client(){const i=this.isomorphicClerk.client;if(!i)throw new Error("Clerk client not ready");return i}gateProperty(i,l,u){return!Qo()||!this.isomorphicClerk.loaded?u:i()[l]}gateMethod(i,l){return(async(...u)=>{if(!Qo())return vn.throw(`Attempted to call a method (${l}) that is not supported on the server.`);this.isomorphicClerk.loaded||await new Promise(o=>this.isomorphicClerk.addOnLoaded(o));const s=i();return s[l].apply(s,u)})}wrapMethods(i,l){return Object.fromEntries(l.map(u=>[u,this.gateMethod(i,u)]))}wrapStruct(i,l,u,s){const o={};for(const d of l)o[d]=this.gateMethod(i,d);for(const d of u)Object.defineProperty(o,d,{get:()=>this.gateProperty(i,d,s[d]),enumerable:!0});return o}};typeof globalThis.__BUILD_DISABLE_RHC__>"u"&&(globalThis.__BUILD_DISABLE_RHC__=!1);var pT={name:"@clerk/clerk-react",version:"5.61.4",environment:"production"},qo,ii,li,Ya,Zt,Go,Wa,rl,Vo,hT=class og{constructor(l){Fa(this,rl),this.clerkjs=null,this.preopenOneTap=null,this.preopenUserVerification=null,this.preopenEnableOrganizationsPrompt=null,this.preopenSignIn=null,this.preopenCheckout=null,this.preopenPlanDetails=null,this.preopenSubscriptionDetails=null,this.preopenSignUp=null,this.preopenUserProfile=null,this.preopenOrganizationProfile=null,this.preopenCreateOrganization=null,this.preOpenWaitlist=null,this.premountSignInNodes=new Map,this.premountSignUpNodes=new Map,this.premountUserAvatarNodes=new Map,this.premountUserProfileNodes=new Map,this.premountUserButtonNodes=new Map,this.premountOrganizationProfileNodes=new Map,this.premountCreateOrganizationNodes=new Map,this.premountOrganizationSwitcherNodes=new Map,this.premountOrganizationListNodes=new Map,this.premountMethodCalls=new Map,this.premountWaitlistNodes=new Map,this.premountPricingTableNodes=new Map,this.premountAPIKeysNodes=new Map,this.premountOAuthConsentNodes=new Map,this.premountTaskChooseOrganizationNodes=new Map,this.premountTaskResetPasswordNodes=new Map,this.premountTaskSetupMFANodes=new Map,this.premountAddListenerCalls=new Map,this.loadedListeners=[],Fa(this,qo,"loading"),Fa(this,ii),Fa(this,li),Fa(this,Ya),Fa(this,Zt,uT()),Fa(this,Go),this.buildSignInUrl=o=>{const d=()=>{var f;return((f=this.clerkjs)==null?void 0:f.buildSignInUrl(o))||""};if(this.clerkjs&&this.loaded)return d();this.premountMethodCalls.set("buildSignInUrl",d)},this.buildSignUpUrl=o=>{const d=()=>{var f;return((f=this.clerkjs)==null?void 0:f.buildSignUpUrl(o))||""};if(this.clerkjs&&this.loaded)return d();this.premountMethodCalls.set("buildSignUpUrl",d)},this.buildAfterSignInUrl=(...o)=>{const d=()=>{var f;return((f=this.clerkjs)==null?void 0:f.buildAfterSignInUrl(...o))||""};if(this.clerkjs&&this.loaded)return d();this.premountMethodCalls.set("buildAfterSignInUrl",d)},this.buildAfterSignUpUrl=(...o)=>{const d=()=>{var f;return((f=this.clerkjs)==null?void 0:f.buildAfterSignUpUrl(...o))||""};if(this.clerkjs&&this.loaded)return d();this.premountMethodCalls.set("buildAfterSignUpUrl",d)},this.buildAfterSignOutUrl=()=>{const o=()=>{var d;return((d=this.clerkjs)==null?void 0:d.buildAfterSignOutUrl())||""};if(this.clerkjs&&this.loaded)return o();this.premountMethodCalls.set("buildAfterSignOutUrl",o)},this.buildNewSubscriptionRedirectUrl=()=>{const o=()=>{var d;return((d=this.clerkjs)==null?void 0:d.buildNewSubscriptionRedirectUrl())||""};if(this.clerkjs&&this.loaded)return o();this.premountMethodCalls.set("buildNewSubscriptionRedirectUrl",o)},this.buildAfterMultiSessionSingleSignOutUrl=()=>{const o=()=>{var d;return((d=this.clerkjs)==null?void 0:d.buildAfterMultiSessionSingleSignOutUrl())||""};if(this.clerkjs&&this.loaded)return o();this.premountMethodCalls.set("buildAfterMultiSessionSingleSignOutUrl",o)},this.buildUserProfileUrl=()=>{const o=()=>{var d;return((d=this.clerkjs)==null?void 0:d.buildUserProfileUrl())||""};if(this.clerkjs&&this.loaded)return o();this.premountMethodCalls.set("buildUserProfileUrl",o)},this.buildCreateOrganizationUrl=()=>{const o=()=>{var d;return((d=this.clerkjs)==null?void 0:d.buildCreateOrganizationUrl())||""};if(this.clerkjs&&this.loaded)return o();this.premountMethodCalls.set("buildCreateOrganizationUrl",o)},this.buildOrganizationProfileUrl=()=>{const o=()=>{var d;return((d=this.clerkjs)==null?void 0:d.buildOrganizationProfileUrl())||""};if(this.clerkjs&&this.loaded)return o();this.premountMethodCalls.set("buildOrganizationProfileUrl",o)},this.buildWaitlistUrl=()=>{const o=()=>{var d;return((d=this.clerkjs)==null?void 0:d.buildWaitlistUrl())||""};if(this.clerkjs&&this.loaded)return o();this.premountMethodCalls.set("buildWaitlistUrl",o)},this.buildTasksUrl=()=>{const o=()=>{var d;return((d=this.clerkjs)==null?void 0:d.buildTasksUrl())||""};if(this.clerkjs&&this.loaded)return o();this.premountMethodCalls.set("buildTasksUrl",o)},this.buildUrlWithAuth=o=>{const d=()=>{var f;return((f=this.clerkjs)==null?void 0:f.buildUrlWithAuth(o))||""};if(this.clerkjs&&this.loaded)return d();this.premountMethodCalls.set("buildUrlWithAuth",d)},this.handleUnauthenticated=async()=>{const o=()=>{var d;return(d=this.clerkjs)==null?void 0:d.handleUnauthenticated()};this.clerkjs&&this.loaded?o():this.premountMethodCalls.set("handleUnauthenticated",o)},this.on=(...o)=>{var d;if((d=this.clerkjs)!=null&&d.on)return this.clerkjs.on(...o);Be(this,Zt).on(...o)},this.off=(...o)=>{var d;if((d=this.clerkjs)!=null&&d.off)return this.clerkjs.off(...o);Be(this,Zt).off(...o)},this.addOnLoaded=o=>{this.loadedListeners.push(o),this.loaded&&this.emitLoaded()},this.emitLoaded=()=>{this.loadedListeners.forEach(o=>o()),this.loadedListeners=[]},this.beforeLoad=o=>{if(!o)throw new Error("Failed to hydrate latest Clerk JS")},this.hydrateClerkJS=o=>{var d,f;if(!o)throw new Error("Failed to hydrate latest Clerk JS");return this.clerkjs=o,this.premountMethodCalls.forEach(h=>h()),this.premountAddListenerCalls.forEach((h,m)=>{h.nativeUnsubscribe=o.addListener(m)}),(d=Be(this,Zt).internal.retrieveListeners("status"))==null||d.forEach(h=>{this.on("status",h,{notify:!0})}),(f=Be(this,Zt).internal.retrieveListeners("queryClientStatus"))==null||f.forEach(h=>{this.on("queryClientStatus",h,{notify:!0})}),this.preopenSignIn!==null&&o.openSignIn(this.preopenSignIn),this.preopenCheckout!==null&&o.__internal_openCheckout(this.preopenCheckout),this.preopenPlanDetails!==null&&o.__internal_openPlanDetails(this.preopenPlanDetails),this.preopenSubscriptionDetails!==null&&o.__internal_openSubscriptionDetails(this.preopenSubscriptionDetails),this.preopenSignUp!==null&&o.openSignUp(this.preopenSignUp),this.preopenUserProfile!==null&&o.openUserProfile(this.preopenUserProfile),this.preopenUserVerification!==null&&o.__internal_openReverification(this.preopenUserVerification),this.preopenOneTap!==null&&o.openGoogleOneTap(this.preopenOneTap),this.preopenOrganizationProfile!==null&&o.openOrganizationProfile(this.preopenOrganizationProfile),this.preopenCreateOrganization!==null&&o.openCreateOrganization(this.preopenCreateOrganization),this.preOpenWaitlist!==null&&o.openWaitlist(this.preOpenWaitlist),this.preopenEnableOrganizationsPrompt&&o.__internal_openEnableOrganizationsPrompt(this.preopenEnableOrganizationsPrompt),this.premountSignInNodes.forEach((h,m)=>{o.mountSignIn(m,h)}),this.premountSignUpNodes.forEach((h,m)=>{o.mountSignUp(m,h)}),this.premountUserProfileNodes.forEach((h,m)=>{o.mountUserProfile(m,h)}),this.premountUserAvatarNodes.forEach((h,m)=>{o.mountUserAvatar(m,h)}),this.premountUserButtonNodes.forEach((h,m)=>{o.mountUserButton(m,h)}),this.premountOrganizationListNodes.forEach((h,m)=>{o.mountOrganizationList(m,h)}),this.premountWaitlistNodes.forEach((h,m)=>{o.mountWaitlist(m,h)}),this.premountPricingTableNodes.forEach((h,m)=>{o.mountPricingTable(m,h)}),this.premountAPIKeysNodes.forEach((h,m)=>{o.mountAPIKeys(m,h)}),this.premountOAuthConsentNodes.forEach((h,m)=>{o.__internal_mountOAuthConsent(m,h)}),this.premountTaskChooseOrganizationNodes.forEach((h,m)=>{o.mountTaskChooseOrganization(m,h)}),this.premountTaskResetPasswordNodes.forEach((h,m)=>{o.mountTaskResetPassword(m,h)}),this.premountTaskSetupMFANodes.forEach((h,m)=>{o.mountTaskSetupMFA(m,h)}),typeof this.clerkjs.status>"u"&&Be(this,Zt).emit(jo.Status,"ready"),this.emitLoaded(),this.clerkjs},this.__experimental_checkout=(...o)=>{var d;return(d=this.clerkjs)==null?void 0:d.__experimental_checkout(...o)},this.__unstable__updateProps=async o=>{const d=await Fu(this,rl,Vo).call(this);if(d&&"__unstable__updateProps"in d)return d.__unstable__updateProps(o)},this.setActive=o=>this.clerkjs?this.clerkjs.setActive(o):Promise.reject(),this.openSignIn=o=>{this.clerkjs&&this.loaded?this.clerkjs.openSignIn(o):this.preopenSignIn=o},this.closeSignIn=()=>{this.clerkjs&&this.loaded?this.clerkjs.closeSignIn():this.preopenSignIn=null},this.__internal_openCheckout=o=>{this.clerkjs&&this.loaded?this.clerkjs.__internal_openCheckout(o):this.preopenCheckout=o},this.__internal_closeCheckout=()=>{this.clerkjs&&this.loaded?this.clerkjs.__internal_closeCheckout():this.preopenCheckout=null},this.__internal_openPlanDetails=o=>{this.clerkjs&&this.loaded?this.clerkjs.__internal_openPlanDetails(o):this.preopenPlanDetails=o},this.__internal_closePlanDetails=()=>{this.clerkjs&&this.loaded?this.clerkjs.__internal_closePlanDetails():this.preopenPlanDetails=null},this.__internal_openSubscriptionDetails=o=>{this.clerkjs&&this.loaded?this.clerkjs.__internal_openSubscriptionDetails(o):this.preopenSubscriptionDetails=o??null},this.__internal_closeSubscriptionDetails=()=>{this.clerkjs&&this.loaded?this.clerkjs.__internal_closeSubscriptionDetails():this.preopenSubscriptionDetails=null},this.__internal_openReverification=o=>{this.clerkjs&&this.loaded?this.clerkjs.__internal_openReverification(o):this.preopenUserVerification=o},this.__internal_closeReverification=()=>{this.clerkjs&&this.loaded?this.clerkjs.__internal_closeReverification():this.preopenUserVerification=null},this.__internal_openEnableOrganizationsPrompt=o=>{this.clerkjs&&this.loaded?this.clerkjs.__internal_openEnableOrganizationsPrompt(o):this.preopenEnableOrganizationsPrompt=o},this.__internal_closeEnableOrganizationsPrompt=()=>{this.clerkjs&&this.loaded?this.clerkjs.__internal_closeEnableOrganizationsPrompt():this.preopenEnableOrganizationsPrompt=null},this.openGoogleOneTap=o=>{this.clerkjs&&this.loaded?this.clerkjs.openGoogleOneTap(o):this.preopenOneTap=o},this.closeGoogleOneTap=()=>{this.clerkjs&&this.loaded?this.clerkjs.closeGoogleOneTap():this.preopenOneTap=null},this.openUserProfile=o=>{this.clerkjs&&this.loaded?this.clerkjs.openUserProfile(o):this.preopenUserProfile=o},this.closeUserProfile=()=>{this.clerkjs&&this.loaded?this.clerkjs.closeUserProfile():this.preopenUserProfile=null},this.openOrganizationProfile=o=>{this.clerkjs&&this.loaded?this.clerkjs.openOrganizationProfile(o):this.preopenOrganizationProfile=o},this.closeOrganizationProfile=()=>{this.clerkjs&&this.loaded?this.clerkjs.closeOrganizationProfile():this.preopenOrganizationProfile=null},this.openCreateOrganization=o=>{this.clerkjs&&this.loaded?this.clerkjs.openCreateOrganization(o):this.preopenCreateOrganization=o},this.closeCreateOrganization=()=>{this.clerkjs&&this.loaded?this.clerkjs.closeCreateOrganization():this.preopenCreateOrganization=null},this.openWaitlist=o=>{this.clerkjs&&this.loaded?this.clerkjs.openWaitlist(o):this.preOpenWaitlist=o},this.closeWaitlist=()=>{this.clerkjs&&this.loaded?this.clerkjs.closeWaitlist():this.preOpenWaitlist=null},this.openSignUp=o=>{this.clerkjs&&this.loaded?this.clerkjs.openSignUp(o):this.preopenSignUp=o},this.closeSignUp=()=>{this.clerkjs&&this.loaded?this.clerkjs.closeSignUp():this.preopenSignUp=null},this.mountSignIn=(o,d)=>{this.clerkjs&&this.loaded?this.clerkjs.mountSignIn(o,d):this.premountSignInNodes.set(o,d)},this.unmountSignIn=o=>{this.clerkjs&&this.loaded?this.clerkjs.unmountSignIn(o):this.premountSignInNodes.delete(o)},this.mountSignUp=(o,d)=>{this.clerkjs&&this.loaded?this.clerkjs.mountSignUp(o,d):this.premountSignUpNodes.set(o,d)},this.unmountSignUp=o=>{this.clerkjs&&this.loaded?this.clerkjs.unmountSignUp(o):this.premountSignUpNodes.delete(o)},this.mountUserAvatar=(o,d)=>{this.clerkjs&&this.loaded?this.clerkjs.mountUserAvatar(o,d):this.premountUserAvatarNodes.set(o,d)},this.unmountUserAvatar=o=>{this.clerkjs&&this.loaded?this.clerkjs.unmountUserAvatar(o):this.premountUserAvatarNodes.delete(o)},this.mountUserProfile=(o,d)=>{this.clerkjs&&this.loaded?this.clerkjs.mountUserProfile(o,d):this.premountUserProfileNodes.set(o,d)},this.unmountUserProfile=o=>{this.clerkjs&&this.loaded?this.clerkjs.unmountUserProfile(o):this.premountUserProfileNodes.delete(o)},this.mountOrganizationProfile=(o,d)=>{this.clerkjs&&this.loaded?this.clerkjs.mountOrganizationProfile(o,d):this.premountOrganizationProfileNodes.set(o,d)},this.unmountOrganizationProfile=o=>{this.clerkjs&&this.loaded?this.clerkjs.unmountOrganizationProfile(o):this.premountOrganizationProfileNodes.delete(o)},this.mountCreateOrganization=(o,d)=>{this.clerkjs&&this.loaded?this.clerkjs.mountCreateOrganization(o,d):this.premountCreateOrganizationNodes.set(o,d)},this.unmountCreateOrganization=o=>{this.clerkjs&&this.loaded?this.clerkjs.unmountCreateOrganization(o):this.premountCreateOrganizationNodes.delete(o)},this.mountOrganizationSwitcher=(o,d)=>{this.clerkjs&&this.loaded?this.clerkjs.mountOrganizationSwitcher(o,d):this.premountOrganizationSwitcherNodes.set(o,d)},this.unmountOrganizationSwitcher=o=>{this.clerkjs&&this.loaded?this.clerkjs.unmountOrganizationSwitcher(o):this.premountOrganizationSwitcherNodes.delete(o)},this.__experimental_prefetchOrganizationSwitcher=()=>{const o=()=>{var d;return(d=this.clerkjs)==null?void 0:d.__experimental_prefetchOrganizationSwitcher()};this.clerkjs&&this.loaded?o():this.premountMethodCalls.set("__experimental_prefetchOrganizationSwitcher",o)},this.mountOrganizationList=(o,d)=>{this.clerkjs&&this.loaded?this.clerkjs.mountOrganizationList(o,d):this.premountOrganizationListNodes.set(o,d)},this.unmountOrganizationList=o=>{this.clerkjs&&this.loaded?this.clerkjs.unmountOrganizationList(o):this.premountOrganizationListNodes.delete(o)},this.mountUserButton=(o,d)=>{this.clerkjs&&this.loaded?this.clerkjs.mountUserButton(o,d):this.premountUserButtonNodes.set(o,d)},this.unmountUserButton=o=>{this.clerkjs&&this.loaded?this.clerkjs.unmountUserButton(o):this.premountUserButtonNodes.delete(o)},this.mountWaitlist=(o,d)=>{this.clerkjs&&this.loaded?this.clerkjs.mountWaitlist(o,d):this.premountWaitlistNodes.set(o,d)},this.unmountWaitlist=o=>{this.clerkjs&&this.loaded?this.clerkjs.unmountWaitlist(o):this.premountWaitlistNodes.delete(o)},this.mountPricingTable=(o,d)=>{this.clerkjs&&this.loaded?this.clerkjs.mountPricingTable(o,d):this.premountPricingTableNodes.set(o,d)},this.unmountPricingTable=o=>{this.clerkjs&&this.loaded?this.clerkjs.unmountPricingTable(o):this.premountPricingTableNodes.delete(o)},this.mountAPIKeys=(o,d)=>{this.clerkjs&&this.loaded?this.clerkjs.mountAPIKeys(o,d):this.premountAPIKeysNodes.set(o,d)},this.unmountAPIKeys=o=>{this.clerkjs&&this.loaded?this.clerkjs.unmountAPIKeys(o):this.premountAPIKeysNodes.delete(o)},this.__internal_mountOAuthConsent=(o,d)=>{this.clerkjs&&this.loaded?this.clerkjs.__internal_mountOAuthConsent(o,d):this.premountOAuthConsentNodes.set(o,d)},this.__internal_unmountOAuthConsent=o=>{this.clerkjs&&this.loaded?this.clerkjs.__internal_unmountOAuthConsent(o):this.premountOAuthConsentNodes.delete(o)},this.mountTaskChooseOrganization=(o,d)=>{this.clerkjs&&this.loaded?this.clerkjs.mountTaskChooseOrganization(o,d):this.premountTaskChooseOrganizationNodes.set(o,d)},this.unmountTaskChooseOrganization=o=>{this.clerkjs&&this.loaded?this.clerkjs.unmountTaskChooseOrganization(o):this.premountTaskChooseOrganizationNodes.delete(o)},this.mountTaskResetPassword=(o,d)=>{this.clerkjs&&this.loaded?this.clerkjs.mountTaskResetPassword(o,d):this.premountTaskResetPasswordNodes.set(o,d)},this.unmountTaskResetPassword=o=>{this.clerkjs&&this.loaded?this.clerkjs.unmountTaskResetPassword(o):this.premountTaskResetPasswordNodes.delete(o)},this.mountTaskSetupMFA=(o,d)=>{this.clerkjs&&this.loaded?this.clerkjs.mountTaskSetupMFA(o,d):this.premountTaskSetupMFANodes.set(o,d)},this.unmountTaskSetupMFA=o=>{this.clerkjs&&this.loaded?this.clerkjs.unmountTaskSetupMFA(o):this.premountTaskSetupMFANodes.delete(o)},this.addListener=o=>{if(this.clerkjs)return this.clerkjs.addListener(o);{const d=()=>{var f;const h=this.premountAddListenerCalls.get(o);h&&((f=h.nativeUnsubscribe)==null||f.call(h),this.premountAddListenerCalls.delete(o))};return this.premountAddListenerCalls.set(o,{unsubscribe:d,nativeUnsubscribe:void 0}),d}},this.navigate=o=>{const d=()=>{var f;return(f=this.clerkjs)==null?void 0:f.navigate(o)};this.clerkjs&&this.loaded?d():this.premountMethodCalls.set("navigate",d)},this.redirectWithAuth=async(...o)=>{const d=()=>{var f;return(f=this.clerkjs)==null?void 0:f.redirectWithAuth(...o)};if(this.clerkjs&&this.loaded)return d();this.premountMethodCalls.set("redirectWithAuth",d)},this.redirectToSignIn=async o=>{const d=()=>{var f;return(f=this.clerkjs)==null?void 0:f.redirectToSignIn(o)};if(this.clerkjs&&this.loaded)return d();this.premountMethodCalls.set("redirectToSignIn",d)},this.redirectToSignUp=async o=>{const d=()=>{var f;return(f=this.clerkjs)==null?void 0:f.redirectToSignUp(o)};if(this.clerkjs&&this.loaded)return d();this.premountMethodCalls.set("redirectToSignUp",d)},this.redirectToUserProfile=async()=>{const o=()=>{var d;return(d=this.clerkjs)==null?void 0:d.redirectToUserProfile()};if(this.clerkjs&&this.loaded)return o();this.premountMethodCalls.set("redirectToUserProfile",o)},this.redirectToAfterSignUp=()=>{const o=()=>{var d;return(d=this.clerkjs)==null?void 0:d.redirectToAfterSignUp()};if(this.clerkjs&&this.loaded)return o();this.premountMethodCalls.set("redirectToAfterSignUp",o)},this.redirectToAfterSignIn=()=>{const o=()=>{var d;return(d=this.clerkjs)==null?void 0:d.redirectToAfterSignIn()};this.clerkjs&&this.loaded?o():this.premountMethodCalls.set("redirectToAfterSignIn",o)},this.redirectToAfterSignOut=()=>{const o=()=>{var d;return(d=this.clerkjs)==null?void 0:d.redirectToAfterSignOut()};this.clerkjs&&this.loaded?o():this.premountMethodCalls.set("redirectToAfterSignOut",o)},this.redirectToOrganizationProfile=async()=>{const o=()=>{var d;return(d=this.clerkjs)==null?void 0:d.redirectToOrganizationProfile()};if(this.clerkjs&&this.loaded)return o();this.premountMethodCalls.set("redirectToOrganizationProfile",o)},this.redirectToCreateOrganization=async()=>{const o=()=>{var d;return(d=this.clerkjs)==null?void 0:d.redirectToCreateOrganization()};if(this.clerkjs&&this.loaded)return o();this.premountMethodCalls.set("redirectToCreateOrganization",o)},this.redirectToWaitlist=async()=>{const o=()=>{var d;return(d=this.clerkjs)==null?void 0:d.redirectToWaitlist()};if(this.clerkjs&&this.loaded)return o();this.premountMethodCalls.set("redirectToWaitlist",o)},this.redirectToTasks=async o=>{const d=()=>{var f;return(f=this.clerkjs)==null?void 0:f.redirectToTasks(o)};if(this.clerkjs&&this.loaded)return d();this.premountMethodCalls.set("redirectToTasks",d)},this.handleRedirectCallback=async o=>{var d;const f=()=>{var h;return(h=this.clerkjs)==null?void 0:h.handleRedirectCallback(o)};this.clerkjs&&this.loaded?(d=f())==null||d.catch(()=>{}):this.premountMethodCalls.set("handleRedirectCallback",f)},this.handleGoogleOneTapCallback=async(o,d)=>{var f;const h=()=>{var m;return(m=this.clerkjs)==null?void 0:m.handleGoogleOneTapCallback(o,d)};this.clerkjs&&this.loaded?(f=h())==null||f.catch(()=>{}):this.premountMethodCalls.set("handleGoogleOneTapCallback",h)},this.handleEmailLinkVerification=async o=>{const d=()=>{var f;return(f=this.clerkjs)==null?void 0:f.handleEmailLinkVerification(o)};if(this.clerkjs&&this.loaded)return d();this.premountMethodCalls.set("handleEmailLinkVerification",d)},this.authenticateWithMetamask=async o=>{const d=()=>{var f;return(f=this.clerkjs)==null?void 0:f.authenticateWithMetamask(o)};if(this.clerkjs&&this.loaded)return d();this.premountMethodCalls.set("authenticateWithMetamask",d)},this.authenticateWithCoinbaseWallet=async o=>{const d=()=>{var f;return(f=this.clerkjs)==null?void 0:f.authenticateWithCoinbaseWallet(o)};if(this.clerkjs&&this.loaded)return d();this.premountMethodCalls.set("authenticateWithCoinbaseWallet",d)},this.authenticateWithBase=async o=>{const d=()=>{var f;return(f=this.clerkjs)==null?void 0:f.authenticateWithBase(o)};if(this.clerkjs&&this.loaded)return d();this.premountMethodCalls.set("authenticateWithBase",d)},this.authenticateWithOKXWallet=async o=>{const d=()=>{var f;return(f=this.clerkjs)==null?void 0:f.authenticateWithOKXWallet(o)};if(this.clerkjs&&this.loaded)return d();this.premountMethodCalls.set("authenticateWithOKXWallet",d)},this.authenticateWithSolana=async o=>{const d=()=>{var f;return(f=this.clerkjs)==null?void 0:f.authenticateWithSolana(o)};if(this.clerkjs&&this.loaded)return d();this.premountMethodCalls.set("authenticateWithSolana",d)},this.authenticateWithWeb3=async o=>{const d=()=>{var f;return(f=this.clerkjs)==null?void 0:f.authenticateWithWeb3(o)};if(this.clerkjs&&this.loaded)return d();this.premountMethodCalls.set("authenticateWithWeb3",d)},this.authenticateWithGoogleOneTap=async o=>(await Fu(this,rl,Vo).call(this)).authenticateWithGoogleOneTap(o),this.__internal_loadStripeJs=async()=>(await Fu(this,rl,Vo).call(this)).__internal_loadStripeJs(),this.createOrganization=async o=>{const d=()=>{var f;return(f=this.clerkjs)==null?void 0:f.createOrganization(o)};if(this.clerkjs&&this.loaded)return d();this.premountMethodCalls.set("createOrganization",d)},this.getOrganization=async o=>{const d=()=>{var f;return(f=this.clerkjs)==null?void 0:f.getOrganization(o)};if(this.clerkjs&&this.loaded)return d();this.premountMethodCalls.set("getOrganization",d)},this.joinWaitlist=async o=>{const d=()=>{var f;return(f=this.clerkjs)==null?void 0:f.joinWaitlist(o)};if(this.clerkjs&&this.loaded)return d();this.premountMethodCalls.set("joinWaitlist",d)},this.signOut=async(...o)=>{const d=()=>{var f;return(f=this.clerkjs)==null?void 0:f.signOut(...o)};if(this.clerkjs&&this.loaded)return d();this.premountMethodCalls.set("signOut",d)},this.__internal_attemptToEnableEnvironmentSetting=o=>{const d=()=>{var f;return(f=this.clerkjs)==null?void 0:f.__internal_attemptToEnableEnvironmentSetting(o)};if(this.clerkjs&&this.loaded)return d();this.premountMethodCalls.set("__internal_attemptToEnableEnvironmentSetting",d)};const{Clerk:u=null,publishableKey:s}=l||{};gn(this,Ya,s),gn(this,li,l?.proxyUrl),gn(this,ii,l?.domain),this.options=l,this.Clerk=u,this.mode=Qo()?"browser":"server",gn(this,Go,new fT(this)),this.options.sdkMetadata||(this.options.sdkMetadata=pT),Be(this,Zt).emit(jo.Status,"loading"),Be(this,Zt).prioritizedOn(jo.Status,o=>gn(this,qo,o)),Be(this,Ya)&&this.loadClerkJS()}get publishableKey(){return Be(this,Ya)}get loaded(){var l;return((l=this.clerkjs)==null?void 0:l.loaded)||!1}get status(){var l;return this.clerkjs?((l=this.clerkjs)==null?void 0:l.status)||(this.clerkjs.loaded?"ready":"loading"):Be(this,qo)}static getOrCreateInstance(l){return(!Qo()||!Be(this,Wa)||l.Clerk&&Be(this,Wa).Clerk!==l.Clerk||Be(this,Wa).publishableKey!==l.publishableKey)&&gn(this,Wa,new og(l)),Be(this,Wa)}static clearInstance(){gn(this,Wa,null)}get domain(){return typeof window<"u"&&window.location?Hu(Be(this,ii),new URL(window.location.href),""):typeof Be(this,ii)=="function"?vn.throw(ju):Be(this,ii)||""}get proxyUrl(){return typeof window<"u"&&window.location?Hu(Be(this,li),new URL(window.location.href),""):typeof Be(this,li)=="function"?vn.throw(ju):Be(this,li)||""}__internal_getOption(l){var u,s;return(u=this.clerkjs)!=null&&u.__internal_getOption?(s=this.clerkjs)==null?void 0:s.__internal_getOption(l):this.options[l]}get sdkMetadata(){var l;return((l=this.clerkjs)==null?void 0:l.sdkMetadata)||this.options.sdkMetadata||void 0}get instanceType(){var l;return(l=this.clerkjs)==null?void 0:l.instanceType}get frontendApi(){var l;return((l=this.clerkjs)==null?void 0:l.frontendApi)||""}get isStandardBrowser(){var l;return((l=this.clerkjs)==null?void 0:l.isStandardBrowser)||this.options.standardBrowser||!1}get __internal_queryClient(){var l;return(l=this.clerkjs)==null?void 0:l.__internal_queryClient}get isSatellite(){return typeof window<"u"&&window.location?Hu(this.options.isSatellite,new URL(window.location.href),!1):typeof this.options.isSatellite=="function"?vn.throw(ju):!1}async loadClerkJS(){var l;if(!(this.mode!=="browser"||this.loaded)){typeof window<"u"&&(window.__clerk_publishable_key=Be(this,Ya),window.__clerk_proxy_url=this.proxyUrl,window.__clerk_domain=this.domain);try{if(this.Clerk){let u;Lw(this.Clerk)?(u=new this.Clerk(Be(this,Ya),{proxyUrl:this.proxyUrl,domain:this.domain}),this.beforeLoad(u),await u.load(this.options)):(u=this.Clerk,u.loaded||(this.beforeLoad(u),await u.load(this.options))),global.Clerk=u}else if(!__BUILD_DISABLE_RHC__){if(global.Clerk||await iT({...this.options,publishableKey:Be(this,Ya),proxyUrl:this.proxyUrl,domain:this.domain,nonce:this.options.nonce}),!global.Clerk)throw new Error("Failed to download latest ClerkJS. Contact support@clerk.com.");this.beforeLoad(global.Clerk),await global.Clerk.load(this.options)}return(l=global.Clerk)!=null&&l.loaded?this.hydrateClerkJS(global.Clerk):void 0}catch(u){const s=u;Be(this,Zt).emit(jo.Status,"error"),console.error(s.stack||s.message||s);return}}}get version(){var l;return(l=this.clerkjs)==null?void 0:l.version}get client(){if(this.clerkjs)return this.clerkjs.client}get session(){if(this.clerkjs)return this.clerkjs.session}get user(){if(this.clerkjs)return this.clerkjs.user}get organization(){if(this.clerkjs)return this.clerkjs.organization}get telemetry(){if(this.clerkjs)return this.clerkjs.telemetry}get __unstable__environment(){if(this.clerkjs)return this.clerkjs.__unstable__environment}get isSignedIn(){return this.clerkjs?this.clerkjs.isSignedIn:!1}get billing(){var l;return(l=this.clerkjs)==null?void 0:l.billing}get __internal_state(){return this.loaded&&this.clerkjs?this.clerkjs.__internal_state:Be(this,Go)}get apiKeys(){var l;return(l=this.clerkjs)==null?void 0:l.apiKeys}__unstable__setEnvironment(...l){if(this.clerkjs&&"__unstable__setEnvironment"in this.clerkjs)this.clerkjs.__unstable__setEnvironment(l);else return}};qo=new WeakMap;ii=new WeakMap;li=new WeakMap;Ya=new WeakMap;Zt=new WeakMap;Go=new WeakMap;Wa=new WeakMap;rl=new WeakSet;Vo=function(){return new Promise(i=>{this.addOnLoaded(()=>i(this.clerkjs))})};Fa(hT,Wa);sw({packageName:"@clerk/clerk-react"});aT("@clerk/clerk-react");const mT=E.createContext(void 0);function rg(){const i=E.useContext(mT);if(i===void 0)throw new Error("useAuth must be used within an AuthProvider");return i}function gT(){const{user:i,isLoading:l}=rg();return Y.jsx(Kb,{})}const Va=!1;E.lazy(()=>be(()=>import("./TestLoginPage-xVQL0lYP.js"),__vite__mapDeps([0,1,2])).then(i=>({default:i.TestLoginPage})));E.lazy(()=>be(()=>import("./TestLoginPage-xVQL0lYP.js"),__vite__mapDeps([0,1,2])).then(i=>({default:i.TestLoginPage})));const vT=E.lazy(()=>be(()=>import("./AppLayout-DXgV0atq.js"),__vite__mapDeps([3,4,5,6,2,7])).then(i=>({default:i.AppLayout}))),yT=E.lazy(()=>be(()=>import("./WorkbenchPage-ST3hVrbL.js"),__vite__mapDeps([8,2,4,6,5,9,10])).then(i=>({default:i.WorkbenchPage}))),bT=E.lazy(()=>be(()=>import("./InstancePage-BBL68DKB.js"),__vite__mapDeps([11,2,4,12,13,14,15,16,17,18,19])).then(i=>({default:i.InstancePage})));E.lazy(()=>be(()=>import("./AdminPage-BrAU67Dg.js"),__vite__mapDeps([20,2,4])).then(i=>({default:i.AdminPage})));E.lazy(()=>be(()=>import("./ProfilePage-Dx8YdU59.js"),__vite__mapDeps([21,2,4,22])).then(i=>({default:i.ProfilePage})));const ST=E.lazy(()=>be(()=>import("./GoogleOAuthCallback-CBvLawe2.js"),__vite__mapDeps([23,2])).then(i=>({default:i.GoogleOAuthCallback}))),CT=E.lazy(()=>be(()=>import("./ChatHubPage-B2WduoUM.js"),__vite__mapDeps([24,2,25,5,26,27,4,15,13,14,16,17,6,28])).then(i=>({default:i.ChatHubPage}))),AT=E.lazy(()=>be(()=>import("./GroupChatsListPage-BOwxHFfA.js"),__vite__mapDeps([29,2,4,30])).then(i=>({default:i.GroupChatsListPage}))),ET=E.lazy(()=>be(()=>import("./GroupChatPage-rMfhmtsX.js"),__vite__mapDeps([31,2,16,4,17,30])).then(i=>({default:i.GroupChatPage}))),wT=E.lazy(()=>be(()=>import("./TemplatesPage-HMS__ODO.js"),__vite__mapDeps([32,2,4,33])).then(i=>({default:i.TemplatesPage})));E.lazy(()=>be(()=>import("./SystemConfigPage-4dvxADwi.js"),__vite__mapDeps([34,2,4,35])).then(i=>({default:i.SystemConfigPage})));const TT=E.lazy(()=>be(()=>import("./CreateWizardPage-DFEQ3VX3.js"),__vite__mapDeps([36,12,2,37,26,4,5,38,19])).then(i=>({default:i.CreateWizardPage}))),PT=E.lazy(()=>be(()=>import("./CredentialsPage-CDeXpnLG.js"),__vite__mapDeps([39,2,4,40])).then(i=>({default:i.CredentialsPage}))),zT=E.lazy(()=>Promise.resolve({default:()=>null})),kT=zT,LT=E.lazy(()=>be(()=>import("./MyAssistantsPage-q3-hNMth.js"),__vite__mapDeps([41,2,25,5,26,27,12,4,6,9,42])).then(i=>({default:i.MyAssistantsPage}))),MT=E.lazy(()=>be(()=>import("./AssistantChatPage-uVLgKLay.js"),__vite__mapDeps([43,2,13,4,14,16,17,42])).then(i=>({default:i.AssistantChatPage}))),OT=E.lazy(()=>be(()=>import("./AssistantVersionsPage-BQRw3BUF.js"),__vite__mapDeps([44,2,4,42])).then(i=>({default:i.AssistantVersionsPage}))),DT=E.lazy(()=>be(()=>import("./AssistantEditPage-Bab1X-DA.js"),__vite__mapDeps([45,2,37,26,4,5,38,42])).then(i=>({default:i.AssistantEditPage}))),RT=E.lazy(()=>be(()=>import("./ExportWizardPage-BhNvovbU.js"),__vite__mapDeps([46,2,4,47])).then(i=>({default:i.ExportWizardPage}))),_T=E.lazy(()=>be(()=>import("./DocsLayout-S7-ONZwP.js"),__vite__mapDeps([48,1])).then(i=>({default:i.DocsLayout}))),xT=E.lazy(()=>be(()=>import("./DocsHomePage-BGEU5xBg.js"),[]).then(i=>({default:i.DocsHomePage}))),NT=E.lazy(()=>be(()=>import("./DocsGettingStartedPage-CpM7o8sw.js"),[]).then(i=>({default:i.DocsGettingStartedPage}))),UT=E.lazy(()=>be(()=>import("./DocsInstancesPage-Sewnw_x7.js"),[]).then(i=>({default:i.DocsInstancesPage}))),BT=E.lazy(()=>be(()=>import("./DocsProvidersPage-MeWneL5K.js"),[]).then(i=>({default:i.DocsProvidersPage}))),IT=E.lazy(()=>be(()=>import("./DocsWorkspacePage-qYNeK_YS.js"),[]).then(i=>({default:i.DocsWorkspacePage}))),jT=E.lazy(()=>be(()=>import("./DocsTemplatesPage-BXASAEoO.js"),[]).then(i=>({default:i.DocsTemplatesPage}))),HT=E.lazy(()=>be(()=>import("./DocsSkillsPage-CzsHPXxE.js"),[]).then(i=>({default:i.DocsSkillsPage}))),KT=E.lazy(()=>be(()=>import("./DocsChannelsPage-CtmKYKK_.js"),[]).then(i=>({default:i.DocsChannelsPage}))),qT=E.lazy(()=>be(()=>import("./DocsGroupChatsPage-7w-RVSJR.js"),[]).then(i=>({default:i.DocsGroupChatsPage}))),GT=E.lazy(()=>be(()=>import("./DocsAboutPage-CMbxiw1u.js"),[]).then(i=>({default:i.DocsAboutPage})));function VT(){return Y.jsx(E.Suspense,{fallback:Y.jsx("div",{className:"page-loading"}),children:Y.jsxs(Gb,{children:[Va,Va,Y.jsx(ze,{path:"/oauth/salevoice/callback",element:Y.jsx(kT,{})}),Y.jsxs(ze,{path:"/docs",element:Y.jsx(_T,{}),children:[Y.jsx(ze,{index:!0,element:Y.jsx(xT,{})}),Y.jsx(ze,{path:"getting-started",element:Y.jsx(NT,{})}),Y.jsx(ze,{path:"instances",element:Y.jsx(UT,{})}),Y.jsx(ze,{path:"providers",element:Y.jsx(BT,{})}),Y.jsx(ze,{path:"workspace",element:Y.jsx(IT,{})}),Y.jsx(ze,{path:"templates",element:Y.jsx(jT,{})}),Y.jsx(ze,{path:"skills",element:Y.jsx(HT,{})}),Y.jsx(ze,{path:"channels",element:Y.jsx(KT,{})}),Y.jsx(ze,{path:"group-chats",element:Y.jsx(qT,{})}),Y.jsx(ze,{path:"about",element:Y.jsx(GT,{})})]}),Y.jsx(ze,{element:Y.jsx(gT,{}),children:Y.jsxs(ze,{element:Y.jsx(vT,{}),children:[Y.jsx(ze,{path:"/",element:Y.jsx(CT,{})}),Y.jsx(ze,{path:"/dashboard",element:Y.jsx(yT,{})}),Y.jsx(ze,{path:"/instances/:id",element:Y.jsx(bT,{})}),Y.jsx(ze,{path:"/assistants",element:Y.jsx(LT,{})}),Y.jsx(ze,{path:"/assistants/:id/chat",element:Y.jsx(MT,{})}),Y.jsx(ze,{path:"/assistants/:id/versions",element:Y.jsx(OT,{})}),Y.jsx(ze,{path:"/assistants/:id/edit",element:Y.jsx(DT,{})}),Y.jsx(ze,{path:"/export/:id",element:Y.jsx(RT,{})}),Y.jsx(ze,{path:"/create",element:Y.jsx(TT,{})}),Y.jsx(ze,{path:"/group-chats",element:Y.jsx(AT,{})}),Y.jsx(ze,{path:"/group-chats/:id",element:Y.jsx(ET,{})}),Y.jsx(ze,{path:"/templates",element:Y.jsx(wT,{})}),Va,Va,Va,Va,Va,Va,Y.jsx(ze,{path:"/user/credentials",element:Y.jsx(PT,{})}),Y.jsx(ze,{path:"/oauth/google/callback",element:Y.jsx(ST,{})})]})})]})})}const sg=E.createContext(void 0);function FT({children:i}){const{user:l,getToken:u}=rg(),[s,o]=E.useState(!1),d=E.useRef(null),f=E.useRef(new Map),h=E.useRef(new Set),m=E.useRef(new Set),g=E.useRef(new Set),b=E.useRef(null),y=E.useRef(!1),k=E.useRef(()=>{}),D=E.useCallback(()=>{if(d.current?.readyState===WebSocket.OPEN||!l)return;const V=`${window.location.protocol==="https:"?"wss":"ws"}://${window.location.host}/ws`,te=new WebSocket(V);te.onopen=async()=>{const ne=await u();ne?te.send(JSON.stringify({type:"auth",token:ne})):te.close()},te.onmessage=ne=>{try{const me=JSON.parse(ne.data);if(me.type==="auth"&&me.ok){y.current=!0,o(!0),h.current.forEach(Ae=>{te.send(JSON.stringify({type:"subscribe",instanceId:Ae}))}),m.current.forEach(Ae=>{te.send(JSON.stringify({type:"subscribe_group_chat",groupChatId:Ae}))}),g.current.forEach(Ae=>{const[Se,ke]=Ae.split(":");te.send(JSON.stringify({type:"subscribe_chat_session",instanceId:Se,sessionKey:ke}))});return}if(me.type==="auth"&&!me.ok){te.close();return}const De=f.current.get(me.type);De&&De.forEach(Ae=>Ae(me))}catch{}},te.onclose=()=>{o(!1),y.current=!1,d.current=null,b.current&&clearTimeout(b.current),b.current=setTimeout(()=>{k.current()},3e3)},te.onerror=()=>{te.close()},d.current=te},[l,u]);E.useEffect(()=>{k.current=D},[D]),E.useEffect(()=>(D(),()=>{d.current&&d.current.close(),b.current&&clearTimeout(b.current)}),[D]);const x=E.useCallback(F=>{h.current.add(F),d.current?.readyState===WebSocket.OPEN&&y.current&&d.current.send(JSON.stringify({type:"subscribe",instanceId:F}))},[]),I=E.useCallback(F=>{h.current.delete(F)},[]),N=E.useCallback(F=>{m.current.add(F),d.current?.readyState===WebSocket.OPEN&&y.current&&d.current.send(JSON.stringify({type:"subscribe_group_chat",groupChatId:F}))},[]),K=E.useCallback(F=>{m.current.delete(F),d.current?.readyState===WebSocket.OPEN&&y.current&&d.current.send(JSON.stringify({type:"unsubscribe_group_chat",groupChatId:F}))},[]),j=E.useCallback((F,V)=>{const te=`${F}:${V}`;g.current.add(te),d.current?.readyState===WebSocket.OPEN&&y.current&&d.current.send(JSON.stringify({type:"subscribe_chat_session",instanceId:F,sessionKey:V}))},[]),q=E.useCallback((F,V)=>{const te=`${F}:${V}`;g.current.delete(te),d.current?.readyState===WebSocket.OPEN&&y.current&&d.current.send(JSON.stringify({type:"unsubscribe_chat_session",instanceId:F,sessionKey:V}))},[]),Q=E.useCallback((F,V)=>{f.current.has(F)||f.current.set(F,new Set),f.current.get(F)?.add(V)},[]),ee=E.useCallback((F,V)=>{f.current.get(F)?.delete(V)},[]);return Y.jsx(sg.Provider,{value:{isConnected:s,subscribe:x,unsubscribe:I,subscribeGroupChat:N,unsubscribeGroupChat:K,subscribeChatSession:j,unsubscribeChatSession:q,addHandler:Q,removeHandler:ee},children:i})}function t0(){const i=E.useContext(sg);if(i===void 0)throw new Error("useWebSocket must be used within a WebSocketProvider");return i}async function YT(){let i;{const{CeAuthProvider:l}=await be(async()=>{const{CeAuthProvider:u}=await import("./CeAuthProvider-38_x9VGA.js");return{CeAuthProvider:u}},[]);i=Y.jsx(l,{children:Y.jsx(FT,{children:Y.jsx(VT,{})})})}Gy.createRoot(document.getElementById("root")).render(Y.jsx(E.StrictMode,{children:Y.jsx(mS,{children:i})}))}YT();export{mT as A,km as L,ZT as N,Kb as O,WT as R,ic as a,gS as b,t0 as c,tc as d,TS as e,$T as f,xy as g,QT as h,B as i,Y as j,XT as k,JT as l,E as r,e0 as s,rg as u};