@jheavenknows/bluerouter 1.0.125 → 1.0.127

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 (952) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +4 -2
  3. package/app/.next-cli-build/build-manifest.json +2 -2
  4. package/app/.next-cli-build/routes-manifest.json +12 -0
  5. package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page.js +2 -2
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page.js.nft.json +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page.js +3 -3
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page.js.nft.json +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page_client-reference-manifest.js +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +2 -2
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +2 -2
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +2 -2
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +2 -2
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page.js +2 -2
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page.js.nft.json +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page_client-reference-manifest.js +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page.js +2 -2
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page.js.nft.json +1 -1
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page_client-reference-manifest.js +1 -1
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +3 -3
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  62. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  63. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  64. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  65. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +2 -2
  66. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  67. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  68. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +2 -2
  69. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  70. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  71. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +2 -2
  72. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  73. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  74. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  75. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  76. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  77. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  78. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  79. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  80. package/app/.next-cli-build/server/app/_global-error/page.js +3 -3
  81. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  82. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  83. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  84. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  85. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  86. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  87. package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  88. package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  89. package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  90. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  91. package/app/.next-cli-build/server/app/_not-found/page.js +2 -2
  92. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  93. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  94. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  95. package/app/.next-cli-build/server/app/_not-found.rsc +4 -4
  96. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
  97. package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  98. package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +4 -4
  99. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  100. package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  101. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  102. package/app/.next-cli-build/server/app/api/auth/ldap/test/route.js +1 -1
  103. package/app/.next-cli-build/server/app/api/auth/ldap/test/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/auth/ldap/users/route.js +1 -1
  105. package/app/.next-cli-build/server/app/api/auth/ldap/users/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  107. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  108. package/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  109. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  111. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  113. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  115. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  117. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +3 -3
  119. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
  121. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/autostart/route.js +1 -1
  123. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/autostart/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/prompt-log-db/route.js +1 -1
  125. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/prompt-log-db/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/root-ca/route.js +1 -1
  127. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/root-ca/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  129. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  131. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
  133. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  135. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  137. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
  139. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  141. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  143. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
  145. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
  147. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +1 -1
  149. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +1 -1
  151. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +1 -1
  153. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  155. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  157. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  158. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  159. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  160. package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  161. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/dashboard/analytics/route.js +2 -2
  163. package/app/.next-cli-build/server/app/api/dashboard/analytics/route.js.nft.json +1 -1
  164. package/app/.next-cli-build/server/app/api/dashboard/combos/route.js +1 -0
  165. package/app/.next-cli-build/server/app/api/dashboard/combos/route.js.nft.json +1 -0
  166. package/app/.next-cli-build/server/app/api/dashboard/combos/route_client-reference-manifest.js +1 -0
  167. package/app/.next-cli-build/server/app/api/dashboard/endpoint/route.js +1 -0
  168. package/app/.next-cli-build/server/app/api/dashboard/endpoint/route.js.nft.json +1 -0
  169. package/app/.next-cli-build/server/app/api/dashboard/endpoint/route_client-reference-manifest.js +1 -0
  170. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/[id]/route.js +1 -1
  171. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/[id]/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/options/route.js +1 -1
  173. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/options/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/route.js +1 -1
  175. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/health/route.js +1 -1
  177. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  178. package/app/.next-cli-build/server/app/api/init/route.js +1 -1
  179. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  180. package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  181. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  182. package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  183. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  184. package/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  185. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +1 -1
  187. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  188. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +5 -5
  189. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  191. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  193. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  194. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  195. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  196. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  197. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  198. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  199. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  200. package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  201. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  202. package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  203. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  204. package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  205. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  206. package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  207. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  208. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  209. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  210. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  211. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  212. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  213. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  214. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  215. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  216. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  217. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  218. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  219. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  220. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  221. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  222. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  223. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  224. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  225. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  226. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  227. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  228. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  229. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  230. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  231. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  232. package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  233. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  234. package/app/.next-cli-build/server/app/api/provider-health/route.js +1 -1
  235. package/app/.next-cli-build/server/app/api/provider-health/route.js.nft.json +1 -1
  236. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  237. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  238. package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  239. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  240. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  241. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  242. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  243. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  244. package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  245. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  246. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  247. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  248. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  249. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  250. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  251. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  252. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  253. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  254. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  255. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  256. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  257. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  258. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  259. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  260. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  261. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  262. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  263. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  264. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  265. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  266. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
  267. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  268. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
  269. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  270. package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  271. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  272. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  273. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  274. package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  275. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  276. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  277. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  278. package/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  279. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  280. package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  281. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  282. package/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  283. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  284. package/app/.next-cli-build/server/app/api/tags/route.js +1 -1
  285. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  286. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  287. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  288. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  289. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  290. package/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  291. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  292. package/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  293. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  294. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  295. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  296. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  297. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  298. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
  299. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  300. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
  301. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  302. package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
  303. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  304. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
  305. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  306. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  307. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  308. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  309. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  310. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +1 -1
  311. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  312. package/app/.next-cli-build/server/app/api/tunnel/tailscale-login/route.js +1 -1
  313. package/app/.next-cli-build/server/app/api/tunnel/tailscale-login/route.js.nft.json +1 -1
  314. package/app/.next-cli-build/server/app/api/tunnel/tailscale-start-daemon/route.js +1 -1
  315. package/app/.next-cli-build/server/app/api/tunnel/tailscale-start-daemon/route.js.nft.json +1 -1
  316. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  317. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  318. package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  319. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  320. package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  321. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  322. package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  323. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  324. package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  325. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  326. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  327. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  328. package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  329. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  330. package/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -2
  331. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  332. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  333. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  334. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  335. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  336. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  337. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  338. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  339. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  340. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  341. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  342. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  343. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  344. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  345. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  346. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  347. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  348. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  349. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  350. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  351. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  352. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  353. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  354. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  355. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  356. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  357. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  358. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  359. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  360. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  361. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  362. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  363. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  364. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  365. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  366. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  367. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  368. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  369. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  370. package/app/.next-cli-build/server/app/api/version/restart/route.js +1 -1
  371. package/app/.next-cli-build/server/app/api/version/restart/route.js.nft.json +1 -1
  372. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  373. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  374. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  375. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  376. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  377. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  378. package/app/.next-cli-build/server/app/callback/page.js +2 -2
  379. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  380. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  381. package/app/.next-cli-build/server/app/callback.html +1 -1
  382. package/app/.next-cli-build/server/app/callback.rsc +4 -4
  383. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
  384. package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  385. package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +4 -4
  386. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  387. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  388. package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  389. package/app/.next-cli-build/server/app/dashboard/analytics.html +1 -1
  390. package/app/.next-cli-build/server/app/dashboard/analytics.rsc +5 -5
  391. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics/__PAGE__.segment.rsc +1 -1
  392. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics.segment.rsc +1 -1
  393. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  394. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  395. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_full.segment.rsc +5 -5
  396. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_head.segment.rsc +1 -1
  397. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_index.segment.rsc +4 -4
  398. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_tree.segment.rsc +2 -2
  399. package/app/.next-cli-build/server/app/dashboard/api-keys.html +1 -1
  400. package/app/.next-cli-build/server/app/dashboard/api-keys.rsc +6 -6
  401. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys/__PAGE__.segment.rsc +2 -2
  402. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys.segment.rsc +1 -1
  403. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  404. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  405. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_full.segment.rsc +6 -6
  406. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_head.segment.rsc +1 -1
  407. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_index.segment.rsc +4 -4
  408. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_tree.segment.rsc +2 -2
  409. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  410. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +6 -6
  411. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  412. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  413. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  414. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  415. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +6 -6
  416. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  417. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +4 -4
  418. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  419. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  420. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +6 -6
  421. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  422. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  423. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  424. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  425. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
  426. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  427. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +4 -4
  428. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  429. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  430. package/app/.next-cli-build/server/app/dashboard/combos.rsc +6 -6
  431. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  432. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  433. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  434. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  435. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +6 -6
  436. package/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  437. package/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +4 -4
  438. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  439. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  440. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +9 -10
  441. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +5 -6
  442. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  443. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  444. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  445. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +9 -10
  446. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  447. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +4 -4
  448. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  449. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  450. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +6 -6
  451. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  452. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  453. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  454. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  455. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  456. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +6 -6
  457. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  458. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +4 -4
  459. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  460. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  461. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +6 -6
  462. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  463. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  464. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  465. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  466. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +6 -6
  467. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  468. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +4 -4
  469. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  470. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  471. package/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
  472. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +1 -1
  473. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  474. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  475. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  476. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
  477. package/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  478. package/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +4 -4
  479. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  480. package/app/.next-cli-build/server/app/dashboard/prompt-logs.html +1 -1
  481. package/app/.next-cli-build/server/app/dashboard/prompt-logs.rsc +5 -5
  482. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs/__PAGE__.segment.rsc +1 -1
  483. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs.segment.rsc +1 -1
  484. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  485. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  486. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_full.segment.rsc +5 -5
  487. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_head.segment.rsc +1 -1
  488. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_index.segment.rsc +4 -4
  489. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_tree.segment.rsc +2 -2
  490. package/app/.next-cli-build/server/app/dashboard/provider-health.html +1 -1
  491. package/app/.next-cli-build/server/app/dashboard/provider-health.rsc +5 -5
  492. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health/__PAGE__.segment.rsc +1 -1
  493. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health.segment.rsc +1 -1
  494. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  495. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  496. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_full.segment.rsc +5 -5
  497. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_head.segment.rsc +1 -1
  498. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_index.segment.rsc +4 -4
  499. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_tree.segment.rsc +2 -2
  500. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  501. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +6 -6
  502. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  503. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  504. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  505. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  506. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  507. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +6 -6
  508. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  509. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +4 -4
  510. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  511. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  512. package/app/.next-cli-build/server/app/dashboard/providers.rsc +6 -6
  513. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  514. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  515. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  516. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  517. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +6 -6
  518. package/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  519. package/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +4 -4
  520. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  521. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  522. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +6 -6
  523. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  524. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  525. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  526. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  527. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +6 -6
  528. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  529. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +4 -4
  530. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  531. package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
  532. package/app/.next-cli-build/server/app/dashboard/quota.rsc +7 -7
  533. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  534. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  535. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  536. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  537. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +7 -7
  538. package/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  539. package/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +4 -4
  540. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  541. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +2 -2
  542. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  543. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  544. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  545. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +4 -4
  546. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
  547. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  548. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
  549. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  550. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  551. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  552. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  553. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  554. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  555. package/app/.next-cli-build/server/app/dashboard/skills.rsc +6 -6
  556. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
  557. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
  558. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  559. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  560. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +6 -6
  561. package/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
  562. package/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +4 -4
  563. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  564. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  565. package/app/.next-cli-build/server/app/dashboard/translator.rsc +6 -6
  566. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  567. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  568. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  569. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  570. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +6 -6
  571. package/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  572. package/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +4 -4
  573. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  574. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  575. package/app/.next-cli-build/server/app/dashboard/usage.rsc +6 -6
  576. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  577. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  578. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  579. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  580. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +6 -6
  581. package/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  582. package/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +4 -4
  583. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  584. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  585. package/app/.next-cli-build/server/app/dashboard.rsc +6 -6
  586. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  587. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  588. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  589. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +6 -6
  590. package/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  591. package/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +4 -4
  592. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  593. package/app/.next-cli-build/server/app/favicon.ico/route.js +1 -1
  594. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  595. package/app/.next-cli-build/server/app/index.html +1 -1
  596. package/app/.next-cli-build/server/app/index.rsc +4 -4
  597. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  598. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
  599. package/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  600. package/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +4 -4
  601. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  602. package/app/.next-cli-build/server/app/landing/page.js +2 -2
  603. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  604. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  605. package/app/.next-cli-build/server/app/landing.html +1 -1
  606. package/app/.next-cli-build/server/app/landing.rsc +4 -4
  607. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
  608. package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  609. package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +4 -4
  610. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  611. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  612. package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  613. package/app/.next-cli-build/server/app/login/page.js +2 -2
  614. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  615. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  616. package/app/.next-cli-build/server/app/login.html +1 -1
  617. package/app/.next-cli-build/server/app/login.rsc +4 -4
  618. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  619. package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  620. package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +4 -4
  621. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  622. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  623. package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  624. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
  625. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  626. package/app/.next-cli-build/server/app/page.js +2 -2
  627. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  628. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  629. package/app/.next-cli-build/server/app-paths-manifest.json +4 -2
  630. package/app/.next-cli-build/server/chunks/12.js +1 -1
  631. package/app/.next-cli-build/server/chunks/1219.js +1 -0
  632. package/app/.next-cli-build/server/chunks/2496.js +3 -3
  633. package/app/.next-cli-build/server/chunks/3110.js +1 -1
  634. package/app/.next-cli-build/server/chunks/4746.js +1 -1
  635. package/app/.next-cli-build/server/chunks/6604.js +2 -2
  636. package/app/.next-cli-build/server/chunks/7130.js +1 -1
  637. package/app/.next-cli-build/server/chunks/7153.js +1 -1
  638. package/app/.next-cli-build/server/chunks/8491.js +2 -2
  639. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  640. package/app/.next-cli-build/server/pages/404.html +1 -1
  641. package/app/.next-cli-build/server/pages/500.html +1 -1
  642. package/app/.next-cli-build/static/chunks/{1321-68ec29253610903c.js → 1321-07c3888865c78788.js} +1 -1
  643. package/app/.next-cli-build/static/chunks/5497-829731831aa81cee.js +7 -0
  644. package/app/.next-cli-build/static/chunks/8032-50d36728a0cfafbf.js +1 -0
  645. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/api-keys/page-e8c135fbc0946eab.js +4 -0
  646. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-4deb49458dcd9a06.js +1 -0
  647. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-283d64c061cc08e1.js +1 -0
  648. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-019bf097bba329a7.js +1 -0
  649. package/app/.next-cli-build/static/chunks/app/_global-error/page-e49b839587c2aa2b.js +1 -0
  650. package/app/.next-cli-build/static/chunks/app/api/auth/ldap/test/route-e49b839587c2aa2b.js +1 -0
  651. package/app/.next-cli-build/static/chunks/app/api/auth/ldap/users/route-e49b839587c2aa2b.js +1 -0
  652. package/app/.next-cli-build/static/chunks/app/api/auth/login/route-e49b839587c2aa2b.js +1 -0
  653. package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-e49b839587c2aa2b.js +1 -0
  654. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-e49b839587c2aa2b.js +1 -0
  655. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-e49b839587c2aa2b.js +1 -0
  656. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-e49b839587c2aa2b.js +1 -0
  657. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-e49b839587c2aa2b.js +1 -0
  658. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-e49b839587c2aa2b.js +1 -0
  659. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-e49b839587c2aa2b.js +1 -0
  660. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/autostart/route-e49b839587c2aa2b.js +1 -0
  661. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/prompt-log-db/route-e49b839587c2aa2b.js +1 -0
  662. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/root-ca/route-e49b839587c2aa2b.js +1 -0
  663. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-e49b839587c2aa2b.js +1 -0
  664. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-e49b839587c2aa2b.js +1 -0
  665. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-e49b839587c2aa2b.js +1 -0
  666. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-e49b839587c2aa2b.js +1 -0
  667. package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-e49b839587c2aa2b.js +1 -0
  668. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-e49b839587c2aa2b.js +1 -0
  669. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-e49b839587c2aa2b.js +1 -0
  670. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-e49b839587c2aa2b.js +1 -0
  671. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-e49b839587c2aa2b.js +1 -0
  672. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-e49b839587c2aa2b.js +1 -0
  673. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-e49b839587c2aa2b.js +1 -0
  674. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-e49b839587c2aa2b.js +1 -0
  675. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-e49b839587c2aa2b.js +1 -0
  676. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-e49b839587c2aa2b.js +1 -0
  677. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-e49b839587c2aa2b.js +1 -0
  678. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-e49b839587c2aa2b.js +1 -0
  679. package/app/.next-cli-build/static/chunks/app/api/combos/route-e49b839587c2aa2b.js +1 -0
  680. package/app/.next-cli-build/static/chunks/app/api/dashboard/analytics/route-e49b839587c2aa2b.js +1 -0
  681. package/app/.next-cli-build/static/chunks/app/api/dashboard/combos/route-e49b839587c2aa2b.js +1 -0
  682. package/app/.next-cli-build/static/chunks/app/api/dashboard/endpoint/route-e49b839587c2aa2b.js +1 -0
  683. package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/[id]/route-e49b839587c2aa2b.js +1 -0
  684. package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/options/route-e49b839587c2aa2b.js +1 -0
  685. package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/route-e49b839587c2aa2b.js +1 -0
  686. package/app/.next-cli-build/static/chunks/app/api/health/route-e49b839587c2aa2b.js +1 -0
  687. package/app/.next-cli-build/static/chunks/app/api/init/route-e49b839587c2aa2b.js +1 -0
  688. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-e49b839587c2aa2b.js +1 -0
  689. package/app/.next-cli-build/static/chunks/app/api/keys/route-e49b839587c2aa2b.js +1 -0
  690. package/app/.next-cli-build/static/chunks/app/api/locale/route-e49b839587c2aa2b.js +1 -0
  691. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-e49b839587c2aa2b.js +1 -0
  692. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-e49b839587c2aa2b.js +1 -0
  693. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-e49b839587c2aa2b.js +1 -0
  694. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-e49b839587c2aa2b.js +1 -0
  695. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-e49b839587c2aa2b.js +1 -0
  696. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-e49b839587c2aa2b.js +1 -0
  697. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-e49b839587c2aa2b.js +1 -0
  698. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-e49b839587c2aa2b.js +1 -0
  699. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-e49b839587c2aa2b.js +1 -0
  700. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-e49b839587c2aa2b.js +1 -0
  701. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-e49b839587c2aa2b.js +1 -0
  702. package/app/.next-cli-build/static/chunks/app/api/models/route-e49b839587c2aa2b.js +1 -0
  703. package/app/.next-cli-build/static/chunks/app/api/models/test/route-e49b839587c2aa2b.js +1 -0
  704. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-e49b839587c2aa2b.js +1 -0
  705. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-e49b839587c2aa2b.js +1 -0
  706. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-e49b839587c2aa2b.js +1 -0
  707. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-e49b839587c2aa2b.js +1 -0
  708. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-e49b839587c2aa2b.js +1 -0
  709. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-e49b839587c2aa2b.js +1 -0
  710. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-e49b839587c2aa2b.js +1 -0
  711. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-e49b839587c2aa2b.js +1 -0
  712. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-e49b839587c2aa2b.js +1 -0
  713. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-e49b839587c2aa2b.js +1 -0
  714. package/app/.next-cli-build/static/chunks/app/api/pricing/route-e49b839587c2aa2b.js +1 -0
  715. package/app/.next-cli-build/static/chunks/app/api/provider-health/route-e49b839587c2aa2b.js +1 -0
  716. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-e49b839587c2aa2b.js +1 -0
  717. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-e49b839587c2aa2b.js +1 -0
  718. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-e49b839587c2aa2b.js +1 -0
  719. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-e49b839587c2aa2b.js +1 -0
  720. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-e49b839587c2aa2b.js +1 -0
  721. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-e49b839587c2aa2b.js +1 -0
  722. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-e49b839587c2aa2b.js +1 -0
  723. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-e49b839587c2aa2b.js +1 -0
  724. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-e49b839587c2aa2b.js +1 -0
  725. package/app/.next-cli-build/static/chunks/app/api/providers/route-e49b839587c2aa2b.js +1 -0
  726. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-e49b839587c2aa2b.js +1 -0
  727. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-e49b839587c2aa2b.js +1 -0
  728. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-e49b839587c2aa2b.js +1 -0
  729. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-e49b839587c2aa2b.js +1 -0
  730. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-e49b839587c2aa2b.js +1 -0
  731. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-e49b839587c2aa2b.js +1 -0
  732. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-e49b839587c2aa2b.js +1 -0
  733. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-e49b839587c2aa2b.js +1 -0
  734. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-e49b839587c2aa2b.js +1 -0
  735. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-e49b839587c2aa2b.js +1 -0
  736. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-e49b839587c2aa2b.js +1 -0
  737. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-e49b839587c2aa2b.js +1 -0
  738. package/app/.next-cli-build/static/chunks/app/api/settings/route-e49b839587c2aa2b.js +1 -0
  739. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-e49b839587c2aa2b.js +1 -0
  740. package/app/.next-cli-build/static/chunks/app/api/tags/route-e49b839587c2aa2b.js +1 -0
  741. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-e49b839587c2aa2b.js +1 -0
  742. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-e49b839587c2aa2b.js +1 -0
  743. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-e49b839587c2aa2b.js +1 -0
  744. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-e49b839587c2aa2b.js +1 -0
  745. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-e49b839587c2aa2b.js +1 -0
  746. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-e49b839587c2aa2b.js +1 -0
  747. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-e49b839587c2aa2b.js +1 -0
  748. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-e49b839587c2aa2b.js +1 -0
  749. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-e49b839587c2aa2b.js +1 -0
  750. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-e49b839587c2aa2b.js +1 -0
  751. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-e49b839587c2aa2b.js +1 -0
  752. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-e49b839587c2aa2b.js +1 -0
  753. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-e49b839587c2aa2b.js +1 -0
  754. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-login/route-e49b839587c2aa2b.js +1 -0
  755. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-start-daemon/route-e49b839587c2aa2b.js +1 -0
  756. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-e49b839587c2aa2b.js +1 -0
  757. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-e49b839587c2aa2b.js +1 -0
  758. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-e49b839587c2aa2b.js +1 -0
  759. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-e49b839587c2aa2b.js +1 -0
  760. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-e49b839587c2aa2b.js +1 -0
  761. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-e49b839587c2aa2b.js +1 -0
  762. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-e49b839587c2aa2b.js +1 -0
  763. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-e49b839587c2aa2b.js +1 -0
  764. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-e49b839587c2aa2b.js +1 -0
  765. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-e49b839587c2aa2b.js +1 -0
  766. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-e49b839587c2aa2b.js +1 -0
  767. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-e49b839587c2aa2b.js +1 -0
  768. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-e49b839587c2aa2b.js +1 -0
  769. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-e49b839587c2aa2b.js +1 -0
  770. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-e49b839587c2aa2b.js +1 -0
  771. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-e49b839587c2aa2b.js +1 -0
  772. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-e49b839587c2aa2b.js +1 -0
  773. package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-e49b839587c2aa2b.js +1 -0
  774. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-e49b839587c2aa2b.js +1 -0
  775. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-e49b839587c2aa2b.js +1 -0
  776. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-e49b839587c2aa2b.js +1 -0
  777. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-e49b839587c2aa2b.js +1 -0
  778. package/app/.next-cli-build/static/chunks/app/api/v1/route-e49b839587c2aa2b.js +1 -0
  779. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-e49b839587c2aa2b.js +1 -0
  780. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-e49b839587c2aa2b.js +1 -0
  781. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-e49b839587c2aa2b.js +1 -0
  782. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-e49b839587c2aa2b.js +1 -0
  783. package/app/.next-cli-build/static/chunks/app/api/version/restart/route-e49b839587c2aa2b.js +1 -0
  784. package/app/.next-cli-build/static/chunks/app/api/version/route-e49b839587c2aa2b.js +1 -0
  785. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-e49b839587c2aa2b.js +1 -0
  786. package/app/.next-cli-build/static/chunks/app/api/version/update/route-e49b839587c2aa2b.js +1 -0
  787. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-e49b839587c2aa2b.js +1 -0
  788. package/app/.next-cli-build/static/chunks/app/page-e49b839587c2aa2b.js +1 -0
  789. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-e49b839587c2aa2b.js +1 -0
  790. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-e49b839587c2aa2b.js +1 -0
  791. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-e49b839587c2aa2b.js +1 -0
  792. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-e49b839587c2aa2b.js +1 -0
  793. package/app/.next-cli-build/static/css/61fb9d1cb80a8d71.css +1 -0
  794. package/app/.next-cli-build/static/vbieovoDGFdFo6P7kOZx2/_buildManifest.js +1 -0
  795. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-shm +0 -0
  796. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-wal +0 -0
  797. package/app/package.json +1 -1
  798. package/package.json +1 -1
  799. package/app/.next-cli-build/server/chunks/9447.js +0 -3
  800. package/app/.next-cli-build/static/ZINInVEKlUQeXi1UOqvuy/_buildManifest.js +0 -1
  801. package/app/.next-cli-build/static/chunks/5497-daf79b3b6e4ac5be.js +0 -7
  802. package/app/.next-cli-build/static/chunks/5907-46d07be8a58ce080.js +0 -3
  803. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/api-keys/page-6f59999eaf345375.js +0 -4
  804. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-9d08502839471987.js +0 -1
  805. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-e0b4284d8e973996.js +0 -1
  806. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-5e2bec66810c6089.js +0 -1
  807. package/app/.next-cli-build/static/chunks/app/_global-error/page-2502cf08f3ab5776.js +0 -1
  808. package/app/.next-cli-build/static/chunks/app/api/auth/ldap/test/route-2502cf08f3ab5776.js +0 -1
  809. package/app/.next-cli-build/static/chunks/app/api/auth/ldap/users/route-2502cf08f3ab5776.js +0 -1
  810. package/app/.next-cli-build/static/chunks/app/api/auth/login/route-2502cf08f3ab5776.js +0 -1
  811. package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-2502cf08f3ab5776.js +0 -1
  812. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-2502cf08f3ab5776.js +0 -1
  813. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-2502cf08f3ab5776.js +0 -1
  814. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-2502cf08f3ab5776.js +0 -1
  815. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-2502cf08f3ab5776.js +0 -1
  816. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-2502cf08f3ab5776.js +0 -1
  817. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-2502cf08f3ab5776.js +0 -1
  818. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/autostart/route-2502cf08f3ab5776.js +0 -1
  819. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/prompt-log-db/route-2502cf08f3ab5776.js +0 -1
  820. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/root-ca/route-2502cf08f3ab5776.js +0 -1
  821. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-2502cf08f3ab5776.js +0 -1
  822. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-2502cf08f3ab5776.js +0 -1
  823. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-2502cf08f3ab5776.js +0 -1
  824. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-2502cf08f3ab5776.js +0 -1
  825. package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-2502cf08f3ab5776.js +0 -1
  826. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-2502cf08f3ab5776.js +0 -1
  827. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-2502cf08f3ab5776.js +0 -1
  828. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-2502cf08f3ab5776.js +0 -1
  829. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-2502cf08f3ab5776.js +0 -1
  830. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-2502cf08f3ab5776.js +0 -1
  831. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-2502cf08f3ab5776.js +0 -1
  832. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-2502cf08f3ab5776.js +0 -1
  833. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-2502cf08f3ab5776.js +0 -1
  834. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-2502cf08f3ab5776.js +0 -1
  835. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-2502cf08f3ab5776.js +0 -1
  836. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-2502cf08f3ab5776.js +0 -1
  837. package/app/.next-cli-build/static/chunks/app/api/combos/route-2502cf08f3ab5776.js +0 -1
  838. package/app/.next-cli-build/static/chunks/app/api/dashboard/analytics/route-2502cf08f3ab5776.js +0 -1
  839. package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/[id]/route-2502cf08f3ab5776.js +0 -1
  840. package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/options/route-2502cf08f3ab5776.js +0 -1
  841. package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/route-2502cf08f3ab5776.js +0 -1
  842. package/app/.next-cli-build/static/chunks/app/api/health/route-2502cf08f3ab5776.js +0 -1
  843. package/app/.next-cli-build/static/chunks/app/api/init/route-2502cf08f3ab5776.js +0 -1
  844. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-2502cf08f3ab5776.js +0 -1
  845. package/app/.next-cli-build/static/chunks/app/api/keys/route-2502cf08f3ab5776.js +0 -1
  846. package/app/.next-cli-build/static/chunks/app/api/locale/route-2502cf08f3ab5776.js +0 -1
  847. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-2502cf08f3ab5776.js +0 -1
  848. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-2502cf08f3ab5776.js +0 -1
  849. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-2502cf08f3ab5776.js +0 -1
  850. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-2502cf08f3ab5776.js +0 -1
  851. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-2502cf08f3ab5776.js +0 -1
  852. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-2502cf08f3ab5776.js +0 -1
  853. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-2502cf08f3ab5776.js +0 -1
  854. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-2502cf08f3ab5776.js +0 -1
  855. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-2502cf08f3ab5776.js +0 -1
  856. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-2502cf08f3ab5776.js +0 -1
  857. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-2502cf08f3ab5776.js +0 -1
  858. package/app/.next-cli-build/static/chunks/app/api/models/route-2502cf08f3ab5776.js +0 -1
  859. package/app/.next-cli-build/static/chunks/app/api/models/test/route-2502cf08f3ab5776.js +0 -1
  860. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-2502cf08f3ab5776.js +0 -1
  861. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-2502cf08f3ab5776.js +0 -1
  862. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-2502cf08f3ab5776.js +0 -1
  863. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-2502cf08f3ab5776.js +0 -1
  864. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-2502cf08f3ab5776.js +0 -1
  865. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-2502cf08f3ab5776.js +0 -1
  866. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-2502cf08f3ab5776.js +0 -1
  867. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-2502cf08f3ab5776.js +0 -1
  868. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-2502cf08f3ab5776.js +0 -1
  869. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-2502cf08f3ab5776.js +0 -1
  870. package/app/.next-cli-build/static/chunks/app/api/pricing/route-2502cf08f3ab5776.js +0 -1
  871. package/app/.next-cli-build/static/chunks/app/api/provider-health/route-2502cf08f3ab5776.js +0 -1
  872. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-2502cf08f3ab5776.js +0 -1
  873. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-2502cf08f3ab5776.js +0 -1
  874. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-2502cf08f3ab5776.js +0 -1
  875. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-2502cf08f3ab5776.js +0 -1
  876. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-2502cf08f3ab5776.js +0 -1
  877. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-2502cf08f3ab5776.js +0 -1
  878. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-2502cf08f3ab5776.js +0 -1
  879. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-2502cf08f3ab5776.js +0 -1
  880. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-2502cf08f3ab5776.js +0 -1
  881. package/app/.next-cli-build/static/chunks/app/api/providers/route-2502cf08f3ab5776.js +0 -1
  882. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-2502cf08f3ab5776.js +0 -1
  883. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-2502cf08f3ab5776.js +0 -1
  884. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-2502cf08f3ab5776.js +0 -1
  885. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-2502cf08f3ab5776.js +0 -1
  886. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-2502cf08f3ab5776.js +0 -1
  887. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-2502cf08f3ab5776.js +0 -1
  888. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-2502cf08f3ab5776.js +0 -1
  889. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-2502cf08f3ab5776.js +0 -1
  890. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-2502cf08f3ab5776.js +0 -1
  891. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-2502cf08f3ab5776.js +0 -1
  892. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-2502cf08f3ab5776.js +0 -1
  893. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-2502cf08f3ab5776.js +0 -1
  894. package/app/.next-cli-build/static/chunks/app/api/settings/route-2502cf08f3ab5776.js +0 -1
  895. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-2502cf08f3ab5776.js +0 -1
  896. package/app/.next-cli-build/static/chunks/app/api/tags/route-2502cf08f3ab5776.js +0 -1
  897. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-2502cf08f3ab5776.js +0 -1
  898. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-2502cf08f3ab5776.js +0 -1
  899. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-2502cf08f3ab5776.js +0 -1
  900. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-2502cf08f3ab5776.js +0 -1
  901. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-2502cf08f3ab5776.js +0 -1
  902. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-2502cf08f3ab5776.js +0 -1
  903. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-2502cf08f3ab5776.js +0 -1
  904. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-2502cf08f3ab5776.js +0 -1
  905. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-2502cf08f3ab5776.js +0 -1
  906. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-2502cf08f3ab5776.js +0 -1
  907. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-2502cf08f3ab5776.js +0 -1
  908. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-2502cf08f3ab5776.js +0 -1
  909. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-2502cf08f3ab5776.js +0 -1
  910. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-login/route-2502cf08f3ab5776.js +0 -1
  911. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-start-daemon/route-2502cf08f3ab5776.js +0 -1
  912. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-2502cf08f3ab5776.js +0 -1
  913. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-2502cf08f3ab5776.js +0 -1
  914. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-2502cf08f3ab5776.js +0 -1
  915. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-2502cf08f3ab5776.js +0 -1
  916. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-2502cf08f3ab5776.js +0 -1
  917. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-2502cf08f3ab5776.js +0 -1
  918. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-2502cf08f3ab5776.js +0 -1
  919. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-2502cf08f3ab5776.js +0 -1
  920. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-2502cf08f3ab5776.js +0 -1
  921. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-2502cf08f3ab5776.js +0 -1
  922. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-2502cf08f3ab5776.js +0 -1
  923. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-2502cf08f3ab5776.js +0 -1
  924. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-2502cf08f3ab5776.js +0 -1
  925. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-2502cf08f3ab5776.js +0 -1
  926. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-2502cf08f3ab5776.js +0 -1
  927. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-2502cf08f3ab5776.js +0 -1
  928. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-2502cf08f3ab5776.js +0 -1
  929. package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-2502cf08f3ab5776.js +0 -1
  930. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-2502cf08f3ab5776.js +0 -1
  931. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-2502cf08f3ab5776.js +0 -1
  932. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-2502cf08f3ab5776.js +0 -1
  933. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-2502cf08f3ab5776.js +0 -1
  934. package/app/.next-cli-build/static/chunks/app/api/v1/route-2502cf08f3ab5776.js +0 -1
  935. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-2502cf08f3ab5776.js +0 -1
  936. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-2502cf08f3ab5776.js +0 -1
  937. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-2502cf08f3ab5776.js +0 -1
  938. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-2502cf08f3ab5776.js +0 -1
  939. package/app/.next-cli-build/static/chunks/app/api/version/restart/route-2502cf08f3ab5776.js +0 -1
  940. package/app/.next-cli-build/static/chunks/app/api/version/route-2502cf08f3ab5776.js +0 -1
  941. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-2502cf08f3ab5776.js +0 -1
  942. package/app/.next-cli-build/static/chunks/app/api/version/update/route-2502cf08f3ab5776.js +0 -1
  943. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-2502cf08f3ab5776.js +0 -1
  944. package/app/.next-cli-build/static/chunks/app/page-2502cf08f3ab5776.js +0 -1
  945. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-2502cf08f3ab5776.js +0 -1
  946. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-2502cf08f3ab5776.js +0 -1
  947. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-2502cf08f3ab5776.js +0 -1
  948. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-2502cf08f3ab5776.js +0 -1
  949. package/app/.next-cli-build/static/css/1645210bc1d00d04.css +0 -1
  950. /package/app/.next-cli-build/static/{ZINInVEKlUQeXi1UOqvuy → vbieovoDGFdFo6P7kOZx2}/_ssgManifest.js +0 -0
  951. /package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-1.0.120-to-1.0.121-1.0.121-20260609-225741 → upgrade-1.0.125-to-1.0.126-1.0.126-20260610-002415}/data.sqlite +0 -0
  952. /package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-1.0.121-to-1.0.122-1.0.122-20260609-230221 → upgrade-1.0.126-to-1.0.127-1.0.127-20260610-003738}/data.sqlite +0 -0
@@ -1,3 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5907],{95907:(e,t,s)=>{s.d(t,{default:()=>x});var a=s(95155),l=s(12115),n=s(14051),r=s.n(n),i=s(35497),o=s(11059);let c=[{icon:"public",title:"Access Anywhere",desc:"Use your API from any network"},{icon:"group",title:"Share Endpoint",desc:"Share URL with team members"},{icon:"code",title:"Use in Cursor/Cline",desc:"Connect AI tools remotely"},{icon:"lock",title:"Encrypted",desc:"End-to-end TLS via Cloudflare"}];async function d(e){if(!e)return!1;try{return(await fetch(`${e}/api/health`,{mode:"cors",cache:"no-store",signal:AbortSignal.timeout(5e3)})).ok}catch{return!1}}async function m(...e){let t=e.filter(Boolean).map(d);return!!t.length&&new Promise(e=>{let s=t.length;t.forEach(t=>t.then(t=>{t?e(!0):0==--s&&e(!1)}))})}let u=[{id:"lite",label:"Lite",desc:"Drop filler, keep grammar"},{id:"full",label:"Full",desc:"Drop articles, fragments OK"},{id:"ultra",label:"Ultra",desc:"Telegraphic, max compression"}];function x({machineId:e}){let[t,s]=(0,l.useState)([]),[n,r]=(0,l.useState)(!0),[y,f]=(0,l.useState)(!1),[j,k]=(0,l.useState)(""),[v,w]=(0,l.useState)(null),[N,C]=(0,l.useState)(null),[S,T]=(0,l.useState)(!1),[_,E]=(0,l.useState)(!0),[P,$]=(0,l.useState)(!0),[A,O]=(0,l.useState)(!1),[U,D]=(0,l.useState)(!0),[I,F]=(0,l.useState)(!1),[R,L]=(0,l.useState)("full"),[q,W]=(0,l.useState)(!0),[K,J]=(0,l.useState)(!1),[z,H]=(0,l.useState)(!1),[M,B]=(0,l.useState)(""),[Z,Q]=(0,l.useState)(""),[V,G]=(0,l.useState)(!1),[X,Y]=(0,l.useState)(""),[ee,et]=(0,l.useState)(null),[es,ea]=(0,l.useState)(!1),[el,en]=(0,l.useState)(!1),[er,ei]=(0,l.useState)(!1),[eo,ec]=(0,l.useState)(!1),[ed,em]=(0,l.useState)(""),[eu,ex]=(0,l.useState)(!1),[eh,ep]=(0,l.useState)(""),[eb,eg]=(0,l.useState)(null),[ey,ef]=(0,l.useState)(""),[ej,ek]=(0,l.useState)(""),[ev,ew]=(0,l.useState)(null),[eN,eC]=(0,l.useState)(!1),[eS,eT]=(0,l.useState)([]),[e_,eE]=(0,l.useState)(""),[eP,e$]=(0,l.useState)(!1),[eA,eO]=(0,l.useState)(!1),[eU,eD]=(0,l.useState)(!1),eI=(0,l.useRef)(null),eF=(0,l.useRef)(0),eR=(0,l.useRef)(0),eL=(0,l.useRef)(!1),eq=(0,l.useRef)(!1),eW=(0,l.useRef)(!1),eK=(0,l.useRef)(!1),[eJ,ez]=(0,l.useState)(!1),[eH,eM]=(0,l.useState)(!1),[eB,eZ]=(0,l.useState)(new Set),{copied:eQ,copy:eV}=(0,o.C)(),eG=!_||!P,eX=_?"Change the default dashboard password before activating the tunnel.":'Enable "Require login" and set a custom password before activating the tunnel.';(0,l.useEffect)(()=>{eI.current&&(eI.current.scrollTop=eI.current.scrollHeight)},[eS]),(0,l.useEffect)(()=>{e8(),e1()},[]),(0,l.useEffect)(()=>{if(!(K||er))return;let e=!K||z,t=!er||eo,s=()=>{document.hidden||e0()};if(document.addEventListener("visibilitychange",s),e&&t)return()=>document.removeEventListener("visibilitychange",s);let a=setInterval(()=>{document.hidden||e0()},5e3);return()=>{clearInterval(a),document.removeEventListener("visibilitychange",s)}},[K,er,z,eo]),(0,l.useEffect)(()=>{let e=async()=>{if(!document.hidden){if(K&&(M||Z)){let e=await m(Z,M);eL.current=e,e?(eF.current=0,H(!0),eW.current||(eW.current=!0,ez(!0))):(eF.current+=1,eF.current>=5&&H(!1))}else eL.current=!1;if(er&&ed){let e=await d(ed);eq.current=e,e?(eR.current=0,ec(!0),eK.current||(eK.current=!0,eM(!0))):(eR.current+=1,eR.current>=5&&ec(!1))}else eq.current=!1}};if(!(K&&(M||Z)||er&&ed))return;e();let t=!er||eo;if((!K||z)&&t)return;let s=setInterval(e,1e4);return()=>clearInterval(s)},[K,M,Z,er,ed,z,eo]);let eY=(0,l.useCallback)((e,t,s,a,l,n)=>{t.current?(s.current=0,a(!0),l.current||(l.current=!0,n(!0))):(s.current+=1,s.current>=5&&a(!1))},[]),e0=async()=>{try{let e=await fetch("/api/tunnel/status",{cache:"no-store"});if(!e.ok)return;let t=await e.json(),s=t.tunnel?.settingsEnabled??t.tunnel?.enabled??!1,a=t.tunnel?.tunnelUrl||"";B(a),Q(t.tunnel?.publicUrl||""),J(s),eY(null,eL,eF,H,eW,ez);let l=t.tailscale?.settingsEnabled??t.tailscale?.enabled??!1,n=t.tailscale?.tunnelUrl||"";em(n),ei(l),eY(null,eq,eR,ec,eK,eM)}catch{}},e1=async()=>{W(!0);try{let[e,t]=await Promise.all([fetch("/api/settings"),fetch("/api/tunnel/status",{cache:"no-store"})]);if(e.ok){let t=await e.json();T(t.requireApiKey||!1),E(!1!==t.requireLogin),$(t.hasPassword||!1),O(t.tunnelDashboardAccess||!1),D(!1!==t.rtkEnabled),F(!!t.cavemanEnabled),L(t.cavemanLevel||"full")}if(t.ok){let e=await t.json(),s=e.tunnel?.settingsEnabled??e.tunnel?.enabled??!1,a=e.tunnel?.tunnelUrl||"";B(a),Q(e.tunnel?.publicUrl||""),J(s),eY(null,eL,eF,H,eW,ez);let l=e.tailscale?.settingsEnabled??e.tailscale?.enabled??!1,n=e.tailscale?.tunnelUrl||"";em(n),ei(l),eY(null,eq,eR,ec,eK,eM)}}catch(e){console.log("Error loading settings:",e)}finally{W(!1)}},e5=async e=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({tunnelDashboardAccess:e})})).ok&&O(e)}catch(e){console.log("Error updating tunnelDashboardAccess:",e)}},e2=async e=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({requireApiKey:e})})).ok&&T(e)}catch(e){console.log("Error updating requireApiKey:",e)}},e4=async e=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({rtkEnabled:e})})).ok&&D(e)}catch(e){console.log("Error updating rtkEnabled:",e)}},e3=async e=>{try{await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}catch(e){console.log("Error updating setting:",e)}},e8=async()=>{try{let e=await fetch("/api/keys"),t=await e.json();e.ok&&s(t.keys||[])}catch(e){console.log("Error fetching data:",e)}finally{r(!1)}},e6=async(...e)=>{G(!0),Y("Waiting for tunnel ready...");let t=e.filter(Boolean).map(e=>`${e}/api/health`),s=Date.now();for(;Date.now()-s<3e5;){if(await new Promise(e=>setTimeout(e,2e3)),await Promise.any(t.map(async e=>{if((await fetch(e,{mode:"cors",cache:"no-store"})).ok)return!0;throw Error("not ready")})).catch(()=>!1))return J(!0),G(!1),Y(""),!0;if((Date.now()-s)%1e4<2e3)try{let e=await fetch("/api/tunnel/status");if(e.ok){let t=await e.json();if(!t.tunnel?.enabled)return et({type:"error",message:"Tunnel process stopped unexpectedly."}),G(!1),Y(""),!1}}catch{}}return et({type:"error",message:"Tunnel created but not reachable. Please try again."}),G(!1),Y(""),!1},e7=async()=>{ea(!1),G(!0),et(null),Y("Creating tunnel...");let e=!0;(async()=>{for(;e;){try{let t=await fetch("/api/tunnel/status");if(t.ok){let s=await t.json();s.download?.downloading?Y(`Downloading cloudflared... ${s.download.progress}%`):e&&Y("Creating tunnel...")}}catch{}await new Promise(e=>setTimeout(e,1e3))}})();try{let t=await fetch("/api/tunnel/enable",{method:"POST"});e=!1;let s=await t.json();if(!t.ok)return void et({type:"error",message:s.error||"Failed to enable tunnel"});let a=s.tunnelUrl;if(!a)return void et({type:"error",message:"No tunnel URL returned"});B(a),Q(s.publicUrl||""),await e6(s.publicUrl,a)}catch(e){et({type:"error",message:e.message})}finally{e=!1,G(!1),Y("")}},e9=async()=>{G(!0),et(null);try{let e=await fetch("/api/tunnel/disable",{method:"POST"}),t=await e.json();e.ok?(J(!1),B(""),en(!1),et({type:"success",message:"Tunnel disabled"})):et({type:"error",message:t.error||"Failed to disable tunnel"})}catch(e){et({type:"error",message:e.message})}finally{G(!1)}},te=async()=>{ew(null);try{let e=await fetch("/api/tunnel/tailscale-check");if(e.ok){let t=await e.json();return ew(t.installed),t}}catch{}return ew(!1),{installed:!1}},tt=async()=>{eC(!0),eg(null),eT([]);try{let e=await fetch("/api/tunnel/tailscale-install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sudoPassword:e_})});eE("");let t=e.body.getReader(),s=new TextDecoder,a="";for(;;){let{done:e,value:l}=await t.read();if(e)break;let n=(a+=s.decode(l,{stream:!0})).split("\n\n");for(let e of(a=n.pop()||"",n)){let t=e.split("\n"),s="progress",a=null;for(let e of t)if(e.startsWith("event: ")&&(s=e.slice(7).trim()),e.startsWith("data: "))try{a=JSON.parse(e.slice(6))}catch{}if(a)if("progress"===s)eT(e=>[...e.slice(-50),a.message]);else if("done"===s){ew(!0),eC(!1),eO(!1),tn();return}else"error"===s&&eg({type:"error",message:a.error||"Install failed"})}}}catch(e){eg({type:"error",message:e.message})}finally{eC(!1)}},ts=async e=>{ep("Waiting for Tailscale ready...");let t=`${e}/api/health`,s=Date.now();for(;Date.now()-s<3e5;){await new Promise(e=>setTimeout(e,2e3));try{let e=await fetch(t,{mode:"no-cors",cache:"no-store"});if(e.ok||"opaque"===e.type)return!0}catch{}}return!1},ta=(e,t)=>{ef(e),ek(t)},tl=()=>{ef(""),ek("")},tn=async()=>{eO(!1),e$(!0),ex(!0),eg(null),ep("Connecting..."),tl();try{let e=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),t=await e.json();if(e.ok&&t.success){em(t.tunnelUrl||"");let e=await ts(t.tunnelUrl);ei(!0),eg(e?null:{type:"warning",message:"Connected but not reachable yet."});return}if(t.needsLogin&&t.authUrl){ta(t.authUrl,"Open Login Page"),ep('Login required — click "Open Login Page" to continue');for(let e=0;e<40;e++){await new Promise(e=>setTimeout(e,3e3));try{let e=await fetch("/api/tunnel/tailscale-check");if(e.ok&&(await e.json()).loggedIn){tl(),ep("Starting funnel...");let e=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),t=await e.json();if(e.ok&&t.success){em(t.tunnelUrl||"");let e=await ts(t.tunnelUrl);ei(!0),eg(e?null:{type:"warning",message:"Connected but not reachable yet."})}else t.funnelNotEnabled&&t.enableUrl?await tr(t.enableUrl):eg({type:"error",message:t.error||"Failed to start funnel"});return}}catch{}}tl(),eg({type:"error",message:"Login timed out. Please try again."});return}if(t.funnelNotEnabled&&t.enableUrl)return void await tr(t.enableUrl);eg({type:"error",message:t.error||"Failed to connect"})}catch(e){eg({type:"error",message:e.message})}finally{ex(!1),e$(!1),ep(""),tl()}},tr=async e=>{ta(e,"Open Funnel Settings"),ep('Click "Open Funnel Settings" to enable Funnel...');for(let e=0;e<40;e++){await new Promise(e=>setTimeout(e,3e3));try{let e=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),t=await e.json();if(e.ok&&t.success){tl(),em(t.tunnelUrl||"");let e=await ts(t.tunnelUrl);ei(!0),eg(e?null:{type:"warning",message:"Connected but not reachable yet."});return}if(t.funnelNotEnabled)continue;if(t.error){tl(),eg({type:"error",message:t.error});return}}catch{}}tl(),eg({type:"error",message:"Timed out waiting for Funnel to be enabled."})},ti=async()=>{ex(!0),eg(null);try{let e=await fetch("/api/tunnel/tailscale-disable",{method:"POST"}),t=await e.json();e.ok?(ei(!1),em(""),eD(!1),eg({type:"success",message:"Tailscale disabled"})):eg({type:"error",message:t.error||"Failed to disable Tailscale"})}catch(e){eg({type:"error",message:e.message})}finally{ex(!1)}},to=async()=>{eg(null),eT([]);let e=await te();e?.installed&&e?.hasCachedPassword?tn():eO(!0)},tc=async()=>{if(j.trim())try{let e=await fetch("/api/keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:j})}),t=await e.json();e.ok&&(w(t.key),await e8(),k(""),f(!1))}catch(e){console.log("Error creating key:",e)}},td=async e=>{C({title:"Delete API Key",message:"Delete this API key?",onConfirm:async()=>{C(null);try{(await fetch(`/api/keys/${e}`,{method:"DELETE"})).ok&&(s(t.filter(t=>t.id!==e)),eZ(t=>{let s=new Set(t);return s.delete(e),s}))}catch(e){console.log("Error deleting key:",e)}}})},tm=async(e,t)=>{try{(await fetch(`/api/keys/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:t})})).ok&&s(s=>s.map(s=>s.id===e?{...s,isActive:t}:s))}catch(e){console.log("Error toggling key:",e)}},[tu,tx]=(0,l.useState)("/v1");return((0,l.useEffect)(()=>{tx(`${window.location.origin}/v1`)},[]),n)?(0,a.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,a.jsx)(i.Qv,{}),(0,a.jsx)(i.Qv,{})]}):(0,a.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,a.jsxs)(i.Zp,{children:[(0,a.jsxs)("h2",{className:"text-lg font-semibold mb-4 flex items-center gap-2",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-primary",children:"api"}),"API Endpoint"]}),(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)(h,{label:"Local",url:tu,copyId:"local_url",copied:eQ,onCopy:eV}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:`text-xs font-mono px-1.5 py-0.5 rounded shrink-0 min-w-[88px] text-center ${K?"bg-primary/10 text-primary":"bg-surface-2 text-text-muted"}`,children:"Tunnel"}),K&&!V&&z?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.pd,{value:`${Z||M}/v1`,readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,a.jsx)("button",{onClick:()=>eV(`${Z||M}/v1`,"tunnel_url"),className:"p-2 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary transition-colors shrink-0",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"tunnel_url"===eQ?"check":"content_copy"})}),(0,a.jsx)("button",{onClick:()=>en(!0),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Disable Tunnel",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):!K||V||z?V?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-border bg-input text-sm text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),X||"Creating tunnel..."]}),(0,a.jsx)("button",{onClick:()=>{G(!1),Y("")},className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Stop",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):ee?.type==="error"?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-red-300 dark:border-red-800 bg-red-500/5 text-sm text-red-600 dark:text-red-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-sm",children:"error"}),ee.message]}),(0,a.jsx)(i.$n,{size:"sm",icon:"cloud_upload",onClick:()=>ea(!0),children:"Enable"})]}):q?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-border bg-input text-sm text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Checking..."]}),(0,a.jsx)("button",{onClick:()=>W(!1),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Stop",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):(0,a.jsx)(i.$n,{size:"sm",icon:"cloud_upload",onClick:()=>{eG?et({type:"error",message:`Security required: ${eX}`}):S?ea(!0):et({type:"error",message:'Security required: Enable "Require API key" before activating the tunnel.'})},children:"Enable"}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-amber-300 dark:border-amber-800 bg-amber-500/5 text-sm text-amber-600 dark:text-amber-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),eJ?"Tunnel reconnecting...":"Tunnel checking..."]}),(0,a.jsx)("button",{onClick:()=>en(!0),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Disable Tunnel",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:`text-xs font-mono px-1.5 py-0.5 rounded shrink-0 min-w-[88px] text-center ${er?"bg-primary/10 text-primary":"bg-surface-2 text-text-muted"}`,children:"Tailscale"}),er&&!eu&&eo?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.pd,{value:`${ed}/v1`,readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,a.jsx)("button",{onClick:()=>eV(`${ed}/v1`,"ts_url"),className:"p-2 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary transition-colors shrink-0",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"ts_url"===eQ?"check":"content_copy"})}),(0,a.jsx)("button",{onClick:()=>eD(!0),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Disable Tailscale",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):!er||eu||eo?eu||eP?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-border bg-input text-sm text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),eh||"Connecting..."]}),ey&&(0,a.jsx)(i.$n,{size:"sm",icon:"open_in_new",onClick:()=>window.open(ey,"tailscale_auth","width=600,height=700,noopener,noreferrer"),children:ej||"Open"}),(0,a.jsx)("button",{onClick:()=>{ex(!1),e$(!1),ep(""),tl()},className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Stop",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):eb?.type==="error"?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-red-300 dark:border-red-800 bg-red-500/5 text-sm text-red-600 dark:text-red-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-sm",children:"error"}),eb.message]}),(0,a.jsx)(i.$n,{size:"sm",icon:"vpn_lock",onClick:to,children:"Enable"})]}):(0,a.jsx)(i.$n,{size:"sm",icon:"vpn_lock",onClick:()=>{eG?eg({type:"error",message:`Security required: ${eX}`}):to()},className:"bg-linear-to-r from-indigo-500 to-purple-500 hover:from-indigo-600 hover:to-purple-600 text-white!",children:"Enable"}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-amber-300 dark:border-amber-800 bg-amber-500/5 text-sm text-amber-600 dark:text-amber-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),eH?"Tailscale reconnecting...":"Tailscale checking..."]}),(0,a.jsx)("button",{onClick:()=>eD(!0),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Disable Tailscale",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]})]})]}),eG&&!K&&!er&&(0,a.jsx)("div",{className:"mt-4",children:(0,a.jsx)(g,{message:eX,action:{label:"Open settings",href:"/dashboard/profile"}})}),(K||er)&&(0,a.jsxs)("div",{className:"mt-4 flex flex-col gap-2",children:[!S&&(0,a.jsx)(g,{message:"Require API key is disabled — your endpoint is publicly accessible without authentication.",action:{label:"Enable",href:"#require-api-key"}}),(!_||!P)&&(0,a.jsx)(g,{message:_?"Dashboard uses the default password — change it in Profile settings.":"Require login is disabled — anyone can access your dashboard via tunnel.",action:{label:_?"Change password":"Enable",href:"/dashboard/profile"}})]}),(K||er)&&(0,a.jsxs)("div",{className:"mt-4 pt-4 border-t border-border flex items-center gap-3",children:[(0,a.jsx)(i.lM,{checked:A,onChange:()=>e5(!A)}),(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsx)("p",{className:"font-medium text-sm",children:"Allow dashboard access via tunnel"}),(0,a.jsx)(b,{text:"When enabled, the dashboard can be accessed through your tunnel or Tailscale URL (login still required). When disabled, dashboard access via tunnel/Tailscale is completely blocked."})]})]})]}),(0,a.jsxs)(i.Zp,{id:"rtk",children:[(0,a.jsx)("div",{className:"flex items-center justify-between mb-2",children:(0,a.jsxs)("h2",{className:"text-lg font-semibold flex items-center gap-2",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-primary",children:"bolt"}),"Token Saver"]})}),(0,a.jsxs)("div",{className:"flex items-center justify-between pt-2 pb-4 border-b border-border gap-4",children:[(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("p",{className:"font-medium",children:["Compress tool output"," ",(0,a.jsx)("a",{href:"https://github.com/rtk-ai/rtk",target:"_blank",rel:"noreferrer",className:"text-xs font-normal text-primary underline hover:opacity-80",children:"(RTK)"})]}),(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"git/grep/ls/tree/logs → 60-90% fewer input tokens"})]}),(0,a.jsx)(i.lM,{checked:U,onChange:()=>e4(!U)})]}),(0,a.jsxs)("div",{className:"flex items-center justify-between pt-4 gap-4 flex-wrap",children:[(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("p",{className:"font-medium",children:["Compress LLM output"," ",(0,a.jsx)("a",{href:"https://github.com/JuliusBrussee/caveman",target:"_blank",rel:"noreferrer",className:"text-xs font-normal text-primary underline hover:opacity-80",children:"(Caveman)"})]}),(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"Terse-style system prompt → ~65% fewer output tokens (up to 87%)"})]}),(0,a.jsxs)("div",{className:"flex items-center gap-3 shrink-0",children:[I&&(0,a.jsx)("div",{className:"flex items-center gap-1.5",children:u.map(e=>(0,a.jsx)("button",{onClick:()=>{var t;L(t=e.id),e3({cavemanLevel:t})},className:`px-3 py-1.5 rounded text-xs font-medium border transition-colors ${R===e.id?"bg-primary text-white border-primary":"bg-transparent border-border text-text-muted hover:bg-surface-2"}`,title:e.desc,children:e.label},e.id))}),(0,a.jsx)(i.lM,{checked:I,onChange:()=>{var e;F(e=!I),e3({cavemanEnabled:e})}})]})]})]}),(0,a.jsxs)(i.Zp,{id:"require-api-key",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,a.jsxs)("h2",{className:"text-lg font-semibold flex items-center gap-2",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-primary",children:"vpn_key"}),"API Keys"]}),(0,a.jsx)(i.$n,{icon:"add",onClick:()=>f(!0),children:"Create Key"})]}),(0,a.jsxs)("div",{className:"flex items-center justify-between pb-4 mb-4 border-b border-border",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"font-medium",children:"Require API key"}),(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"Requests without a valid key will be rejected"})]}),(0,a.jsx)(i.lM,{checked:S,onChange:()=>e2(!S)})]}),0===t.length?(0,a.jsxs)("div",{className:"text-center py-12",children:[(0,a.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-full bg-primary/10 text-primary mb-4",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[32px]",children:"vpn_key"})}),(0,a.jsx)("p",{className:"text-text-main font-medium mb-1",children:"No API keys yet"}),(0,a.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Create your first API key to get started"}),(0,a.jsx)(i.$n,{icon:"add",onClick:()=>f(!0),children:"Create Key"})]}):(0,a.jsx)("div",{className:"flex flex-col",children:t.map(e=>{var t;return(0,a.jsxs)("div",{className:`group flex items-center justify-between py-3 border-b border-black/[0.03] dark:border-white/[0.03] last:border-b-0 ${!1===e.isActive?"opacity-60":""}`,children:[(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,a.jsx)("p",{className:"text-sm font-medium",children:e.name}),(0,a.jsxs)("div",{className:"flex items-center gap-2 mt-1",children:[(0,a.jsx)("code",{className:"text-xs text-text-muted font-mono",children:eB.has(e.id)?e.key:(t=e.key)?t.length>8?t.slice(0,8)+"...":t:""}),(0,a.jsx)("button",{onClick:()=>{var t;return t=e.id,void eZ(e=>{let s=new Set(e);return s.has(t)?s.delete(t):s.add(t),s})},className:"p-1 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary opacity-100 sm:opacity-0 sm:group-hover:opacity-100 transition-all",title:eB.has(e.id)?"Hide key":"Show key",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:eB.has(e.id)?"visibility_off":"visibility"})}),(0,a.jsx)("button",{onClick:()=>eV(e.key,e.id),className:"p-1 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary opacity-100 sm:opacity-0 sm:group-hover:opacity-100 transition-all",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:eQ===e.id?"check":"content_copy"})})]}),(0,a.jsxs)("p",{className:"text-xs text-text-muted mt-1",children:["Created ",new Date(e.createdAt).toLocaleDateString()]}),!1===e.isActive&&(0,a.jsx)("p",{className:"text-xs text-orange-500 mt-1",children:"Paused"})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(i.lM,{size:"sm",checked:e.isActive??!0,onChange:t=>{e.isActive&&!t?C({title:"Pause API Key",message:`Pause API key "${e.name}"?
2
-
3
- This key will stop working immediately but can be resumed later.`,onConfirm:async()=>{C(null),tm(e.id,t)}}):tm(e.id,t)},title:e.isActive?"Pause key":"Resume key"}),(0,a.jsx)("button",{onClick:()=>td(e.id),className:"p-2 hover:bg-red-500/10 rounded text-red-500 opacity-100 sm:opacity-0 sm:group-hover:opacity-100 transition-all",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"})})]})]},e.id)})})]}),(0,a.jsx)(i.aF,{isOpen:y,title:"Create API Key",onClose:()=>{f(!1),k("")},children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)(i.pd,{label:"Key Name",value:j,onChange:e=>k(e.target.value),placeholder:"Production Key"}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(i.$n,{onClick:tc,fullWidth:!0,disabled:!j.trim(),children:"Create"}),(0,a.jsx)(i.$n,{onClick:()=>{f(!1),k("")},variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}),(0,a.jsx)(i.aF,{isOpen:!!v,title:"API Key Created",onClose:()=>w(null),children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsxs)("div",{className:"bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 rounded-lg p-4",children:[(0,a.jsx)("p",{className:"text-sm text-yellow-800 dark:text-yellow-200 mb-2 font-medium",children:"Save this key now!"}),(0,a.jsx)("p",{className:"text-sm text-yellow-700 dark:text-yellow-300",children:"This is the only time you will see this key. Store it securely."})]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(i.pd,{value:v||"",readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,a.jsx)(i.$n,{variant:"secondary",icon:"created_key"===eQ?"check":"content_copy",onClick:()=>eV(v,"created_key"),children:"created_key"===eQ?"Copied!":"Copy"})]}),(0,a.jsx)(i.$n,{onClick:()=>w(null),fullWidth:!0,children:"Done"})]})}),(0,a.jsx)(i.aF,{isOpen:es,title:"Enable Tunnel",onClose:()=>ea(!1),children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)("div",{className:"bg-surface-2 border border-border-subtle rounded-lg p-4",children:(0,a.jsxs)("div",{className:"flex items-start gap-3",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-primary",children:"cloud_upload"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-sm text-text-main font-medium mb-1",children:"Cloudflare Tunnel"}),(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"Expose your local Bluerouter to the internet. No port forwarding, no static IP needed. Share endpoint URL with your team or use it in Cursor, Cline, and other AI tools from anywhere."})]})]})}),(0,a.jsx)("div",{className:"grid grid-cols-2 gap-3",children:c.map(e=>(0,a.jsxs)("div",{className:"flex flex-col items-center text-center p-3 rounded-lg bg-sidebar/50",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-xl text-primary mb-1",children:e.icon}),(0,a.jsx)("p",{className:"text-xs font-semibold",children:e.title}),(0,a.jsx)("p",{className:"text-xs text-text-muted",children:e.desc})]},e.title))}),(0,a.jsx)("p",{className:"text-xs text-text-muted",children:"Requires outbound port 7844 (TCP/UDP). Connection may take 10-30s."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(i.$n,{onClick:e7,fullWidth:!0,children:"Start Tunnel"}),(0,a.jsx)(i.$n,{onClick:()=>ea(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}),(0,a.jsx)(i.aF,{isOpen:el,title:"Disable Tunnel",onClose:()=>!V&&en(!1),children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"The Cloudflare tunnel will be disconnected. Remote access via tunnel URL will stop working."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(i.$n,{onClick:e9,fullWidth:!0,disabled:V,variant:"danger",children:V?"Disabling...":"Disable"}),(0,a.jsx)(i.$n,{onClick:()=>en(!1),variant:"ghost",fullWidth:!0,disabled:V,children:"Cancel"})]})]})}),(0,a.jsx)(i.aF,{isOpen:eA,title:"Tailscale Funnel",onClose:()=>{eN||(eO(!1),eE(""),eg(null))},children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[null===ev&&(0,a.jsxs)("p",{className:"text-sm text-text-muted flex items-center gap-2",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Checking..."]}),!1===ev&&!eN&&(0,a.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"Tailscale is not installed. Install it to enable Funnel."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(i.$n,{onClick:tt,fullWidth:!0,children:"Install Tailscale"}),(0,a.jsx)(i.$n,{onClick:()=>eO(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),eN&&(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-sm text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Installing Tailscale..."]}),eS.length>0&&(0,a.jsx)("div",{ref:eI,className:"bg-black/5 dark:bg-white/5 rounded p-2 max-h-40 overflow-y-auto font-mono text-xs text-text-muted",children:eS.map((e,t)=>(0,a.jsx)("div",{children:e},t))})]}),!0===ev&&!eN&&(0,a.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-sm text-green-600 dark:text-green-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"check_circle"}),"Tailscale installed"]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(i.$n,{onClick:()=>tn(),fullWidth:!0,children:"Connect"}),(0,a.jsx)(i.$n,{onClick:()=>eO(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),eb&&(0,a.jsx)(p,{status:eb})]})}),(0,a.jsx)(i.aF,{isOpen:eU,title:"Disable Tailscale",onClose:()=>!eu&&eD(!1),children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"Tailscale Funnel will be stopped. Remote access via Tailscale URL will stop working."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(i.$n,{onClick:ti,fullWidth:!0,disabled:eu,variant:"danger",children:eu?"Disabling...":"Disable"}),(0,a.jsx)(i.$n,{onClick:()=>eD(!1),variant:"ghost",fullWidth:!0,disabled:eu,children:"Cancel"})]})]})}),(0,a.jsx)(i.uo,{isOpen:!!N,onClose:()=>C(null),onConfirm:N?.onConfirm,title:N?.title||"Confirm",message:N?.message,variant:"danger"})]})}function h({label:e,url:t,copyId:s,copied:l,onCopy:n,badge:r,actions:o}){return(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:`text-xs font-mono px-1.5 py-0.5 rounded shrink-0 min-w-[88px] text-center ${"CF"===r||"TS"===r?"bg-primary/10 text-primary":"bg-surface-2 text-text-muted"}`,children:e}),(0,a.jsx)(i.pd,{value:t,readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,a.jsx)("button",{onClick:()=>n(t,s),className:"p-2 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary transition-colors shrink-0",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:l===s?"check":"content_copy"})}),o]})}function p({status:e,className:t=""}){return(0,a.jsx)("div",{className:`p-2 rounded text-sm ${t} ${"success"===e.type?"bg-green-500/10 text-green-600 dark:text-green-400":"warning"===e.type?"bg-yellow-500/10 text-yellow-600 dark:text-yellow-400":"info"===e.type?"bg-blue-500/10 text-blue-600 dark:text-blue-400":"bg-red-500/10 text-red-600 dark:text-red-400"}`,children:e.message.split(/(https?:\/\/[^\s]+)/g).map((e,t)=>/^https?:\/\//.test(e)?(0,a.jsx)("a",{href:e,target:"_blank",rel:"noreferrer",className:"underline font-medium",children:e},t):e)})}function b({text:e}){return(0,a.jsxs)("span",{className:"relative group inline-flex items-center",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px] text-text-muted cursor-help",children:"help"}),(0,a.jsx)("span",{className:"pointer-events-none absolute left-5 top-1/2 -translate-y-1/2 z-50 w-64 rounded bg-gray-900 dark:bg-gray-800 text-white text-xs px-2.5 py-1.5 opacity-0 group-hover:opacity-100 transition-opacity shadow-lg",children:e})]})}function g({message:e,action:t}){return(0,a.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-amber-500/10 border border-amber-500/20 text-amber-700 dark:text-amber-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px] shrink-0 mt-0.5",children:"warning"}),(0,a.jsx)("p",{className:"text-xs flex-1",children:e}),t&&(0,a.jsx)("a",{href:t.href,className:"text-xs font-medium underline shrink-0 hover:opacity-80",onClick:t.href.startsWith("#")?e=>{e.preventDefault(),document.getElementById(t.href.slice(1))?.scrollIntoView({behavior:"smooth"})}:void 0,children:t.label})]})}x.propTypes={machineId:r().string.isRequired}}}]);
@@ -1,4 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7593],{56484:(e,t,s)=>{"use strict";s.d(t,{default:()=>x});var a=s(95155),n=s(12115),l=s(35497),r=s(11059);function i(e){return String(e||"").trim().toLowerCase()}function d(e){return Array.isArray(e)?[...new Set(e.map(e=>String(e||"").trim()).filter(Boolean))]:[]}function c({models:e,emptyLabel:t="Chưa g\xe1n model"}){let s=d(e);return 0===s.length?(0,a.jsx)("span",{className:"rounded-full bg-amber-500/10 px-2 py-0.5 text-xs text-amber-700 dark:text-amber-300",children:t}):(0,a.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[s.slice(0,8).map(e=>(0,a.jsx)("span",{className:"rounded-full border border-border bg-surface px-2 py-1 font-mono text-[11px] text-text-main",children:e},e)),s.length>8?(0,a.jsxs)("span",{className:"rounded-full bg-primary/10 px-2 py-1 text-[11px] text-primary",children:["+",s.length-8," model kh\xe1c"]}):null]})}function o({open:e,keyName:t,models:s,setModels:r,activeProviders:i,modelAliases:c,onClose:x,onSave:m,saving:h}){let[u,p]=(0,n.useState)(!1),y=d(s),b=e=>{let t=e?.value||e?.name||e;r(e=>d(e).filter(e=>e!==t))};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(l.aF,{isOpen:e,onClose:x,title:`Sửa quyền truy cập model${t?`: ${t}`:""}`,children:(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)("div",{className:"rounded-xl border border-blue-200 bg-blue-50 px-3 py-2 text-sm text-blue-700 dark:border-blue-500/30 dark:bg-blue-500/10 dark:text-blue-300",children:"Chọn một hoặc nhiều model m\xe0 API key n\xe0y được ph\xe9p sử dụng. Trang n\xe0y kh\xf4ng cho lưu danh s\xe1ch model rỗng."}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,a.jsx)("label",{className:"text-sm font-medium text-text-main",children:"Model được ph\xe9p d\xf9ng"}),(0,a.jsxs)(l.$n,{variant:"secondary",onClick:()=>p(!0),children:[(0,a.jsx)("span",{className:"material-symbols-outlined mr-1 text-[18px]",children:"add"}),"Th\xeam model"]})]}),(0,a.jsx)("div",{className:"min-h-[76px] rounded-xl border border-border bg-background p-3",children:0===y.length?(0,a.jsx)("div",{className:"text-sm text-text-muted",children:"Chưa chọn model n\xe0o. H\xe3y th\xeam \xedt nhất một model trước khi lưu."}):(0,a.jsx)("div",{className:"flex flex-wrap gap-2",children:y.map(e=>(0,a.jsxs)("button",{type:"button",onClick:()=>b(e),className:"rounded-full border border-primary/30 bg-primary/10 px-2 py-1 font-mono text-xs text-primary transition hover:bg-red-500/10 hover:text-red-600",title:"Bấm để gỡ model n\xe0y",children:[e," ",(0,a.jsx)("span",{className:"ml-1",children:"\xd7"})]},e))})})]}),(0,a.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,a.jsx)(l.$n,{variant:"secondary",onClick:x,children:"Hủy"}),(0,a.jsx)(l.$n,{onClick:m,disabled:h||0===y.length,children:h?"Đang lưu...":"Lưu danh s\xe1ch model"})]})]})}),(0,a.jsx)(l.rq,{isOpen:u,onClose:()=>p(!1),onSelect:e=>{let t=e?.value||e?.name||e;t&&r(e=>d([...e,t]))},onDeselect:b,activeProviders:i,modelAliases:c,title:"Chọn model được ph\xe9p d\xf9ng",addedModelValues:y,closeOnSelect:!1})]})}function x(){let e,t,[s,x]=(0,n.useState)(null),[m,h]=(0,n.useState)([]),[u,p]=(0,n.useState)(!0),[y,b]=(0,n.useState)(""),[g,f]=(0,n.useState)(!1),[j,v]=(0,n.useState)(""),[k,N]=(0,n.useState)(""),[w,C]=(0,n.useState)(""),[A,S]=(0,n.useState)(""),[P,$]=(0,n.useState)(new Set),[I,T]=(0,n.useState)(null),[K,M]=(0,n.useState)([]),[O,L]=(0,n.useState)(""),[D,E]=(0,n.useState)(!1),[U,_]=(0,n.useState)(!1),[B,H]=(0,n.useState)(""),[q,R]=(0,n.useState)(""),[F,G]=(0,n.useState)(!1),[V,Z]=(0,n.useState)(!1),[J,X]=(0,n.useState)([]),[Y,W]=(0,n.useState)({}),[z,Q]=(0,n.useState)(null),[ee,et]=(0,n.useState)([]),[es,ea]=(0,n.useState)(!1),[en,el]=(0,n.useState)(5),[er,ei]=(0,n.useState)(0),[ed,ec]=(0,n.useState)(""),[eo,ex]=(0,n.useState)(null),{copied:em,copy:eh}=(0,r.C)(),eu=s?.isAdmin===!0,ep=s?.userId||"",ey=Number.isFinite(Number(en))?Number(en):5,eb=Number.isFinite(Number(er))?Number(er):m.length,eg=!eu&&eb>=ey,ef=ed?`${ed}/v1`:"/v1",ej=ed?`${ed}/v1/chat/completions`:"/v1/chat/completions",ev=(e=d(eo?.allowedModels)[0],t=String(B||"").trim(),e||t||"YOUR_MODEL"),ek=eo?function({endpoint:e,apiKey:t,model:s}){let a=String(e||"/v1/chat/completions").replace(/"/g,""),n=String(t||"YOUR_API_KEY").replace(/"/g,""),l=JSON.stringify({model:String(s||"YOUR_MODEL"),messages:[{role:"user",content:"Say hi. Reply in one short sentence."}],temperature:.2,stream:!1}).replace(/"/g,'\\"');return`curl.exe -X POST "${a}" ^
2
- -H "Authorization: Bearer ${n}" ^
3
- -H "Content-Type: application/json" ^
4
- -d "${l}"`}({endpoint:ej,apiKey:eo.key,model:ev}):"",eN=(0,n.useMemo)(()=>{let e=new Map;for(let t of K){let s=i(t.username||t.email||t.userPrincipalName||t.sAMAccountName);s&&e.set(s,{id:s,label:`${t.displayName||t.username||s}${t.email?` \xb7 ${t.email}`:""}`})}for(let t of m){let s=i(t.ownerUser||t.createdByUser);s&&!e.has(s)&&e.set(s,{id:s,label:s})}return ep&&!e.has(ep)&&e.set(ep,{id:ep,label:`${ep} (t\xf4i)`}),[...e.values()].sort((e,t)=>e.label.localeCompare(t.label))},[K,m,ep]),ew=q!==B;(0,n.useEffect)(()=>{ec(window.location.origin)},[]);let eC=async()=>{let e=await fetch("/api/auth/status",{cache:"no-store"}),t=await e.json().catch(()=>({}));return x(t),!k&&t?.userId&&N(t.userId),t},eA=async()=>{p(!0),b("");try{let e=await fetch("/api/keys",{cache:"no-store"}),t=await e.json().catch(()=>({}));if(!e.ok)throw Error(t.error||"Kh\xf4ng tải được danh s\xe1ch API keys");let s=t.keys||[],a=String(t.apiKeyDefaultModel||"").trim();h(s),H(a),R(a),el(t.apiKeyLimit??5),ei(t.apiKeyCount??s.length)}catch(e){b(e.message||"Kh\xf4ng tải được danh s\xe1ch API keys")}finally{p(!1)}},eS=async()=>{try{let[e,t]=await Promise.allSettled([fetch("/api/providers",{cache:"no-store"}),fetch("/api/models/alias",{cache:"no-store"})]);if("fulfilled"===e.status&&e.value.ok){let t=await e.value.json().catch(()=>({}));X(t.connections||[])}if("fulfilled"===t.status&&t.value.ok){let e=await t.value.json().catch(()=>({}));W(e.aliases||{})}}catch{}},eP=async(e=O)=>{if(eu){E(!0);try{let t=await fetch(`/api/auth/ldap/users?q=${encodeURIComponent(e||"")}`,{cache:"no-store"}),s=await t.json().catch(()=>({}));t.ok&&M(s.users||[])}catch{}finally{E(!1)}}};(0,n.useEffect)(()=>{let e=!1;return(async()=>{let t=await eC();e||await Promise.all([eA(),eS()]),e||t?.isAdmin!==!0||await eP("")})(),()=>{e=!0}},[]);let e$=async()=>{if(eu&&q.trim()){G(!0),b("");try{let e=await fetch("/api/keys",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKeyDefaultModel:q.trim()})}),t=await e.json().catch(()=>({}));if(!e.ok)throw Error(t.error||"Kh\xf4ng lưu được default model");let s=String(t.apiKeyDefaultModel||"").trim();H(s),R(s)}catch(e){b(e.message||"Kh\xf4ng lưu được default model")}finally{G(!1)}}},eI=async()=>{if(j.trim()){if(!B.trim())return void b("Admin cần cấu h\xecnh default model trước khi tạo API key.");if(eg)return void b(`Mỗi user chỉ được tạo tối đa ${ey} API keys. Vui l\xf2ng x\xf3a bớt key cũ trước khi tạo key mới.`);_(!0),b("");try{let e=eu?i(w||k||ep):void 0,t=await fetch("/api/keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:j.trim(),ownerUser:e})}),s=await t.json().catch(()=>({}));if(!t.ok)throw Error(s.error||"Kh\xf4ng tạo được API key");S(s.key),v(""),C(""),f(!1),await eA()}catch(e){b(e.message||"Kh\xf4ng tạo được API key")}finally{_(!1)}}},eT=async(e,t)=>{let s=await fetch(`/api/keys/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),a=await s.json().catch(()=>({}));return s.ok?(await eA(),!0):(b(a.error||"Kh\xf4ng cập nhật được API key"),!1)},eK=async()=>{if(!z)return;let e=d(ee);if(0===e.length)return void b("H\xe3y chọn \xedt nhất một model trước khi lưu quyền truy cập API key.");ea(!0),b("");try{await eT(z.id,{allowedModels:e})&&(Q(null),et([]))}finally{ea(!1)}},eM=U||!j.trim()||!B.trim()||eg;return(0,a.jsxs)("div",{className:"space-y-6",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,a.jsxs)("div",{children:[(0,a.jsxs)("h1",{className:"flex items-center gap-2 text-3xl font-bold text-text-main",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-primary",children:"vpn_key"}),"Quản l\xfd API Keys"]}),(0,a.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:eu?"Admin c\xf3 thể tạo API key, g\xe1n owner v\xe0 chỉnh quyền truy cập model. Admin kh\xf4ng bị giới hạn số lượng key.":`Bạn c\xf3 thể quản l\xfd API key của t\xe0i khoản m\xecnh. Mỗi user thường được tạo tối đa ${ey} API keys.`})]}),(0,a.jsxs)(l.$n,{onClick:()=>f(!0),disabled:!B.trim()||eg,children:[(0,a.jsx)("span",{className:"material-symbols-outlined mr-1 text-[18px]",children:"add"}),"Tạo API Key"]})]}),y?(0,a.jsx)("div",{className:"rounded-xl border border-red-200 bg-red-50 px-4 py-3 text-sm text-red-700 dark:border-red-500/30 dark:bg-red-500/10 dark:text-red-300",children:y}):null,eu?null:(0,a.jsx)(l.Zp,{children:(0,a.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-lg font-semibold text-text-main",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-primary",children:"counter_5"}),"Giới hạn API key theo user"]}),(0,a.jsxs)("p",{className:"mt-1 text-sm text-text-muted",children:["T\xe0i khoản của bạn đang c\xf3 ",eb,"/",ey," API keys. Key bị disabled vẫn được t\xednh v\xe0o giới hạn."]})]}),(0,a.jsx)("span",{className:`rounded-full px-3 py-1 text-xs ${eg?"bg-red-500/10 text-red-600":"bg-green-500/10 text-green-600"}`,children:eg?"Đ\xe3 đạt giới hạn":"C\xf2n c\xf3 thể tạo th\xeam"})]})}),(0,a.jsx)(l.Zp,{children:(0,a.jsxs)("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-center lg:justify-between",children:[(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-lg font-semibold text-text-main",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-primary",children:"rule"}),"Default model cho API key mới"]}),(0,a.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"API key mới sẽ mặc định chỉ được d\xf9ng model n\xe0y. Cần cấu h\xecnh default model trước khi tạo API key."}),(0,a.jsx)("div",{className:"mt-3",children:B?(0,a.jsx)("span",{className:"rounded-full border border-primary/30 bg-primary/10 px-3 py-1 font-mono text-xs text-primary",children:B}):(0,a.jsx)("span",{className:"rounded-full bg-red-500/10 px-3 py-1 text-xs text-red-600",children:"Chưa cấu h\xecnh default model"})})]}),eu?(0,a.jsxs)("div",{className:"flex flex-col gap-2 sm:min-w-[360px]",children:[(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)("button",{type:"button",onClick:()=>Z(!0),className:"min-w-0 flex-1 rounded-xl border border-border bg-background px-3 py-2 text-left font-mono text-xs text-text-main transition hover:border-primary/50",children:q||"Chọn default model..."}),(0,a.jsx)(l.$n,{onClick:e$,disabled:F||!q.trim()||!ew,children:F?"Đang lưu...":"Lưu"})]}),(0,a.jsx)("p",{className:"text-xs text-text-muted",children:"Danh s\xe1ch model gồm provider models, custom models, aliases v\xe0 combos."})]}):null]})}),(0,a.jsx)(l.Zp,{children:(0,a.jsxs)("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between",children:[(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-lg font-semibold text-text-main",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-primary",children:"hub"}),"Th\xf4ng tin API endpoint"]}),(0,a.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"D\xf9ng API key b\xean dưới để gọi gateway theo chuẩn OpenAI-compatible. Endpoint lấy theo domain hiện tại của dashboard."}),(0,a.jsxs)("div",{className:"mt-3 grid gap-2 text-sm",children:[(0,a.jsxs)("div",{className:"rounded-xl border border-border bg-background px-3 py-2",children:[(0,a.jsx)("div",{className:"text-xs font-medium uppercase tracking-wide text-text-muted",children:"Base URL"}),(0,a.jsx)("div",{className:"mt-1 break-all font-mono text-xs text-text-main",children:ef})]}),(0,a.jsxs)("div",{className:"rounded-xl border border-border bg-background px-3 py-2",children:[(0,a.jsx)("div",{className:"text-xs font-medium uppercase tracking-wide text-text-muted",children:"Chat Completions"}),(0,a.jsx)("div",{className:"mt-1 break-all font-mono text-xs text-text-main",children:ej})]})]})]}),(0,a.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,a.jsx)(l.$n,{variant:"secondary",onClick:()=>eh(ef,"api-base-url"),children:"api-base-url"===em?"Đ\xe3 copy Base URL":"Copy Base URL"}),(0,a.jsx)(l.$n,{variant:"secondary",onClick:()=>eh(ej,"api-chat-endpoint"),children:"api-chat-endpoint"===em?"Đ\xe3 copy Endpoint":"Copy Endpoint"})]})]})}),A?(0,a.jsx)(l.Zp,{className:"border-green-200 bg-green-50/60 dark:border-green-500/30 dark:bg-green-500/10",children:(0,a.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"font-semibold text-green-700 dark:text-green-300",children:"Đ\xe3 tạo API key"}),(0,a.jsx)("div",{className:"mt-1 break-all font-mono text-xs text-text-main",children:A}),(0,a.jsxs)("div",{className:"mt-1 text-xs text-text-muted",children:["H\xe3y copy ngay. Key mới mặc định chỉ được d\xf9ng ",B||"default model"," trừ khi admin chỉnh quyền model."]})]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(l.$n,{variant:"secondary",onClick:()=>eh(A,"created"),children:"created"===em?"Đ\xe3 copy":"Copy"}),(0,a.jsx)(l.$n,{variant:"secondary",onClick:()=>S(""),children:"Đ\xf3ng"})]})]})}):null,(0,a.jsx)(l.Zp,{children:u?(0,a.jsxs)("div",{className:"py-10 text-center text-sm text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined mr-2 animate-spin align-middle",children:"progress_activity"}),"Đang tải API keys..."]}):0===m.length?(0,a.jsxs)("div",{className:"py-12 text-center text-sm text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined mb-2 block text-4xl",children:"vpn_key_off"}),"Chưa c\xf3 API key n\xe0o."]}):(0,a.jsx)("div",{className:"space-y-3",children:m.map(e=>{var t;let s=P.has(e.id),n=e.ownerUser||e.createdByUser||"chưa g\xe1n",r=d(e.allowedModels);return(0,a.jsx)("div",{className:"rounded-2xl border border-border bg-background p-4",children:(0,a.jsxs)("div",{className:"flex flex-col gap-3 lg:flex-row lg:items-start lg:justify-between",children:[(0,a.jsxs)("div",{className:"min-w-0 flex-1 space-y-2",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsx)("h3",{className:"font-semibold text-text-main",children:e.name||"API Key"}),(0,a.jsx)("span",{className:`rounded-full px-2 py-0.5 text-xs ${e.isActive?"bg-green-500/10 text-green-600":"bg-red-500/10 text-red-600"}`,children:e.isActive?"Đang bật":"Đ\xe3 tắt"}),(0,a.jsxs)("span",{className:"rounded-full bg-primary/10 px-2 py-0.5 text-xs text-primary",children:["Owner: ",n]}),r.length>0?(0,a.jsxs)("span",{className:"rounded-full bg-blue-500/10 px-2 py-0.5 text-xs text-blue-600",children:[r.length," model"]}):(0,a.jsx)("span",{className:"rounded-full bg-amber-500/10 px-2 py-0.5 text-xs text-amber-700",children:"Legacy full access"})]}),(0,a.jsx)("div",{className:"break-all font-mono text-xs text-text-muted",children:s?e.key:(t=e.key)?t.length>12?`${t.slice(0,8)}...${t.slice(-4)}`:t:""}),(0,a.jsxs)("div",{className:"text-xs text-text-muted",children:["Tạo l\xfac: ",e.createdAt?new Date(e.createdAt).toLocaleString():"kh\xf4ng r\xf5",e.createdByUser?` \xb7 Tạo bởi: ${e.createdByUser}`:""]}),(0,a.jsx)("div",{className:"pt-1",children:(0,a.jsx)(c,{models:r,emptyLabel:"Legacy full model access"})})]}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsx)(l.lM,{checked:!1!==e.isActive,onChange:t=>eT(e.id,{isActive:t})}),(0,a.jsx)(l.$n,{variant:"secondary",onClick:()=>{var t;return t=e.id,void $(e=>{let s=new Set(e);return s.has(t)?s.delete(t):s.add(t),s})},children:s?"Ẩn":"Hiện"}),(0,a.jsx)(l.$n,{variant:"secondary",onClick:()=>eh(e.key,e.id),children:em===e.id?"Đ\xe3 copy":"Copy"}),(0,a.jsx)(l.$n,{variant:"secondary",onClick:()=>ex(e),children:"API Test"}),(0,a.jsx)(l.$n,{variant:"secondary",onClick:()=>{var t;let s;return t=e.id,s=prompt("T\xean API key mới",e.name||""),void(s?.trim()&&eT(t,{name:s.trim()}))},children:"Đổi t\xean"}),eu?(0,a.jsx)(l.$n,{variant:"secondary",onClick:()=>{eu&&(Q(e),et(d(e.allowedModels)))},children:"Models"}):null,eu?(0,a.jsx)(l.$n,{variant:"secondary",onClick:()=>((e,t)=>{if(!eu)return;let s=prompt("G\xe1n owner username/email",t||ep||"");null!==s&&eT(e,{ownerUser:i(s)})})(e.id,n),children:"G\xe1n owner"}):null,(0,a.jsx)(l.$n,{variant:"danger",onClick:()=>{var t;return t=e.id,void T({title:"X\xf3a API Key",message:"Bạn chắc chắn muốn x\xf3a API key n\xe0y? Thao t\xe1c n\xe0y kh\xf4ng thể ho\xe0n t\xe1c.",onConfirm:async()=>{T(null),(await fetch(`/api/keys/${t}`,{method:"DELETE"})).ok&&await eA()}})},children:"X\xf3a"})]})]})},e.id)})})}),(0,a.jsx)(l.aF,{isOpen:g,onClose:()=>f(!1),title:"Tạo API Key",children:(0,a.jsxs)("div",{className:"space-y-4",children:[B.trim()?eg?(0,a.jsxs)("div",{className:"rounded-xl border border-red-200 bg-red-50 px-3 py-2 text-sm text-red-700 dark:border-red-500/30 dark:bg-red-500/10 dark:text-red-300",children:["Bạn đ\xe3 đạt giới hạn ",ey," API keys. H\xe3y x\xf3a bớt key cũ trước khi tạo key mới."]}):(0,a.jsxs)("div",{className:"rounded-xl border border-blue-200 bg-blue-50 px-3 py-2 text-sm text-blue-700 dark:border-blue-500/30 dark:bg-blue-500/10 dark:text-blue-300",children:["Key n\xe0y sẽ được tạo với quyền d\xf9ng default model: ",(0,a.jsx)("span",{className:"font-mono",children:B}),"."]}):(0,a.jsx)("div",{className:"rounded-xl border border-red-200 bg-red-50 px-3 py-2 text-sm text-red-700 dark:border-red-500/30 dark:bg-red-500/10 dark:text-red-300",children:"Admin cần cấu h\xecnh default model trước khi tạo API key."}),(0,a.jsx)(l.pd,{label:"T\xean key",value:j,onChange:e=>v(e.target.value),placeholder:"VD: VSCode, LibreChat, team-user"}),eu?(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)("label",{className:"text-sm font-medium text-text-main",children:"Owner user"}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(l.pd,{value:O,onChange:e=>L(e.target.value),placeholder:"T\xecm user LDAP"}),(0,a.jsx)(l.$n,{variant:"secondary",onClick:()=>eP(O),disabled:D,children:D?"Đang tải":"Tải"})]}),(0,a.jsxs)("select",{value:k,onChange:e=>N(e.target.value),className:"w-full rounded-xl border border-border bg-background px-3 py-2 text-sm text-text-main outline-none focus:border-primary",children:[(0,a.jsxs)("option",{value:ep,children:["G\xe1n cho t\xf4i (",ep||"local",")"]}),eN.map(e=>(0,a.jsx)("option",{value:e.id,children:e.label},e.id))]}),(0,a.jsx)(l.pd,{label:"Ghi đ\xe8 owner thủ c\xf4ng",value:w,onChange:e=>C(e.target.value),placeholder:"username hoặc email, kh\xf4ng bắt buộc",hint:"D\xf9ng khi LDAP kh\xf4ng khả dụng hoặc user kh\xf4ng c\xf3 trong danh s\xe1ch."})]}):(0,a.jsxs)("div",{className:"rounded-xl bg-surface-2 px-3 py-2 text-sm text-text-muted",children:["Owner: ",ep||"user hiện tại"]}),(0,a.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,a.jsx)(l.$n,{variant:"secondary",onClick:()=>f(!1),children:"Hủy"}),(0,a.jsx)(l.$n,{onClick:eI,disabled:eM,children:U?"Đang tạo...":"Tạo"})]})]})}),(0,a.jsx)(l.aF,{isOpen:!!eo,onClose:()=>ex(null),title:"API Test bằng curl Windows",children:(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)("div",{className:"rounded-xl border border-blue-200 bg-blue-50 px-3 py-2 text-sm text-blue-700 dark:border-blue-500/30 dark:bg-blue-500/10 dark:text-blue-300",children:"Lệnh dưới đ\xe2y gọi thử endpoint Chat Completions bằng API key đang chọn v\xe0 đ\xe3 nh\xfang sẵn Bearer token. Chỉ copy lệnh n\xe0y cho người được ph\xe9p d\xf9ng key."}),(0,a.jsxs)("div",{className:"grid gap-2 text-sm",children:[(0,a.jsxs)("div",{className:"rounded-xl border border-border bg-background px-3 py-2",children:[(0,a.jsx)("div",{className:"text-xs font-medium uppercase tracking-wide text-text-muted",children:"API Key"}),(0,a.jsx)("div",{className:"mt-1 break-all font-mono text-xs text-text-main",children:eo?.name||"API Key"})]}),(0,a.jsxs)("div",{className:"rounded-xl border border-border bg-background px-3 py-2",children:[(0,a.jsx)("div",{className:"text-xs font-medium uppercase tracking-wide text-text-muted",children:"Endpoint"}),(0,a.jsx)("div",{className:"mt-1 break-all font-mono text-xs text-text-main",children:ej})]}),(0,a.jsxs)("div",{className:"rounded-xl border border-border bg-background px-3 py-2",children:[(0,a.jsx)("div",{className:"text-xs font-medium uppercase tracking-wide text-text-muted",children:"Model test"}),(0,a.jsx)("div",{className:"mt-1 break-all font-mono text-xs text-text-main",children:ev})]})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)("label",{className:"text-sm font-medium text-text-main",children:"Lệnh curl cho Windows CMD"}),(0,a.jsx)("pre",{className:"max-h-[320px] overflow-auto whitespace-pre-wrap break-all rounded-2xl border border-border bg-surface-2 p-3 font-mono text-xs leading-relaxed text-text-main",children:ek}),(0,a.jsx)("p",{className:"text-xs text-text-muted",children:"D\xe1n lệnh v\xe0o CMD hoặc Windows Terminal để test nhanh. Nếu domain dashboard chạy sau reverse proxy, endpoint sẽ d\xf9ng đ\xfang domain đang mở tr\xean tr\xecnh duyệt."})]}),(0,a.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,a.jsx)(l.$n,{variant:"secondary",onClick:()=>ex(null),children:"Đ\xf3ng"}),(0,a.jsx)(l.$n,{onClick:()=>eh(ek,`api-test-curl-${eo?.id||"current"}`),children:em===`api-test-curl-${eo?.id||"current"}`?"Đ\xe3 copy":"Copy lệnh curl"})]})]})}),(0,a.jsx)(o,{open:!!z,keyName:z?.name,models:ee,setModels:et,activeProviders:J,modelAliases:Y,onClose:()=>{Q(null),et([])},onSave:eK,saving:es}),(0,a.jsx)(l.rq,{isOpen:V,onClose:()=>Z(!1),onSelect:e=>{let t=String(e?.value||e?.name||e||"").trim();t&&(R(t),Z(!1))},activeProviders:J,modelAliases:Y,title:"Chọn default model cho API key",selectedModel:q,addedModelValues:q?[q]:[]}),I?(0,a.jsx)(l.uo,{isOpen:!0,onClose:()=>T(null),onConfirm:I.onConfirm,title:I.title,message:I.message,confirmText:"X\xf3a",cancelText:"Hủy",variant:"danger"}):null]})}},84223:(e,t,s)=>{Promise.resolve().then(s.bind(s,56484))}},e=>{e.O(0,[2574,3862,1051,1321,5497,8441,3794,7358],()=>e(e.s=84223)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3649],{20061:(e,t,a)=>{Promise.resolve().then(a.bind(a,47295))},47295:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>I});var l=a(95155),n=a(12115),r=a(44923),s=a(87256),o=a(39768),i=a(82639),d=a(35497),c=a(11059),m=a(28777),u=a(52679);let x=/^[a-zA-Z0-9_.\-]+$/,b=[{value:"global",label:"To\xe0n cục / h\xe0nh vi hiện tại",description:"Giữ h\xe0nh vi hiện tại: mọi request d\xf9ng chung v\xf2ng xoay combo to\xe0n cục."},{value:"client_ip",label:"IP client",description:"Giữ c\xf9ng model khởi đầu cho c\xf9ng IP client cho đến khi hết TTL."},{value:"client_session",label:"IP client + phi\xean chat",description:"Ph\xf9 hợp nhất cho c\xf4ng cụ chat. Giữ c\xf9ng model cho c\xf9ng m\xe1y v\xe0 c\xf9ng phi\xean chat."}],h=[{value:"fallback",label:"Ưu ti\xean fallback",description:"H\xe0nh vi hiện tại: thử model trong combo theo đ\xfang thứ tự hiển thị, lỗi th\xec fallback."},{value:"round-robin",label:"Round Robin",description:"Lu\xe2n phi\xean model đang bật được thử đầu ti\xean. C\xe1c t\xf9y chọn giữ d\xednh b\xean dưới vẫn được \xe1p dụng."},{value:"least-latency",label:"Độ trễ thấp nhất",description:"Ưu ti\xean target c\xf3 điểm health/độ trễ tốt nhất. Hữu \xedch cho LAN Ollama."},{value:"p2c",label:"P2C",description:"Power of Two Choices: lấy mẫu hai target khỏe rồi chọn target \xedt bận hơn."}];function p(e={}){return Array.isArray(e.disabledModels)?[...new Set(e.disabledModels.map(e=>String(e||"").trim()).filter(Boolean))]:[]}function g(e={}){let t=e.fallbackStrategy||"fallback";return{...e,fallbackStrategy:t,stickyScope:e.stickyScope||"global",stickyTtlMinutes:Number(e.stickyTtlMinutes||120),stickyFallbackToClientIp:!1!==e.stickyFallbackToClientIp,lanHealthEnabled:!1!==e.lanHealthEnabled,healthCheckPath:e.healthCheckPath||"/api/tags",healthCheckIntervalMs:Number(e.healthCheckIntervalMs||15e3),requiredTags:Array.isArray(e.requiredTags)?e.requiredTags:[],modelTagRules:e.modelTagRules||e.modelTags||e.tagRules||{},disabledModels:p(e)}}function f(e=[]){return Array.isArray(e)?e.join(", "):String(e||"")}function y(e=""){return String(e||"").split(/[\n,;]+/).map(e=>e.trim()).filter(Boolean)}function v(e={}){return e&&"object"==typeof e?Object.entries(e).map(([e,t])=>`${e}: ${Array.isArray(t)?t.join(", "):String(t||"")}`).join("\n"):""}function j(e){return String(e||"").trim()}function k(e){return"string"==typeof e?e:e&&"object"==typeof e&&(e.value||e.model||e.id)||""}function N(e={}){let t=j(e.provider);return j(e.providerSpecificData?.prefix)||j(e.prefix)||j((0,u.wG)(t))||t}function w(e={}){return j(e.email)||j(e.accountName)||j(e.displayName)||j(e.name)||j(e.providerSpecificData?.nodeName)||j(e.id)}function C(e){return e&&"object"==typeof e?j(e.connectionId||e.connection_id):""}function S(e){let t=k(e),a=C(e);return t?a?`${t}@@${a}`:t:""}function T(e){return"string"==typeof e?e:e&&"object"==typeof e?j(e.label)||j(e.displayName)||j(e.name)||k(e):""}function $(e){if(!e||"object"!=typeof e)return k(e);let t=k(e);return t?Object.fromEntries(Object.entries({model:t,connectionId:C(e)||void 0,label:T(e)||void 0,provider:j(e.provider)||void 0,accountName:j(e.accountName||e.account_name)||void 0,weight:Number(e.weight||0)>0?Number(e.weight):void 0}).filter(([,e])=>void 0!==e&&""!==e)):""}function M(e,t=!0){let a=$(e),l=S(a);return{value:l,enabled:t,target:a,label:T(a)||l,subtitle:function(e){if(!e||"object"!=typeof e)return"";let t=C(e),a=k(e);return t?`T\xe0i khoản cố định • ${t}${a?` • ${a}`:""}`:""}(a)}}function E(e={}){return j(e.defaultModel)||j(e.providerSpecificData?.defaultModel)||j(e.model)||""}function _(e,t,a,l=""){let n=j(a);if(!n)return;let r=j(l)||n;t.has(n)||(t.add(n),e.push({value:n,label:r}))}function P(e={},t={}){let a=[],l=new Set,n=j(e.provider),r=[...new Set([N(e),j((0,u.wG)(n)),n].filter(Boolean))];for(let e of(0,m.KC)(n)||[])e?.type&&"llm"!==e.type||_(a,l,e.id,e.name||e.id);for(let[e,n]of Object.entries(t||{})){let t=j(n),s=r.find(e=>e&&t.startsWith(`${e}/`));if(!s)continue;let o=t.slice(s.length+1);_(a,l,o,e||o)}return _(a,l,E(e),"Model mặc định"),a}function O(e={},t=[]){let a={...e},l=[...new Set((t||[]).map(e=>String(e||"").trim()).filter(Boolean))];return l.length>0?a.disabledModels=l:delete a.disabledModels,Object.keys(a).length?a:null}function I(){let[e,t]=(0,n.useState)([]),[a,r]=(0,n.useState)(!0),[s,o]=(0,n.useState)(!1),[i,m]=(0,n.useState)(null),[u,x]=(0,n.useState)([]),[b,h]=(0,n.useState)({}),[f,y]=(0,n.useState)(null),{copied:v,copy:j}=(0,c.C)();(0,n.useEffect)(()=>{k()},[]);let k=async()=>{try{let[e,a,l]=await Promise.all([fetch("/api/combos"),fetch("/api/providers"),fetch("/api/settings")]),n=await e.json(),r=await a.json(),s=l.ok?await l.json():{};e.ok&&t((n.combos||[]).filter(e=>!e.kind)),a.ok&&x(r.connections||[]),h(s.comboStrategies||{})}catch(e){console.log("Error fetching data:",e)}finally{r(!1)}},N=async e=>{await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({comboStrategies:e})}),h(e)},w=async(e,t)=>{let a={...b},l=O(a[e]||{},t);l?a[e]=l:delete a[e],await N(a)},C=async e=>{let{disabledModels:t=[],...a}=e;try{let e=await fetch("/api/combos",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(e.ok)t.length>0&&await w(a.name,t),await k(),o(!1);else{let t=await e.json();alert(t.error||"Tạo combo thất bại")}}catch(e){console.log("Error creating combo:",e)}},S=async(e,t)=>{let{disabledModels:a=[],...l}=t,n=i?.name;try{let t=await fetch(`/api/combos/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(l)});if(t.ok){let e={...b};n&&n!==l.name&&e[n]&&(e[l.name]=e[n],delete e[n]);let t=O(e[l.name]||{},a);t?e[l.name]=t:delete e[l.name],await N(e),await k(),m(null)}else{let e=await t.json();alert(e.error||"Cập nhật combo thất bại")}}catch(e){console.log("Error updating combo:",e)}},T=async a=>{let l=e.find(e=>e.id===a);y({title:"X\xf3a combo",message:"Bạn c\xf3 chắc muốn x\xf3a combo n\xe0y?",onConfirm:async()=>{y(null);try{if((await fetch(`/api/combos/${a}`,{method:"DELETE"})).ok){if(l?.name&&b[l.name]){let e={...b};delete e[l.name],await N(e)}t(e.filter(e=>e.id!==a))}}catch(e){console.log("Error deleting combo:",e)}}})},$=async(e,t)=>{try{let a={...b},l=function(e={}){let t={...e};return t.disabledModels=p(e),"fallback"===(t.fallbackStrategy||"fallback")&&delete t.fallbackStrategy,t.disabledModels.length||delete t.disabledModels,t.requiredTags?.length||delete t.requiredTags,t.modelTagRules&&0!==Object.keys(t.modelTagRules).length||delete t.modelTagRules,"/api/tags"===t.healthCheckPath&&delete t.healthCheckPath,15e3===Number(t.healthCheckIntervalMs)&&delete t.healthCheckIntervalMs,!0===t.lanHealthEnabled&&delete t.lanHealthEnabled,Object.keys(t).length?t:null}({...g(a[e]),...t});l?a[e]=l:delete a[e],await N(a)}catch(e){console.log("Error updating combo routing settings:",e)}};return a?(0,l.jsx)("div",{className:"space-y-6",children:[1,2,3].map(e=>(0,l.jsx)("div",{className:"h-40 animate-pulse rounded-2xl bg-surface"},e))}):(0,l.jsxs)("div",{className:"space-y-8",children:[(0,l.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("h1",{className:"text-2xl font-semibold text-text-main",children:"Combo model"}),(0,l.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"Tạo combo model với fallback, round-robin, độ trễ thấp nhất, P2C v\xe0 routing theo trạng th\xe1i health của LAN Ollama."})]}),(0,l.jsxs)("button",{type:"button",onClick:()=>o(!0),className:"inline-flex items-center justify-center gap-2 rounded-xl bg-primary px-4 py-2 text-sm font-medium text-white hover:opacity-90",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"add"}),"Create Combo"]})]}),0===e.length?(0,l.jsxs)("div",{className:"rounded-2xl border border-dashed border-border p-10 text-center",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-4xl text-text-muted",children:"layers"}),(0,l.jsx)("h2",{className:"mt-3 text-lg font-semibold text-text-main",children:"Chưa c\xf3 combo n\xe0o"}),(0,l.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"Tạo combo model c\xf3 hỗ trợ fallback."}),(0,l.jsx)("button",{type:"button",onClick:()=>o(!0),className:"mt-4 rounded-xl bg-primary px-4 py-2 text-sm font-medium text-white hover:opacity-90",children:"Create Combo"})]}):(0,l.jsx)("div",{className:"grid gap-5 md:grid-cols-2 xl:grid-cols-3",children:e.map(e=>(0,l.jsx)(R,{combo:e,copied:v,onCopy:j,onEdit:()=>m(e),onDelete:()=>T(e.id),comboStrategy:b[e.name]||{},onUpdateComboStrategy:t=>$(e.name,t)},e.id))}),(0,l.jsx)(q,{isOpen:s,onClose:()=>o(!1),onSave:C,activeProviders:u}),(0,l.jsx)(q,{isOpen:!!i,combo:i,comboStrategy:i&&b[i.name]||{},onClose:()=>m(null),onSave:e=>S(i.id,e),activeProviders:u}),(0,l.jsx)(d.uo,{isOpen:!!f,onClose:()=>y(null),onConfirm:f?.onConfirm,title:f?.title||"X\xe1c nhận",message:f?.message,variant:"danger"})]})}function R({combo:e,copied:t,onCopy:a,onEdit:r,onDelete:s,comboStrategy:o={},onUpdateComboStrategy:i}){let d=g(o||{}),c=d.fallbackStrategy||"fallback",m=h.find(e=>e.value===c)||h[0],u=d.stickyScope||"global",x=b.find(e=>e.value===u)||b[0],j=p(o),[N,w]=(0,n.useState)(f(d.requiredTags)),[C,$]=(0,n.useState)(v(d.modelTagRules));return(0,n.useEffect)(()=>{w(f(d.requiredTags)),$(v(d.modelTagRules))},[e.name,JSON.stringify(d.requiredTags||[]),JSON.stringify(d.modelTagRules||{})]),(0,l.jsxs)("div",{className:"rounded-2xl border border-border bg-background p-5 shadow-sm",children:[(0,l.jsxs)("div",{className:"mb-4 flex items-start justify-between gap-3",children:[(0,l.jsxs)("div",{className:"min-w-0",children:[(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-primary",children:"layers"}),(0,l.jsx)("h3",{className:"truncate text-lg font-semibold text-text-main",children:e.name})]}),(0,l.jsxs)("p",{className:"mt-1 text-sm text-text-muted",children:[e.models.length," model đang bật",j.length>0?` • ${j.length} đ\xe3 tắt`:""]})]}),(0,l.jsxs)("div",{className:"flex items-center gap-1",children:[(0,l.jsx)(A,{icon:t===`combo-${e.id}`?"check":"content_copy",title:"Copy combo name",onClick:()=>a(e.name,`combo-${e.id}`)}),(0,l.jsx)(A,{icon:"edit",title:"Edit",onClick:r}),(0,l.jsx)(A,{icon:"delete",title:"Delete",onClick:s,danger:!0})]})]}),(0,l.jsxs)("div",{className:"mb-4 flex flex-wrap gap-2",children:[0===e.models.length?(0,l.jsx)("span",{className:"rounded-lg border border-border px-3 py-1 text-xs text-text-muted",children:"Chưa c\xf3 model đang bật"}):e.models.slice(0,5).map(e=>(0,l.jsx)("span",{className:"rounded-lg border border-border bg-surface px-3 py-1 font-mono text-xs text-text-main",title:k(e),children:T(e)},S(e))),e.models.length>5&&(0,l.jsxs)("span",{className:"rounded-lg border border-border px-3 py-1 text-xs text-text-muted",children:["+",e.models.length-5," model nữa"]}),j.length>0&&(0,l.jsxs)("span",{className:"rounded-lg border border-red-200 bg-red-50 px-3 py-1 text-xs font-medium text-red-600 dark:border-red-500/30 dark:bg-red-500/10 dark:text-red-300",children:[j.length," đ\xe3 tắt"]})]}),(0,l.jsxs)("div",{className:"rounded-xl border border-border bg-surface/50 p-4",children:[(0,l.jsxs)("div",{className:"mb-3 flex items-start justify-between gap-3",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("h4",{className:"font-semibold text-text-main",children:"Chiến lược routing"}),(0,l.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:m.description})]}),(0,l.jsx)("span",{className:"rounded-lg border border-primary/20 bg-primary/10 px-2 py-1 text-[11px] font-semibold text-primary",children:m.label})]}),(0,l.jsxs)("label",{className:"mb-3 block",children:[(0,l.jsx)("span",{className:"mb-1 block text-[11px] font-semibold uppercase tracking-wide text-text-muted",children:"Strategy"}),(0,l.jsx)("select",{value:c,onChange:e=>i({fallbackStrategy:e.target.value}),className:"w-full rounded-lg border border-border bg-background px-2 py-2 text-sm text-text-main outline-none focus:border-primary",children:h.map(e=>(0,l.jsx)("option",{value:e.value,children:e.label},e.value))})]}),("least-latency"===c||"p2c"===c)&&(0,l.jsxs)("div",{className:"mb-3 rounded-xl border border-emerald-500/20 bg-emerald-500/5 p-3",children:[(0,l.jsxs)("div",{className:"mb-2 flex items-center gap-2 text-sm font-semibold text-emerald-600 dark:text-emerald-300",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"monitor_heart"}),"Routing theo trạng th\xe1i health LAN"]}),(0,l.jsxs)("label",{className:"mb-3 flex items-start gap-2 text-xs text-text-muted",children:[(0,l.jsx)("input",{type:"checkbox",checked:!1!==d.lanHealthEnabled,onChange:e=>i({lanHealthEnabled:e.target.checked}),className:"mt-0.5 h-3.5 w-3.5 accent-primary"}),"D\xf9ng trạng th\xe1i health đang hoạt động v\xe0 dữ liệu circuit breaker khi xếp hạng target trong combo."]}),(0,l.jsxs)("div",{className:"grid gap-2 sm:grid-cols-2",children:[(0,l.jsxs)("label",{className:"block",children:[(0,l.jsx)("span",{className:"mb-1 block text-[11px] font-semibold uppercase tracking-wide text-text-muted",children:"Đường dẫn health"}),(0,l.jsx)("input",{value:d.healthCheckPath||"/api/tags",onChange:e=>i({healthCheckPath:e.target.value||"/api/tags"}),placeholder:"/api/tags",className:"w-full rounded-lg border border-border bg-background px-2 py-1.5 font-mono text-xs text-text-main outline-none focus:border-primary"})]}),(0,l.jsxs)("label",{className:"block",children:[(0,l.jsx)("span",{className:"mb-1 block text-[11px] font-semibold uppercase tracking-wide text-text-muted",children:"Chu kỳ kiểm tra (ms)"}),(0,l.jsx)("input",{type:"number",min:"1000",value:d.healthCheckIntervalMs||15e3,onChange:e=>i({healthCheckIntervalMs:Number(e.target.value)||15e3}),className:"w-full rounded-lg border border-border bg-background px-2 py-1.5 text-xs text-text-main outline-none focus:border-primary"})]})]}),(0,l.jsxs)("label",{className:"mt-3 block",children:[(0,l.jsx)("span",{className:"mb-1 block text-[11px] font-semibold uppercase tracking-wide text-text-muted",children:"Tag endpoint bắt buộc"}),(0,l.jsx)("input",{value:N,onChange:e=>w(e.target.value),onBlur:()=>i({requiredTags:y(N)}),onKeyDown:e=>"Enter"===e.key&&e.currentTarget.blur(),placeholder:"gpu, vram:8gb",className:"w-full rounded-lg border border-border bg-background px-2 py-1.5 font-mono text-xs text-text-main outline-none focus:border-primary"}),(0,l.jsx)("span",{className:"mt-1 block text-[11px] text-text-muted",children:"T\xf9y chọn. Mọi endpoint được route đều phải c\xf3 c\xe1c tag n\xe0y."})]}),(0,l.jsxs)("label",{className:"mt-3 block",children:[(0,l.jsx)("span",{className:"mb-1 block text-[11px] font-semibold uppercase tracking-wide text-text-muted",children:"Quy tắc tag theo model"}),(0,l.jsx)("textarea",{value:C,onChange:e=>$(e.target.value),onBlur:()=>i({modelTagRules:function(e=""){let t={};for(let a of String(e||"").split(/\n+/)){let e=a.trim();if(!e)continue;let l=e.indexOf(":");if(-1===l)continue;let n=e.slice(0,l).trim(),r=y(e.slice(l+1));n&&r.length&&(t[n]=r)}return t}(C)}),placeholder:"qwen3:32b: gpu, vram:16gb\nqwen3:8b: model_support:qwen3:8b",rows:3,className:"w-full rounded-lg border border-border bg-background px-2 py-1.5 font-mono text-xs text-text-main outline-none focus:border-primary"}),(0,l.jsx)("span",{className:"mt-1 block text-[11px] text-text-muted",children:"Mỗi d\xf2ng một quy tắc: model: tag1, tag2. C\xf3 thể \xe9p model lớn chạy tr\xean endpoint GPU/VRAM ph\xf9 hợp."})]})]}),"round-robin"===c&&(0,l.jsxs)("div",{className:"mt-4 rounded-xl border border-primary/15 bg-background p-3",children:[(0,l.jsxs)("div",{className:"mb-3 flex items-center gap-2 text-sm font-semibold text-primary",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"sticky_note_2"}),"Round Robin giữ d\xednh"]}),(0,l.jsx)("p",{className:"mb-3 text-xs text-text-muted",children:"T\xf9y chọn giữ d\xednh chỉ \xe1p dụng cho combo n\xe0y. Để To\xe0n cục nếu muốn giữ h\xe0nh vi hiện tại."}),(0,l.jsxs)("label",{className:"mb-3 block",children:[(0,l.jsx)("span",{className:"mb-1 block text-[11px] font-semibold uppercase tracking-wide text-text-muted",children:"Chế độ giữ d\xednh"}),(0,l.jsx)("select",{value:u,onChange:e=>i({stickyScope:e.target.value}),className:"w-full rounded-lg border border-border bg-background px-2 py-1.5 text-xs text-text-main outline-none focus:border-primary",children:b.map(e=>(0,l.jsx)("option",{value:e.value,children:e.label},e.value))}),(0,l.jsx)("span",{className:"mt-1 block text-[11px] text-text-muted",children:x.description})]}),(0,l.jsxs)("label",{className:"mb-3 block",children:[(0,l.jsx)("span",{className:"mb-1 block text-[11px] font-semibold uppercase tracking-wide text-text-muted",children:"TTL giữ d\xednh (ph\xfat)"}),(0,l.jsx)("input",{type:"number",min:"1",value:d.stickyTtlMinutes||120,onChange:e=>i({stickyTtlMinutes:Number(e.target.value)||120}),className:"w-full rounded-lg border border-border bg-background px-2 py-1.5 text-xs text-text-main outline-none focus:border-primary"}),(0,l.jsx)("span",{className:"mt-1 block text-[11px] text-text-muted",children:"G\xe1n giữ d\xednh được lưu trong RAM v\xe0 hết hạn sau thời gian n\xe0y. Khuyến nghị 120 ph\xfat."})]}),(0,l.jsxs)("label",{className:"flex items-start gap-2 text-xs text-text-muted",children:[(0,l.jsx)("input",{type:"checkbox",checked:!1!==d.stickyFallbackToClientIp,onChange:e=>i({stickyFallbackToClientIp:e.target.checked}),className:"mt-0.5 h-3.5 w-3.5 accent-primary"}),"Nếu thiếu chat session id, fallback về IP client thay v\xec xoay to\xe0n cục."]})]})]})]})}function A({icon:e,title:t,onClick:a,danger:n=!1}){return(0,l.jsx)("button",{type:"button",onClick:e=>{e.stopPropagation(),a?.()},className:`rounded-lg p-2 transition ${n?"text-red-500 hover:bg-red-500/10":"text-text-muted hover:bg-background hover:text-primary"}`,title:t,"aria-label":t,children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:e})})}function D({id:e,index:t,model:a,subtitle:r="",enabled:i,isFirst:d,isLast:c,onEdit:m,onMoveUp:u,onMoveDown:x,onRemove:b,onToggleEnabled:h}){let{attributes:p,listeners:g,setNodeRef:f,transform:y,isDragging:v}=(0,s.gl)({id:e}),j={transform:o.Ks.Transform.toString(y),opacity:v?.4:1,zIndex:v?999:void 0},[k,N]=(0,n.useState)(!1),[w,C]=(0,n.useState)(a);(0,n.useEffect)(()=>{C(a)},[a]);let S=()=>{let e=w.trim();e&&e!==a?m(e):C(a),N(!1)};return(0,l.jsxs)("div",{ref:f,style:j,className:`flex items-center gap-3 rounded-xl border p-3 transition ${i?"border-border bg-background":"border-red-200 bg-red-50/70 opacity-75 dark:border-red-500/30 dark:bg-red-500/10"}`,children:[(0,l.jsx)("button",{type:"button",className:"cursor-grab text-text-muted active:cursor-grabbing",...p,...g,title:"K\xe9o để sắp xếp lại",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"drag_indicator"})}),(0,l.jsx)("span",{className:`flex h-7 w-7 shrink-0 items-center justify-center rounded-full text-xs font-semibold ${i?"bg-primary/10 text-primary":"bg-red-100 text-red-600 dark:bg-red-500/20 dark:text-red-300"}`,children:t+1}),k?(0,l.jsx)("input",{autoFocus:!0,value:w,onChange:e=>C(e.target.value),onBlur:S,onKeyDown:e=>{"Enter"===e.key&&S(),"Escape"===e.key&&(C(a),N(!1))},className:"min-w-0 flex-1 rounded border border-primary/40 bg-background px-2 py-1 font-mono text-xs text-text-main outline-none"}):(0,l.jsxs)("button",{type:"button",onClick:()=>N(!0),className:"min-w-0 flex-1 text-left",title:"Bấm để sửa model",children:[(0,l.jsx)("span",{className:`block truncate font-mono text-xs ${i?"text-text-main":"text-text-muted line-through"}`,children:a}),r?(0,l.jsx)("span",{className:"mt-0.5 block truncate text-[11px] text-text-muted",children:r}):null]}),(0,l.jsx)("button",{type:"button",onClick:h,className:`rounded-lg p-1.5 transition ${i?"text-green-600 hover:bg-green-500/10":"text-red-500 hover:bg-red-500/10"}`,title:i?"Disable this model in combo":"Enable this model in combo",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:i?"toggle_on":"toggle_off"})}),(0,l.jsx)("button",{type:"button",onClick:u,disabled:d,className:"rounded-lg p-1.5 text-text-muted transition hover:bg-surface disabled:opacity-30",title:"Di chuyển l\xean",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"arrow_upward"})}),(0,l.jsx)("button",{type:"button",onClick:x,disabled:c,className:"rounded-lg p-1.5 text-text-muted transition hover:bg-surface disabled:opacity-30",title:"Di chuyển xuống",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"arrow_downward"})}),(0,l.jsx)("button",{type:"button",onClick:b,className:"rounded-lg p-1.5 text-red-500 transition hover:bg-red-500/10",title:"X\xf3a",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]})}function q({isOpen:e,combo:t,comboStrategy:a={},onClose:o,onSave:c,activeProviders:m,kindFilter:b=null}){let[h,g]=(0,n.useState)(t?.name||""),[f,y]=(0,n.useState)([]),[v,k]=(0,n.useState)(!1),[C,T]=(0,n.useState)(!1),[_,O]=(0,n.useState)(""),[I,R]=(0,n.useState)({}),[A,B]=(0,n.useState)(""),[H,F]=(0,n.useState)(""),G=a||{},L=(0,r.FR)((0,r.MS)(r.AN,{activationConstraint:{distance:5}}),(0,r.MS)(r.uN,{coordinateGetter:s.JR}));(0,n.useEffect)(()=>{e&&(g(t?.name||""),y(function(e,t={}){let a=(e?.models||[]).map(e=>M(e,!0)).filter(e=>e.value),l=new Set(a.map(e=>e.value));return[...a,...p(t).filter(e=>!l.has(e)).map(e=>M(e,!1)).filter(e=>e.value)]}(t,G)),O(""),B(""),F(""))},[e,t?.id,t?.name]),(0,n.useEffect)(()=>{e&&z()},[e]);let z=async()=>{try{let e=await fetch("/api/models/alias");if(!e.ok)return;let t=await e.json();R(t.aliases||{})}catch(e){console.error("Error fetching modal data:",e)}},K=f.map((e,t)=>({uid:`item-${t}-${e.value}`,row:e})),J=f.map(e=>e.value),U=f.filter(e=>e.enabled).length,X=f.filter(e=>!e.enabled).length,V=(m||[]).filter(e=>e?.isActive!==!1),W=V.find(e=>e.id===A)||null,Q=W?P(W,I):[],Z=Q[0]?.value||(W?E(W):""),Y=e=>e.trim()?x.test(e)?(O(""),!0):(O("Chỉ cho ph\xe9p chữ, số, dấu -, _ v\xe0 ."),!1):(O("Bắt buộc nhập t\xean"),!1),ee=async()=>{if(!Y(h))return;let{models:e,disabledModels:t}=function(e=[]){let t=[],a=new Set;for(let l of e){let e=j(l?.value||S(l?.target));!e||a.has(e)||(a.add(e),t.push({...l,value:e,enabled:l?.enabled!==!1,target:$(l?.target||l?.value)}))}return{models:t.filter(e=>e.enabled).map(e=>e.target).filter(Boolean),disabledModels:t.filter(e=>!e.enabled).map(e=>e.value)}}(f);T(!0),await c({name:h.trim(),models:e,disabledModels:t}),T(!1)};if(!e)return null;let et=!!t;return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("div",{className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/45 p-4 backdrop-blur-[1px]",children:(0,l.jsxs)("div",{className:"flex max-h-[88vh] w-full max-w-3xl flex-col overflow-hidden rounded-2xl border border-border bg-white shadow-2xl dark:bg-zinc-950",children:[(0,l.jsxs)("div",{className:"flex items-start justify-between border-b border-border px-5 py-4",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("h2",{className:"text-xl font-semibold text-text-main",children:et?"Chỉnh sửa combo":"Tạo combo"}),(0,l.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"Chọn model, tắt tạm thời khi cần v\xe0 sắp xếp thứ tự ưu ti\xean fallback đang bật."})]}),(0,l.jsx)("button",{type:"button",onClick:o,className:"rounded-lg p-1 text-text-muted transition hover:bg-surface hover:text-text-main",children:(0,l.jsx)("span",{className:"material-symbols-outlined",children:"close"})})]}),(0,l.jsxs)("div",{className:"min-h-0 flex-1 space-y-5 overflow-y-auto bg-white px-5 py-4 dark:bg-zinc-950",children:[(0,l.jsxs)("label",{className:"block",children:[(0,l.jsx)("span",{className:"mb-2 block text-sm font-semibold text-text-main",children:"T\xean"}),(0,l.jsx)("input",{value:h,onChange:e=>{let t=e.target.value;g(t),t?Y(t):O("")},placeholder:"premium-coding",className:`w-full rounded-xl border bg-white px-4 py-2.5 text-text-main outline-none transition focus:border-primary dark:bg-zinc-900 ${_?"border-red-400":"border-border"}`}),(0,l.jsx)("span",{className:`mt-1 block text-xs ${_?"text-red-500":"text-text-muted"}`,children:_||"Chỉ cho ph\xe9p chữ, số, dấu -, _ v\xe0 ."})]}),(0,l.jsxs)("div",{children:[(0,l.jsxs)("div",{className:"mb-3 flex items-center justify-between gap-3",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("h3",{className:"text-sm font-semibold text-text-main",children:"Danh s\xe1ch model"}),(0,l.jsxs)("p",{className:"mt-1 text-xs text-text-muted",children:[U," đang bật",X>0?`, ${X} đ\xe3 tắt`:"",". Model đ\xe3 tắt vẫn nằm trong combo nhưng kh\xf4ng được route."]})]}),(0,l.jsxs)("button",{type:"button",onClick:()=>k(!0),className:"inline-flex items-center gap-1 rounded-lg border border-border px-3 py-1.5 text-xs font-medium text-primary hover:border-primary/50",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"add"}),"Th\xeam model"]})]}),(0,l.jsxs)("div",{className:"mb-4 rounded-xl border border-primary/15 bg-primary/5 p-3",children:[(0,l.jsxs)("div",{className:"mb-2 flex items-center gap-2 text-xs font-semibold uppercase tracking-wide text-primary",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"account_tree"}),"Th\xeam target theo provider account"]}),(0,l.jsx)("p",{className:"mb-3 text-xs text-text-muted",children:"Cố định bước combo n\xe0y v\xe0o một provider account cụ thể. Model lấy từ provider; account chỉ d\xf9ng để cố định routing/load balancing."}),(0,l.jsxs)("div",{className:"grid gap-2 md:grid-cols-[minmax(0,1.5fr)_minmax(0,1fr)_auto]",children:[(0,l.jsxs)("select",{value:A,onChange:e=>{let t=e.target.value,a=V.find(e=>e.id===t),l=a?P(a,I):[];B(t),F(l[0]?.value||E(a||{})||"")},className:"min-w-0 rounded-lg border border-border bg-background px-3 py-2 text-xs text-text-main outline-none focus:border-primary",children:[(0,l.jsx)("option",{value:"",children:"Chọn provider account"}),V.map(e=>{let t=N(e),a=w(e),n=a&&a!==t?`${t} / ${a}`:t;return(0,l.jsx)("option",{value:e.id,children:n},e.id)})]}),(0,l.jsxs)("select",{value:H,onChange:e=>F(e.target.value),disabled:!A||0===Q.length,className:"min-w-0 rounded-lg border border-border bg-background px-3 py-2 font-mono text-xs text-text-main outline-none focus:border-primary disabled:cursor-not-allowed disabled:opacity-60",children:[(0,l.jsx)("option",{value:"",children:A?Q.length>0?"Chọn model":"Kh\xf4ng t\xecm thấy model của provider":"Chọn account trước"}),Q.map(e=>(0,l.jsx)("option",{value:e.value,children:e.label},`${e.value}-${e.label}`))]}),(0,l.jsxs)("button",{type:"button",onClick:()=>{if(!W)return;let e=function(e,t){let a=N(e),l=function(e={}){let t=j(e.provider),a=N(e);return(0,u.mq)(t)||(0,u.gb)(t)?a||t:t||a}(e),n=w(e),r=j(t||E(e));if(!a||!e?.id||!r)return null;let s=r.includes("/"),o=s?r:`${a}/${r}`,i=s&&r.startsWith(`${a}/`)?r.slice(a.length+1):r,d=n&&n!==l?`${l}/${n}/${i}`:`${l}/${i}`;return{model:o,connectionId:e.id,provider:l||a,accountName:n||void 0,label:d}}(W,H||Z);if(!e)return void alert("H\xe3y chọn provider account v\xe0 model cho target cố định n\xe0y.");let t=M(e,!0);y(e=>{let a=e.findIndex(e=>e.value===t.value);if(-1!==a){let l=[...e];return l[a]={...l[a],...t,enabled:!0},l}return[...e,t]}),F("")},disabled:!A||!H,className:"inline-flex items-center justify-center gap-1 rounded-lg bg-primary px-3 py-2 text-xs font-semibold text-white disabled:opacity-50",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"add_link"}),"Th\xeam account"]})]})]}),0===f.length?(0,l.jsxs)("div",{className:"rounded-xl border border-dashed border-border p-8 text-center text-text-muted",children:[(0,l.jsx)("span",{className:"material-symbols-outlined",children:"layers"}),(0,l.jsx)("p",{className:"mt-2 text-sm",children:"Chưa th\xeam model n\xe0o"})]}):(0,l.jsx)(r.Mp,{sensors:L,collisionDetection:r.fp,modifiers:[i.FN,i.gj],onDragEnd:e=>{let{active:t,over:a}=e;if(a&&t.id!==a.id){let e=K.findIndex(e=>e.uid===t.id),l=K.findIndex(e=>e.uid===a.id);-1!==e&&-1!==l&&y(t=>(0,s.be)(t,e,l))}},children:(0,l.jsx)(s.gB,{items:K.map(e=>e.uid),strategy:s._G,children:(0,l.jsx)("div",{className:"space-y-3",children:K.map(({uid:e,row:t},a)=>(0,l.jsx)(D,{id:e,index:a,model:t.label||t.value,subtitle:t.subtitle,enabled:t.enabled,isFirst:0===a,isLast:a===f.length-1,onEdit:e=>{let t=e.trim();if(!t)return;let l=[...f],n=l[a];if(n?.target&&"object"==typeof n.target){let e=$({...n.target,model:t});l[a]=M(e,!1!==n.enabled)}else l[a]=M(t,n?.enabled!==!1);y(l)},onMoveUp:()=>{if(0===a)return;let e=[...f];[e[a-1],e[a]]=[e[a],e[a-1]],y(e)},onMoveDown:()=>{if(a===f.length-1)return;let e=[...f];[e[a],e[a+1]]=[e[a+1],e[a]],y(e)},onToggleEnabled:()=>{let e=[...f];e[a]={...e[a],enabled:!e[a].enabled},y(e)},onRemove:()=>y(f.filter((e,t)=>t!==a))},e))})})})]})]}),(0,l.jsxs)("div",{className:"flex justify-end gap-3 border-t border-border bg-white px-5 py-4 dark:bg-zinc-950",children:[(0,l.jsx)("button",{type:"button",onClick:o,className:"rounded-xl border border-border px-4 py-2 text-sm font-medium text-text-main hover:bg-surface",children:"Hủy"}),(0,l.jsx)("button",{type:"button",onClick:ee,disabled:C,className:"rounded-xl bg-primary px-4 py-2 text-sm font-medium text-white hover:opacity-90 disabled:opacity-50",children:C?"Đang lưu...":et?"Lưu":"Tạo"})]})]})}),(0,l.jsx)(d.rq,{isOpen:v,onClose:()=>k(!1),onSelect:e=>{let t=e.value;y(e=>{let a=e.findIndex(e=>e.value===t);if(-1!==a){let t=[...e];return t[a]={...t[a],enabled:!0},t}return[...e,M(t,!0)]})},onDeselect:e=>{y(t=>t.filter(t=>t.value!==e.value))},activeProviders:m,modelAliases:I,title:"Th\xeam model v\xe0o combo",kindFilter:b,addedModelValues:J,closeOnSelect:!1})]})}}},e=>{e.O(0,[2574,3862,1051,7055,1321,5497,8441,3794,7358],()=>e(e.s=20061)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6099],{7535:(e,s,t)=>{"use strict";t.d(s,{default:()=>c});var l=t(95155),a=t(12115),n=t(35497),r=t(11059);function o(e){return Array.isArray(e)?[...new Set(e.map(e=>String(e||"").trim()).filter(Boolean))]:[]}function d({models:e,max:s=8}){let t=o(e);return 0===t.length?(0,l.jsx)("span",{className:"rounded-full border border-green-500/30 bg-green-500/10 px-2 py-1 text-xs font-medium text-green-700 dark:text-green-300",children:"Full model access"}):(0,l.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[t.slice(0,s).map(e=>(0,l.jsx)("span",{className:"rounded-full border border-border bg-background px-2 py-1 font-mono text-[11px] text-text-main",children:e},e)),t.length>s&&(0,l.jsxs)("span",{className:"rounded-full border border-border bg-background px-2 py-1 text-[11px] text-text-muted",children:["+",t.length-s," more"]})]})}function i({open:e,title:s,name:t,setName:r,models:c,setModels:m,activeProviders:x,modelAliases:h,onClose:u,onSave:p,saving:y,showName:j=!0}){let[b,g]=(0,a.useState)(!1);return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(n.aF,{isOpen:e,onClose:u,title:s,footer:null,size:"lg",children:(0,l.jsxs)("div",{className:"space-y-4",children:[j&&(0,l.jsxs)("label",{className:"block",children:[(0,l.jsx)("span",{className:"mb-1 block text-sm font-medium text-text-main",children:"API key name"}),(0,l.jsx)(n.pd,{value:t,onChange:e=>r(e.target.value),placeholder:"Production Key"})]}),(0,l.jsxs)("div",{className:"rounded-xl border border-border bg-background/60 p-4",children:[(0,l.jsxs)("div",{className:"mb-3 flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("h3",{className:"text-sm font-semibold text-text-main",children:"Allowed models"}),(0,l.jsx)("p",{className:"mt-1 text-xs leading-relaxed text-text-muted",children:"Empty selection means this key can use all models. Select one or more models to restrict this API key."})]}),(0,l.jsxs)("div",{className:"flex shrink-0 gap-2",children:[(0,l.jsxs)(n.$n,{variant:"secondary",size:"sm",onClick:()=>g(!0),children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"add"}),"Add model"]}),(0,l.jsx)(n.$n,{variant:"ghost",size:"sm",onClick:()=>m([]),children:"Full access"})]})]}),0===c.length?(0,l.jsxs)("div",{className:"rounded-xl border border-dashed border-green-500/30 bg-green-500/5 p-5 text-center",children:[(0,l.jsx)("span",{className:"material-symbols-outlined mb-1 text-2xl text-green-600",children:"verified_user"}),(0,l.jsx)("p",{className:"text-sm font-medium text-text-main",children:"Full model access"}),(0,l.jsx)("p",{className:"mt-1 text-xs text-text-muted",children:"No model restriction is saved for this key."})]}):(0,l.jsxs)("div",{className:"space-y-3",children:[(0,l.jsx)(d,{models:c,max:1e3}),(0,l.jsx)("button",{type:"button",onClick:()=>m([]),className:"text-xs font-medium text-primary hover:underline",children:"Clear selected models and make this key full access"})]})]}),(0,l.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,l.jsx)(n.$n,{variant:"ghost",onClick:u,children:"Cancel"}),(0,l.jsx)(n.$n,{onClick:p,disabled:y||j&&!t.trim(),children:y?"Saving...":"Save"})]})]})}),(0,l.jsx)(n.rq,{isOpen:b,onClose:()=>g(!1),onSelect:e=>{let s=e?.value||e?.name||e;s&&m(e=>o([...e,s]))},onDeselect:e=>{let s=e?.value||e?.name||e;m(e=>o(e).filter(e=>e!==s))},activeProviders:x,modelAliases:h,title:"Select allowed models",addedModelValues:c,closeOnSelect:!1})]})}function c(){let[e,s]=(0,a.useState)([]),[t,c]=(0,a.useState)([]),[m,x]=(0,a.useState)({}),[h,u]=(0,a.useState)(!0),[p,y]=(0,a.useState)(!1),[j,b]=(0,a.useState)(""),[g,f]=(0,a.useState)([]),[k,v]=(0,a.useState)(null),[N,w]=(0,a.useState)(!1),[C,S]=(0,a.useState)(null),[A,P]=(0,a.useState)([]),[E,M]=(0,a.useState)(!1),[$,I]=(0,a.useState)(null),{copied:_,copy:O}=(0,r.C)(),F=(0,a.useMemo)(()=>e.map(e=>({...e,allowedModels:o(e.allowedModels)})),[e]),D=async()=>{try{let[e,t,l]=await Promise.all([fetch("/api/keys",{cache:"no-store"}),fetch("/api/providers",{cache:"no-store"}),fetch("/api/models/alias",{cache:"no-store"})]),a=await e.json(),n=await t.json(),r=await l.json();e.ok&&s(a.keys||[]),t.ok&&c(n.connections||[]),l.ok&&x(r.aliases||{})}catch(e){console.log("Error loading API key model access:",e)}finally{u(!1)}};(0,a.useEffect)(()=>{D()},[]);let T=async()=>{if(j.trim()){w(!0);try{let e=await fetch("/api/keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:j.trim(),allowedModels:o(g)})}),s=await e.json();e.ok?(v(s.key),y(!1),await D()):alert(s.error||"Failed to create key")}catch(e){console.log("Error creating scoped API key:",e)}finally{w(!1)}}},z=async()=>{if(C){M(!0);try{let e=await fetch(`/api/keys/${C.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({allowedModels:o(A)})}),s=await e.json();e.ok?(S(null),P([]),await D()):alert(s.error||"Failed to update key model access")}catch(e){console.log("Error updating API key model access:",e)}finally{M(!1)}}},K=async(e,t)=>{try{(await fetch(`/api/keys/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:t})})).ok&&s(s=>s.map(s=>s.id===e?{...s,isActive:t}:s))}catch(e){console.log("Error toggling key:",e)}};return h?(0,l.jsx)(n.Zp,{children:(0,l.jsx)("div",{className:"h-24 animate-pulse rounded-xl bg-surface-2"})}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(n.Zp,{children:[(0,l.jsxs)("div",{className:"mb-4 flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",children:[(0,l.jsxs)("div",{children:[(0,l.jsxs)("h2",{className:"flex items-center gap-2 text-lg font-semibold",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-primary",children:"rule"}),"API Key Model Access"]}),(0,l.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"Restrict each API key to specific models. Keys with no selected models keep full model access."})]}),(0,l.jsxs)(n.$n,{onClick:()=>{b(""),f([]),y(!0)},children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"add"}),"Create scoped key"]})]}),0===F.length?(0,l.jsxs)("div",{className:"rounded-xl border border-dashed border-border p-8 text-center",children:[(0,l.jsx)("span",{className:"material-symbols-outlined mb-2 block text-3xl text-text-muted",children:"vpn_key"}),(0,l.jsx)("p",{className:"font-medium text-text-main",children:"No API keys yet"}),(0,l.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"Create a scoped key to limit model access per client."})]}):(0,l.jsx)("div",{className:"space-y-3",children:F.map(e=>(0,l.jsx)("div",{className:"rounded-xl border border-border bg-background/60 p-4",children:(0,l.jsxs)("div",{className:"flex flex-col gap-3 lg:flex-row lg:items-start lg:justify-between",children:[(0,l.jsxs)("div",{className:"min-w-0",children:[(0,l.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,l.jsx)("h3",{className:"font-semibold text-text-main",children:e.name}),!1===e.isActive&&(0,l.jsx)("span",{className:"rounded-full bg-red-500/10 px-2 py-0.5 text-xs font-medium text-red-600",children:"Paused"}),e.allowedModels.length>0&&(0,l.jsxs)("span",{className:"rounded-full bg-primary/10 px-2 py-0.5 text-xs font-medium text-primary",children:[e.allowedModels.length," model(s)"]})]}),(0,l.jsxs)("p",{className:"mt-1 font-mono text-xs text-text-muted",children:[e.key?.slice(0,8),"..."]}),(0,l.jsxs)("p",{className:"mt-1 text-xs text-text-muted",children:["Created ",new Date(e.createdAt).toLocaleDateString()]}),(0,l.jsx)("div",{className:"mt-3",children:(0,l.jsx)(d,{models:e.allowedModels})})]}),(0,l.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,l.jsx)(n.$n,{variant:"secondary",size:"sm",onClick:()=>{S(e),P(o(e.allowedModels))},children:"Edit models"}),(0,l.jsx)("button",{type:"button",onClick:()=>K(e.id,!1===e.isActive),title:!1!==e.isActive?"Pause key":"Resume key",className:"rounded-lg p-2 text-text-muted transition hover:bg-surface hover:text-primary",children:(0,l.jsx)(n.lM,{checked:!1!==e.isActive,onChange:s=>K(e.id,s)})}),(0,l.jsx)("button",{type:"button",onClick:()=>{I({title:"Delete API Key",message:`Delete API key "${e.name}"?`,onConfirm:async()=>{I(null);try{(await fetch(`/api/keys/${e.id}`,{method:"DELETE"})).ok&&await D()}catch(e){console.log("Error deleting key:",e)}}})},className:"rounded-lg p-2 text-red-500 transition hover:bg-red-500/10",title:"Delete key",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"})})]})]})},e.id))})]}),(0,l.jsx)(i,{open:p,title:"Create scoped API key",name:j,setName:b,models:g,setModels:f,activeProviders:t,modelAliases:m,onClose:()=>y(!1),onSave:T,saving:N}),(0,l.jsx)(i,{open:!!C,title:C?`Edit model access: ${C.name}`:"Edit model access",name:C?.name||"",setName:()=>{},models:A,setModels:P,activeProviders:t,modelAliases:m,onClose:()=>{S(null),P([])},onSave:z,saving:E,showName:!1}),(0,l.jsx)(n.aF,{isOpen:!!k,onClose:()=>v(null),title:"API key created",footer:null,children:(0,l.jsxs)("div",{className:"space-y-4",children:[(0,l.jsx)("div",{className:"rounded-xl border border-yellow-500/30 bg-yellow-500/10 p-3 text-sm text-yellow-700 dark:text-yellow-300",children:"Save this key now. This is the only time you will see it."}),(0,l.jsx)("code",{className:"block break-all rounded-xl border border-border bg-background p-3 font-mono text-sm",children:k}),(0,l.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,l.jsx)(n.$n,{variant:"secondary",onClick:()=>O(k,"scoped_created_key"),children:"scoped_created_key"===_?"Copied!":"Copy"}),(0,l.jsx)(n.$n,{onClick:()=>v(null),children:"Done"})]})]})}),(0,l.jsx)(n.uo,{isOpen:!!$,onClose:()=>I(null),onConfirm:$?.onConfirm,title:$?.title||"Confirm",message:$?.message,variant:"danger"})]})}},82969:(e,s,t)=>{Promise.resolve().then(t.bind(t,7535)),Promise.resolve().then(t.bind(t,95907))}},e=>{e.O(0,[2574,3862,1051,1321,5497,5907,8441,3794,7358],()=>e(e.s=82969)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6337],{18032:(e,s,_)=>{Promise.resolve().then(_.bind(_,95907))}},e=>{e.O(0,[2574,3862,1051,1321,5497,5907,8441,3794,7358],()=>e(e.s=18032)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,174,204,335,342,387,451,501,516,543,552,675,747,748,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1337,1382,1451,1512,1566,1666,1674,1697,1860,1907,1910,1946,1949,2121,2198,2222,2284,2296,2525,2536,2772,2785,2797,2919,2922,3025,3038,3079,3161,3397,3472,3507,3549,3562,3568,3883,3888,4010,4061,4118,4245,4286,4422,4444,4612,4656,4674,4761,4896,4993,5018,5107,5177,5211,5226,5466,5637,5685,5745,5922,6091,6107,6121,6268,6319,6479,6529,6580,6594,6740,6743,6819,6919,6988,7131,7158,7241,7311,7429,7445,7473,7508,7520,7545,7758,7824,7851,7988,8026,8095,8167,8207,8246,8273,8433,8453,8489,8573,8648,8736,8791,8814,8870,8948,8974,8975,9027,9069,9088,9141,9199,9226,9321,9395,9461,9678,9709],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);