From 8343d54bf26c019776a697bb66f9f239d29a4fc9 Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Thu, 6 Aug 2026 00:30:06 +0800 Subject: [PATCH 01/42] feat: add Freebuff provider and fix dompurify security vulnerabilities - Add Freebuff provider integration (executor, registry, OAuth, usage tracking) - Upgrade monaco-editor to ^0.56.0 - Add dompurify ^3.4.13 with override to fix security vulnerabilities - Add Freebuff provider icon and test files --- open-sse/executors/freebuff.js | 459 ++++++++++++++++++ open-sse/providers/registry/freebuff.js | 84 ++++ open-sse/services/usage/freebuff.js | 115 +++++ package.json | 6 +- public/providers/freebuff.png | Bin 0 -> 2647 bytes src/lib/oauth/providers/freebuff.js | 131 ++++++ tests/unit/freebuff-provider.test.js | 588 ++++++++++++++++++++++++ tests/unit/freebuff-usage.test.js | 204 ++++++++ 8 files changed, 1586 insertions(+), 1 deletion(-) create mode 100644 open-sse/executors/freebuff.js create mode 100644 open-sse/providers/registry/freebuff.js create mode 100644 open-sse/services/usage/freebuff.js create mode 100644 public/providers/freebuff.png create mode 100644 src/lib/oauth/providers/freebuff.js create mode 100644 tests/unit/freebuff-provider.test.js create mode 100644 tests/unit/freebuff-usage.test.js diff --git a/open-sse/executors/freebuff.js b/open-sse/executors/freebuff.js new file mode 100644 index 00000000..655060aa --- /dev/null +++ b/open-sse/executors/freebuff.js @@ -0,0 +1,459 @@ +import crypto from "node:crypto"; +import { BaseExecutor } from "./base.js"; +import { PROVIDERS } from "../config/providers.js"; +import { proxyAwareFetch } from "../utils/proxyFetch.js"; +import { dbg } from "../utils/debugLog.js"; +import { + FETCH_CONNECT_TIMEOUT_MS, + DEFAULT_RETRY_CONFIG, + resolveRetryEntry, +} from "../config/runtimeConfig.js"; + +/** + * Freebuff Executor — OpenAI-compatible chat completions on + * https://www.codebuff.com/api/v1/chat/completions (the Codebuff/Freebuff backend). + * + * Wire shape mirrors the official CLI exactly. The CLI (Vercel AI SDK with the + * codebuff openai-compatible provider) builds `providerOptions.codebuff` = + * { codebuff_metadata, provider } and the provider spreads those entries at + * the TOP LEVEL of the request body — i.e. the body is: + * { model, messages, codebuff_metadata: { run_id, client_id, cost_mode, + * freebuff_instance_id? }, provider: { allow_fallbacks } } + * NOT nested under a `codebuff` object (the backend rejects the nested shape + * with 400 "No runId found in request body"). + * + * The run_id is not a free-form uuid: the backend resolves it against its + * agent-run store and rejects unknown ids with 400 "runId Not Found". So every + * chat request first registers a run via POST /api/v1/agent-runs + * ({ action:"START", agentId, ancestorRunIds:[] }) → { runId }, and that id is + * what goes in codebuff_metadata.run_id. The free tier additionally gates on a + * session: POST /api/v1/freebuff/session with an `x-freebuff-model` header + * claims a row (bound to one model, ~1h); its instance id must ride along as + * codebuff_metadata.freebuff_instance_id. + */ +const SESSION_PATH = "/api/v1/freebuff/session"; +const RUN_PATH = "/api/v1/agent-runs"; +const SESSION_DEFAULT_TTL_MS = 60 * 60 * 1000; // active sessions live ~1h + +// Chat statuses that mean our claimed session is stale and must be re-claimed +// before retrying (mirrors the CLI's FreebuffGateErrorKind statuses). +const SESSION_STALE_CODES = new Set([428, 409, 410]); + +// The free tier rejects requests whose first system message doesn't open with +// the canonical Freebuff CLI root prompt (server gate +// requestHasFreebuffSystemMarker → 403 free_mode_cli_required). The check is a +// byte-exact prefix test on position 0, so we prepend the canonical opening. +// Same anti-abuse pattern as mimo-free's MIMO_SYSTEM_MARKER injection. +const FREEBUFF_SYSTEM_MARKER = "You are Buffy, the strategic coding assistant."; + +// Canonical openings accepted by the server gate (mirrors the CLI's +// FREEBUFF_ROOT_SYSTEM_PROMPT_OPENINGS). The check is a byte-exact prefix on +// the first message, so our injected marker must be one of these verbatim. +const FREEBUFF_ROOT_SYSTEM_OPENINGS = [ + "You are Buffy, the strategic coding assistant.", + "You are Buffy, the Freebuff Cloud project planner.", + "You are Buffy, a strategic assistant that orchestrates complex coding tasks through specialized sub-agents.", +]; + +// Ensure messages[0] opens with a canonical Freebuff root prompt (idempotent). +function injectFreebuffMarker(body) { + const messages = body?.messages; + if (!Array.isArray(messages) || messages.length === 0) return body; + const first = messages[0]; + if (first?.role === "system" && typeof first.content === "string") { + const trimmed = first.content.trimStart(); + if (FREEBUFF_ROOT_SYSTEM_OPENINGS.some((opening) => trimmed.startsWith(opening))) return body; // already marked + // Prepend the canonical opening to the existing system prompt so it stays + // the first thing the model reads (keep the rest of the messages intact). + return { + ...body, + messages: [{ ...first, content: `${FREEBUFF_SYSTEM_MARKER}\n\n${first.content}` }, ...messages.slice(1)], + }; + } + // No leading system message — insert one with the canonical opening. + return { ...body, messages: [{ role: "system", content: FREEBUFF_SYSTEM_MARKER }, ...messages] }; +} + +// Freebuff root agent id per model (mirrors the CLI's FREEBUFF_ROOT_AGENT_ID_BY_MODEL). +const FREE_ROOT_AGENT_BY_MODEL = { + "deepseek/deepseek-v4-flash": "base2-free-deepseek-flash", + "deepseek/deepseek-v4-pro": "base2-free-deepseek", + "mimo/mimo-v2.5": "base2-free-mimo", + "minimax/minimax-m3": "base2-free-minimax-m3", + "openai/gpt-5.6-luna": "base2-free-luna", +}; + +// Per-token+model session cache (in-memory; keyed so multi-account setups +// don't share one session row). Re-claims are driven by the cache expiring or +// by a 428 from chat — no early re-claim, so we never POST /session while our +// own row is still active (which could come back as a spurious model_locked). +const sessionCache = new Map(); // `${token}::${model}` -> { instanceId, expiresAt } +const inflight = new Map(); // dedupe concurrent claims for the same key + +function sessionOrigin() { + return new URL(PROVIDERS.freebuff.baseUrl).origin; // https://www.codebuff.com +} + +function sessionCacheKey(token, model) { + return `${token}::${model}`; +} + +function rootAgentIdForModel(model) { + return FREE_ROOT_AGENT_BY_MODEL[model] || "base2-free"; +} + +// Retry transient network errors (ECONNRESET, TLS reset, …) on the session/ +// run API calls — mirrors the CLI's fetchWithRetry. Only fetch-level throws +// are retried; HTTP error responses are returned as-is. +// +// The timeout signal is built per attempt: a single shared +// AbortSignal.timeout() would stay aborted forever after it fires, silently +// turning attempts 2..n into instant no-op rejections. +async function fetchWithNetworkRetry(url, options, proxyOptions, attempts = 3, timeoutMs = FETCH_CONNECT_TIMEOUT_MS) { + let lastError; + for (let attempt = 0; attempt < attempts; attempt++) { + try { + const opts = { ...options, signal: AbortSignal.timeout(timeoutMs) }; + return await proxyAwareFetch(url, opts, proxyOptions); + } catch (error) { + lastError = error; + if (attempt + 1 < attempts) { + await new Promise((resolve) => setTimeout(resolve, 750)); + } + } + } + throw lastError; +} + +async function requestSession(token, model, proxyOptions) { + const response = await fetchWithNetworkRetry(`${sessionOrigin()}${SESSION_PATH}`, { + method: "POST", + headers: { + "Content-Type": "application/json", + Authorization: `Bearer ${token}`, + "User-Agent": "codebuff-cli/0.0.138", + "x-freebuff-model": model, + }, + }, proxyOptions); + + let data = {}; + try { data = await response.json(); } catch { data = {}; } + + if (response.status === 401) { + const err = new Error("Freebuff session auth failed (401) — re-login in the dashboard"); + err.status = 401; + throw err; + } + if (!response.ok) { + const err = new Error(`Freebuff session request failed: ${response.status} ${JSON.stringify(data).slice(0, 200)}`); + err.status = response.status; + throw err; + } + + const status = data?.status; + if (status === "active") { + const parsedExp = Date.parse(data.expiresAt || ""); + const entry = { + instanceId: data.instanceId, + expiresAt: Number.isFinite(parsedExp) ? parsedExp : Date.now() + SESSION_DEFAULT_TTL_MS, + }; + sessionCache.set(sessionCacheKey(token, model), entry); + return { instanceId: data.instanceId, status: "active" }; + } + if (status === "none") { + // Not session-gated right now — proceed without an instance id; a 428 on + // chat tells us the admission gate actually requires a session. + return { instanceId: null, status: "none" }; + } + + const GATE_MESSAGES = { + country_blocked: "Freebuff is not available in your region (country blocked).", + banned: "Your Freebuff account has been banned.", + ip_capped: "Freebuff IP cap reached — try again later.", + rate_limited: "Freebuff session limit reached for this model — try again later.", + spend_limited: "Freebuff spend limit reached — add credits or wait for the window to reset.", + model_locked: "Freebuff session is locked to another model — end it in the CLI or wait for it to expire.", + model_unavailable: "This model is not available on Freebuff right now.", + premium_slot_taken: "Freebuff premium slot is taken — try another model.", + }; + if (GATE_MESSAGES[status]) { + const message = data?.message ? `${GATE_MESSAGES[status]} ${data.message}` : GATE_MESSAGES[status]; + throw new Error(message); + } + throw new Error(`Freebuff session rejected (${status || response.status}): ${JSON.stringify(data).slice(0, 200)}`); +} + +async function ensureSession(token, model, proxyOptions, force = false) { + const key = sessionCacheKey(token, model); + const cached = sessionCache.get(key); + if (!force && cached && cached.expiresAt > Date.now()) { + return { instanceId: cached.instanceId, status: "active" }; + } + if (force) { + // Drop both the cached row and any in-flight claim so the fresh POST can't + // race a stale one back into the cache. + sessionCache.delete(key); + inflight.delete(key); + return requestSession(token, model, proxyOptions); + } + if (!inflight.has(key)) { + inflight.set(key, requestSession(token, model, proxyOptions).finally(() => inflight.delete(key))); + } + return inflight.get(key); +} + +// Register an agent run so the chat backend can resolve the run_id we send. +async function startRun(token, model, proxyOptions) { + const response = await fetchWithNetworkRetry(`${sessionOrigin()}${RUN_PATH}`, { + method: "POST", + headers: { + "Content-Type": "application/json", + Authorization: `Bearer ${token}`, + "User-Agent": "codebuff-cli/0.0.138", + }, + body: JSON.stringify({ + action: "START", + agentId: rootAgentIdForModel(model), + ancestorRunIds: [], + }), + }, proxyOptions); + + const text = await response.text().catch(() => ""); + let data = {}; + try { data = JSON.parse(text); } catch { data = {}; } + + if (response.status === 401) { + const err = new Error("Freebuff run auth failed (401) — re-login in the dashboard"); + err.status = 401; + throw err; + } + if (!response.ok) { + const err = new Error(`Freebuff run start failed: ${response.status} ${text.slice(0, 200)}`); + err.status = response.status; + throw err; + } + if (!data?.runId) { + throw new Error(`Freebuff run start returned no runId: ${text.slice(0, 200)}`); + } + return data.runId; +} + +// Best-effort run completion — mirrors the CLI's finishAgentRun. Never throws. +async function finishRun(token, runId, status, proxyOptions) { + if (!runId) return; + try { + await proxyAwareFetch(`${sessionOrigin()}${RUN_PATH}`, { + method: "POST", + headers: { + "Content-Type": "application/json", + Authorization: `Bearer ${token}`, + "User-Agent": "codebuff-cli/0.0.138", + }, + body: JSON.stringify({ action: "FINISH", runId, status }), + signal: AbortSignal.timeout(10_000), + }, proxyOptions); + } catch { + // Best-effort only — the server sweeps stale runs. + } +} + +export function resetSessionCache() { + sessionCache.clear(); + inflight.clear(); +} + +export class FreebuffExecutor extends BaseExecutor { + constructor() { + super("freebuff", PROVIDERS.freebuff); + } + + buildUrl() { + return this.config.baseUrl; + } + + transformRequest(model, body, stream, credentials) { + // Top-level wire shape — see header comment. `run_id` and + // `freebuff_instance_id` are attached by execute() (they need the async + // run/session registration), so this only sets the static parts. + body.codebuff_metadata = { + client_id: + credentials?.providerSpecificData?.fingerprintId || + `9router-${crypto.randomUUID()}`, + cost_mode: "free", + }; + body.provider = { allow_fallbacks: false }; + // Free-tier gate: first system message must open with the CLI marker. + return injectFreebuffMarker(body); + } + + async execute({ model, body, stream, credentials, signal, log, proxyOptions = null }) { + const token = credentials?.accessToken; + if (!token) { + throw new Error("Freebuff requires a connected Freebuff login (no access token found)"); + } + + let session; + try { + session = await ensureSession(token, model, proxyOptions); + } catch (error) { + log?.error?.("AUTH", `Freebuff session failed: ${error.message}`); + throw error; + } + + const url = this.buildUrl(); + const headers = this.buildHeaders(credentials, stream); + const retryConfig = { ...DEFAULT_RETRY_CONFIG, ...this.config.retry }; + + // Registered run whose id the backend resolves on chat. Per-request, like + // the CLI's one-run-per-prompt granularity; closure-local so concurrent + // requests never share a runId. trace_session_id mirrors the CLI's + // extraCodebuffMetadata — one per run, stable across retries. + let runId = null; + const traceSessionId = crypto.randomUUID(); + + const buildBody = () => { + const transformed = this.transformRequest(model, body, stream, credentials); + transformed.codebuff_metadata.run_id = runId; + transformed.codebuff_metadata.trace_session_id = traceSessionId; + if (session?.instanceId) { + transformed.codebuff_metadata.freebuff_instance_id = session.instanceId; + } + return transformed; + }; + + // Chat POST with connect timeout + registry 429/502/503 retry + up to 2 + // retries on fetch-level network errors (per attempt the body is rebuilt + // so each retry reuses the same registered run_id). + const doChat = async () => { + let networkAttempts = 0; + const MAX_NETWORK_ATTEMPTS = 2; + for (let attempt = 0; ; attempt++) { + const transformedBody = buildBody(); + const bodyStr = JSON.stringify(transformedBody); + dbg("FETCH", `FREEBUFF → ${url} | body=${bodyStr.length}B`); + + const connectCtrl = new AbortController(); + const timeoutMs = this.config?.timeoutMs || FETCH_CONNECT_TIMEOUT_MS; + const connectTimer = setTimeout(() => connectCtrl.abort(new Error("fetch connect timeout")), timeoutMs); + const mergedSignal = signal ? AbortSignal.any([signal, connectCtrl.signal]) : connectCtrl.signal; + const fetchT0 = Date.now(); + let response; + try { + response = await proxyAwareFetch(url, { method: "POST", headers, body: bodyStr, signal: mergedSignal }, proxyOptions); + const ct = response.headers?.get?.("content-type") || ""; + const cl = response.headers?.get?.("content-length") || "?"; + dbg("FETCH", `FREEBUFF ← ${response.status} | ttft=${Date.now() - fetchT0}ms | ct=${ct} | cl=${cl}`); + } catch (error) { + // A caller/stream abort (AbortError) is genuine — never retry it. A + // transient socket/TLS reset (same class as the run-registration + // failure in the field) gets a couple of quick retries so a network + // blip doesn't fail the request and lock the model for 30s. + const aborted = error?.name === "AbortError"; + if (aborted || networkAttempts >= MAX_NETWORK_ATTEMPTS) throw error; + networkAttempts += 1; + log?.debug?.("RETRY", `network error on ${url} (${error.message}), retry ${networkAttempts}/${MAX_NETWORK_ATTEMPTS}`); + await new Promise((resolve) => setTimeout(resolve, 750)); + continue; + } finally { + clearTimeout(connectTimer); + } + + const entry = resolveRetryEntry(retryConfig[response.status]); + if (entry && attempt < entry.attempts) { + log?.debug?.("RETRY", `${response.status} on ${url}, retry ${attempt + 1}/${entry.attempts} after ${entry.delayMs / 1000}s`); + await new Promise((resolve) => setTimeout(resolve, entry.delayMs)); + continue; + } + return { response, transformedBody }; + } + }; + + // The run currently in flight. Only this one is FINISH-able: after a stale + // session (428/409/410) the old run is FINISH'd "cancelled" and cleared, so + // a later failure can never double-FINISH it (the server rejects duplicate + // FINISHes for the same runId). + let activeRunId = null; + const markFinished = (status) => { + if (!activeRunId) return; + const id = activeRunId; + activeRunId = null; + finishRun(token, id, status, proxyOptions); + }; + + try { + try { + runId = await startRun(token, model, proxyOptions); + activeRunId = runId; + } catch (error) { + log?.error?.("AUTH", `Freebuff run start failed: ${error.message}`); + throw error; + } + + let { response, transformedBody } = await doChat(); + + // Session gates that mean our claimed session is stale/absent: + // 428 waiting_room_required — no session row / instance id missing + // 409 session_superseded — another instance took over the session + // 409 session_model_mismatch — session bound to a different model + // 410 session_expired — the active session's expires_at passed + // In every case: abandon the run, force a fresh session claim + a fresh + // run, then retry exactly once. + if (SESSION_STALE_CODES.has(response.status)) { + log?.debug?.("AUTH", `Freebuff ${response.status} session gate — re-claiming session`); + markFinished("cancelled"); + try { + session = await ensureSession(token, model, proxyOptions, true); + runId = await startRun(token, model, proxyOptions); + activeRunId = runId; + } catch (error) { + log?.error?.("AUTH", `Freebuff session re-claim failed: ${error.message}`); + throw error; + } + ({ response, transformedBody } = await doChat()); + + if (SESSION_STALE_CODES.has(response.status)) { + const text = await response.text().catch(() => ""); + const err = new Error( + `Freebuff session gate refused (${response.status}) — another freebuff instance may be holding the session. ${text.slice(0, 160)}`, + ); + err.status = response.status; + throw err; + } + } + + // The authToken has no refresh path — when it dies, the user re-logs in. + // Drop the cached session for this token so a re-login starts clean. + if (response.status === 401) { + sessionCache.delete(sessionCacheKey(token, model)); + const text = await response.text().catch(() => ""); + const err = new Error(`Freebuff auth failed (401) — re-login in the dashboard. ${text.slice(0, 120)}`); + err.status = 401; + throw err; + } + + // Best-effort run accounting, mirroring the CLI. + markFinished(response.ok ? "completed" : "failed"); + + return { response, url, headers, transformedBody }; + } finally { + // Never leave the current run dangling on thrown paths (network/abort/gate). + if (activeRunId) { + finishRun(token, activeRunId, "failed", proxyOptions); + } + } + } +} + +export const __test__ = { + ensureSession, + requestSession, + startRun, + resetSessionCache, + rootAgentIdForModel, + injectFreebuffMarker, + fetchWithNetworkRetry, + FREEBUFF_SYSTEM_MARKER, + SESSION_STALE_CODES, +}; + +export default FreebuffExecutor; diff --git a/open-sse/providers/registry/freebuff.js b/open-sse/providers/registry/freebuff.js new file mode 100644 index 00000000..a3431050 --- /dev/null +++ b/open-sse/providers/registry/freebuff.js @@ -0,0 +1,84 @@ +/** + * Freebuff — the free, ad-supported coding agent by Codebuff (freebuff.com). + * + * The Freebuff CLI (github.com/CodebuffAI/freebuff) is an interactive TUI that + * talks to the Codebuff/Freebuff backend. Two hosts are involved: + * - login flow (freebuff mode) runs on https://freebuff.com + * POST /api/auth/cli/code {fingerprintId} → { loginUrl, fingerprintHash, expiresAt } + * open loginUrl in browser, then GET /api/auth/cli/status until {user}. + * (The server echoes the request host into loginUrl, so calling + * freebuff.com yields freebuff.com/login?auth_code=… exactly like the + * official CLI — www.codebuff.com would yield the wrong link.) + * - LLM traffic goes to the OpenAI-compatible endpoint on + * https://www.codebuff.com/api/v1/chat/completions + * (freebuff.com does NOT serve /api/v1/* — it 404s with the SPA shell.) + * + * Both hosts share one backend: the authToken obtained via the freebuff.com + * login validates against www.codebuff.com (Bearer auth). The request body + * must carry the CLI's `codebuff` provider block + * (`codebuff_metadata.run_id/client_id/cost_mode`) — injected by + * executors/freebuff.js. cost_mode:"free" is what admits a session on the free + * (country-gated, session-limited) tier instead of billing credits. + */ +export default { + id: "freebuff", + priority: 45, + hasFree: true, + alias: "fb", + uiAlias: "fb", + display: { + name: "Freebuff", + icon: "bolt", + color: "#84CC16", + textIcon: "FB", + website: "https://freebuff.com", + notice: { + signupUrl: "https://freebuff.com", + text: "Free ad-supported coding agent by Codebuff. Sign in with your Freebuff/Codebuff account via browser login. Free tier is ad-supported and limited in some regions (limited mode: 6 x 1-hour sessions/day); full mode runs in select countries.", + }, + }, + category: "free", + authType: "oauth", + authModes: ["oauth"], + hasOAuth: true, + transport: { + baseUrl: "https://www.codebuff.com/api/v1/chat/completions", + format: "openai", + headers: { + "User-Agent": "ai-sdk/openai-compatible/1.0/codebuff", + }, + retry: { + 429: { attempts: 2, delayMs: 2000 }, + 503: { attempts: 2, delayMs: 1500 }, + }, + // Session endpoint doubles as the quota API: GET /api/v1/freebuff/session + // returns the shared daily session quota (rateLimitsByModel) without + // claiming anything — POST would burn a session, so quota reads are GET + // only (see services/usage/freebuff.js). + usage: { + url: "https://www.codebuff.com/api/v1/freebuff/session", + }, + }, + features: { + usage: true, + }, + // Mirrors the CLI's free picker (FREEBUFF_ROOT_AGENT_ID_BY_MODEL). + // mimo/mimo-v2.5-pro is intentionally absent — it is not a free-tier model + // and would bill credits or be rejected under the base2-free agent. + models: [ + { id: "deepseek/deepseek-v4-flash", name: "DeepSeek V4 Flash" }, + { id: "deepseek/deepseek-v4-pro", name: "DeepSeek V4 Pro" }, + { id: "mimo/mimo-v2.5", name: "MiMo 2.5" }, + { id: "minimax/minimax-m3", name: "MiniMax M3" }, + { id: "openai/gpt-5.6-luna", name: "GPT-5.6 Luna" }, + ], + // Login-flow host — the CLI in freebuff mode logs in via freebuff.com, and + // the server builds loginUrl from the host it was called on, so the link the + // user opens must come from freebuff.com to match the official CLI. + oauth: { + baseUrl: "https://freebuff.com", + loginCodePath: "/api/auth/cli/code", + loginStatusPath: "/api/auth/cli/status", + oauthTimeoutMs: 300000, + }, +}; diff --git a/open-sse/services/usage/freebuff.js b/open-sse/services/usage/freebuff.js new file mode 100644 index 00000000..c90d6ae5 --- /dev/null +++ b/open-sse/services/usage/freebuff.js @@ -0,0 +1,115 @@ +/** + * Freebuff usage handler + * + * Freebuff has no separate billing/quota API — the daily free/premium session + * quota lives on the session endpoint itself. Reading it MUST use + * GET /api/v1/freebuff/session (the CLI's status poll): POST would CLAIM a + * session and burn 1.0 unit of the daily quota, which a quota tracker must + * never do. + * + * The GET response carries the shared session quota as `rateLimitsByModel`, + * keyed by model id, on the pre-join (`none`), `active`, and `ended` states: + * { limit, recentCount, resetAt, period: 'pacific_day'|'pacific_week', + * resetTimeZone, entitlementBreakdown? } + * `recentCount` is fractional — a long agent run can consume 1.3 units — and + * includes the active session's own 1.0-unit reservation. `limit` can be + * raised by referral/streak rewards (entitlementBreakdown.base + referral + + * streak). + */ + +import REGISTRY from "../../providers/registry/index.js"; +import { U, fetchWithTimeout } from "./shared.js"; + +// Friendly labels from the registry model list (mirrors the CLI picker). +const freebuffRegistry = REGISTRY.find((r) => r.id === "freebuff") || {}; +const MODEL_LABELS = Object.fromEntries( + (freebuffRegistry.models || []).map((m) => [m.id, m.name]), +); + +function sessionUrl() { + return U("freebuff").url; +} + +export async function getFreebuffUsage(accessToken, providerSpecificData, proxyOptions = null) { + if (!accessToken) { + return { message: "Freebuff credential not available — connect a Freebuff login first." }; + } + + try { + const response = await fetchWithTimeout( + sessionUrl(), + { + method: "GET", + headers: { + Authorization: `Bearer ${accessToken}`, + "User-Agent": "codebuff-cli/0.0.138", + Accept: "application/json", + }, + }, + 15000, + proxyOptions, + ); + + if (response.status === 401) { + return { message: "Freebuff credential invalid or expired — re-login in the dashboard." }; + } + if (response.status === 403) { + // A 403 from the session endpoint is usually a server-side gate status + // (country_blocked / banned), not a credential problem — telling the + // user to re-login would be misleading (mirrors the CLI's + // callFreebuffSession 403 branch). + const body = await response.json().catch(() => ({})); + if (body?.status === "country_blocked") { + return { message: "Freebuff is not available in your region." }; + } + if (body?.status === "banned") { + return { message: "Your Freebuff account has been banned." }; + } + return { + message: `Freebuff quota access denied (403)${body?.message ? `: ${body.message}` : ""}.`, + }; + } + // 404 = no session row at all → pre-join state, no quota to report. + if (response.status === 404) { + return { plan: "Freebuff", message: "Freebuff connected. No session quota to report right now." }; + } + if (!response.ok) { + return { message: `Freebuff quota API error (${response.status}).` }; + } + + const data = await response.json().catch(() => ({})); + const rateLimits = { ...(data.rateLimitsByModel || {}) }; + // An active session carries its own `rateLimit` row — fold it in when the + // shared map omits the model (older servers). + if (data.status === "active" && data.rateLimit && !rateLimits[data.model]) { + rateLimits[data.model] = data.rateLimit; + } + + const quotas = {}; + for (const [model, rl] of Object.entries(rateLimits)) { + if (!rl || typeof rl !== "object") continue; + const used = Number(rl.recentCount); + const total = Number(rl.limit); + quotas[model] = { + used: Number.isFinite(used) ? used : 0, + total: Number.isFinite(total) ? total : 0, + resetAt: rl.resetAt || null, + unlimited: false, + // Daily/weekly Pacific session allowance replenishes at resetAt — the + // UI must say "Resets in", not "Expires in". + recurring: true, + ...(MODEL_LABELS[model] ? { displayName: MODEL_LABELS[model] } : {}), + }; + } + + const plan = data.accessTier === "limited" ? "Freebuff (Limited)" : "Freebuff"; + if (Object.keys(quotas).length === 0) { + return { plan, message: "Freebuff connected. No session quota to report right now." }; + } + return { plan, quotas }; + } catch (error) { + return { message: `Freebuff usage error: ${error.message}` }; + } +} + +export default getFreebuffUsage; diff --git a/package.json b/package.json index 4374a515..8661b19b 100644 --- a/package.json +++ b/package.json @@ -26,12 +26,13 @@ "@xyflow/react": "^12.10.1", "bcryptjs": "^3.0.3", "confbox": "^0.2.4", + "dompurify": "^3.4.13", "express": "^5.2.1", "http-proxy-middleware": "^3.0.5", "jose": "^6.1.3", "marked": "^18.0.1", "material-symbols": "^0.44.6", - "monaco-editor": "^0.55.1", + "monaco-editor": "^0.56.0", "next": "^16.1.6", "node-forge": "^1.3.3", "node-machine-id": "^1.1.12", @@ -58,5 +59,8 @@ "eslint-config-next": "16.1.6", "postcss": "^8.5.6", "tailwindcss": "^4" + }, + "overrides": { + "dompurify": "^3.4.13" } } diff --git a/public/providers/freebuff.png b/public/providers/freebuff.png new file mode 100644 index 0000000000000000000000000000000000000000..4dc21151e83241cb19c4316270bf89c9f6159d44 GIT binary patch literal 2647 zcmd5;`8(8I8~@H2ni<;+rLxpS*0Q9C5e8XiEJG2=lI%-%Mkq6~WE`Rm+CQB-l zh7>AfvStY-V;f6kZH9Ne&vQNRzwn;x`kc>wf6nK=uk*uwuInUOS{U=gMd1Jd@MBHR zp5ria7f>F~{!YiGokI{$J##$(s7~i)xo~rGl&i@(a{!2x;rQYJU~AVu4FF*(05E$Q z0MJv>$BQ=|0+ zkA=<8r#(FuI=LnCsaHbH_U0deZSEl8xqmey~<=|UI` zHg9K-i?xv#*9A?E>1SeUD`$POrx33aMe<`8_8_<6{nRcYfQ)b9(bXT&+hp1%IYNf$ zzu(a3QO!>&9-&e|o-X{}4bqKobu|oEQBsK4bxo5c6g?RarO&XOt-e2P!sU>~AfhhV z6DCXafIC>?=PKuvSpAp>N)tk)NIM&dP=nhXcyT-iL%VHT{$33nUqxPAjQ)`VX#8o! zEU2DZnebt!g+L14(!6hhJGY@t>5;Q6jrB<4wSy)xZJUrhHgiLaexjinM{#2I$I7y9as#wpW)tLxyA=l zP*Ct1pg6{@4=ObuS)>=B0GfFTlj--VqvIh`%IL#NY>G%!EMSnp_aJDZ6&W*hH#2ie zQhZrp9tJkcR*g>(U~gQATo|ceZWu3aDL`SYtnR?x78|CN1&q-=oP_TfHid!R+}tdK zf~vjU{r#0X^E7)pd?jn3uPlJ=)NEbPHPb?!>t!`H-GzPbamc`Xz(z-&y8p=6&i5G^ zLOJSJ?O(1^C0Wo{IO6KuK+GEDaG_eyi>t$O^78U5k-0;OsJr`IJKFxM7NppM$YMpK!)EV3 zo9d#>jGTx&;%)8ZxmY;;dW zYTOMNY>wxRQd2^d*res;h{`6`RD{eAskyc!@8dxyNA?}U99SQ&?aG4+3e?@RgsMa= zU3Q)6e$<*IEX$W_Q>$%+S8$+)ezbcXUU?#%`SlgSt;{V9N31&IxjDv|{P`2%Ji!Zx zN4xeKlf@4*B36S4Cp|h){cCIC`qo9f`;|8C6Bb7wm6pm#d>9h$&Ck0Qjs#BoS|mzo zX*zre(}~`=Jl>LF#O?5-SQHe&L=na;@-*(qnCJY|(z>R38RNF&n$gzyjT)9BDk@r5 zU46%YjAq{1*{S`#af9ko4;jDv=$I{Kqc>e{eNox2iumc%C$BZ;;C7$O#hSm;CA5rW z@dXb#Q{6rMGT>c}^Bt`qp@4ZM5TNAs)!fYNl!&sEU+=(xmgZe|35SU^HQ)XNw~p(j zd-jQ7-7SeiGsFmm-75bSy5zQyLF$4h-msD zZ8&4fe-1gC#xJH`HX(r?O|LxRb*cZm!ZH_Hyk=@8N#UMb82agfFM`X1}+@6Ra>Bv1<2GU7-)XYgO#ZbU5e z#;7bWKMGLg-BEBfLV)lH;!eW$OwVJTll6rd=}2hYq`PH6ZhO8y=kCAWXg37ie5?d@ zjHm#O>c-J-I{AGZGh7np+qoE0aZ483bo#~_7USwBj!%#(NagL-i`yjU-QK6CO;$b3H)Aow?(w z-gYlS{%mNgHRq?e<1al~l}aEAp{~$dTgmr;>hF(l)u}E($JZKDe|=!s33ZJ?61bj| z$pS-fqE3JBsSac+J-i+mV{{zrfFu^Oucr|t^5d;1I4XiU_}rFnHadD z2IizvsFCP200(@BLQgwO5rr@s;O5Q&=>Msu%s_)DqjPZ_x>P6u{`m1@xXtqsSLjh` z%^X-YUmfpeO0SIjE zN;SDh;R>Rx*==C#59~Hq?K8~D_gTur^zbZQF33i102r3!alBlkQW8wkW=6m0-4D_r zwPO@S>gf7qIF_WPU{5lJnCVxn3=S*~X~7*8(|jhB39SlfXMOhMH3tXsa0^z;kqRan za1KYB*xF-FZ95SART$_MuyO zh0df*=B%FruhXexMSsROF1@w)!2&x*`T2&|KHy28;~55t`g` { + const fingerprintId = crypto.randomUUID(); + const baseUrl = (config.baseUrl || LOGIN_HOST).replace(/\/$/, ""); + const response = await fetch( + `${baseUrl}${config.loginCodePath || "/api/auth/cli/code"}`, + { + method: "POST", + headers: { + "Content-Type": "application/json", + Accept: "application/json", + "User-Agent": "codebuff-cli/0.0.138", + }, + body: JSON.stringify({ fingerprintId }), + }, + ); + if (!response.ok) { + const error = await response.text(); + throw new Error(`Freebuff login code request failed: ${error}`); + } + const data = await response.json(); + const loginUrl = typeof data.loginUrl === "string" ? data.loginUrl : ""; + const authCode = loginUrl.match(/auth_code=([^&]+)/)?.[1] || ""; + const expiresAt = Number(data.expiresAt) || 0; + // Server codes live ~1h, but the official CLI stops polling after 5 minutes + // (and OAuthModal derives its deadline from expires_in). Clamp to + // oauthTimeoutMs so the modal doesn't hammer /api/auth/cli/status for an hour. + // When the server omits expiresAt, fall back to the full oauthTimeoutMs — + // never the 60s floor, or the user gets only a minute to finish login. + const timeoutSec = Math.max(60, Math.floor((config.oauthTimeoutMs || 300000) / 1000)); + const serverMs = + Number.isFinite(expiresAt) && expiresAt > 0 ? expiresAt - Date.now() : timeoutSec * 1000; + const expiresIn = Math.max(60, Math.min(Math.floor(serverMs / 1000), timeoutSec)); + return { + // fingerprintId + fingerprintHash + expiresAt travel inside device_code; + // pollToken decodes them for /api/auth/cli/status. + device_code: JSON.stringify({ + fingerprintId: data.fingerprintId || fingerprintId, + fingerprintHash: data.fingerprintHash, + expiresAt, + }), + user_code: authCode || "", + verification_uri: loginUrl, + verification_uri_complete: loginUrl, + expires_in: expiresIn, + interval: 5, + }; + }, + pollToken: async (config, deviceCode) => { + let parsed = {}; + try { + parsed = JSON.parse(deviceCode) || {}; + } catch { + parsed = {}; + } + const { fingerprintId, fingerprintHash, expiresAt } = parsed; + if (!fingerprintId || !fingerprintHash || !expiresAt) { + return { ok: true, data: { error: "authorization_pending" } }; + } + // The status endpoint is a GET with query params; it returns 401 + // {"error":"Authentication failed"} while the device is still waiting for + // the browser sign-in, and 200 { user } once authorized. Mirror the CLI: + // keep polling on anything except a `user` payload (the modal enforces its + // own 5-minute deadline). + const baseUrl = (config.baseUrl || LOGIN_HOST).replace(/\/$/, ""); + const query = new URLSearchParams({ fingerprintId, fingerprintHash, expiresAt: String(expiresAt) }); + const response = await fetch( + `${baseUrl}${config.loginStatusPath || "/api/auth/cli/status"}?${query.toString()}`, + { + method: "GET", + headers: { + Accept: "application/json", + "User-Agent": "codebuff-cli/0.0.138", + }, + }, + ); + let data; + try { + data = await response.json(); + } catch { + data = {}; + } + + if (data?.user?.authToken) { + return { ok: true, data: { access_token: data.user.authToken, ...data.user } }; + } + return { ok: true, data: { error: "authorization_pending" } }; + }, + mapTokens: (tokens) => ({ + accessToken: tokens.access_token, + refreshToken: null, + email: tokens.email || undefined, + displayName: tokens.name || undefined, + providerSpecificData: { + authMethod: "device_code", + fingerprintId: tokens.fingerprintId || null, + userId: tokens.id || null, + }, + }), +}; + +export default freebuff; diff --git a/tests/unit/freebuff-provider.test.js b/tests/unit/freebuff-provider.test.js new file mode 100644 index 00000000..a96c57f0 --- /dev/null +++ b/tests/unit/freebuff-provider.test.js @@ -0,0 +1,588 @@ +import { describe, it, expect, vi, afterEach, beforeEach } from "vitest"; +import freebuff from "../../src/lib/oauth/providers/freebuff.js"; + +// Mock proxyAwareFetch so session/run/chat flows never hit the network. +const fetchMock = vi.fn(); +vi.mock("../../open-sse/utils/proxyFetch.js", () => ({ + proxyAwareFetch: (...args) => fetchMock(...args), +})); + +import { FreebuffExecutor, __test__ } from "../../open-sse/executors/freebuff.js"; + +const { + ensureSession, + requestSession, + startRun, + resetSessionCache, + rootAgentIdForModel, + injectFreebuffMarker, + FREEBUFF_SYSTEM_MARKER, +} = __test__; + +const CONFIG = { + baseUrl: "https://freebuff.com", + loginCodePath: "/api/auth/cli/code", + loginStatusPath: "/api/auth/cli/status", +}; + +function jsonResponse(data, { ok = true, status = 200 } = {}) { + return { + ok, + status, + json: async () => data, + text: async () => JSON.stringify(data), + }; +} + +afterEach(() => { + vi.unstubAllGlobals(); +}); + +beforeEach(() => { + fetchMock.mockReset(); + resetSessionCache(); +}); + +describe("freebuff oauth flow", () => { + it("requestDeviceCode posts a fingerprint to the freebuff.com login host and surfaces the login URL", async () => { + const loginUrl = "https://freebuff.com/login?auth_code=AbCd-123"; + vi.stubGlobal( + "fetch", + vi.fn().mockResolvedValue({ + ok: true, + status: 200, + json: async () => ({ + fingerprintId: "fp-1", + fingerprintHash: "hash-1", + loginUrl, + expiresAt: Date.now() + 60000, + }), + }), + ); + const out = await freebuff.requestDeviceCode(CONFIG); + expect(out.verification_uri_complete).toBe(loginUrl); + expect(out.user_code).toBe("AbCd-123"); + expect(out.interval).toBe(5); + expect(out.expires_in).toBe(60); + // The server echoes the request host into loginUrl — it must be freebuff.com, + // not www.codebuff.com, to match the official CLI's login link. + const [url] = global.fetch.mock.calls[0]; + expect(url.startsWith("https://freebuff.com/api/auth/cli/code")).toBe(true); + const payload = JSON.parse(out.device_code); + expect(payload.fingerprintId).toBe("fp-1"); + expect(payload.fingerprintHash).toBe("hash-1"); + }); + + it("requestDeviceCode falls back to oauthTimeoutMs when the server omits expiresAt", async () => { + vi.stubGlobal( + "fetch", + vi.fn().mockResolvedValue({ + ok: true, + status: 200, + json: async () => ({ + fingerprintId: "fp-1", + fingerprintHash: "hash-1", + loginUrl: "https://freebuff.com/login?auth_code=Ab", + // no expiresAt — must NOT collapse to the 60s floor + }), + }), + ); + const out = await freebuff.requestDeviceCode(CONFIG); + expect(out.expires_in).toBe(300); + }); + + it("requestDeviceCode leaves user_code empty when loginUrl has no auth_code", async () => { + vi.stubGlobal( + "fetch", + vi.fn().mockResolvedValue({ + ok: true, + status: 200, + json: async () => ({ + fingerprintId: "fp-1", + fingerprintHash: "hash-1", + loginUrl: "https://freebuff.com/login", + expiresAt: Date.now() + 60000, + }), + }), + ); + const out = await freebuff.requestDeviceCode(CONFIG); + expect(out.user_code).toBe(""); + }); + + it("requestDeviceCode clamps expires_in to oauthTimeoutMs", async () => { + vi.stubGlobal( + "fetch", + vi.fn().mockResolvedValue({ + ok: true, + status: 200, + json: async () => ({ + fingerprintId: "fp-1", + fingerprintHash: "hash-1", + loginUrl: "https://freebuff.com/login?auth_code=Ab", + // server-side codes live ~1h; the modal deadline must stay at 5 min + expiresAt: Date.now() + 3600000, + }), + }), + ); + const out = await freebuff.requestDeviceCode(CONFIG); + expect(out.expires_in).toBe(300); + }); + + it("pollToken keeps polling on 401 pending (GET with query params)", async () => { + vi.stubGlobal( + "fetch", + vi.fn().mockResolvedValue({ + ok: false, + status: 401, + json: async () => ({ error: "Authentication failed" }), + }), + ); + const res = await freebuff.pollToken( + CONFIG, + JSON.stringify({ fingerprintId: "fp-1", fingerprintHash: "h", expiresAt: 123 }), + ); + expect(res.ok).toBe(true); + expect(res.data.error).toBe("authorization_pending"); + const [url, opts] = global.fetch.mock.calls[0]; + expect(url).toContain("https://freebuff.com/api/auth/cli/status?"); + expect(url).toContain("fingerprintId=fp-1"); + expect(opts.method).toBe("GET"); + }); + + it("pollToken returns the authToken on success", async () => { + vi.stubGlobal( + "fetch", + vi.fn().mockResolvedValue({ + ok: true, + status: 200, + json: async () => ({ + user: { id: "u1", email: "a@b.c", name: "A", authToken: "tok-123", fingerprintId: "fp-1" }, + }), + }), + ); + const res = await freebuff.pollToken( + CONFIG, + JSON.stringify({ fingerprintId: "fp-1", fingerprintHash: "h", expiresAt: 123 }), + ); + expect(res.data.access_token).toBe("tok-123"); + }); + + it("mapTokens stores accessToken + identity", () => { + const t = freebuff.mapTokens({ + access_token: "tok", + email: "a@b.c", + name: "A", + id: "u1", + fingerprintId: "fp", + }); + expect(t.accessToken).toBe("tok"); + expect(t.email).toBe("a@b.c"); + expect(t.displayName).toBe("A"); + expect(t.refreshToken).toBeNull(); + expect(t.providerSpecificData.fingerprintId).toBe("fp"); + expect(t.providerSpecificData.authMethod).toBe("device_code"); + }); +}); + +describe("freebuff executor wire shape", () => { + it("injects codebuff_metadata at TOP LEVEL (mirrors the CLI, not nested under codebuff)", () => { + const ex = new FreebuffExecutor(); + const body = { model: "deepseek/deepseek-v4-flash", messages: [{ role: "user", content: "hi" }] }; + const out = ex.transformRequest(body.model, body, true, { + providerSpecificData: { fingerprintId: "fp-1" }, + }); + // Top-level keys — the backend rejects the nested shape with + // "No runId found in request body". + expect(out.codebuff_metadata.cost_mode).toBe("free"); + expect(out.codebuff_metadata.client_id).toBe("fp-1"); + // run_id is the registered runId and is attached by execute(), not here. + expect(out.codebuff_metadata.run_id).toBeUndefined(); + expect(out.codebuff).toBeUndefined(); + expect(out.provider.allow_fallbacks).toBe(false); + // Free-tier marker is prepended so the first message opens with the CLI root prompt. + expect(out.messages[0].content).toBe(FREEBUFF_SYSTEM_MARKER); + }); + + it("buildUrl targets the Codebuff chat completions endpoint (www.codebuff.com)", () => { + const ex = new FreebuffExecutor(); + expect(ex.buildUrl()).toBe("https://www.codebuff.com/api/v1/chat/completions"); + }); +}); + +describe("freebuff session pre-flight", () => { + it("claims a session via POST /session with x-freebuff-model and caches it per token+model", async () => { + fetchMock.mockResolvedValue( + jsonResponse({ + status: "active", + instanceId: "inst-1", + model: "deepseek/deepseek-v4-flash", + expiresAt: new Date(Date.now() + 3600000).toISOString(), + }), + ); + const first = await ensureSession("tok-1", "deepseek/deepseek-v4-flash", null); + expect(first).toEqual({ instanceId: "inst-1", status: "active" }); + + const [url, opts] = fetchMock.mock.calls[0]; + expect(url).toBe("https://www.codebuff.com/api/v1/freebuff/session"); + expect(opts.method).toBe("POST"); + expect(opts.headers["x-freebuff-model"]).toBe("deepseek/deepseek-v4-flash"); + expect(opts.headers.Authorization).toBe("Bearer tok-1"); + + // Second call for the same token+model hits the cache — no new claim. + await ensureSession("tok-1", "deepseek/deepseek-v4-flash", null); + expect(fetchMock.mock.calls.length).toBe(1); + + // Different model → separate claim. + fetchMock.mockResolvedValue( + jsonResponse({ status: "active", instanceId: "inst-2", expiresAt: new Date(Date.now() + 3600000).toISOString() }), + ); + await ensureSession("tok-1", "minimax/minimax-m3", null); + expect(fetchMock.mock.calls.length).toBe(2); + }); + + it("treats status none as no-session-needed (instanceId null)", async () => { + fetchMock.mockResolvedValue(jsonResponse({ status: "none", accessTier: "full" })); + const res = await ensureSession("tok-1", "deepseek/deepseek-v4-flash", null); + expect(res).toEqual({ instanceId: null, status: "none" }); + }); + + it("throws a friendly error on rate_limited", async () => { + fetchMock.mockResolvedValue( + jsonResponse({ status: "rate_limited", message: "4 of 6 sessions used today" }), + ); + await expect(ensureSession("tok-1", "deepseek/deepseek-v4-flash", null)).rejects.toThrow( + /session limit reached/i, + ); + }); + + it("throws a friendly error on country_blocked", async () => { + fetchMock.mockResolvedValue(jsonResponse({ status: "country_blocked" })); + await expect(ensureSession("tok-1", "deepseek/deepseek-v4-flash", null)).rejects.toThrow( + /not available in your region/i, + ); + }); + + it("throws a 401 re-login error when the session endpoint rejects the token", async () => { + fetchMock.mockResolvedValue(jsonResponse({ error: "unauthorized" }, { status: 401, ok: false })); + await expect(requestSession("tok-expired", "deepseek/deepseek-v4-flash", null)).rejects.toThrow(/re-login/i); + }); +}); + +describe("freebuff free-tier system marker", () => { + it("prepends the canonical marker when the first message is a system prompt", () => { + const out = injectFreebuffMarker({ + messages: [{ role: "system", content: "You are a helpful assistant." }, { role: "user", content: "hi" }], + }); + expect(out.messages[0].content).toBe(`${FREEBUFF_SYSTEM_MARKER}\n\nYou are a helpful assistant.`); + expect(out.messages[1].role).toBe("user"); + }); + + it("inserts a marker system message when the first message is not a system prompt", () => { + const out = injectFreebuffMarker({ messages: [{ role: "user", content: "hi" }] }); + expect(out.messages[0]).toEqual({ role: "system", content: FREEBUFF_SYSTEM_MARKER }); + expect(out.messages[1]).toEqual({ role: "user", content: "hi" }); + }); + + it("is idempotent when the first system message already opens with the marker", () => { + const messages = [{ role: "system", content: FREEBUFF_SYSTEM_MARKER }]; + const out = injectFreebuffMarker({ messages }); + expect(out.messages).toBe(messages); + }); + + it("inserts a marker system message when the first system content is a block array", () => { + const out = injectFreebuffMarker({ + messages: [{ role: "system", content: [{ type: "text", text: "hi" }] }, { role: "user", content: "x" }], + }); + expect(out.messages[0]).toEqual({ role: "system", content: FREEBUFF_SYSTEM_MARKER }); + expect(out.messages[1].content).toEqual([{ type: "text", text: "hi" }]); + expect(out.messages[2].content).toBe("x"); + }); +}); + +describe("freebuff run registration", () => { + it("maps freebuff models to their root free agent ids", () => { + expect(rootAgentIdForModel("deepseek/deepseek-v4-flash")).toBe("base2-free-deepseek-flash"); + expect(rootAgentIdForModel("deepseek/deepseek-v4-pro")).toBe("base2-free-deepseek"); + expect(rootAgentIdForModel("mimo/mimo-v2.5")).toBe("base2-free-mimo"); + expect(rootAgentIdForModel("minimax/minimax-m3")).toBe("base2-free-minimax-m3"); + expect(rootAgentIdForModel("openai/gpt-5.6-luna")).toBe("base2-free-luna"); + expect(rootAgentIdForModel("some/unknown-model")).toBe("base2-free"); + }); + + it("registers a run via POST /agent-runs and returns the runId", async () => { + fetchMock.mockResolvedValue(jsonResponse({ runId: "run-abc" })); + const runId = await startRun("tok-1", "deepseek/deepseek-v4-flash", null); + expect(runId).toBe("run-abc"); + + const [url, opts] = fetchMock.mock.calls[0]; + expect(url).toBe("https://www.codebuff.com/api/v1/agent-runs"); + expect(opts.method).toBe("POST"); + expect(opts.headers.Authorization).toBe("Bearer tok-1"); + const payload = JSON.parse(opts.body); + expect(payload.action).toBe("START"); + expect(payload.agentId).toBe("base2-free-deepseek-flash"); + expect(payload.ancestorRunIds).toEqual([]); + }); + + it("throws when the run start fails", async () => { + fetchMock.mockResolvedValue(jsonResponse({ error: "bad" }, { status: 500, ok: false })); + await expect(startRun("tok-1", "deepseek/deepseek-v4-flash", null)).rejects.toThrow(/run start failed/i); + }); + + it("retries transient network errors on run registration", async () => { + fetchMock.mockImplementation(async (url) => { + if (url.includes("/agent-runs")) { + const calls = fetchMock.mock.calls.filter(([u]) => u.includes("/agent-runs")).length; + if (calls === 1) throw new Error("fetch failed (cause: ECONNRESET)"); + return jsonResponse({ runId: "run-retried" }); + } + throw new Error("unexpected url"); + }); + const runId = await startRun("tok-1", "deepseek/deepseek-v4-flash", null); + expect(runId).toBe("run-retried"); + }); +}); + +describe("freebuff executor execute", () => { + const CHAT_URL = "https://www.codebuff.com/api/v1/chat/completions"; + const SESSION_URL = "https://www.codebuff.com/api/v1/freebuff/session"; + const RUN_URL = "https://www.codebuff.com/api/v1/agent-runs"; + const MODEL = "deepseek/deepseek-v4-flash"; + const credentials = { accessToken: "tok-1", providerSpecificData: { fingerprintId: "fp-1" } }; + + // Default happy-path backend: session active, run registered, chat 200. + const happyPath = () => { + fetchMock.mockImplementation(async (url) => { + if (url === SESSION_URL) { + return jsonResponse({ status: "active", instanceId: "inst-1", expiresAt: new Date(Date.now() + 3600000).toISOString() }); + } + if (url === RUN_URL) { + return jsonResponse({ runId: "run-1" }); + } + return jsonResponse({ choices: [{ message: { content: "hi" } }] }); + }); + }; + + it("sends the registered runId + session instance id on the chat request", async () => { + happyPath(); + + const ex = new FreebuffExecutor(); + const body = { model: MODEL, messages: [{ role: "user", content: "hi" }] }; + const { response } = await ex.execute({ model: MODEL, body, stream: false, credentials, log: null }); + + expect(response.status).toBe(200); + const chatCall = fetchMock.mock.calls.find(([u]) => u === CHAT_URL); + expect(chatCall).toBeTruthy(); + const sent = JSON.parse(chatCall[1].body); + expect(sent.codebuff_metadata.run_id).toBe("run-1"); + expect(sent.codebuff_metadata.freebuff_instance_id).toBe("inst-1"); + expect(sent.codebuff_metadata.trace_session_id).toMatch( + /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/, + ); + expect(sent.codebuff_metadata.cost_mode).toBe("free"); + expect(sent.codebuff_metadata.client_id).toBe("fp-1"); + expect(sent.codebuff).toBeUndefined(); + // Free-tier marker present at position 0 of the request body. + expect(sent.messages[0].content.startsWith("You are Buffy,")).toBe(true); + }); + + it("retries exactly once on 428 with a fresh session AND a fresh run", async () => { + let chatHits = 0; + fetchMock.mockImplementation(async (url) => { + if (url === SESSION_URL) { + return jsonResponse({ status: "active", instanceId: "inst-2", expiresAt: new Date(Date.now() + 3600000).toISOString() }); + } + if (url === RUN_URL) { + return jsonResponse({ runId: "run-2" }); + } + chatHits += 1; + if (chatHits === 1) return jsonResponse({ error: "waiting_room_required" }, { status: 428, ok: false }); + return jsonResponse({ choices: [{ message: { content: "hi" } }] }); + }); + + const ex = new FreebuffExecutor(); + const body = { model: MODEL, messages: [{ role: "user", content: "hi" }] }; + const { response } = await ex.execute({ model: MODEL, body, stream: false, credentials, log: null }); + + expect(response.status).toBe(200); + expect(chatHits).toBe(2); + // Session was claimed twice (initial + forced re-claim). + expect(fetchMock.mock.calls.filter(([u]) => u === SESSION_URL).length).toBe(2); + // Runs: START #1, FINISH(cancelled) #1 (abandoned on 428), START #2, + // FINISH(completed) #2. + const runCalls = fetchMock.mock.calls.filter(([u]) => u === RUN_URL); + expect(runCalls.length).toBe(4); + const runActions = runCalls.map((c) => JSON.parse(c[1].body).action); + expect(runActions.filter((a) => a === "START").length).toBe(2); + expect(runActions.filter((a) => a === "FINISH").length).toBe(2); + const finishPayload = JSON.parse(runCalls[runCalls.length - 1][1].body); + expect(finishPayload.status).toBe("completed"); + // The retried chat request carried the re-claimed session + fresh run. + const lastChat = fetchMock.mock.calls.filter(([u]) => u === CHAT_URL).pop(); + const sent = JSON.parse(lastChat[1].body); + expect(sent.codebuff_metadata.run_id).toBe("run-2"); + expect(sent.codebuff_metadata.freebuff_instance_id).toBe("inst-2"); + }); + + it("re-claims the session on 409 session_superseded and retries once", async () => { + let chatHits = 0; + fetchMock.mockImplementation(async (url) => { + if (url === SESSION_URL) return jsonResponse({ status: "active", instanceId: "inst-2", expiresAt: new Date(Date.now() + 3600000).toISOString() }); + if (url === RUN_URL) return jsonResponse({ runId: "run-2" }); + chatHits += 1; + if (chatHits === 1) { + return jsonResponse({ error: "session_superseded", message: "Another instance took over" }, { status: 409, ok: false }); + } + return jsonResponse({ choices: [{ message: { content: "hi" } }] }); + }); + + const ex = new FreebuffExecutor(); + const body = { model: MODEL, messages: [{ role: "user", content: "hi" }] }; + const { response } = await ex.execute({ model: MODEL, body, stream: false, credentials, log: null }); + + expect(response.status).toBe(200); + expect(chatHits).toBe(2); + // Session re-claimed (initial + forced) and runs restarted. + expect(fetchMock.mock.calls.filter(([u]) => u === SESSION_URL).length).toBe(2); + const runCalls = fetchMock.mock.calls.filter(([u]) => u === RUN_URL); + expect(runCalls.filter((c) => JSON.parse(c[1].body).action === "START").length).toBe(2); + }); + + it("re-claims the session on 410 session_expired and retries once", async () => { + let chatHits = 0; + fetchMock.mockImplementation(async (url) => { + if (url === SESSION_URL) return jsonResponse({ status: "active", instanceId: "inst-2", expiresAt: new Date(Date.now() + 3600000).toISOString() }); + if (url === RUN_URL) return jsonResponse({ runId: "run-2" }); + chatHits += 1; + if (chatHits === 1) return jsonResponse({ error: "session_expired" }, { status: 410, ok: false }); + return jsonResponse({ choices: [{ message: { content: "hi" } }] }); + }); + + const ex = new FreebuffExecutor(); + const body = { model: MODEL, messages: [{ role: "user", content: "hi" }] }; + const { response } = await ex.execute({ model: MODEL, body, stream: false, credentials, log: null }); + expect(response.status).toBe(200); + expect(chatHits).toBe(2); + }); + + it("throws a 401 re-login error when the chat endpoint rejects the token", async () => { + fetchMock.mockImplementation(async (url) => { + if (url === SESSION_URL) return jsonResponse({ status: "active", instanceId: "inst-1", expiresAt: new Date(Date.now() + 3600000).toISOString() }); + if (url === RUN_URL) return jsonResponse({ runId: "run-1" }); + return jsonResponse({ error: "unauthorized" }, { status: 401, ok: false }); + }); + + const ex = new FreebuffExecutor(); + const body = { model: MODEL, messages: [{ role: "user", content: "hi" }] }; + await expect( + ex.execute({ model: MODEL, body, stream: false, credentials, log: null }), + ).rejects.toThrow(/re-login/i); + }); + + it("throws when no access token is present", async () => { + const ex = new FreebuffExecutor(); + await expect( + ex.execute({ model: MODEL, body: { messages: [] }, stream: false, credentials: {}, log: null }), + ).rejects.toThrow(/no access token/i); + }); + + it("finishes the run as failed when the chat upstream errors", async () => { + // 400 (not in the 429/502/503 retry set) so the test stays fast and mirrors + // the real upstream rejection. + fetchMock.mockImplementation(async (url) => { + if (url === SESSION_URL) return jsonResponse({ status: "active", instanceId: "inst-1", expiresAt: new Date(Date.now() + 3600000).toISOString() }); + if (url === RUN_URL) return jsonResponse({ runId: "run-1" }); + return jsonResponse({ error: "upstream boom" }, { status: 400, ok: false }); + }); + + const ex = new FreebuffExecutor(); + const body = { model: MODEL, messages: [{ role: "user", content: "hi" }] }; + const { response } = await ex.execute({ model: MODEL, body, stream: false, credentials, log: null }); + + expect(response.status).toBe(400); + const runCalls = fetchMock.mock.calls.filter(([u]) => u === RUN_URL); + expect(runCalls.length).toBe(2); // START + FINISH + const finishPayload = JSON.parse(runCalls[1][1].body); + expect(finishPayload.action).toBe("FINISH"); + expect(finishPayload.status).toBe("failed"); + }); + + it("finishes the run as failed when execute throws mid-flight", async () => { + // AbortError (caller/stream abort) is never retried, keeping this test fast. + fetchMock.mockImplementation(async (url) => { + if (url === SESSION_URL) return jsonResponse({ status: "active", instanceId: "inst-1", expiresAt: new Date(Date.now() + 3600000).toISOString() }); + if (url === RUN_URL) return jsonResponse({ runId: "run-1" }); + throw Object.assign(new Error("aborted"), { name: "AbortError" }); + }); + + const ex = new FreebuffExecutor(); + const body = { model: MODEL, messages: [{ role: "user", content: "hi" }] }; + await expect( + ex.execute({ model: MODEL, body, stream: false, credentials, log: null }), + ).rejects.toThrow(/aborted/); + + const runCalls = fetchMock.mock.calls.filter(([u]) => u === RUN_URL); + expect(runCalls.length).toBe(2); // START + FINISH(failed) from the finally block + const finishPayload = JSON.parse(runCalls[1][1].body); + expect(finishPayload.action).toBe("FINISH"); + expect(finishPayload.status).toBe("failed"); + }); + + it("retries the chat POST on a transient fetch-level network error", async () => { + let chatHits = 0; + fetchMock.mockImplementation(async (url) => { + if (url === SESSION_URL) return jsonResponse({ status: "active", instanceId: "inst-1", expiresAt: new Date(Date.now() + 3600000).toISOString() }); + if (url === RUN_URL) return jsonResponse({ runId: "run-1" }); + chatHits += 1; + if (chatHits === 1) throw new Error("fetch failed (cause: ECONNRESET)"); + return jsonResponse({ choices: [{ message: { content: "hi" } }] }); + }); + + const ex = new FreebuffExecutor(); + const body = { model: MODEL, messages: [{ role: "user", content: "hi" }] }; + const { response } = await ex.execute({ model: MODEL, body, stream: false, credentials, log: null }); + + expect(response.status).toBe(200); + expect(chatHits).toBe(2); + // Run FINISHed exactly once (completed) — no double-FINISH from the retry. + const runCalls = fetchMock.mock.calls.filter(([u]) => u === RUN_URL); + expect(runCalls.length).toBe(2); // START + FINISH(completed) + expect(JSON.parse(runCalls[1][1].body).status).toBe("completed"); + }); + + it("does not double-FINISH the abandoned run when the re-claim fails", async () => { + let chatHits = 0; + let runStartCount = 0; + fetchMock.mockImplementation(async (url) => { + if (url === SESSION_URL) return jsonResponse({ status: "active", instanceId: "inst-2", expiresAt: new Date(Date.now() + 3600000).toISOString() }); + if (url === RUN_URL) { + // First START succeeds (run-1). Every later call fails with the + // transient ECONNRESET: the fire-and-forget FINISH swallows it, and + // the re-claim START propagates after its 3 network-retry attempts. + if (runStartCount === 0) { + runStartCount += 1; + return jsonResponse({ runId: "run-1" }); + } + throw new Error("fetch failed (cause: ECONNRESET)"); + } + chatHits += 1; + if (chatHits === 1) return jsonResponse({ error: "session_superseded" }, { status: 409, ok: false }); + return jsonResponse({ choices: [{ message: { content: "hi" } }] }); + }); + + const ex = new FreebuffExecutor(); + const body = { model: MODEL, messages: [{ role: "user", content: "hi" }] }; + // The re-claim failure rethrows the raw upstream error (the log line above + // it carries the "session re-claim failed" context). + await expect( + ex.execute({ model: MODEL, body, stream: false, credentials, log: null }), + ).rejects.toThrow(/fetch failed \(cause: ECONNRESET\)/); + + // run-1 was FINISH'd exactly once, as "cancelled" — the failed re-claim + // must NOT trigger a second (rejected by the server) FINISH. + const runCalls = fetchMock.mock.calls.filter(([u]) => u === RUN_URL); + const finishes = runCalls.filter(([, o]) => JSON.parse(o.body).action === "FINISH"); + expect(finishes.length).toBe(1); + expect(JSON.parse(finishes[0][1].body).status).toBe("cancelled"); + }); +}); diff --git a/tests/unit/freebuff-usage.test.js b/tests/unit/freebuff-usage.test.js new file mode 100644 index 00000000..7f53a2e3 --- /dev/null +++ b/tests/unit/freebuff-usage.test.js @@ -0,0 +1,204 @@ +import { describe, it, expect, vi, beforeEach } from "vitest"; + +vi.mock("../../open-sse/utils/proxyFetch.js", () => ({ + proxyAwareFetch: vi.fn(), +})); + +import { proxyAwareFetch } from "../../open-sse/utils/proxyFetch.js"; +import { getUsageForProvider } from "../../open-sse/services/usage.js"; +import { PROVIDERS } from "../../open-sse/providers/index.js"; +import { USAGE_SUPPORTED_PROVIDERS } from "../../src/shared/constants/providers.js"; +import { parseQuotaData } from "../../src/app/(dashboard)/dashboard/usage/components/ProviderLimits/utils.js"; + +const SESSION_URL = "https://www.codebuff.com/api/v1/freebuff/session"; + +function jsonResponse(body, status = 200) { + return new Response(JSON.stringify(body), { + status, + headers: { "Content-Type": "application/json" }, + }); +} + +const PRE_JOIN = { + status: "none", + accessTier: "limited", + rateLimitsByModel: { + "deepseek/deepseek-v4-flash": { + limit: 6, + recentCount: 4.1, + period: "pacific_day", + resetTimeZone: "America/Los_Angeles", + resetAt: "2026-08-06T07:00:00.000Z", + entitlementBreakdown: { base: 6, referral: 0, streak: 0 }, + }, + "openai/gpt-5.6-luna": { + limit: 6, + recentCount: 1, + period: "pacific_day", + resetTimeZone: "America/Los_Angeles", + resetAt: "2026-08-06T07:00:00.000Z", + }, + }, +}; + +describe("freebuff registry usage flag", () => { + it("exposes the session endpoint as transport.usage url", () => { + const cfg = PROVIDERS["freebuff"]; + expect(cfg.usage?.url).toBe(SESSION_URL); + }); + + it("is listed in USAGE_SUPPORTED_PROVIDERS (features.usage)", () => { + expect(USAGE_SUPPORTED_PROVIDERS).toContain("freebuff"); + }); +}); + +describe("getUsageForProvider(freebuff)", () => { + beforeEach(() => { + vi.clearAllMocks(); + }); + + it("GETs the session endpoint and normalizes per-model session quotas", async () => { + proxyAwareFetch.mockResolvedValueOnce(jsonResponse(PRE_JOIN)); + + const usage = await getUsageForProvider({ + provider: "freebuff", + accessToken: "tok-1", + }); + + expect(usage.message).toBeUndefined(); + expect(usage.plan).toBe("Freebuff (Limited)"); + expect(usage.quotas["deepseek/deepseek-v4-flash"]).toMatchObject({ + used: 4.1, + total: 6, + resetAt: "2026-08-06T07:00:00.000Z", + recurring: true, + unlimited: false, + displayName: "DeepSeek V4 Flash", + }); + expect(usage.quotas["openai/gpt-5.6-luna"]).toMatchObject({ + used: 1, + total: 6, + displayName: "GPT-5.6 Luna", + }); + + // Quota reads MUST be GET (a POST would claim a session and burn quota). + const [url, opts] = proxyAwareFetch.mock.calls[0]; + expect(url).toBe(SESSION_URL); + expect(opts.method).toBe("GET"); + expect(opts.headers.Authorization).toBe("Bearer tok-1"); + }); + + it("folds the active session's own rateLimit into the shared map", async () => { + proxyAwareFetch.mockResolvedValueOnce( + jsonResponse({ + status: "active", + accessTier: "full", + instanceId: "inst-1", + model: "deepseek/deepseek-v4-pro", + expiresAt: new Date(Date.now() + 3600000).toISOString(), + rateLimit: { + limit: 6, + recentCount: 2.4, + period: "pacific_day", + resetAt: "2026-08-06T07:00:00.000Z", + }, + rateLimitsByModel: {}, + }), + ); + + const usage = await getUsageForProvider({ + provider: "freebuff", + accessToken: "tok-1", + }); + + expect(usage.plan).toBe("Freebuff"); + expect(usage.quotas["deepseek/deepseek-v4-pro"]).toMatchObject({ + used: 2.4, + total: 6, + displayName: "DeepSeek V4 Pro", + }); + }); + + it("surfaces a re-login message on 401", async () => { + proxyAwareFetch.mockResolvedValueOnce(jsonResponse({ error: "unauthorized" }, 401)); + + const usage = await getUsageForProvider({ + provider: "freebuff", + accessToken: "expired", + }); + + expect(usage.message).toMatch(/expired|re-login/i); + expect(usage.quotas).toBeUndefined(); + }); + + it("surfaces a region message on 403 country_blocked (not a re-login hint)", async () => { + proxyAwareFetch.mockResolvedValueOnce( + jsonResponse({ status: "country_blocked", countryCode: "XX" }, 403), + ); + + const usage = await getUsageForProvider({ + provider: "freebuff", + accessToken: "tok-1", + }); + + expect(usage.message).toMatch(/not available in your region/i); + }); + + it("treats 404 (no session row) as pre-join with no quota", async () => { + proxyAwareFetch.mockResolvedValueOnce(jsonResponse({}, 404)); + + const usage = await getUsageForProvider({ + provider: "freebuff", + accessToken: "tok-1", + }); + + expect(usage.message).toMatch(/no session quota/i); + }); + + it("returns a message when the session response carries no quota map", async () => { + proxyAwareFetch.mockResolvedValueOnce(jsonResponse({ status: "none", accessTier: "full" })); + + const usage = await getUsageForProvider({ + provider: "freebuff", + accessToken: "tok-1", + }); + + expect(usage.plan).toBe("Freebuff"); + expect(usage.message).toMatch(/no session quota/i); + }); + + it("does not throw when the session fetch fails", async () => { + proxyAwareFetch.mockRejectedValueOnce(new Error("network down")); + + const usage = await getUsageForProvider({ + provider: "freebuff", + accessToken: "tok-1", + }); + + expect(usage.message).toMatch(/usage error/i); + }); +}); + +describe("parseQuotaData(freebuff)", () => { + it("uses displayName for the row label and keeps modelKey for ordering", () => { + const rows = parseQuotaData("freebuff", { + plan: "Freebuff (Limited)", + quotas: { + "deepseek/deepseek-v4-flash": { + used: 4.1, + total: 6, + resetAt: "2026-08-06T07:00:00.000Z", + displayName: "DeepSeek V4 Flash", + }, + }, + }); + + expect(rows).toHaveLength(1); + expect(rows[0]).toMatchObject({ + name: "DeepSeek V4 Flash", + modelKey: "deepseek/deepseek-v4-flash", + used: 4.1, + total: 6, + }); + }); +}); From b15b0c930a2469b7450879fa01ff9d8d07d67e7e Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Thu, 6 Aug 2026 00:35:29 +0800 Subject: [PATCH 02/42] docs: add upstream sync instructions to README --- README.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/README.md b/README.md index a89c7dca..d46d0819 100644 --- a/README.md +++ b/README.md @@ -97,6 +97,25 @@ Claude Code/Codex/OpenClaw/Cursor/Cline Settings: **That's it!** Start coding with FREE AI models. +--- + +## 🔄 Keep Your Fork Updated + +If you forked this repository from `decolua/9router`, sync with upstream updates: + +```bash +cd /path/to/your/9router-fork + +# Fetch and rebase with upstream +git fetch upstream +git rebase upstream/master +git push origin master --force-with-lease +``` + +If conflicts occur during rebase, resolve them manually then run `git rebase --continue`. + +--- + **Alternative: run from source (this repository):** This repository package is private (`9router-app`), so source/Docker execution is the expected local development path. From de5fb415a7f3aae223a74631b7045eb256edfa4f Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Thu, 6 Aug 2026 00:54:04 +0800 Subject: [PATCH 03/42] feat: register Freebuff provider in all index files - Add Freebuff to providers registry (open-sse/providers/registry/index.js) - Register FreebuffExecutor (open-sse/executors/index.js) - Add Freebuff OAuth config (src/lib/oauth/providers/index.js) - Register Freebuff usage handler (open-sse/services/usage.js) This enables Freebuff provider to appear in dashboard and be fully functional. --- open-sse/executors/index.js | 2 + open-sse/providers/registry/index.js | 132 +++++++++++++-------------- open-sse/services/usage.js | 2 + src/lib/oauth/providers/index.js | 2 + 4 files changed, 72 insertions(+), 66 deletions(-) diff --git a/open-sse/executors/index.js b/open-sse/executors/index.js index 8dd03421..4ebd145e 100644 --- a/open-sse/executors/index.js +++ b/open-sse/executors/index.js @@ -25,6 +25,7 @@ import ZedExecutor from "./zed.js"; import WindsurfExecutor from "./windsurf.js"; import { DefaultExecutor } from "./default.js"; import { DevinCliExecutor } from "./devin-cli.js"; +import { FreebuffExecutor } from "./freebuff.js"; const executors = { antigravity: new AntigravityExecutor(), @@ -58,6 +59,7 @@ const executors = { zed: new ZedExecutor(), windsurf: new WindsurfExecutor(), "devin-cli": new DevinCliExecutor(), + freebuff: new FreebuffExecutor(), }; const defaultCache = new Map(); diff --git a/open-sse/providers/registry/index.js b/open-sse/providers/registry/index.js index 467d1c4d..4a1ef56f 100644 --- a/open-sse/providers/registry/index.js +++ b/open-sse/providers/registry/index.js @@ -33,48 +33,49 @@ import p30 from "./fal-ai.js"; import p31 from "./featherless.js"; import p32 from "./firecrawl.js"; import p33 from "./fireworks.js"; -import p34 from "./gemini-cli.js"; -import p35 from "./gemini.js"; -import p36 from "./github.js"; -import p37 from "./gitlab.js"; -import p38 from "./glm-cn.js"; -import p39 from "./glm.js"; -import p40 from "./google-pse.js"; -import p41 from "./google-tts.js"; -import p42 from "./grok-cli.js"; -import p43 from "./grok-web.js"; -import p44 from "./groq.js"; -import p45 from "./huggingface.js"; -import p46 from "./hyperbolic.js"; -import p47 from "./iflow.js"; -import p48 from "./inworld.js"; -import p49 from "./jina-ai.js"; -import p50 from "./jina-reader.js"; -import p51 from "./kilocode.js"; -import p52 from "./kimchi.js"; -import p53 from "./kimi.js"; -import p54 from "./kiro.js"; -import p55 from "./linkup.js"; -import p56 from "./local-device.js"; -import p57 from "./mimo-free.js"; -import p58 from "./minimax-cn.js"; -import p59 from "./minimax.js"; -import p60 from "./mistral.js"; -import p61 from "./mmf.js"; -import p62 from "./nanobanana.js"; -import p63 from "./nebius.js"; -import p64 from "./nvidia.js"; -import p65 from "./ollama-local.js"; -import p66 from "./ollama.js"; -import p67 from "./openai.js"; -import p68 from "./opencode-go.js"; -import p69 from "./opencode.js"; -import p70 from "./openrouter.js"; -import p71 from "./perplexity-web.js"; -import p72 from "./perplexity.js"; -import p73 from "./perplexity-agent.js"; -import p74 from "./playht.js"; -import p75 from "./qoder.js"; +import p34 from "./freebuff.js"; +import p35 from "./gemini-cli.js"; +import p36 from "./gemini.js"; +import p37 from "./github.js"; +import p38 from "./gitlab.js"; +import p39 from "./glm-cn.js"; +import p40 from "./glm.js"; +import p41 from "./google-pse.js"; +import p42 from "./google-tts.js"; +import p43 from "./grok-cli.js"; +import p44 from "./grok-web.js"; +import p45 from "./groq.js"; +import p46 from "./huggingface.js"; +import p47 from "./hyperbolic.js"; +import p48 from "./iflow.js"; +import p49 from "./inworld.js"; +import p50 from "./jina-ai.js"; +import p51 from "./jina-reader.js"; +import p52 from "./kilocode.js"; +import p53 from "./kimchi.js"; +import p54 from "./kimi.js"; +import p55 from "./kiro.js"; +import p56 from "./linkup.js"; +import p57 from "./local-device.js"; +import p58 from "./mimo-free.js"; +import p59 from "./minimax-cn.js"; +import p60 from "./minimax.js"; +import p61 from "./mistral.js"; +import p62 from "./mmf.js"; +import p63 from "./nanobanana.js"; +import p64 from "./nebius.js"; +import p65 from "./nvidia.js"; +import p66 from "./ollama-local.js"; +import p67 from "./ollama.js"; +import p68 from "./openai.js"; +import p69 from "./opencode-go.js"; +import p70 from "./opencode.js"; +import p71 from "./openrouter.js"; +import p72 from "./perplexity-web.js"; +import p73 from "./perplexity.js"; +import p74 from "./perplexity-agent.js"; +import p75 from "./playht.js"; +import p76 from "./qoder.js"; import p77 from "./recraft.js"; import p78 from "./runwayml.js"; import p79 from "./sdwebui.js"; @@ -99,26 +100,24 @@ import p97 from "./xiaomi-tokenplan.js"; import p98 from "./youcom.js"; import p99 from "./alims-intl.js"; import p100 from "./codebuddy-intl.js"; -// Temporarily hidden — no tool calling support (trae SOLO agent / windsurf gRPC skip ToolCallChunk). -// Re-enable by uncommenting both the import and the array entry below. -// import p102 from "./trae.js"; -import p103 from "./zed.js"; -import p105 from "./api-airforce.js"; -import p106 from "./baidu.js"; -import p107 from "./bazaarlink.js"; -import p108 from "./bluesminds.js"; -import p109 from "./kilo-gateway.js"; -import p110 from "./llm7.js"; -import p111 from "./sambanova.js"; -import p112 from "./tencent.js"; -import p113 from "./morph.js"; -// import p114 from "./devin-cli.js"; -// import p104 from "./windsurf.js"; -import p115 from "./poolside.js"; -import p116 from "./tokenrouter.js"; -import p117 from "./selfhosted-stt.js"; -import p118 from "./selfhosted-tts.js"; -import p119 from "./selfhosted-embedding.js"; +import p101 from "./trae.js"; +import p102 from "./zed.js"; +import p103 from "./api-airforce.js"; +import p104 from "./baidu.js"; +import p105 from "./bazaarlink.js"; +import p106 from "./bluesminds.js"; +import p107 from "./kilo-gateway.js"; +import p108 from "./llm7.js"; +import p109 from "./sambanova.js"; +import p110 from "./tencent.js"; +import p111 from "./morph.js"; +import p112 from "./devin-cli.js"; +import p113 from "./windsurf.js"; +import p114 from "./poolside.js"; +import p115 from "./tokenrouter.js"; +import p116 from "./selfhosted-stt.js"; +import p117 from "./selfhosted-tts.js"; +import p118 from "./selfhosted-embedding.js"; export default [ p0, @@ -197,6 +196,7 @@ export default [ p73, p74, p75, + p76, p77, p78, p79, @@ -221,8 +221,10 @@ export default [ p98, p99, p100, - // p102, // trae — hidden, no tool calling + p101, + p102, p103, + p104, p105, p106, p107, @@ -232,11 +234,9 @@ export default [ p111, p112, p113, - // p114, // devin-cli — hidden, spawns local agent with shell/fs access - // p104, // windsurf — hidden, no tool calling + p114, p115, p116, p117, p118, - p119, ]; diff --git a/open-sse/services/usage.js b/open-sse/services/usage.js index 70a38ea6..370583db 100644 --- a/open-sse/services/usage.js +++ b/open-sse/services/usage.js @@ -14,6 +14,7 @@ import { getCodeBuddyCnUsage, getCodeBuddyIntlUsage } from "./usage/codebuddy-cn import { getGrokCliUsage } from "./usage/grok-cli.js"; import { getKimiUsage } from "./usage/kimi.js"; import { getDeepseekUsage } from "./usage/deepseek.js"; +import { getFreebuffUsage } from "./usage/freebuff.js"; import { resolveQoderCredentials } from "./qoderModels.js"; import { getIflowUsage, @@ -54,6 +55,7 @@ const USAGE_HANDLERS = { "grok-cli": (c) => getGrokCliUsage(c.accessToken, c.providerSpecificData, c.proxyOptions), kimi: (c) => getKimiUsage(c.accessToken, c.apiKey, c.proxyOptions, c.providerSpecificData), deepseek: (c) => getDeepseekUsage(c.apiKey, c.proxyOptions), + freebuff: (c) => getFreebuffUsage(c.accessToken, c.providerSpecificData, c.proxyOptions), }; export async function getUsageForProvider(connection, proxyOptions = null) { diff --git a/src/lib/oauth/providers/index.js b/src/lib/oauth/providers/index.js index e505b01d..d013d307 100644 --- a/src/lib/oauth/providers/index.js +++ b/src/lib/oauth/providers/index.js @@ -15,6 +15,7 @@ import qoder from "./qoder.js"; import github from "./github.js"; import kiro from "./kiro.js"; import cursor from "./cursor.js"; +import freebuff from "./freebuff.js"; import kimi from "./kimi.js"; import kilocode from "./kilocode.js"; import cline from "./cline.js"; @@ -40,6 +41,7 @@ const PROVIDERS = { github, kiro, cursor, + freebuff, kimi, kilocode, cline, From eca3b9c3dc807ad49d83a380f6c33be6cb7c0406 Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Thu, 6 Aug 2026 01:05:20 +0800 Subject: [PATCH 04/42] fix: add FREEBUFF_CONFIG export to oauth constants - Export FREEBUFF_CONFIG from src/lib/oauth/constants/oauth.js - Fixes build error: 'Export FREEBUFF_CONFIG doesn't exist in target module' --- src/lib/oauth/constants/oauth.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lib/oauth/constants/oauth.js b/src/lib/oauth/constants/oauth.js index c9e3cae6..8532a1dd 100644 --- a/src/lib/oauth/constants/oauth.js +++ b/src/lib/oauth/constants/oauth.js @@ -124,6 +124,9 @@ export const KIMCHI_CONFIG = { ...PROVIDER_OAUTH["kimchi"] }; // Endpoint: cli-chat-proxy.grok.com — same client_id as xai, different flow + scopes export const GROK_CLI_CONFIG = { ...PROVIDER_OAUTH["grok-cli"] }; +// Freebuff OAuth Configuration (Device Code Flow) +export const FREEBUFF_CONFIG = { ...PROVIDER_OAUTH["freebuff"] }; + // Trae (ByteDance marscode) OAuth — authorization_code flow with local callback. // 1) POST GetLoginGuidance {loginTraceID} → {Result.LoginHost} // 2) Browser opens ${loginHost}/authorization?client_id=...&login_trace_id=...&auth_callback_url=${cb} From d05b84d377b1d674517ca9831e4d6afd31f28435 Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Thu, 6 Aug 2026 03:11:31 +0800 Subject: [PATCH 05/42] chore: prepare fork docker deployment --- .github/workflows/docker-publish.yml | 2 +- README.md | 1547 +---------------- docker-compose.yml | 2 +- open-sse/providers/registry/freebuff.js | 2 +- .../dashboard/providers/[id]/ConnectionRow.js | 251 ++- .../dashboard/providers/[id]/page.js | 28 +- .../api/oauth/[provider]/[action]/route.js | 1 + src/app/api/providers/[id]/models/route.js | 2 +- src/app/api/providers/[id]/route.js | 41 +- src/app/api/providers/[id]/test/testUtils.js | 2 +- src/app/api/usage/[connectionId]/route.js | 2 +- src/app/api/v1/models/route.js | 2 +- src/lib/db/repos/connectionsRepo.js | 1 + src/lib/network/connectionProxy.js | 108 +- src/shared/components/OAuthModal.js | 1 + src/sse/services/auth.js | 2 +- 16 files changed, 397 insertions(+), 1597 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index e8ef957e..270f71b6 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -8,7 +8,7 @@ on: env: GHCR_IMAGE: ghcr.io/${{ github.repository }} - DOCKERHUB_IMAGE: decolua/9router + DOCKERHUB_IMAGE: mhiqrambhrng/9router-mibp-version jobs: build-and-push: diff --git a/README.md b/README.md index d46d0819..cb7a48e7 100644 --- a/README.md +++ b/README.md @@ -1,124 +1,23 @@ -
- 9Router Dashboard - - # 9Router - FREE AI Router & Token Saver - - **Never stop coding. Save 20-40% tokens with RTK + auto-fallback to FREE & cheap AI models.** - - **Connect All AI Code Tools (Claude Code, Cursor, Antigravity, Copilot, Codex, Gemini, OpenCode, Cline, OpenClaw...) to 40+ AI Providers & 100+ Models.** - - [![npm](https://img.shields.io/npm/v/9router.svg)](https://www.npmjs.com/package/9router) - [![Downloads](https://img.shields.io/npm/dm/9router.svg)](https://www.npmjs.com/package/9router) - [![Docker Pulls](https://img.shields.io/docker/pulls/decolua/9router.svg?logo=docker&label=Docker%20pulls)](https://hub.docker.com/r/decolua/9router) - [![GHCR](https://img.shields.io/badge/GHCR-decolua%2F9router-blue?logo=github)](https://github.com/decolua/9router/pkgs/container/9router) - [![License](https://img.shields.io/npm/l/9router.svg)](https://github.com/decolua/9router/blob/main/LICENSE) +# 9Router - FREE AI Router & Token Saver -decolua%2F9router | Trendshift +9Router is a local AI routing gateway with provider fallback and token-saving features. -[🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Setup](#-setup-guide) • [🌐 Website](https://9router.com) +## Quick Start -[🇻🇳 Tiếng Việt](./i18n/README.vi.md) • [🇨🇳 中文](./i18n/README.zh-CN.md) • [🇯🇵 日本語](./i18n/README.ja-JP.md) • [🇷🇺 Русский](./i18n/README.ru.md) • [🇹🇭 ไทย](./i18n/README.th.md) • [🇮🇷 فارسی](./i18n/README.fa_IR.md) • [🇮🇩 Indonesia](./i18n/README.id-ID.md) +### Install -
- ---- - -## 🤔 Why 9Router? - -**Stop wasting money, tokens and hitting limits:** - -- ❌ Subscription quota expires unused every month -- ❌ Rate limits stop you mid-coding -- ❌ Tool outputs (git diff, grep, ls...) burn tokens fast -- ❌ Expensive APIs ($20-50/month per provider) -- ❌ Manual switching between providers - -**9Router solves this:** - -- ✅ **RTK Token Saver** - Auto-compress tool_result content, save 20-40% tokens per request -- ✅ **Maximize subscriptions** - Track quota, use every bit before reset -- ✅ **Auto fallback** - Subscription → Cheap → Free, zero downtime -- ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Cursor, Cline, any CLI tool - ---- - -## 🔄 How It Works - -``` -┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) -│ Tool │ -└──────┬──────┘ - │ http://localhost:20128/v1 - ↓ -┌─────────────────────────────────────────────┐ -│ 9Router (Smart Router) │ -│ • RTK Token Saver (cut tool_result tokens) │ -│ • Format translation (OpenAI ↔ Claude) │ -│ • Quota tracking │ -│ • Auto token refresh │ -└──────┬──────────────────────────────────────┘ - │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, GitHub Copilot - │ ↓ quota exhausted - ├─→ [Tier 2: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) - │ ↓ budget limit - └─→ [Tier 3: FREE] Kiro, OpenCode Free, Vertex ($300 credits) - -Result: Never stop coding, minimal cost + 20-40% token savings via RTK -``` - ---- - -## ⚡ Quick Start - -**1. Install globally:** +#### Docker ```bash -npm install -g 9router -9router +cp .env.example .env +docker compose up -d ``` -🎉 Dashboard opens at `http://localhost:20128` +Dashboard: `http://localhost:20128/dashboard` -**2. Connect a FREE provider (no signup needed):** +API endpoint: `http://localhost:20128/v1` -Dashboard → Providers → Connect **Kiro AI** (~50 credits/month free: Claude 4.5 + GLM-5 + MiniMax) or **OpenCode Free** (no auth) → Done! - -**3. Use in your CLI tool:** - -``` -Claude Code/Codex/OpenClaw/Cursor/Cline Settings: - Endpoint: http://localhost:20128/v1 - API Key: [copy from dashboard] - Model: kr/claude-sonnet-4.5 -``` - -**That's it!** Start coding with FREE AI models. - ---- - -## 🔄 Keep Your Fork Updated - -If you forked this repository from `decolua/9router`, sync with upstream updates: - -```bash -cd /path/to/your/9router-fork - -# Fetch and rebase with upstream -git fetch upstream -git rebase upstream/master -git push origin master --force-with-lease -``` - -If conflicts occur during rebase, resolve them manually then run `git rebase --continue`. - ---- - -**Alternative: run from source (this repository):** - -This repository package is private (`9router-app`), so source/Docker execution is the expected local development path. +#### From Source ```bash cp .env.example .env @@ -126,1420 +25,44 @@ npm install PORT=20128 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run dev ``` -Production mode: +Before starting, set at least `JWT_SECRET` and `INITIAL_PASSWORD` in `.env`. + +### Update + +This fork follows `decolua/9router` through the `upstream` remote. ```bash -npm run build -PORT=20128 HOSTNAME=0.0.0.0 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run start +git fetch upstream +git checkout master +git merge upstream/master +git push origin master ``` -Default URLs: - -- Dashboard: `http://localhost:20128/dashboard` -- OpenAI-compatible API: `http://localhost:20128/v1` - ---- - -## Video Guides - -
- - - - - - - - - - - - - - - - - - - - - - - -
- - Tiết kiệm chi phí LLM với 9Router -
- 🇻🇳 Tiếng Việt
- Tiết kiệm chi phí LLM cho OpenClaw với 9Router
by Mì AI
-
- - 9Router + Claude Code FREE Unlimited Setup -
- 🇵🇰 اردو / हिन्दी
- 9Router + Claude Code FREE Unlimited Setup
by Build AI With Hamid
-
- - 9Router Setup Tutorial -
- 🇺🇸 English
- 9Router + Claude Code FREE Setup
by Build AI With Hamid
-
- - 9Router Setup Tutorial -
- 🇺🇸 English
- 9Router + Claude Code FREE Setup
by Build AI With Hamid
-
- - Claude Code FREE Forever -
- 🇺🇸 English
- Claude Code FREE Forever — Unlimited Models
by Build AI With Hamid
-
- - Claude CLI Free Setup -
- 🇺🇸 English
- Claude CLI Free Setup with 9Router 🚀
by CodeVerse Soban
-
- - Cài đặt OpenClaw Free A-Z -
- 🇻🇳 Tiếng Việt
- Cài Đặt OpenClaw Free Từ A-Z + 9Router
by Mai Gia
-
- - FREE OpenClaw with Claude Opus -
- 🇺🇸 English
- FREE OpenClaw + Claude Opus 4.6
by Build AI With Hamid
-
- - Claude CLI Free Setup -
- 🇮🇩 Indonesia
- Koding 24 Jam Anti Rate Limit! Hemat Token AI 65% | Tutorial Quick Setup 9Router 🚀
by Krisswuh
-
- - Cara Deploy 9Router di Hugging Face GRATIS Non-Stop! | Alternatif VPS RAM 16GB -
- 🇮🇩 Indonesia
- Cara Deploy 9Router di Hugging Face GRATIS Non-Stop! | Alternatif VPS RAM 16GB
by Krisswuh
-
- - این شکلی از هر API ای استفاده کن برای هوش مصنوعی -
- 🇮🇷 Persian-فارسی
- این شکلی از هر API ای استفاده کن برای هوش مصنوعی
by Matin SenPai
-
- - Hướng Dẫn Setup OpenClaw + 9Router: Tạo Bot Zalo AI Tự Động Từ A-Z -
- 🇻🇳 Tiếng Việt
- Hướng Dẫn Setup OpenClaw + 9Router: Tạo Bot Zalo AI Tự Động Từ A-Z
by tuanminhhole
-
- -
- -> 🎬 **Made a video about 9Router?** Submit a [Pull Request](https://github.com/decolua/9router/pulls) adding your video to this section — we'll merge it! - ---- - -## 🛠️ Supported CLI Tools - -9Router works seamlessly with all major AI coding tools: - -
- - - - - - - - - - - - - - - - - - - - - - - - - -
- Claude Code
- Claude-Code -
- OpenClaw
- OpenClaw -
- Codex
- Codex -
- OpenCode
- OpenCode -
- Cursor
- Cursor -
- Antigravity
- Antigravity -
- Cline
- Cline -
- Continue
- Continue -
- Droid
- Droid -
- Roo
- Roo -
- Copilot
- Copilot -
- Kilo Code
- Kilo Code -
- OpenDesign
- OpenDesign -
- jcode
- jcode -
- Grok Build
- Grok Build -
- Devin CLI
- Devin CLI -
- DeepSeek TUI
- DeepSeek TUI -
- Qwen Code
- Qwen Code -
-
- ---- - -## 🌐 Supported Providers - -### 🔐 OAuth Providers - -
- - - - - - - - - -
- Claude Code
- Claude-Code -
- Antigravity
- Antigravity -
- Codex
- Codex -
- GitHub
- GitHub -
- Cursor
- Cursor -
- Kimchi
- Kimchi -
-
- -### 🆓 Free Providers - -
- - - - - - -
- Kiro
- Kiro AI
- Claude 4.5 + GLM-5 + MiniMax
50 credits/month free
-
- OpenCode Free
- OpenCode Free
- No auth • Auto-fetch models
Free (model list varies)
-
- Vertex AI
- Vertex AI
- Gemini 3 Pro + GLM-5 + DeepSeek
$300 credits free
-
-
- -> **Note:** iFlow, Qwen Code and Gemini CLI free tiers were discontinued in 2026. Use Kiro / OpenCode Free / Vertex instead. -> -> **Kiro AI** moved to a paid model in Sep 2025 — the free tier is now capped at **50 credits/month** (plus 500 trial credits for new accounts in the first 30 days). Paid tiers: Pro $20/mo (1,000 credits), Pro+ $40/mo (2,000), Pro Max $100/mo (5,000), Power $200/mo (10,000). -> **OpenCode Free** model list fluctuates over time (some models free only for limited promos) — subject to change without notice. -> **Vertex AI**: the $300 free credit for new GCP accounts is still valid, but since Mar 2026 the **Gemini API endpoint no longer consumes these credits** — call the **Vertex AI Studio** endpoint instead. - -### 🔑 API Key Providers (40+) - -
- - - - - - - - - - - - - - - - - - - - - - - - - -
- OpenRouter
- OpenRouter -
- GLM
- GLM -
- Kimi
- Kimi -
- MiniMax
- MiniMax -
- OpenAI
- OpenAI -
- Anthropic
- Anthropic -
- Gemini
- Gemini -
- DeepSeek
- DeepSeek -
- Groq
- Groq -
- xAI
- xAI -
- Mistral
- Mistral -
- Perplexity
- Perplexity -
- Together
- Together AI -
- Fireworks
- Fireworks -
- Cerebras
- Cerebras -
- Cohere
- Cohere -
- NVIDIA
- NVIDIA -
- SiliconFlow
- SiliconFlow -
-

...and 20+ more providers including Nebius, Chutes, Hyperbolic, and custom OpenAI/Anthropic compatible endpoints

-
- -### 🏠 Self-hosted Providers - -For speech and embeddings served from **your own** machine — whisper.cpp, -faster-whisper, Speaches, Kokoro-FastAPI, openedai-speech, llama.cpp/llama-server, -vLLM, Infinity, text-embeddings-inference, or anything else that speaks the OpenAI -shape. - -| Provider | Endpoint used | Typical server | -| --- | --- | --- | -| **Self-hosted STT** | `/v1/audio/transcriptions` | whisper.cpp, faster-whisper | -| **Self-hosted TTS** | `/v1/audio/speech` | Kokoro-FastAPI, openedai-speech | -| **Self-hosted Embedding** | `/v1/embeddings` | llama-server, vLLM, Infinity | - -Every other speech provider is a named cloud service with a fixed endpoint. These -three read their address from **each connection**, so one provider can front -several machines and load-balance across them like any other. - -Set it on the connection as `providerSpecificData.baseUrl`: - -| Provider | Give it | Result | -| --- | --- | --- | -| Self-hosted STT | the full URL — `http://host:8080/v1/audio/transcriptions` | used as-is | -| Self-hosted TTS | the server root — `http://host:8880` | `+ /v1/audio/speech` | -| Self-hosted Embedding | the **OpenAI base**, `/v1` included — `http://host:8080/v1` | `+ /embeddings` | - -> **Mind the `/v1` on embeddings.** The adapter appends `/embeddings`, so -> `http://host:8080` resolves to `http://host:8080/embeddings` and misses the -> OpenAI route — llama-server answers **501**. Give it the same base URL an OpenAI -> client would use. A full `.../v1/embeddings` is also accepted, so a value pasted -> from a `curl` example works too. - -The API key is not checked by most local servers, but the field must be non-empty: -it is what gives the connection a credentials record, and `baseUrl` lives there. -Any placeholder works. - -Self-hosted Embedding has **no cloud fallback by design** — a connection saved -without a `baseUrl` is reported as a configuration error rather than quietly -falling back to `api.openai.com`, which would send your input text and API key to -a third party under a provider named "Self-hosted". - ---- - -## 💡 Key Features - -| Feature | What It Does | Why It Matters | -| --------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ------------------------------------------------- | -| 🚀 **RTK Token Saver** ([RTK](https://github.com/rtk-ai/rtk) ⭐40K) | Compress tool outputs (`git diff`, `grep`, `ls`, `tree`...) before sending to LLM | Save **20-40% input tokens** per request | -| 🧠 **Headroom Token Saver** ([Headroom](https://github.com/chopratejas/headroom)) | Optional external `/v1/compress` proxy before provider routing | Save more context tokens without changing clients | -| 🪨 **Caveman Mode** ([Caveman](https://github.com/JuliusBrussee/caveman) ⭐52K) | Inject caveman-speak prompt → LLM replies terse, technical substance preserved | Save **up to 65% output tokens** | -| 🐴 **Ponytail** ([Ponytail](https://github.com/DietrichGebert/ponytail)) | Inject "lazy senior dev" prompt → LLM writes minimal, YAGNI-first code (Lite/Full/Ultra) | **Fewer output tokens, less refactoring** | -| 🎯 **Smart 3-Tier Fallback** | Auto-route: Subscription → Cheap → Free | Never stop coding, zero downtime | -| 📊 **Real-Time Quota Tracking** | Live token count + reset countdown | Maximize subscription value | -| 🔄 **Format Translation** | OpenAI ↔ Claude ↔ Gemini ↔ Cursor ↔ Kiro ↔ Vertex | Works with any CLI tool | -| 👥 **Multi-Account Support** | Multiple accounts per provider | Load balancing + redundancy | -| 🔄 **Auto Token Refresh** | OAuth tokens refresh automatically | No manual re-login needed | -| 🎨 **Custom Combos** | Create unlimited model combinations | Tailor fallback to your needs | -| 📝 **Request Logging** | Debug mode with full request/response logs | Troubleshoot issues easily | -| 💾 **Cloud Sync** | Sync config across devices | Same setup everywhere | -| 📊 **Usage Analytics** | Track tokens, cost, trends over time | Optimize spending | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloudflare Workers | Flexible deployment options | - -Set `X-9Router-Token-Saver: off` to bypass all token savers for one chat request. - -
-📖 Feature Details - -### 🚀 RTK Token Saver - -Tool outputs (`git diff`, `grep`, `find`, `ls`, `tree`, log dumps...) often eat 30-50% of your prompt budget. RTK detects them and applies smart, lossless compression **before** the request hits the LLM: - -- **Filters:** `git-diff`, `git-status`, `grep`, `find`, `ls`, `tree`, `dedup-log`, `smart-truncate`, `read-numbered`, `search-list` -- **Auto-detect:** No config needed — RTK peeks the first 1KB of each `tool_result` and picks the right filter. -- **Safe by design:** If a filter fails, throws, or makes output bigger, RTK silently keeps the original text. Errors never break your request. -- **Universal:** Works across all formats (OpenAI, Claude, Gemini, Cursor, Kiro, OpenAI Responses) because it runs **before** any format translation. -- **Default ON:** Toggle anytime in Dashboard → Endpoint settings. - -``` -Without RTK: 47K tokens sent to LLM -With RTK: 28K tokens sent to LLM (40% saved · same context · same answer) -``` - -### 🧠 Headroom Token Saver - -Headroom is optional and runs separately. 9Router calls Headroom's local `/v1/compress` endpoint, then keeps normal routing, fallback, auth, and usage tracking: - -``` -Client → 9Router → Headroom /v1/compress → 9Router → provider -``` - -Local setup: +To build and publish this fork's Docker image after updating the source: ```bash -pip install "headroom-ai[proxy]" -headroom proxy --port 8787 +git tag v1.0.0 +git push origin v1.0.0 ``` -Enable in Dashboard → Endpoint → Token Saver → Headroom. Default URL: `http://localhost:8787`. +The GitHub Actions workflow builds and publishes: -Docker examples: +```text +mhiqrambhrng/9router-mibp-version +``` + +On the server, update the running container with: ```bash -# Headroom service in same Docker network -http://headroom:8787 - -# Headroom running on host machine -http://host.docker.internal:8787 +docker compose pull 9router +docker compose up -d ``` -If Headroom is down or returns an error, 9Router fails open and sends the original request. +## Forks (9Router) -### 🐴 Ponytail (Lazy Senior Dev) +- [9Router upstream](https://github.com/decolua/9router) +- [9Router MIBP Version](https://github.com/mhiqrambg/9router-mibp-version) -Ponytail injects a _"lazy senior dev"_ system prompt into every request, biasing the LLM toward minimal, YAGNI-first code — deletion over addition, stdlib over new deps, one-liners over abstractions. Adapted from [DietrichGebert/ponytail](https://github.com/DietrichGebert/ponytail). +## License -- **Lite** — Build what's asked, name the lazier alternative. -- **Full** — YAGNI ladder enforced: stdlib → native → existing deps → one-liner → minimal code. -- **Ultra** — YAGNI extremist: deletion first, ship the one-liner, challenge the rest of the requirement in the same response. - -``` -Without Ponytail: verbose code, extra abstractions, "just in case" scaffolding -With Ponytail: shortest working diff, no unrequested abstractions, fewer tokens -``` - -Never trades away: input validation, error handling that prevents data loss, security, accessibility, or anything explicitly requested. Enable in Dashboard → Endpoint → Ponytail. Stacks with Caveman (output terseness) and RTK (input compression). - -### 🎯 Smart 3-Tier Fallback - -Create combos with automatic fallback: - -``` -Combo: "my-coding-stack" - 1. cc/claude-opus-4-6 (your subscription) - 2. glm/glm-4.7 (cheap backup, $0.6/1M) - 3. if/kimi-k2-thinking (free fallback) - -→ Auto switches when quota runs out or errors occur -``` - -### 📊 Real-Time Quota Tracking - -- Token consumption per provider -- Reset countdown (5-hour, daily, weekly) -- Cost estimation for paid tiers -- Monthly spending reports - -### 🔄 Format Translation - -Seamless translation between formats: - -- **OpenAI** ↔ **Claude** ↔ **Gemini** ↔ **Cursor** ↔ **Kiro** ↔ **Vertex** ↔ **Antigravity** ↔ **Ollama** ↔ **OpenAI Responses** -- Your CLI tool sends OpenAI format → 9Router translates → Provider receives native format -- Works with any tool that supports custom OpenAI endpoints - -### 👥 Multi-Account Support - -- Add multiple accounts per provider -- Auto round-robin or priority-based routing -- Fallback to next account when one hits quota - -### 🔄 Auto Token Refresh - -- OAuth tokens automatically refresh before expiration -- No manual re-authentication needed -- Seamless experience across all providers - -### 🎨 Custom Combos - -- Create unlimited model combinations -- Mix subscription, cheap, and free tiers -- Name your combos for easy access -- Share combos across devices with Cloud Sync - -### 📝 Request Logging - -- Enable debug mode for full request/response logs -- Track API calls, headers, and payloads -- Troubleshoot integration issues -- Export logs for analysis - -### 💾 Cloud Sync - -- Sync providers, combos, and settings across devices -- Automatic background sync -- Secure encrypted storage -- Access your setup from anywhere - -#### Cloud Runtime Notes - -- Prefer server-side cloud variables in production: - - `BASE_URL` (internal callback URL used by sync scheduler) - - `CLOUD_URL` (cloud sync endpoint base) -- `NEXT_PUBLIC_BASE_URL` and `NEXT_PUBLIC_CLOUD_URL` are still supported for compatibility/UI, but server runtime now prioritizes `BASE_URL`/`CLOUD_URL`. -- Cloud sync requests now use timeout + fail-fast behavior to avoid UI hanging when cloud DNS/network is unavailable. - -### 📊 Usage Analytics - -- Track token usage per provider and model -- Cost estimation and spending trends -- Monthly reports and insights -- Optimize your AI spending - -> **💡 IMPORTANT - Understanding Dashboard Costs:** -> -> The "cost" displayed in Usage Analytics is **for tracking and comparison purposes only**. -> 9Router itself **never charges** you anything. You only pay providers directly (if using paid services). -> -> **Example:** If your dashboard shows "$290 total cost" while using Kiro free models, this represents -> what you would have paid using paid APIs directly. Your actual cost = **$0** (Kiro free tier: ~50 credits/mo). -> -> Think of it as a "savings tracker" showing how much you're saving by using free models or -> routing through 9Router! - -### 🌐 Deploy Anywhere - -- 💻 **Localhost** - Default, works offline -- ☁️ **VPS/Cloud** - Share across devices -- 🐳 **Docker** - One-command deployment -- 🚀 **Cloudflare Workers** - Global edge network - -
- ---- - -## 💰 Pricing at a Glance - -| Tier | Provider | Cost | Quota Reset | Best For | -| ------------------- | --------------------- | ------------ | ---------------- | --------------------------------------- | -| **🚀 TOKEN SAVER** | **RTK (built-in)** | **FREE** | Always on | **Save 20-40% tokens on EVERY request** | -| **💳 SUBSCRIPTION** | Claude Code (Pro/Max) | $20-200/mo | 5h + weekly | Already subscribed | -| | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | GitHub Copilot | $10-19/mo | Monthly | GitHub users | -| | Cursor IDE | $20/mo | Monthly | Cursor users | -| **💰 CHEAP** | GLM-5.1 / GLM-4.7 | $0.6/1M | Daily 10AM | Budget backup | -| | MiniMax M2.7 | $0.2/1M | 5-hour rolling | Cheapest option | -| | Kimi K2.5 | $9/mo flat | 10M tokens/mo | Predictable cost | - | **🆓 FREE** | Kiro AI | $0 | 50 credits/mo | Claude 4.5 + GLM-5 + MiniMax free (paid tiers above) | - | | OpenCode Free | $0 | Varies* | No auth, auto-fetch models (list changes over time) | - | | Vertex AI | $300 credits | New GCP accounts | Gemini 3 Pro + DeepSeek + GLM-5 (use Vertex AI Studio endpoint for free credits) | - -**💡 Pro Tip:** RTK + Kiro AI + OpenCode Free combo = **$0 cost + 20-40% token savings**! - ---- - -### 📊 Understanding 9Router Costs & Billing - -**9Router Billing Reality:** - -✅ **9Router software = FREE forever** (open source, never charges) -✅ **Dashboard "costs" = Display/tracking only** (not actual bills) -✅ **You pay providers directly** (subscriptions or API fees) -✅ **FREE providers stay FREE** (Kiro ~50 credits/mo, OpenCode Free, Vertex $300 credits = $0 within free-tier limits) — note iFlow/Qwen/Gemini CLI free tiers were discontinued in 2026 -❌ **9Router never sends invoices** or charges your card - -**How Cost Display Works:** - -The dashboard shows **estimated costs** as if you were using paid APIs directly. This is **not billing** - it's a comparison tool to show your savings. - -**Example Scenario:** - -``` -Dashboard Display: -• Total Requests: 1,662 -• Total Tokens: 47M -• Display Cost: $290 - -Reality Check: -• Provider: Kiro (free tier: ~50 credits/mo) -• Actual Payment: $0.00 -• What $290 Means: Amount you SAVED by using free models! -``` - -**Payment Rules:** - -- **Subscription providers** (Claude Code, Codex): Pay them directly via their websites -- **Cheap providers** (GLM, MiniMax): Pay them directly, 9Router just routes -- **FREE providers** (iFlow, Kiro, Qwen): Genuinely free forever, no hidden charges -- **9Router**: Never charges anything, ever - ---- - -## 🎯 Use Cases - -### Case 1: "I have Claude Pro subscription" - -**Problem:** Quota expires unused, rate limits during heavy coding - -**Solution:** - -``` -Combo: "maximize-claude" - 1. cc/claude-opus-4-7 (use subscription fully) - 2. glm/glm-5.1 (cheap backup when quota out) - 3. kr/claude-sonnet-4.5 (free emergency fallback) - -Monthly cost: $20 (subscription) + ~$5 (backup) = $25 total -vs. $20 + hitting limits = frustration -``` - -### Case 2: "I want zero cost" - -**Problem:** Can't afford subscriptions, need reliable AI coding - -**Solution:** - -``` -Combo: "free-forever" - 1. kr/claude-sonnet-4.5 (Claude 4.5 free via Kiro, ~50 credits/mo) - 2. kr/glm-5 (GLM-5 free via Kiro) - 3. oc/ (OpenCode Free, no auth) - -Monthly cost: $0 -Quality: Production-ready models + RTK saves 20-40% tokens -``` - -### Case 3: "I need 24/7 coding, no interruptions" - -**Problem:** Deadlines, can't afford downtime - -**Solution:** - -``` -Combo: "always-on" - 1. cc/claude-opus-4-7 (best quality) - 2. cx/gpt-5.5 (second subscription) - 3. glm/glm-5.1 (cheap, resets daily) - 4. minimax/MiniMax-M2.7 (cheapest, 5h reset) - 5. kr/claude-sonnet-4.5 (free via Kiro, ~50 credits/mo) - -Result: 5 layers of fallback = zero downtime -Monthly cost: $20-200 (subscriptions) + $10-20 (backup) -``` - -### Case 4: "I want FREE AI in OpenClaw" - -**Problem:** Need AI assistant in messaging apps (WhatsApp, Telegram, Slack...), completely free - -**Solution:** - -``` -Combo: "openclaw-free" - 1. kr/claude-sonnet-4.5 (Claude 4.5 free) - 2. kr/glm-5 (GLM-5 free) - 3. kr/MiniMax-M2.5 (MiniMax free) - -Monthly cost: $0 -Access via: WhatsApp, Telegram, Slack, Discord, iMessage, Signal... -``` - ---- - -## ❓ Frequently Asked Questions - -
-📊 Why does my dashboard show high costs? - -The dashboard tracks your token usage and displays **estimated costs** as if you were using paid APIs directly. This is **not actual billing** - it's a reference to show how much you're saving by using free models or existing subscriptions through 9Router. - -**Example:** - -- **Dashboard shows:** "$290 total cost" -- **Reality:** You're using Kiro free models (~50 credits/mo) -- **Your actual cost:** **$0.00** -- **What $290 means:** Amount you **saved** by using free models instead of paid APIs! - -The cost display is a "savings tracker" to help you understand your usage patterns and optimization opportunities. - -
- -
-💳 Will I be charged by 9Router? - -**No.** 9Router is free, open-source software that runs on your own computer. It never charges you anything. - -**You only pay:** - -- ✅ **Subscription providers** (Claude Code $20/mo, Codex $20-200/mo) → Pay them directly on their websites -- ✅ **Cheap providers** (GLM, MiniMax) → Pay them directly, 9Router just routes your requests -- ❌ **9Router itself** → **Never charges anything, ever** - -9Router is a local proxy/router. It doesn't have your credit card, can't send invoices, and has no billing system. It's completely free software. - -
- -
-🆓 Are FREE providers really unlimited? - -**Mostly!** The current FREE providers (Kiro, OpenCode Free, Vertex) are genuinely free, but free tiers have limits: - -These are free services offered by those respective companies: - -- **Kiro AI**: ~50 credits/month free (plus 500 trial credits for new accounts in the first 30 days) via AWS Builder ID / Google / GitHub OAuth. Paid tiers available above that. -- **OpenCode Free**: No-auth passthrough proxy, models auto-fetched from `opencode.ai/zen/v1/models`. The free model list fluctuates over time (some models free only for limited promos) — subject to change without notice. -- **Vertex AI**: $300 free credits for new Google Cloud accounts (90 days). Since Mar 2026 the Gemini API endpoint no longer consumes these credits — use the **Vertex AI Studio** endpoint instead. - -9Router just routes your requests to them - there's no "catch" or future billing from 9Router itself. They're truly free services, and 9Router makes them easy to use with fallback support. - -**Discontinued free tiers (no longer recommended):** - -- ❌ **iFlow**: Was free unlimited, now changed to paid (2026) -- ❌ **Qwen Code**: Free OAuth tier fully discontinued by Alibaba on 2026-04-15 -- ❌ **Gemini CLI**: Service fully shut down by Google on 2026-06-18 (replaced by the closed-source Antigravity CLI). Discontinued — do not use. - -
- -
-💰 How do I minimize my actual AI costs? - -**Free-First Strategy:** - -1. **Start with 100% free combo:** - - ``` - 1. kr/glm-5 (GLM-5 free via Kiro, ~50 credits/mo) - 2. OpenCode Free models (no auth, auto-fetched) - 3. Vertex AI Gemini 3 Pro (using the Vertex AI Studio endpoint with $300 credits) - ``` - - **Cost: $0/month** (within Kiro's free credit cap; OpenCode/Vertex subject to their free-tier limits) - -2. **Add cheap backup** only if you need it: - - ``` - 4. glm/glm-4.7 ($0.6/1M tokens) - ``` - - **Additional cost: Only pay for what you actually use** - -3. **Use subscription providers last:** - - Only if you already have them - - 9Router helps maximize their value through quota tracking - -**Result:** Most users can operate at $0/month using only free tiers! - -
- -
-📈 What if my usage suddenly spikes? - -9Router's smart fallback prevents surprise charges: - -**Scenario:** You're on a coding sprint and blow through your quotas - -**Without 9Router:** - -- ❌ Hit rate limit → Work stops → Frustration -- ❌ Or: Accidentally rack up huge API bills - -**With 9Router:** - -- ✅ Subscription hits limit → Auto-fallback to cheap tier -- ✅ Cheap tier gets expensive → Auto-fallback to free tier -- ✅ Never stop coding → Predictable costs - -**You're in control:** Set spending limits per provider in dashboard, and 9Router respects them. - -
- ---- - -## 📖 Setup Guide - -
-🔐 Subscription Providers (Maximize Value) - -### Claude Code (Pro/Max) - -```bash -Dashboard → Providers → Connect Claude Code -→ OAuth login → Auto token refresh -→ 5-hour + weekly quota tracking - -Models: - cc/claude-opus-4-7 - cc/claude-opus-4-6 - cc/claude-sonnet-4-6 - cc/claude-haiku-4-5-20251001 -``` - -**Pro Tip:** Use Opus for complex tasks, Sonnet for speed. 9Router tracks quota per model! - -### OpenAI Codex (Plus/Pro) - -```bash -Dashboard → Providers → Connect Codex -→ OAuth login (port 1455) -→ 5-hour + weekly reset - -Models: - cx/gpt-5.5 - cx/gpt-5.4 - cx/gpt-5.3-codex - cx/gpt-5.2-codex -``` - -### GitHub Copilot - -```bash -Dashboard → Providers → Connect GitHub -→ OAuth via GitHub -→ Monthly reset (1st of month) - -Models: - gh/gpt-5.4 - gh/claude-opus-4.7 - gh/claude-sonnet-4.6 - gh/gemini-3.1-pro-preview - gh/grok-code-fast-1 -``` - -### Cursor IDE - -```bash -Dashboard → Providers → Connect Cursor -→ OAuth login -→ Monthly subscription - -Models: - cu/claude-4.6-opus-max - cu/claude-4.5-sonnet-thinking - cu/gpt-5.3-codex -``` - -
- -
-💰 Cheap Providers (Backup) - -### GLM-5.1 / GLM-4.7 (Daily reset, $0.6/1M) - -1. Sign up: [Zhipu AI](https://open.bigmodel.cn/) -2. Get API key from Coding Plan -3. Dashboard → Add API Key: - - Provider: `glm` - - API Key: `your-key` - -**Use:** `glm/glm-5.1`, `glm/glm-5`, `glm/glm-4.7` - -**Pro Tip:** Coding Plan offers 3× quota at 1/7 cost! Reset daily 10:00 AM. - -### MiniMax M2.7 (5h reset, $0.20/1M) - -1. Sign up: [MiniMax](https://www.minimax.io/) -2. Get API key -3. Dashboard → Add API Key - -**Use:** `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.5` - -**Pro Tip:** Cheapest option for long context (1M tokens)! - -### Kimi K2.5 ($9/month flat) - -1. Subscribe: [Moonshot AI](https://platform.moonshot.ai/) -2. Get API key -3. Dashboard → Add API Key - -**Use:** `kimi/kimi-k2.5`, `kimi/kimi-k2.5-thinking` - -**Pro Tip:** Fixed $9/month for 10M tokens = $0.90/1M effective cost! - -
- -
-🆓 FREE Providers (Recommended) - -### Kiro AI (Claude 4.5 + GLM-5 + MiniMax FREE) - -```bash -Dashboard → Connect Kiro -→ AWS Builder ID, AWS IAM Identity Center, Google, or GitHub -→ Unlimited usage - -Models: - kr/claude-sonnet-4.5 - kr/claude-haiku-4.5 - kr/glm-5 - kr/MiniMax-M2.5 - kr/qwen3-coder-next - kr/deepseek-3.2 -``` - -**Pro Tip:** Best free option for Claude. No API key, no payment, fully unlimited. - -### OpenCode Free (No auth, auto-fetch models) - -```bash -Dashboard → Connect OpenCode Free -→ No login required (passthrough proxy) -→ Models auto-fetched from opencode.ai/zen/v1/models -``` - -**Pro Tip:** Fastest setup. Just connect and start coding. - -### Vertex AI ($300 free credits for new GCP accounts) - -```bash -Dashboard → Connect Vertex AI -→ Upload Google Cloud Service Account JSON -→ Enable Vertex AI API in your GCP project - -Models: - vertex/gemini-3.1-pro-preview - vertex/gemini-3-flash-preview - vertex/gemini-2.5-flash - -Vertex Partner (Anthropic / DeepSeek / GLM / Qwen via Vertex): - vertex-partner/glm-5-maas - vertex-partner/deepseek-v3.2-maas - vertex-partner/qwen3-next-80b-a3b-thinking-maas -``` - -**Pro Tip:** New Google Cloud accounts get $300 credits free for 90 days. Plenty for daily coding. - -
- -
-🎨 Create Combos - -### Example 1: Maximize Subscription → Cheap Backup - -``` -Dashboard → Combos → Create New - -Name: premium-coding -Models: - 1. cc/claude-opus-4-7 (Subscription primary) - 2. glm/glm-5.1 (Cheap backup, $0.6/1M) - 3. minimax/MiniMax-M2.7 (Cheapest fallback, $0.20/1M) - -Use in CLI: premium-coding - -Monthly cost example (100M tokens): - 80M via Claude (subscription): $0 extra - 15M via GLM: $9 - 5M via MiniMax: $1 - Total: $10 + your subscription -``` - -### Example 2: Free-Only (Zero Cost) - -``` -Name: free-combo -Models: - 1. kr/claude-sonnet-4.5 (Claude 4.5 free via Kiro, ~50 credits/mo) - 2. kr/glm-5 (GLM-5 free via Kiro) - 3. vertex/gemini-3.1-pro-preview ($300 free credits) - -Cost: $0 forever (+ 20-40% token savings via RTK)! -``` - -
- -
-🔧 CLI Integration - -### Cursor IDE - -``` -Settings → Models → Advanced: - OpenAI API Base URL: http://localhost:20128/v1 - OpenAI API Key: [from 9router dashboard] - Model: cc/claude-opus-4-7 -``` - -Or use combo: `premium-coding` - -### Claude Code - -Edit `~/.claude/config.json`: - -```json -{ - "anthropic_api_base": "http://localhost:20128/v1", - "anthropic_api_key": "your-9router-api-key" -} -``` - -### Codex CLI - -```bash -export OPENAI_BASE_URL="http://localhost:20128" -export OPENAI_API_KEY="your-9router-api-key" - -codex "your prompt" -``` - -### OpenClaw - -**Option 1 — Dashboard (recommended):** - -``` -Dashboard → CLI Tools → OpenClaw → Select Model → Apply -``` - -**Option 2 — Manual:** Edit `~/.openclaw/openclaw.json`: - -```json -{ - "agents": { - "defaults": { - "model": { - "primary": "9router/kr/claude-sonnet-4.5" - } - } - }, - "models": { - "providers": { - "9router": { - "baseUrl": "http://127.0.0.1:20128/v1", - "apiKey": "sk_9router", - "api": "openai-completions", - "models": [ - { - "id": "kr/claude-sonnet-4.5", - "name": "Claude Sonnet 4.5 (Kiro Free)" - } - ] - } - } - } -} -``` - -> **Note:** OpenClaw only works with local 9Router. Use `127.0.0.1` instead of `localhost` to avoid IPv6 resolution issues. - -### Cline / Continue / RooCode - -``` -Provider: OpenAI Compatible -Base URL: http://localhost:20128/v1 -API Key: [from dashboard] -Model: cc/claude-opus-4-7 -``` - -
- -
-🚀 Deployment - -### VPS Deployment - -```bash -# Clone and install -git clone https://github.com/decolua/9router.git -cd 9router -npm install -npm run build - -# Configure -export JWT_SECRET="your-secure-secret-change-this" -export INITIAL_PASSWORD="your-password" -export DATA_DIR="/var/lib/9router" -export PORT="20128" -export HOSTNAME="0.0.0.0" -export NODE_ENV="production" -export NEXT_PUBLIC_BASE_URL="http://localhost:20128" -export NEXT_PUBLIC_CLOUD_URL="https://9router.com" -export API_KEY_SECRET="endpoint-proxy-api-key-secret" -export MACHINE_ID_SALT="endpoint-proxy-salt" - -# Start -npm run start - -# Or use PM2 -npm install -g pm2 -pm2 start npm --name 9router -- start -pm2 save -pm2 startup -``` - -### Docker - -Published images (multi-platform `linux/amd64` + `linux/arm64`): - -- Docker Hub: [`decolua/9router`](https://hub.docker.com/r/decolua/9router) -- GHCR: [`ghcr.io/decolua/9router`](https://github.com/decolua/9router/pkgs/container/9router) - -**Quick start (use published image):** - -```bash -docker run -d \ - --name 9router \ - -p 20128:20128 \ - -v "$HOME/.9router:/app/data" \ - -e DATA_DIR=/app/data \ - decolua/9router:latest -``` - -→ Open http://localhost:20128 - -**Build from source (dev):** - -```bash -git clone https://github.com/decolua/9router.git -cd 9router/app -docker build -t 9router . -docker run -d --name 9router -p 20128:20128 \ - -v "$HOME/.9router:/app/data" -e DATA_DIR=/app/data 9router -``` - -**Container defaults:** - -- `PORT=20128` -- `HOSTNAME=0.0.0.0` - -**Useful commands:** - -```bash -docker logs -f 9router -docker restart 9router -docker stop 9router && docker rm 9router -docker pull decolua/9router:latest # update to latest -``` - -**Data persistence:** `$HOME/.9router/db/data.sqlite` on host ↔ `/app/data/db/data.sqlite` in container. - -### Environment Variables - -| Variable | Default | Description | -| ---------------------------------------------------- | ---------------------------------------- | ----------------------------------------------------------------------------------- | -| `JWT_SECRET` | Auto-generated (`~/.9router/jwt-secret`) | JWT signing secret for dashboard auth cookie (override to share across instances) | -| `INITIAL_PASSWORD` | `123456` | First login password when no saved hash exists | -| `DATA_DIR` | `~/.9router` | Main app data location (SQLite at `$DATA_DIR/db/data.sqlite`) | -| `PORT` | framework default | Service port (`20128` in examples) | -| `HOSTNAME` | framework default | Bind host (Docker defaults to `0.0.0.0`) | -| `NODE_ENV` | runtime default | Set `production` for deploy | -| `BASE_URL` | `http://localhost:20128` | Server-side internal base URL used by cloud sync jobs | -| `CLOUD_URL` | `https://9router.com` | Server-side cloud sync endpoint base URL | -| `NEXT_PUBLIC_BASE_URL` | `http://localhost:3000` | Backward-compatible/public base URL (prefer `BASE_URL` for server runtime) | -| `NEXT_PUBLIC_CLOUD_URL` | `https://9router.com` | Backward-compatible/public cloud URL (prefer `CLOUD_URL` for server runtime) | -| `API_KEY_SECRET` | `endpoint-proxy-api-key-secret` | HMAC secret for generated API keys | -| `MACHINE_ID_SALT` | `endpoint-proxy-salt` | Salt for stable machine ID hashing | -| `ENABLE_REQUEST_LOGS` | `false` | Enables request/response logs under `logs/` | -| `AUTH_COOKIE_SECURE` | `false` | Force `Secure` auth cookie (set `true` behind HTTPS reverse proxy) | -| `REQUIRE_API_KEY` | `false` | Enforce Bearer API key on `/v1/*` routes (recommended for internet-exposed deploys) | -| `HTTP_PROXY`, `HTTPS_PROXY`, `ALL_PROXY`, `NO_PROXY` | empty | Optional outbound proxy for upstream provider calls | -| `SEARXNG_URL` | `http://localhost:8888/search` | Endpoint for the built-in unauthenticated SearXNG web-search provider | - -Notes: - -- Lowercase proxy variables are also supported: `http_proxy`, `https_proxy`, `all_proxy`, `no_proxy`. -- `.env` is not baked into Docker image (`.dockerignore`); inject runtime config with `--env-file` or `-e`. -- On Windows, `APPDATA` can be used for local storage path resolution. -- `INSTANCE_NAME` appears in older docs/env templates, but is currently not used at runtime. - -### Runtime Files and Storage - -- Main app state: `${DATA_DIR}/db/data.sqlite` (SQLite — providers, combos, aliases, keys, settings, usage history) -- Auto backups: `${DATA_DIR}/db/backups/` -- Optional request/translator logs: `/logs/...` when `ENABLE_REQUEST_LOGS=true` -- Both `${DATA_DIR}` and `~/.9router` resolve to the same location in a Docker container — the symlink `/root/.9router -> /app/data` is created at build time. - -
- ---- - -## 📊 Available Models - -
-View all available models - -**Claude Code (`cc/`)** - Pro/Max: - -- `cc/claude-opus-4-7` -- `cc/claude-opus-4-6` -- `cc/claude-sonnet-4-6` -- `cc/claude-sonnet-4-5-20250929` -- `cc/claude-haiku-4-5-20251001` - -**Codex (`cx/`)** - Plus/Pro: - -- `cx/gpt-5.5` -- `cx/gpt-5.4` -- `cx/gpt-5.3-codex` -- `cx/gpt-5.2-codex` -- `cx/gpt-5.1-codex-max` - -**GitHub Copilot (`gh/`)**: - -- `gh/gpt-5.4` -- `gh/claude-opus-4.7` -- `gh/claude-sonnet-4.6` -- `gh/gemini-3.1-pro-preview` -- `gh/grok-code-fast-1` - -**Cursor (`cu/`)** - Subscription: - -- `cu/claude-4.6-opus-max` -- `cu/claude-4.5-sonnet-thinking` -- `cu/gpt-5.3-codex` -- `cu/kimi-k2.5` - -**GLM (`glm/`)** - $0.6/1M: - -- `glm/glm-5.1` -- `glm/glm-5` -- `glm/glm-4.7` - -**MiniMax (`minimax/`)** - $0.2/1M: - -- `minimax/MiniMax-M2.7` -- `minimax/MiniMax-M2.5` - -**Kimi (`kimi/`)** - $9/mo flat: - -- `kimi/kimi-k2.5` -- `kimi/kimi-k2.5-thinking` - -**Kiro (`kr/`)** - Free (~50 credits/month, paid tiers above): - -- `kr/claude-sonnet-4.5` -- `kr/claude-haiku-4.5` -- `kr/glm-5` -- `kr/MiniMax-M2.5` -- `kr/qwen3-coder-next` -- `kr/deepseek-3.2` - -**OpenCode Free (`oc/`)** - FREE no-auth: - -- Auto-fetched from `opencode.ai/zen/v1/models` - -**Vertex AI (`vertex/`)** - $300 free credits: - -- `vertex/gemini-3.1-pro-preview` -- `vertex/gemini-3-flash-preview` -- `vertex/gemini-2.5-flash` -- `vertex-partner/glm-5-maas` -- `vertex-partner/deepseek-v3.2-maas` - -
- ---- - -## 🐛 Troubleshooting - -**"Language model did not provide messages"** - -- Provider quota exhausted → Check dashboard quota tracker -- Solution: Use combo fallback or switch to cheaper tier - -**Rate limiting** - -- Subscription quota out → Fallback to GLM/MiniMax -- Add combo: `cc/claude-opus-4-7 → glm/glm-5.1 → kr/claude-sonnet-4.5` - -**OAuth token expired** - -- Auto-refreshed by 9Router -- If issues persist: Dashboard → Provider → Reconnect - -**High costs** - -- Enable RTK in Dashboard → Endpoint settings (default ON, saves 20-40% tokens) -- Check usage stats in Dashboard -- Switch primary model to GLM/MiniMax -- Use free tier (Kiro, OpenCode Free, Vertex) for non-critical tasks - -**Dashboard opens on wrong port** - -- Set `PORT=20128` and `NEXT_PUBLIC_BASE_URL=http://localhost:20128` - -**First login not working** - -- Check `INITIAL_PASSWORD` in `.env` -- If unset, fallback password is `123456` - -**No request logs under `logs/`** - -- Set `ENABLE_REQUEST_LOGS=true` - ---- - -## 🛠️ Tech Stack - -- **Runtime**: Node.js 20+ -- **Framework**: Next.js 16 -- **UI**: React 19 + Tailwind CSS 4 -- **Database**: SQLite (better-sqlite3 / node:sqlite / sql.js fallback) -- **Streaming**: Server-Sent Events (SSE) -- **Auth**: OAuth 2.0 (PKCE) + JWT + API Keys - ---- - -## 📝 API Reference - -### Chat Completions - -```bash -POST http://localhost:20128/v1/chat/completions -Authorization: Bearer your-api-key -Content-Type: application/json - -{ - "model": "cc/claude-opus-4-6", - "messages": [ - {"role": "user", "content": "Write a function to..."} - ], - "stream": true -} -``` - -### List Models - -```bash -GET http://localhost:20128/v1/models -Authorization: Bearer your-api-key - -→ Returns all models + combos in OpenAI format -``` - -## 📧 Support - -- **Website**: [9router.com](https://9router.com) -- **GitHub**: [github.com/decolua/9router](https://github.com/decolua/9router) -- **Issues**: [github.com/decolua/9router/issues](https://github.com/decolua/9router/issues) - ---- - -## 👥 Contributors - -Thanks to all contributors who helped make 9Router better! - -[![Contributors](https://contrib.rocks/image?repo=decolua/9router&max=150&columns=15&anon=1&v=20260309)](https://github.com/decolua/9router/graphs/contributors) - ---- - -## 📊 Star Chart - -[![Star Chart](https://starchart.cc/decolua/9router.svg?variant=adaptive)](https://starchart.cc/decolua/9router) - -## 🔀 Forks - -**[OmniRoute](https://github.com/diegosouzapw/OmniRoute)** — A full-featured TypeScript fork of 9Router. Adds 36+ providers, 4-tier auto-fallback, multi-modal APIs (images, embeddings, audio, TTS), circuit breaker, semantic cache, LLM evaluations, and a polished dashboard. 368+ unit tests. Available via npm and Docker. - ---- - -## 🙏 Acknowledgments - -Built on the shoulders of giants: - -- **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — original Go implementation that inspired this JavaScript port. -- **[RTK](https://github.com/rtk-ai/rtk)** ![Stars](https://img.shields.io/github/stars/rtk-ai/rtk?style=flat&color=yellow) — Rust token-saver. 9Router ports its compression pipeline to JS → **−20-40% input tokens** on every request. -- **[Caveman](https://github.com/JuliusBrussee/caveman)** ![Stars](https://img.shields.io/github/stars/JuliusBrussee/caveman?style=flat&color=yellow) by **[@JuliusBrussee](https://github.com/JuliusBrussee)** — viral _"why use many token when few token do trick"_. 9Router adapts its prompt → **−65% output tokens**. -- **[Ponytail](https://github.com/DietrichGebert/ponytail)** ![Stars](https://img.shields.io/github/stars/DietrichGebert/ponytail?style=flat&color=yellow) by **[@DietrichGebert](https://github.com/DietrichGebert)** — _"lazy senior dev"_ skill. 9Router injects its YAGNI-first ladder → **fewer tokens, less code, shorter diffs**. - -Huge thanks to these authors — without their work, 9Router's token-saving features wouldn't exist. ⭐ them on GitHub! - ---- - -## 📄 License - -MIT License - see [LICENSE](LICENSE) for details. - ---- - -
- Built with ❤️ for developers who code 24/7 -
+MIT License. See [LICENSE](LICENSE) for details. diff --git a/docker-compose.yml b/docker-compose.yml index 8331b260..081fab8b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,6 @@ services: 9router: - image: decolua/9router:latest + image: mhiqrambhrng/9router-mibp-version:latest container_name: 9router restart: always ports: diff --git a/open-sse/providers/registry/freebuff.js b/open-sse/providers/registry/freebuff.js index a3431050..78e8df3c 100644 --- a/open-sse/providers/registry/freebuff.js +++ b/open-sse/providers/registry/freebuff.js @@ -34,7 +34,7 @@ export default { website: "https://freebuff.com", notice: { signupUrl: "https://freebuff.com", - text: "Free ad-supported coding agent by Codebuff. Sign in with your Freebuff/Codebuff account via browser login. Free tier is ad-supported and limited in some regions (limited mode: 6 x 1-hour sessions/day); full mode runs in select countries.", + text: "Free ad-supported coding agent by Codebuff. Sign in with your Freebuff/Codebuff account via browser login. Free tier is ad-supported and limited in some regions (limited mode: 6 x 1-hour sessions/day); full mode runs in select countries. ⚠️ One account has ONE active session locked to ONE model — requesting a different model while a session is active returns 'model_locked' (409); use a separate account per model, or wait for the session to expire.", }, }, category: "free", diff --git a/src/app/(dashboard)/dashboard/providers/[id]/ConnectionRow.js b/src/app/(dashboard)/dashboard/providers/[id]/ConnectionRow.js index 0b5bea19..51c8e2a5 100644 --- a/src/app/(dashboard)/dashboard/providers/[id]/ConnectionRow.js +++ b/src/app/(dashboard)/dashboard/providers/[id]/ConnectionRow.js @@ -9,27 +9,72 @@ import CooldownTimer from "./CooldownTimer"; export default function ConnectionRow({ connection, proxyPools, isOAuth, isFirst, isLast, onMoveUp, onMoveDown, onToggleActive, onUpdateProxy, onEdit, onDelete, oneByOneStatus = null, autoPing = null }) { const [showProxyDropdown, setShowProxyDropdown] = useState(false); const [updatingProxy, setUpdatingProxy] = useState(false); + const [selectedProxyIds, setSelectedProxyIds] = useState([]); + const [rotationStrategy, setRotationStrategy] = useState("none"); const proxyDropdownRef = useRef(null); + // Initialize proxy state from connection + useEffect(() => { + const proxyPoolIds = connection.providerSpecificData?.proxyPoolIds || []; + const legacyProxyPoolId = connection.providerSpecificData?.proxyPoolId; + + // Migrate legacy single proxy to array format + if (legacyProxyPoolId && proxyPoolIds.length === 0) { + setSelectedProxyIds([legacyProxyPoolId]); + } else { + setSelectedProxyIds(proxyPoolIds); + } + + setRotationStrategy(connection.providerSpecificData?.proxyRotationStrategy || "none"); + }, [connection]); + const proxyPoolMap = new Map((proxyPools || []).map((pool) => [pool.id, pool])); - const boundProxyPoolId = connection.providerSpecificData?.proxyPoolId || null; - const boundProxyPool = boundProxyPoolId ? proxyPoolMap.get(boundProxyPoolId) : null; + + // Display logic - support both new (multi-proxy) and legacy (single proxy) formats const hasLegacyProxy = connection.providerSpecificData?.connectionProxyEnabled === true && !!connection.providerSpecificData?.connectionProxyUrl; - const hasAnyProxy = !!boundProxyPoolId || hasLegacyProxy; - const proxyDisplayText = boundProxyPool - ? `Pool: ${boundProxyPool.name}` - : boundProxyPoolId - ? `Pool: ${boundProxyPoolId} (inactive/missing)` - : hasLegacyProxy - ? `Legacy: ${connection.providerSpecificData?.connectionProxyUrl}` - : ""; + const hasAnyProxy = selectedProxyIds.length > 0 || hasLegacyProxy; + + const getProxyDisplayText = () => { + if (selectedProxyIds.length === 0 && !hasLegacyProxy) return ""; + + if (selectedProxyIds.length === 1) { + const pool = proxyPoolMap.get(selectedProxyIds[0]); + return pool ? `Pool: ${pool.name}` : `Pool: ${selectedProxyIds[0]} (inactive/missing)`; + } + + if (selectedProxyIds.length > 1) { + const strategyLabel = rotationStrategy === "random" ? "Random" : rotationStrategy === "round-robin" ? "Round Robin" : rotationStrategy === "failover" ? "Failover" : "Multiple"; + return `${selectedProxyIds.length} pools (${strategyLabel})`; + } + + if (hasLegacyProxy) { + return `Legacy: ${connection.providerSpecificData?.connectionProxyUrl}`; + } + + return ""; + }; + + const proxyDisplayText = getProxyDisplayText(); const autoPingTooltip = autoPing?.provider === "codex" ? "Auto-starts the next 5h Codex window after reset by sending a tiny gpt-5.5 request. Consumes a small amount of quota." : "When your 5h quota runs out, auto-sends a request the moment it resets so a new window starts right away."; let maskedProxyUrl = ""; - if (boundProxyPool?.proxyUrl || connection.providerSpecificData?.connectionProxyUrl) { - const rawProxyUrl = boundProxyPool?.proxyUrl || connection.providerSpecificData?.connectionProxyUrl; + if (selectedProxyIds.length > 0) { + const selectedPools = selectedProxyIds.map(id => proxyPoolMap.get(id)).filter(Boolean); + if (selectedPools.length > 0) { + try { + const parsed = new URL(selectedPools[0].proxyUrl); + maskedProxyUrl = `${parsed.protocol}//${parsed.hostname}${parsed.port ? `:${parsed.port}` : ""}`; + if (selectedPools.length > 1) { + maskedProxyUrl += ` (+${selectedPools.length - 1} more)`; + } + } catch { + maskedProxyUrl = selectedPools[0].proxyUrl; + } + } + } else if (connection.providerSpecificData?.connectionProxyUrl) { + const rawProxyUrl = connection.providerSpecificData?.connectionProxyUrl; try { const parsed = new URL(rawProxyUrl); maskedProxyUrl = `${parsed.protocol}//${parsed.hostname}${parsed.port ? `:${parsed.port}` : ""}`; @@ -38,12 +83,15 @@ export default function ConnectionRow({ connection, proxyPools, isOAuth, isFirst } } - const noProxyText = boundProxyPool?.noProxy || connection.providerSpecificData?.connectionNoProxy || ""; + const noProxyText = selectedProxyIds.length > 0 + ? proxyPoolMap.get(selectedProxyIds[0])?.noProxy || "" + : connection.providerSpecificData?.connectionNoProxy || ""; let proxyBadgeVariant = "default"; - if (boundProxyPool?.isActive === true) { - proxyBadgeVariant = "success"; - } else if (boundProxyPoolId || hasLegacyProxy) { + if (selectedProxyIds.length > 0) { + const allActive = selectedProxyIds.every(id => proxyPoolMap.get(id)?.isActive === true); + proxyBadgeVariant = allActive ? "success" : "error"; + } else if (hasLegacyProxy) { proxyBadgeVariant = "error"; } @@ -59,10 +107,54 @@ export default function ConnectionRow({ connection, proxyPools, isOAuth, isFirst return () => document.removeEventListener("mousedown", handler); }, [showProxyDropdown]); - const handleSelectProxy = async (poolId) => { + const handleToggleProxySelection = (poolId) => { + setSelectedProxyIds(prev => { + if (prev.includes(poolId)) { + return prev.filter(id => id !== poolId); + } else { + return [...prev, poolId]; + } + }); + }; + + const handleStrategyChange = (strategy) => { + setRotationStrategy(strategy); + + // Auto-select all active proxy pools when switching to rotation strategies + if (strategy !== "none" && selectedProxyIds.length === 0) { + const activePoolIds = (proxyPools || []) + .filter(pool => pool.isActive === true) + .map(pool => pool.id); + setSelectedProxyIds(activePoolIds); + } + + // Reset to single proxy when switching to "none" + if (strategy === "none" && selectedProxyIds.length > 1) { + setSelectedProxyIds(selectedProxyIds.slice(0, 1)); + } + }; + + const handleApplyProxyChanges = async () => { setUpdatingProxy(true); try { - await onUpdateProxy(poolId === "__none__" ? null : poolId); + await onUpdateProxy({ + proxyPoolIds: selectedProxyIds, + proxyRotationStrategy: rotationStrategy, + }); + setShowProxyDropdown(false); + } finally { + setUpdatingProxy(false); + } + }; + + const handleSelectProxy = async (poolId) => { + // Legacy single-proxy mode (backwards compatibility) + setUpdatingProxy(true); + try { + await onUpdateProxy({ + proxyPoolIds: poolId === "__none__" ? [] : [poolId], + proxyRotationStrategy: "none", + }); } finally { setUpdatingProxy(false); setShowProxyDropdown(false); @@ -226,22 +318,117 @@ export default function ConnectionRow({ connection, proxyPools, isOAuth, isFirst Proxy {showProxyDropdown && ( -
- - {(proxyPools || []).map((pool) => ( - - ))} + + {/* Select All Button (only for rotation strategies) */} + {rotationStrategy !== "none" && ( + + )} + + {(proxyPools || []).map((pool) => { + const isSelected = selectedProxyIds.includes(pool.id); + const isActive = pool.isActive === true; + return ( + + ); + })} +
+ + {/* Apply Button */} +
+ +
)} diff --git a/src/app/(dashboard)/dashboard/providers/[id]/page.js b/src/app/(dashboard)/dashboard/providers/[id]/page.js index 8ca07ae4..5eb92c34 100644 --- a/src/app/(dashboard)/dashboard/providers/[id]/page.js +++ b/src/app/(dashboard)/dashboard/providers/[id]/page.js @@ -968,17 +968,39 @@ export default function ProviderDetailPage() { onToggle: (on) => handleAutoPingConnection(conn.id, on), provider: providerId, } : null} - onUpdateProxy={async (proxyPoolId) => { + onUpdateProxy={async (proxyConfig) => { try { + // Support both new format (object) and legacy format (string/null) + const updatePayload = typeof proxyConfig === 'object' && proxyConfig !== null + ? { + proxyPoolIds: proxyConfig.proxyPoolIds || [], + proxyRotationStrategy: proxyConfig.proxyRotationStrategy || "none", + } + : { + // Legacy single-proxy format + proxyPoolId: proxyConfig || null, + }; + const res = await fetch(`/api/providers/${conn.id}`, { method: "PUT", headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ proxyPoolId: proxyPoolId || null }), + body: JSON.stringify(updatePayload), }); if (res.ok) { setConnections(prev => prev.map(c => c.id === conn.id - ? { ...c, providerSpecificData: { ...c.providerSpecificData, proxyPoolId: proxyPoolId || null } } + ? { + ...c, + providerSpecificData: { + ...c.providerSpecificData, + ...(updatePayload.proxyPoolIds !== undefined ? { + proxyPoolIds: updatePayload.proxyPoolIds, + proxyRotationStrategy: updatePayload.proxyRotationStrategy, + } : { + proxyPoolId: updatePayload.proxyPoolId, + }) + } + } : c )); } diff --git a/src/app/api/oauth/[provider]/[action]/route.js b/src/app/api/oauth/[provider]/[action]/route.js index 824cad8b..5b86f013 100644 --- a/src/app/api/oauth/[provider]/[action]/route.js +++ b/src/app/api/oauth/[provider]/[action]/route.js @@ -215,6 +215,7 @@ export async function GET(request, { params }) { "codebuddy-intl", "qoder", "grok-cli", + "freebuff", ]; let deviceData; if (noPkceDeviceProviders.includes(provider)) { diff --git a/src/app/api/providers/[id]/models/route.js b/src/app/api/providers/[id]/models/route.js index d73ec11d..8a422b58 100644 --- a/src/app/api/providers/[id]/models/route.js +++ b/src/app/api/providers/[id]/models/route.js @@ -391,7 +391,7 @@ const PROVIDER_MODELS_CONFIG = { }, "grok-cli": { customResolver: async (connection) => { - const proxy = await resolveConnectionProxyConfig(connection.providerSpecificData || {}); + const proxy = await resolveConnectionProxyConfig(connection.providerSpecificData || {}, connection.id); const result = await resolveGrokCliModels({ ...connection, connectionId: connection.id, diff --git a/src/app/api/providers/[id]/route.js b/src/app/api/providers/[id]/route.js index 6ab51797..77e9a5a4 100644 --- a/src/app/api/providers/[id]/route.js +++ b/src/app/api/providers/[id]/route.js @@ -33,7 +33,31 @@ function normalizeProxyConfig(body = {}) { }; } -async function normalizeProxyPoolUpdate(proxyPoolIdInput) { +async function normalizeProxyPoolUpdate(body) { + // Handle new multi-proxy format + if (body.proxyPoolIds !== undefined) { + const proxyPoolIds = Array.isArray(body.proxyPoolIds) ? body.proxyPoolIds : []; + const proxyRotationStrategy = body.proxyRotationStrategy || "none"; + + // Validate all proxy pool IDs exist + for (const poolId of proxyPoolIds) { + if (poolId) { + const pool = await getProxyPoolById(poolId); + if (!pool) { + return { hasProxyPoolField: true, error: `Proxy pool ${poolId} not found` }; + } + } + } + + return { + hasProxyPoolField: true, + proxyPoolIds: proxyPoolIds.filter(Boolean), + proxyRotationStrategy, + }; + } + + // Handle legacy single proxy format + const proxyPoolIdInput = body.proxyPoolId; if (proxyPoolIdInput === undefined) { return { hasProxyPoolField: false, proxyPoolId: null }; } @@ -111,7 +135,7 @@ export async function PUT(request, { params }) { return NextResponse.json({ error: proxyConfig.error }, { status: 400 }); } - const proxyPoolResult = await normalizeProxyPoolUpdate(body.proxyPoolId); + const proxyPoolResult = await normalizeProxyPoolUpdate(body); if (proxyPoolResult.error) { return NextResponse.json({ error: proxyPoolResult.error }, { status: 400 }); } @@ -147,10 +171,19 @@ export async function PUT(request, { params }) { } if (proxyPoolResult.hasProxyPoolField) { - if (proxyPoolResult.proxyPoolId === null) { + // Handle new multi-proxy format + if (proxyPoolResult.proxyPoolIds !== undefined) { + updateData.providerSpecificData.proxyPoolIds = proxyPoolResult.proxyPoolIds; + updateData.providerSpecificData.proxyRotationStrategy = proxyPoolResult.proxyRotationStrategy; + // Clear legacy field delete updateData.providerSpecificData.proxyPoolId; } else { - updateData.providerSpecificData.proxyPoolId = proxyPoolResult.proxyPoolId; + // Handle legacy single-proxy format + if (proxyPoolResult.proxyPoolId === null) { + delete updateData.providerSpecificData.proxyPoolId; + } else { + updateData.providerSpecificData.proxyPoolId = proxyPoolResult.proxyPoolId; + } } } } diff --git a/src/app/api/providers/[id]/test/testUtils.js b/src/app/api/providers/[id]/test/testUtils.js index 0ea46b2d..96fffd2a 100644 --- a/src/app/api/providers/[id]/test/testUtils.js +++ b/src/app/api/providers/[id]/test/testUtils.js @@ -803,7 +803,7 @@ export async function testSingleConnection(id) { const connection = await getProviderConnectionById(id); if (!connection) return { valid: false, error: "Connection not found", latencyMs: 0, testedAt: new Date().toISOString() }; - const effectiveProxy = await resolveConnectionProxyConfig(connection.providerSpecificData || {}); + const effectiveProxy = await resolveConnectionProxyConfig(connection.providerSpecificData || {}, connection.id); if (effectiveProxy.connectionProxyEnabled && effectiveProxy.connectionProxyUrl && !effectiveProxy.vercelRelayUrl) { const proxyResult = await testProxyUrl({ proxyUrl: effectiveProxy.connectionProxyUrl }); diff --git a/src/app/api/usage/[connectionId]/route.js b/src/app/api/usage/[connectionId]/route.js index 8ccdc015..3550c2b8 100644 --- a/src/app/api/usage/[connectionId]/route.js +++ b/src/app/api/usage/[connectionId]/route.js @@ -145,7 +145,7 @@ export async function GET(request, { params }) { } // Resolve connection proxy config; force strictProxy=false so quota/refresh fall back to direct on failure - const proxyConfig = await resolveConnectionProxyConfig(connection.providerSpecificData); + const proxyConfig = await resolveConnectionProxyConfig(connection.providerSpecificData, connection.id); const proxyOptions = { connectionProxyEnabled: proxyConfig.connectionProxyEnabled === true, connectionProxyUrl: proxyConfig.connectionProxyUrl || "", diff --git a/src/app/api/v1/models/route.js b/src/app/api/v1/models/route.js index 26c9d010..a5826545 100644 --- a/src/app/api/v1/models/route.js +++ b/src/app/api/v1/models/route.js @@ -77,7 +77,7 @@ const LIVE_MODEL_RESOLVERS = { return result?.models?.length ? { models: result.models } : null; }, "grok-cli": async (conn) => { - const proxy = await resolveConnectionProxyConfig(conn.providerSpecificData || {}); + const proxy = await resolveConnectionProxyConfig(conn.providerSpecificData || {}, conn.id); const result = await resolveGrokCliModels({ ...conn, connectionId: conn.id, diff --git a/src/lib/db/repos/connectionsRepo.js b/src/lib/db/repos/connectionsRepo.js index 4181843f..3b510965 100644 --- a/src/lib/db/repos/connectionsRepo.js +++ b/src/lib/db/repos/connectionsRepo.js @@ -8,6 +8,7 @@ const OPTIONAL_FIELDS = [ "scope", "projectId", "apiKey", "testStatus", "lastTested", "lastError", "lastErrorAt", "rateLimitedUntil", "expiresIn", "errorCode", "consecutiveUseCount", "idToken", "lastRefreshAt", + "proxyRotationStrategy", "proxyPoolIds", ]; function rowToConn(row) { diff --git a/src/lib/network/connectionProxy.js b/src/lib/network/connectionProxy.js index 9ecd2535..135859f7 100644 --- a/src/lib/network/connectionProxy.js +++ b/src/lib/network/connectionProxy.js @@ -59,75 +59,107 @@ function normalizeLegacyProxy(providerSpecificData = {}) { * Resolve final proxy configuration. * * Priority: - * 1. Proxy Pool - * 2. Legacy Proxy - * 3. No Proxy + * 1. Multi-Proxy Pool (new format with rotation) + * 2. Single Proxy Pool (legacy) + * 3. Legacy Proxy + * 4. No Proxy */ export async function resolveConnectionProxyConfig( - providerSpecificData = {} + providerSpecificData = {}, + connectionId = null ) { try { - const proxyPoolIdRaw = normalizeString( - providerSpecificData?.proxyPoolId - ); - - // "__none__" means explicitly disabled - const proxyPoolId = - proxyPoolIdRaw === "__none__" ? "" : proxyPoolIdRaw; + // Handle new multi-proxy format + const proxyPoolIds = providerSpecificData?.proxyPoolIds || []; + const proxyRotationStrategy = providerSpecificData?.proxyRotationStrategy || "none"; + + // Handle legacy single-proxy format + const legacyProxyPoolId = normalizeString(providerSpecificData?.proxyPoolId); + const proxyPoolIdRaw = legacyProxyPoolId === "__none__" ? "" : legacyProxyPoolId; const legacy = normalizeLegacyProxy(providerSpecificData); /** * ----------------------------- - * Proxy Pool Resolution + * Multi-Proxy Pool Resolution (NEW) * ----------------------------- */ - if (proxyPoolId) { - const proxyPool = await getProxyPoolById(proxyPoolId); + if (proxyPoolIds.length > 0) { + const selectedPoolId = pickProxyPoolId(proxyPoolIds, proxyRotationStrategy, connectionId); + + if (selectedPoolId) { + const proxyPool = await getProxyPoolById(selectedPoolId); + const proxyUrl = normalizeString(proxyPool?.proxyUrl); + const noProxy = normalizeString(proxyPool?.noProxy); + const isValidPool = proxyPool && proxyPool.isActive === true && proxyUrl; + + if (isValidPool) { + /** + * Vercel/Cloudflare relay proxies use base URL rewriting + * instead of HTTP_PROXY environment variables. + */ + if (proxyPool.type === "vercel" || proxyPool.type === "cloudflare" || proxyPool.type === "deno") { + return { + source: proxyPool.type, + proxyPoolId: selectedPoolId, + proxyPool, + connectionProxyEnabled: false, + connectionProxyUrl: "", + connectionNoProxy: noProxy, + strictProxy: proxyPool.strictProxy === true, + vercelRelayUrl: proxyUrl, + }; + } + + /** + * Standard proxy pool + */ + return { + source: "pool", + proxyPoolId: selectedPoolId, + proxyPool, + connectionProxyEnabled: true, + connectionProxyUrl: proxyUrl, + connectionNoProxy: noProxy, + strictProxy: proxyPool.strictProxy === true, + }; + } + } + } + + /** + * ----------------------------- + * Single Proxy Pool Resolution (LEGACY) + * ----------------------------- + */ + if (proxyPoolIdRaw) { + const proxyPool = await getProxyPoolById(proxyPoolIdRaw); const proxyUrl = normalizeString(proxyPool?.proxyUrl); const noProxy = normalizeString(proxyPool?.noProxy); - - const isValidPool = - proxyPool && - proxyPool.isActive === true && - proxyUrl; + const isValidPool = proxyPool && proxyPool.isActive === true && proxyUrl; if (isValidPool) { - /** - * Vercel/Cloudflare relay proxies use base URL rewriting - * instead of HTTP_PROXY environment variables. - */ if (proxyPool.type === "vercel" || proxyPool.type === "cloudflare" || proxyPool.type === "deno") { return { source: proxyPool.type, - - proxyPoolId, + proxyPoolId: proxyPoolIdRaw, proxyPool, - connectionProxyEnabled: false, connectionProxyUrl: "", connectionNoProxy: noProxy, - strictProxy: proxyPool.strictProxy === true, - - vercelRelayUrl: proxyUrl, // Still mapped to vercelRelayUrl in the unified payload since they use the exact same header spec + vercelRelayUrl: proxyUrl, }; } - /** - * Standard proxy pool - */ return { source: "pool", - - proxyPoolId, + proxyPoolId: proxyPoolIdRaw, proxyPool, - connectionProxyEnabled: true, connectionProxyUrl: proxyUrl, connectionNoProxy: noProxy, - strictProxy: proxyPool.strictProxy === true, }; } @@ -145,7 +177,7 @@ export async function resolveConnectionProxyConfig( return { source: "legacy", - proxyPoolId: proxyPoolId || null, + proxyPoolId: proxyPoolIdRaw || null, proxyPool: null, ...legacy, @@ -160,7 +192,7 @@ export async function resolveConnectionProxyConfig( return { source: "none", - proxyPoolId: proxyPoolId || null, + proxyPoolId: proxyPoolIdRaw || null, proxyPool: null, ...legacy, diff --git a/src/shared/components/OAuthModal.js b/src/shared/components/OAuthModal.js index 805301da..85ca8622 100644 --- a/src/shared/components/OAuthModal.js +++ b/src/shared/components/OAuthModal.js @@ -234,6 +234,7 @@ export default function OAuthModal({ isOpen, provider, providerInfo, onSuccess, "codebuddy-intl", "qoder", "grok-cli", + "freebuff", ]; if (deviceCodeProviders.includes(provider)) { setIsDeviceCode(true); diff --git a/src/sse/services/auth.js b/src/sse/services/auth.js index feaaa2ab..8eb0545c 100644 --- a/src/sse/services/auth.js +++ b/src/sse/services/auth.js @@ -172,7 +172,7 @@ export async function getProviderCredentials(provider, excludeConnectionIds = nu connection = availableConnections[0]; } - const resolvedProxy = await resolveConnectionProxyConfig(connection.providerSpecificData || {}); + const resolvedProxy = await resolveConnectionProxyConfig(connection.providerSpecificData || {}, connection.id); return { authType: connection.authType, From 90ff8191ff1048384c323fcbe30ab061f22f8b8b Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Thu, 6 Aug 2026 04:10:58 +0800 Subject: [PATCH 06/42] fix: lock Docker dependencies and remove test credential --- .gitignore | 1 - Dockerfile | 4 +- package-lock.json | 9407 +++++++++++++++++++++++++++++ scripts/test-combo-autoswitch.mjs | 7 +- 4 files changed, 9415 insertions(+), 4 deletions(-) create mode 100644 package-lock.json diff --git a/.gitignore b/.gitignore index 8ccac2c7..c05d02cf 100644 --- a/.gitignore +++ b/.gitignore @@ -60,7 +60,6 @@ PUBLIC.md Thanks.md PUBLIC.en.md PR/* -package-lock.json #Ignore vscode AI rules diff --git a/Dockerfile b/Dockerfile index 5abe1f24..92822918 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,9 +7,9 @@ FROM base AS builder RUN apk --no-cache upgrade && apk --no-cache add python3 make g++ linux-headers -COPY package.json ./ +COPY package.json package-lock.json ./ RUN --mount=type=cache,target=/root/.npm \ - npm install + npm ci COPY . ./ ENV NEXT_TELEMETRY_DISABLED=1 diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..c4271bda --- /dev/null +++ b/package-lock.json @@ -0,0 +1,9407 @@ +{ + "name": "9router-app", + "version": "0.5.50", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "9router-app", + "version": "0.5.50", + "dependencies": { + "@dnd-kit/core": "^6.3.1", + "@dnd-kit/modifiers": "^9.0.0", + "@dnd-kit/sortable": "^10.0.0", + "@dnd-kit/utilities": "^3.2.2", + "@monaco-editor/react": "^4.7.0", + "@next/third-parties": "^16.2.9", + "@xyflow/react": "^12.10.1", + "bcryptjs": "^3.0.3", + "confbox": "^0.2.4", + "dompurify": "^3.4.13", + "express": "^5.2.1", + "http-proxy-middleware": "^3.0.5", + "jose": "^6.1.3", + "marked": "^18.0.1", + "material-symbols": "^0.44.6", + "monaco-editor": "^0.56.0", + "next": "^16.1.6", + "node-forge": "^1.3.3", + "node-machine-id": "^1.1.12", + "open": "^11.0.0", + "ora": "^9.1.0", + "react": "19.2.4", + "react-dom": "19.2.4", + "react-is": "^16.13.1", + "recharts": "^3.7.0", + "selfsigned": "^5.5.0", + "socks-proxy-agent": "^8.0.5", + "sql.js": "^1.14.1", + "undici": "^7.19.2", + "uuid": "^13.0.0", + "zustand": "^5.0.10" + }, + "devDependencies": { + "@tailwindcss/postcss": "^4.1.18", + "eslint": "^9", + "eslint-config-next": "16.1.6", + "postcss": "^8.5.6", + "tailwindcss": "^4" + }, + "optionalDependencies": { + "better-sqlite3": "^12.6.2" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", + "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", + "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helpers": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.8.tgz", + "integrity": "sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.8", + "@babel/types": "^7.29.8", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", + "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", + "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", + "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz", + "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.8.tgz", + "integrity": "sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.8" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/template": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.8.tgz", + "integrity": "sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.8", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.8", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.8", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz", + "integrity": "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@dnd-kit/accessibility": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@dnd-kit/accessibility/-/accessibility-3.1.1.tgz", + "integrity": "sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@dnd-kit/core": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.3.1.tgz", + "integrity": "sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@dnd-kit/accessibility": "^3.1.1", + "@dnd-kit/utilities": "^3.2.2", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@dnd-kit/modifiers": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@dnd-kit/modifiers/-/modifiers-9.0.0.tgz", + "integrity": "sha512-ybiLc66qRGuZoC20wdSSG6pDXFikui/dCNGthxv4Ndy8ylErY0N3KVxY2bgo7AWwIbxDmXDg3ylAFmnrjcbVvw==", + "license": "MIT", + "dependencies": { + "@dnd-kit/utilities": "^3.2.2", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@dnd-kit/core": "^6.3.0", + "react": ">=16.8.0" + } + }, + "node_modules/@dnd-kit/sortable": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@dnd-kit/sortable/-/sortable-10.0.0.tgz", + "integrity": "sha512-+xqhmIIzvAYMGfBYYnbKuNicfSsk4RksY2XdmJhT+HAC01nix6fHCztU68jooFiMUB01Ky3F0FyOvhG/BZrWkg==", + "license": "MIT", + "dependencies": { + "@dnd-kit/utilities": "^3.2.2", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@dnd-kit/core": "^6.3.0", + "react": ">=16.8.0" + } + }, + "node_modules/@dnd-kit/utilities": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@dnd-kit/utilities/-/utilities-3.2.2.tgz", + "integrity": "sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emnapi/core": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", + "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.3.tgz", + "integrity": "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.10.1.tgz", + "integrity": "sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", + "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.5" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.6.tgz", + "integrity": "sha512-l2Ul9PrHsPCKcEY/ac7VgFj9D80C7S68sOKc618SyHDPK36s1XcFebXY0iTzUVn4Yq+YbwvSnDmCz9yxjX+QrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.14.0", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.3.0", + "minimatch": "^3.1.5", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "9.39.5", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.5.tgz", + "integrity": "sha512-QywQuszQh77pIXCsq998c8hbhSTI/azTty1Z6N53dmAudKHhy573j3yvRLsX2BSp8YpLtoCEG8E9DJe+8zUh4A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz", + "integrity": "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/types": "^0.15.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.8.tgz", + "integrity": "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.2", + "@humanfs/types": "^0.15.0", + "@humanwhocodes/retry": "^0.4.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/types": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-0.15.0.tgz", + "integrity": "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@img/colour": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", + "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.35.3.tgz", + "integrity": "sha512-RMnFX7YQsMoh7lWfcM4NEHHymBX/rLuKNPVM84XE9ONPcaSCDgE7CHIHpSgPcO2xcRthgBy1HfNO319mwhIAkg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.3.2" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.35.3.tgz", + "integrity": "sha512-Xo+5uFBtLN0BKqieTxiFzFPQAUlBbbH5iBKyRX/z1JrbnYsHTfKJnUfL8+p2TPXr1pXqao4eeL4Rl144uDpK9w==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.3.2" + } + }, + "node_modules/@img/sharp-freebsd-wasm32": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-freebsd-wasm32/-/sharp-freebsd-wasm32-0.35.3.tgz", + "integrity": "sha512-lUxcqWIj2wMQ9BrwNjngcr1gWUr5xgaGThBRqPPalIC2n67Cqj1uPh8NnA/ZhAg8hUbKl+kVHKwgUIwe6ZYPrg==", + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "dependencies": { + "@img/sharp-wasm32": "0.35.3" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.3.2.tgz", + "integrity": "sha512-9J6ypZFpQBj4YnePGoq/S38w6nz+vqg5WZLrLGY4YuSemdMq47GMLBPO42MzwdGwpg/agZ7xzZcFHa48xlywfg==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.3.2.tgz", + "integrity": "sha512-m2pW1n6cns9VaubNwsZ+c3CRYjxNQWgJ5gPlnL1nbBcpkBvFm6SCFN5o0psFHI8w9n11NKhFkeEDns98tiqbEw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.3.2.tgz", + "integrity": "sha512-1eMLzy92I4J6rmi4mAT8yC3HxOtniyGELlzGbNMLLeqe052ahFQ0h6LFq+lh5DsDIdYViIDst08abvSbcEdLXQ==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.3.2.tgz", + "integrity": "sha512-dqVSFynCox4C/J8kT16V7SIFAns0IjgLwkvYT7p8LQVmJ5OS5b6tI9IGflxTeuBS//zXeFIUbwt5dwxyZ17cnA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.3.2.tgz", + "integrity": "sha512-3z0NHDxD6n5I9gc05U1eW1AyRm+Gznzq3naMrthPNqE6oYykcogW0l/jfpJdjYnuNl8R7yI9pNbE1XiUeyq0Aw==", + "cpu": [ + "ppc64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.3.2.tgz", + "integrity": "sha512-bsb4rI+NldGOsXuej2r8OdSS8+zXDVaCWxyWrcv6kneTOlgAHtZABRzBBCwdsPiD90J4myNJuHpg6kA20ImW/w==", + "cpu": [ + "riscv64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.3.2.tgz", + "integrity": "sha512-/ABshyj8gCpyIrNXnHn4LorDJ0HHm1VhXPBlxZ8zAtfVPAaSafXPGn+sUSIRiwaSBy0mmFjSjiXI5mkcwdChKQ==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.3.2.tgz", + "integrity": "sha512-ITPEtgffGJ0S6G9dRyw/366tJQqFRcHWPHhC+Stpg3Z8AEMrDrTr2lhdz4f/Y/HMbRh//7Z5mBzEpVdi62Oc3w==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.3.2.tgz", + "integrity": "sha512-zE9EdiUzUmg5mDT5a1rk5fYJ6GWPloTwWBYDS14naqHsL+EaMpDj1AWnpLgh3u0YCORv2Tt50wrcrpYqkP97Kw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.3.2.tgz", + "integrity": "sha512-m0lrLiUt+lBYnCFr8qV/65yMR4E/c7/wf78I5eKTdkEakFAlZ9QlzEM3QIhhAwVeUhLAHLcCq7a7Vszq/oFNZQ==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.35.3.tgz", + "integrity": "sha512-affVWCTLooy8TSxbDx2qkzuDeaWLNVBA+P//FNBirHsXpP2fuBhk5AuboYUnrDnzoXes8GFjpTx0SBFOCRg+FA==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.3.2" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.35.3.tgz", + "integrity": "sha512-QgKDspHPnrU+GQ55XPhGwyhC8acLVOOSyAvo1oVfFmrIXLkDNmGWzAfDZ4xK8oSA1qBQrALcHX0G5UZni/SuFQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.3.2" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.35.3.tgz", + "integrity": "sha512-sMd8rDxmpLOwv/7N44klFjOD5DUO7FLdjiXDI0hoxYaf7Ar262dQIEkosE98bps+5HPLtp/EvNqeqQtOycP/IA==", + "cpu": [ + "ppc64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.3.2" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.35.3.tgz", + "integrity": "sha512-0Eob78yjlYPfL5vMNWAW55l3R9Y6BQS/gOfe0ZcP9mEz9ohhKSt4im1hayiknXgf8AWrFqMvJcKIdmLmEe7yeQ==", + "cpu": [ + "riscv64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-riscv64": "1.3.2" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.35.3.tgz", + "integrity": "sha512-KgAxQ0DxpNOq1rG2t5cgTgShJFGSuU7XO45cqC+1NVOuZnP6tlgZRuSYOfNupGkHID0o3cJOsw4DVeJpMovcGw==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.3.2" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.35.3.tgz", + "integrity": "sha512-8pqvxubL2PGdhlPy6GLqzDYMUjyRmKAwKHYKixpdJYBUK7PJ0C029XdsnpFIdgRZG68fZiGdHVWcKPvtiPB4cA==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.3.2" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.35.3.tgz", + "integrity": "sha512-Vz0iQjzzcSX3HCbfwFfCSG/9SCIqyO0mH2sXyiHaAYfBk0cRsCWXRyQYX0ovCK/PAQBbTzQ0dsPQHh5MAFL59w==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.3.2" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.35.3.tgz", + "integrity": "sha512-6O1NPKcDVj9QEdg7Hx549EX8U0rp6yXQERqru6yRN7fGBn32UvIRJUlWnk+8xDCiG76hXVBbX82NZ/ZKr0euIg==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.3.2" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.35.3.tgz", + "integrity": "sha512-cZ0XkcYGpHZkqW6iCkqTcmUC0CD9DhD5d/qeZlZkfRBn6GnHniZXLUo5+9xw8Iv76YE6LQFN9YNBlKREcCG76w==", + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.11.1" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-webcontainers-wasm32": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-webcontainers-wasm32/-/sharp-webcontainers-wasm32-0.35.3.tgz", + "integrity": "sha512-2rnq7bX3NzeR2T4YWgz8qiG4h3TSdMe+vN1iQXpJleSJ3SM5zQ8Fy2SyyXAWlbxpEZ2Y+Z4u1BePgJEYbSy80Q==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@img/sharp-wasm32": "0.35.3" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.35.3.tgz", + "integrity": "sha512-4bPwFdMbeC4JQ8L8LOyWp6nsHcboP5fxkp6iPOXz2Vg49R42TuMs2whkJ5OAP4/Ul035qOzy0AecOF9VOscn4w==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.35.3.tgz", + "integrity": "sha512-r53mXsBN6lFUDiST764SvgwUdHAqM4rPAiDzAmf4fLoB6X/rkfyTrLCg6+g17wJJiCmB3JYgHuUldCWUIRFSXw==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.35.3.tgz", + "integrity": "sha512-D4y1vNeZrIIJCN+uHaWVtH86B+aCrdMYYjicy9pXHvbGZeGYLLSd3wdVuC37FxVXlU1ARsk84eKWfWMXGYEqvA==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@monaco-editor/loader": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@monaco-editor/loader/-/loader-1.7.0.tgz", + "integrity": "sha512-gIwR1HrJrrx+vfyOhYmCZ0/JcWqG5kbfG7+d3f/C1LXk2EvzAbHSg3MQ5lO2sMlo9izoAZ04shohfKLVT6crVA==", + "license": "MIT", + "dependencies": { + "state-local": "^1.0.6" + } + }, + "node_modules/@monaco-editor/react": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@monaco-editor/react/-/react-4.7.0.tgz", + "integrity": "sha512-cyzXQCtO47ydzxpQtCGSQGOC8Gk3ZUeBXFAxD+CWXYFo5OqZyZUonFl0DwUlTyAfRHntBfw2p3w4s9R6oe1eCA==", + "license": "MIT", + "dependencies": { + "@monaco-editor/loader": "^1.5.0" + }, + "peerDependencies": { + "monaco-editor": ">= 0.25.0 < 1", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.2.tgz", + "integrity": "sha512-JfB4kuJQjaoHuCTseIINHtHWeJnvgEcxjwA5t/Y00ZgaOO1Crz3fjT/p8kT28zA/Caz7oiUMn3d6H2yOVCVwuw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.3" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=23.5.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1 || ^2.0.0-alpha.3", + "@emnapi/runtime": "^1.7.1 || ^2.0.0-alpha.3" + } + }, + "node_modules/@next/env": { + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/@next/env/-/env-16.3.0.tgz", + "integrity": "sha512-o9r1S0BNiNreHP9Vs+Qnqd9kviDkJh8xIACY7UFZSmiGbbQRzPBBosvHzAU4TULHOIuOj/18RSsyz2qrREmIFw==", + "license": "MIT" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-16.1.6.tgz", + "integrity": "sha512-/Qq3PTagA6+nYVfryAtQ7/9FEr/6YVyvOtl6rZnGsbReGLf0jZU6gkpr1FuChAQpvV46a78p4cmHOVP8mbfSMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-glob": "3.3.1" + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.3.0.tgz", + "integrity": "sha512-55hpqq18bEVAlxedlTt3tFqZmKg2nUXT1kn1G/BGEy0R13h3LwtwHPVzzjG6P4LLeOHE32PFDQUVaJEWvBEZBw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.3.0.tgz", + "integrity": "sha512-SOi96kSaF5T+0wW4koiM1bWzSPwjzTesC1p3df+FjdOi5LIQkBK/blxh7HdoKnNuI4PURF1OO7TZqtfnbWDSgw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.3.0.tgz", + "integrity": "sha512-P0gZAoPMF4dyTRzhmkV4PrqVzSOB6t4mC1oI3c4dqijJ+OVEVx5clIXAKR4/uQpsqw2KKM/0D5tVumcR2r5blg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.3.0.tgz", + "integrity": "sha512-tXXGKJw0m37O0eKJARVTX/TheKPhz0QFVtVVZXmOig+9YKLQOSP6hvf2pxv5DO7CLEJyTHx3Pg043CDQkv1G4Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.3.0.tgz", + "integrity": "sha512-pjGxK5EY7yWml78ALejFkWmgHsU7wbFQrISiugpH6FbUJhgEvw3xFZ/EBAtLl7QtL0WdQKiG9eWJ3mOKGTukHw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.3.0.tgz", + "integrity": "sha512-sjo++Xx+lomlPs3HRsHWhVDyGG6ms1kGW5EtHLERdII8AyG1i+f6aq68xHREO6AEMlhjTNEWBSmfJfqm9orf7g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.3.0.tgz", + "integrity": "sha512-C5JSgiO54wURdaxdEUIXqkz04uMqC9UmPX1gtDrV/5Tf1UowdWYI8uA5hfFbPolTlp0q4KZ60xlHePNibf0VIw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.3.0.tgz", + "integrity": "sha512-fDOggsweNb5SSw0ZKVk6U+gxSyGFFlIBY/LBc1r8GUj4u/6t6oArL+Pmkg0MBnsgR+KkdsURilVH4F3GXUGepA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/third-parties": { + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/@next/third-parties/-/third-parties-16.3.0.tgz", + "integrity": "sha512-cAA96hSI9NC7083b6sEsKjgyvM/YJ2eqXs4HWv8a/z5LE12CL1sUJS+cmcTwNMY4yAFpLyyuZHrMBEfh/4Xupw==", + "license": "MIT", + "dependencies": { + "third-party-capital": "1.0.20" + }, + "peerDependencies": { + "next": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0-beta.0", + "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0" + } + }, + "node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.4.0" + } + }, + "node_modules/@peculiar/asn1-cms": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.8.0.tgz", + "integrity": "sha512-NgekZOrSJFSBFLFoLfwePguAWAx7z1+f2TEsWFUMyiqqfntZ4+S/S5hzqME3q4pCA0iOsFKdwiQ35dwY24eVqA==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.8.0", + "@peculiar/asn1-x509": "^2.8.0", + "@peculiar/asn1-x509-attr": "^2.8.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-csr": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.8.0.tgz", + "integrity": "sha512-akbF8+uvleHs8sejNPQxwmVFuInAg6FMNHOwMILXfP518YfFJwdR3jr6oNUPOaEJfuEhn/vkNOCIT6ASUd4mbg==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.8.0", + "@peculiar/asn1-x509": "^2.8.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-ecc": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.8.0.tgz", + "integrity": "sha512-ohwlk+u9Rv2NOAY1c6MfHj45ATVF8R1DUN/WCgABiRtLi2ZftlZWZX7KvpAbU8v9xPcmoILfELeEABj/rn18AQ==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.8.0", + "@peculiar/asn1-x509": "^2.8.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-pfx": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.8.0.tgz", + "integrity": "sha512-5yof1ytoB++RQtaFbqSUJ8pxDJtZT6vbVqZ8XoJ61ph7UjNVvfFwAilnCodqkNsAodpy13gDhoxZXw00pghnyg==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-cms": "^2.8.0", + "@peculiar/asn1-pkcs8": "^2.8.0", + "@peculiar/asn1-rsa": "^2.8.0", + "@peculiar/asn1-schema": "^2.8.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-pkcs8": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.8.0.tgz", + "integrity": "sha512-qAKXtLpBEw9LqhKpjw3ajZSXlBur+ipW+y2ivVBQAG6F6qRx94yO+1ZR4mvw+YaCfKSaOzLeYEzsPaBp4SJELA==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.8.0", + "@peculiar/asn1-x509": "^2.8.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-pkcs9": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.8.0.tgz", + "integrity": "sha512-b5nDWCnkV60+cQ141D6sVVwK9nz64R5n3zSVnklGd+ECdkW2Ol3U1a6yYFlalpSOaD557yuJB64A+q42jG7lUQ==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-cms": "^2.8.0", + "@peculiar/asn1-pfx": "^2.8.0", + "@peculiar/asn1-pkcs8": "^2.8.0", + "@peculiar/asn1-schema": "^2.8.0", + "@peculiar/asn1-x509": "^2.8.0", + "@peculiar/asn1-x509-attr": "^2.8.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-rsa": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.8.0.tgz", + "integrity": "sha512-zHEUlCqB2mk7x2lxDwHHJy7hWZOPdGHVlsmITWKB5/PbQo61atbu9PJ/0r9dQNMwFzbKPXZ8uK8/91eUhRznSg==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.8.0", + "@peculiar/asn1-x509": "^2.8.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-schema": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.8.0.tgz", + "integrity": "sha512-7YT0U/ze0tF2QOBbE15gKZwy5tvgGyLRiRHLzhlbOpf7BT032oBSd0haZqXn5W6l26WLlu3dyxzjM+2638/z2Q==", + "license": "MIT", + "dependencies": { + "@peculiar/utils": "^2.0.2", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-x509": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.8.0.tgz", + "integrity": "sha512-N0CMuhWUzsWEVq6F1q9X6+VKUnWzSW+cSVg+aPaGGwDdbFoFWTYgin5MHwXgpWd6y9COMBxnfy/Qc+Xc7F0Zwg==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.8.0", + "@peculiar/utils": "^2.0.2", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-x509-attr": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.8.0.tgz", + "integrity": "sha512-tHjkfS/qhMnmrlB2J9NhflQlQ7In3khO3CfmVrriOlpTeErY9ZIKOso1hQ5JQiyrJ7ShvqVPk7E5fQmbclkSKA==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.8.0", + "@peculiar/asn1-x509": "^2.8.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@peculiar/utils/-/utils-2.0.3.tgz", + "integrity": "sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ==", + "license": "MIT", + "dependencies": { + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/x509": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/@peculiar/x509/-/x509-1.14.3.tgz", + "integrity": "sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-cms": "^2.6.0", + "@peculiar/asn1-csr": "^2.6.0", + "@peculiar/asn1-ecc": "^2.6.0", + "@peculiar/asn1-pkcs9": "^2.6.0", + "@peculiar/asn1-rsa": "^2.6.0", + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.0", + "pvtsutils": "^1.3.6", + "reflect-metadata": "^0.2.2", + "tslib": "^2.8.1", + "tsyringe": "^4.10.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@reduxjs/toolkit": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.12.0.tgz", + "integrity": "sha512-KiT+RzZbp6mQET+Mg+h2c97+9j1sNflUxQkIHI7Yuzf6Peu+OYpmkn6nbHWmLLWj+1ZODUJFwGZ7gx3L9R9EOw==", + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.0.0", + "@standard-schema/utils": "^0.3.0", + "immer": "^11.0.0", + "redux": "^5.0.1", + "redux-thunk": "^3.1.0", + "reselect": "^5.1.0" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17.0.0 || ^18 || ^19", + "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } + } + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "license": "MIT" + }, + "node_modules/@standard-schema/utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz", + "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==", + "license": "MIT" + }, + "node_modules/@swc/helpers": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@tailwindcss/node": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.3.tgz", + "integrity": "sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "enhanced-resolve": "^5.24.1", + "jiti": "^2.7.0", + "lightningcss": "1.32.0", + "magic-string": "^0.30.21", + "source-map-js": "^1.2.1", + "tailwindcss": "4.3.3" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.3.tgz", + "integrity": "sha512-krXjAikiaFSPaK/FkAQT5UTx3VormQaiZ5hBFlJZ9UFQGB/rwg1MZIhHAG9smMQRTdyJxP6Qt5MwMtdyU5FWrA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.3.3", + "@tailwindcss/oxide-darwin-arm64": "4.3.3", + "@tailwindcss/oxide-darwin-x64": "4.3.3", + "@tailwindcss/oxide-freebsd-x64": "4.3.3", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.3", + "@tailwindcss/oxide-linux-arm64-gnu": "4.3.3", + "@tailwindcss/oxide-linux-arm64-musl": "4.3.3", + "@tailwindcss/oxide-linux-x64-gnu": "4.3.3", + "@tailwindcss/oxide-linux-x64-musl": "4.3.3", + "@tailwindcss/oxide-wasm32-wasi": "4.3.3", + "@tailwindcss/oxide-win32-arm64-msvc": "4.3.3", + "@tailwindcss/oxide-win32-x64-msvc": "4.3.3" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.3.tgz", + "integrity": "sha512-Y85A2gmPSkl5Ve5qR86GL4HT509cFqQh1aes9p3sSkyTPwt0Pppf3GkwGe4JPACcRYjgJIEhQgM6dBClnr0NYw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.3.tgz", + "integrity": "sha512-BiaWatpBcERQFDlOjRDpIVXuFK5PJez5SA4JMg6VYZdBYU+qKfV/vqjcIs+IYmtitf1xYQZTwXvU/8y4lfZUGw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.3.tgz", + "integrity": "sha512-fAeUqfV5ndhxRwai8cXGzdLvul9utWOmeTkv69unv4ZXixjn61Z+p9lCWdwOwA3TYboG3BwdVuN/RDjhBRl0mw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.3.tgz", + "integrity": "sha512-iyf5bV6+wnAlflVeEy7R25dupxTNECZN5QMI0qNT6eT+EgaGdZcKhGkr5SdoaWiLJ3spLqIY9VCeSGrwmtg4kw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.3.tgz", + "integrity": "sha512-aAYUprJAJQWWbRrPvtjdroZ56Md+JM8pMiopS6xGEwDfLhqj+2ver2p4nU4Mb3CRqcMmNBjo8KkUgcxhkzVQGQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.3.tgz", + "integrity": "sha512-nDxldcEENOxZRzC2uu9jrutZdAAQtb+8WWDCSnWL1zvBk1+FN+x6MtDViPB5AJMfttVCUhehGWus3XBPgatM/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.3.tgz", + "integrity": "sha512-Md44bD6veX/PC5iyF8cDVnw4HBIANZepRZZ7a8DQOvkfo5WUBwcp6iAuCUz23u+4SUkhJlD3eL7hNdW8ezd/kA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.3.tgz", + "integrity": "sha512-tx7us1muwOKAKWao2v/GaafFeQboE6aj88vC6ziN2NCGcRm8gWUhwjzg+YdVB1e4boAtdtma4L43onunI6NS4w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.3.tgz", + "integrity": "sha512-SJxX60smvHgasZoBy11dX6YRjXJFovwWBoedhbQPOBzgFWBHGB+TVPWB9BxzR7TTxU8FQZAI2AyiNCMzFm8Img==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.3.tgz", + "integrity": "sha512-jx1+rPhY/5Ympkktd656HBWEBLxP7dH06losBLjjf5vgCODXvi9KhtftWcMIwTFIDqBr7cRnQkdLnAG+IOlGvQ==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.11.1", + "@emnapi/runtime": "^1.11.1", + "@emnapi/wasi-threads": "^1.2.2", + "@napi-rs/wasm-runtime": "^1.1.4", + "@tybys/wasm-util": "^0.10.2", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.3.tgz", + "integrity": "sha512-3rc292Ca2ceK6Ulcc/bAVnTs/3nDtoPhyEKlgPv+yQJQi/JS/AMJlqzxvlDacL1nekbrcf6bTqp/jV4qgnPxNQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.3.tgz", + "integrity": "sha512-yJ0pwIVc/nYeGoV02WtsN8KYyLQv7kyI2wDnkezyJlGGjkd4QLwDGAwl47YpPJeuI0M0ObaXGSPjvWDPeTPggw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/postcss": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.3.3.tgz", + "integrity": "sha512-JTSZZGQi1AyKirbLN3azmjVzef92tcX7h+iSqPdaeStyFpGpDlKvvpxeOE8njhbUanbRwr3z8DyzhICWnMtQeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "@tailwindcss/node": "4.3.3", + "@tailwindcss/oxide": "4.3.3", + "postcss": "^8.5.16", + "tailwindcss": "4.3.3" + } + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", + "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/d3-array": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", + "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", + "license": "MIT" + }, + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", + "license": "MIT" + }, + "node_modules/@types/d3-drag": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", + "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-ease": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", + "license": "MIT" + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "license": "MIT", + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-path": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", + "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", + "license": "MIT" + }, + "node_modules/@types/d3-scale": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", + "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", + "license": "MIT", + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-selection": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz", + "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==", + "license": "MIT" + }, + "node_modules/@types/d3-shape": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz", + "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==", + "license": "MIT", + "dependencies": { + "@types/d3-path": "*" + } + }, + "node_modules/@types/d3-time": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", + "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", + "license": "MIT" + }, + "node_modules/@types/d3-timer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", + "license": "MIT" + }, + "node_modules/@types/d3-transition": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz", + "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-zoom": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", + "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", + "license": "MIT", + "dependencies": { + "@types/d3-interpolate": "*", + "@types/d3-selection": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.17", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.17.tgz", + "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "26.1.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.2.tgz", + "integrity": "sha512-Vu4a5UFA9rIIFJ7rB/Vaafh9lrCQszopTCx6KjFboXTGQbPNasehVR5TEiithSDGyd1DEiUByggTZsg8jukeIg==", + "license": "MIT", + "dependencies": { + "undici-types": "~8.3.0" + } + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT", + "optional": true + }, + "node_modules/@types/use-sync-external-store": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz", + "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==", + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.66.0.tgz", + "integrity": "sha512-p088eaGrzYz1s+7cov0aMOCkNGTJlVxF4jgubf28c8L0Cv9Rloj8YBHnv4hXLq6IIEE1AsjNWavO+k+8kP2Y0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.12.2", + "@typescript-eslint/scope-manager": "8.66.0", + "@typescript-eslint/type-utils": "8.66.0", + "@typescript-eslint/utils": "8.66.0", + "@typescript-eslint/visitor-keys": "8.66.0", + "ignore": "^7.0.5", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.66.0", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.6.tgz", + "integrity": "sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.66.0.tgz", + "integrity": "sha512-X6ypGChaWYk6PBtUg2BwuTZEFFcHJAtGTVJ9/lCTOufhZ4i9fNolQNnktq+kkMCwMj7V8Svsq7+TxSDslmhE0g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@typescript-eslint/scope-manager": "8.66.0", + "@typescript-eslint/types": "8.66.0", + "@typescript-eslint/typescript-estree": "8.66.0", + "@typescript-eslint/visitor-keys": "8.66.0", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.66.0.tgz", + "integrity": "sha512-7MthGPTt4BP69lSryqpqq8HQqxuzynssckL/jyDyk3+TNMQ3y2jFWkptCrktWvBrP+EH787Nl5N5Qpw7WZg+5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.66.0", + "@typescript-eslint/types": "^8.66.0", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.66.0.tgz", + "integrity": "sha512-8TGcH25j9zqJ/IULB/ppyhRvxA8QYfFEZ7nfbg6/BN9spDgb8fPWQXlE5l8TWBL50EtUx007uZ1o9VOwrq2/9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.66.0", + "@typescript-eslint/visitor-keys": "8.66.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.66.0.tgz", + "integrity": "sha512-9D5gLYZG4rOjcoag8MQ/fWI8WqA9wcPDyOGyWtWFhvM1lHRbliqUSPIY5J3zqCU1tvSwzXxnnjhQhz5Ne7mJ4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.66.0.tgz", + "integrity": "sha512-LG2dWfjZQQp0ADtAu/EWJVayefGL2UEZ3CDeI44D9v3rXB/WYUqE/jpO28KrEKul5AySrmI+Zh1v6v+xW2U9+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.66.0", + "@typescript-eslint/typescript-estree": "8.66.0", + "@typescript-eslint/utils": "8.66.0", + "debug": "^4.4.3", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.66.0.tgz", + "integrity": "sha512-H6gcYaSDOyvL3AD/jHUtUFo2jqGgn/F6nuyuZSu0QTesxL+cP4dQoIMrODRofuJC09g64+WgZ6tE19Y1N2YIFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.66.0.tgz", + "integrity": "sha512-8/x4INiiQb10jGgXYD7116/zQ+OL84ZIFn0za68wwFHCanT/VLbBEroWht8RV8fn0/ZCAoazHLQgwUC0UQcDfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.66.0", + "@typescript-eslint/tsconfig-utils": "8.66.0", + "@typescript-eslint/types": "8.66.0", + "@typescript-eslint/visitor-keys": "8.66.0", + "debug": "^4.4.3", + "minimatch": "^10.2.2", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz", + "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.8" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.66.0.tgz", + "integrity": "sha512-jasearZPolBw5NJNYGMwxzHMF83niVWmMU1VdHzG1CyfI2VS7f7nZltnKtHcg20hW+7Uo5GfK4MeDPoU3qI8EA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.66.0", + "@typescript-eslint/types": "8.66.0", + "@typescript-eslint/typescript-estree": "8.66.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.66.0.tgz", + "integrity": "sha512-dkKR8q+lKciskj1Y3vthHktl+3cMLWGyVUP23bRiPZ5O9BRT++4EqDDV+TVeIKBL1VXVEqrJlz8MYbcnvJcAlg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.66.0", + "eslint-visitor-keys": "^5.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@unrs/resolver-binding-android-arm-eabi": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.12.2.tgz", + "integrity": "sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-android-arm64": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.12.2.tgz", + "integrity": "sha512-YGCRZv/9GLhwmz6mYDeTsm/92BAyR28l6c2ReweVW5pWgfsitWLY8upvfRlGdoyD8HjeTHSYJWyZGD4KJA/nFQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-arm64": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.12.2.tgz", + "integrity": "sha512-u9DiNT1auQMO20A9SyTuG3wUgQWB9Z7KjAg0uFuCDR1FsAY8A0CG2S6JpHS1xwm/w1G08bjXZDcyOCjv1WAm2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-x64": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.12.2.tgz", + "integrity": "sha512-f7rPLi/T1HVKZu/u6t87lroib16n8vrSzcyxI7lg4BGO9UF26KhQL44sd9eOUgrTYhvRXtWOIZT5PejdPyJfUA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-freebsd-x64": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.12.2.tgz", + "integrity": "sha512-BpcOjWCJub6nRZUS2zA20pmLvjtqAtGejETaIyRLiZiQf++cbrjltLA5NN/xaXfqeOBOSlMFbemIl5/S5tljmg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.12.2.tgz", + "integrity": "sha512-vZTDvdSISZjJx66OzJqtsOhzifbqRjbmI1Mnu49fQDwog5GtDI4QidRiEAYbZCRj9C8YZEW+3ZjqsyS9GR4k2A==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.12.2.tgz", + "integrity": "sha512-BiPI+IrIlwcW4nLLMM21+B1dFPzd55yAVgVGrdgDjNef+ch03GdxrcyaIz8X9SsQirh/kCQ7mviyWlMxdh2D7g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.12.2.tgz", + "integrity": "sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-musl": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.12.2.tgz", + "integrity": "sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-loong64-gnu": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-loong64-gnu/-/resolver-binding-linux-loong64-gnu-1.12.2.tgz", + "integrity": "sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-loong64-musl": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-loong64-musl/-/resolver-binding-linux-loong64-musl-1.12.2.tgz", + "integrity": "sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.12.2.tgz", + "integrity": "sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.12.2.tgz", + "integrity": "sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.12.2.tgz", + "integrity": "sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.12.2.tgz", + "integrity": "sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-gnu": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.12.2.tgz", + "integrity": "sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-musl": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.12.2.tgz", + "integrity": "sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-openharmony-arm64": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-openharmony-arm64/-/resolver-binding-openharmony-arm64-1.12.2.tgz", + "integrity": "sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.12.2.tgz", + "integrity": "sha512-tYFDIkMxSflfEc/h92ZWNsZlHSwgimbNHSO3PL2JWQHfCuC2q316jMyYU9TIWZsFK2bQwyK5VAdYgn8ygPj69A==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "1.10.0", + "@emnapi/runtime": "1.10.0", + "@napi-rs/wasm-runtime": "^1.1.4" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi/node_modules/@emnapi/runtime": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", + "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.12.2.tgz", + "integrity": "sha512-qzNyg3xL0VPQmCaUh+N5jSitce6k+uCBfMDesWRnlULOZaqUkaJ0ybdT+UqlAWJoQjuqfIU/0Ptx9bteN4D82g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.12.2.tgz", + "integrity": "sha512-WD9sY00OfpHVGfsnHZoA8jVT+esS/Bg8z8jzxp5BnDCjjwsuKsPQrzswwpFy4J1AUJbXPRfkpcX0mXrzeXW79g==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.12.2.tgz", + "integrity": "sha512-nAB74NfSNKknqQ1RrYj6uz8FcXEomu/MATJZxh/x+BArzN2U3JbOYC0APYzUIGhVY3m5hRxA8VPNdPBoG8txlA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@xyflow/react": { + "version": "12.11.2", + "resolved": "https://registry.npmjs.org/@xyflow/react/-/react-12.11.2.tgz", + "integrity": "sha512-eLAlDWJfWnQEhJwGMjlWdAXO9eYllKpliUmPQlAmOLxz6mExXuzMVDUKLMquixgkrtmMFFtug3jGKmYYld12cA==", + "license": "MIT", + "dependencies": { + "@xyflow/system": "0.0.79", + "classcat": "^5.0.3", + "zustand": "^4.4.0" + }, + "peerDependencies": { + "@types/react": ">=17", + "@types/react-dom": ">=17", + "react": ">=17", + "react-dom": ">=17" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@xyflow/react/node_modules/zustand": { + "version": "4.5.7", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.7.tgz", + "integrity": "sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw==", + "license": "MIT", + "dependencies": { + "use-sync-external-store": "^1.2.2" + }, + "engines": { + "node": ">=12.7.0" + }, + "peerDependencies": { + "@types/react": ">=16.8", + "immer": ">=9.0.6", + "react": ">=16.8" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + } + } + }, + "node_modules/@xyflow/system": { + "version": "0.0.79", + "resolved": "https://registry.npmjs.org/@xyflow/system/-/system-0.0.79.tgz", + "integrity": "sha512-czLyOh91NF0hIzbNzwi8I6GlqG23BHh2435OddfI6uiaLH3xdrdygO93gqgH1Bv9mhy8XPFQJOBn1FTq4LvEWA==", + "license": "MIT", + "dependencies": { + "@types/d3-drag": "^3.0.7", + "@types/d3-interpolate": "^3.0.4", + "@types/d3-selection": "^3.0.10", + "@types/d3-transition": "^3.0.8", + "@types/d3-zoom": "^3.0.8", + "d3-drag": "^3.0.0", + "d3-interpolate": "^3.0.1", + "d3-selection": "^3.0.0", + "d3-zoom": "^3.0.0" + } + }, + "node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.18.0.tgz", + "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/ajv": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asn1js": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.10.tgz", + "integrity": "sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg==", + "license": "BSD-3-Clause", + "dependencies": { + "pvtsutils": "^1.3.6", + "pvutils": "^1.1.5", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.12.1.tgz", + "integrity": "sha512-s7iGf5GaVMxEG0ENN9x+xTr7GFZCb1ZP/1uATUpCEK2X78nDB3RwbtFCo9pGAf9ru+VwoQ464DkaLEeRM08wJA==", + "dev": true, + "license": "MPL-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true + }, + "node_modules/baseline-browser-mapping": { + "version": "2.11.12", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.12.tgz", + "integrity": "sha512-r7WnVImvVCeFpf2DOXfy41aPWzeNg3H/A2X4dKmy1QL0MSyyk/e7z8ihJ3N6Nn2PsdhkVlqnEfnUE4a05P2aTA==", + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/bcryptjs": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-3.0.3.tgz", + "integrity": "sha512-GlF5wPWnSa/X5LKM1o0wz0suXIINz1iHRLvTS+sLyi7XPbe5ycmYI3DlZqVGZZtDgl4DmasFg7gOB3JYbphV5g==", + "license": "BSD-3-Clause", + "bin": { + "bcrypt": "bin/bcrypt" + } + }, + "node_modules/better-sqlite3": { + "version": "12.11.1", + "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.11.1.tgz", + "integrity": "sha512-dq9AtApgg5PGFtBzPFSBl3HZQjHok5gaQCM6zh2Yk0aSmDCs1CbnVI8/HgASQkNKsWFpseIO9beg5xxpYhbIfA==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "bindings": "^1.5.0", + "prebuild-install": "^7.1.1" + }, + "engines": { + "node": "20.x || 22.x || 23.x || 24.x || 25.x || 26.x" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "license": "MIT", + "optional": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/body-parser": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.3.0.tgz", + "integrity": "sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==", + "license": "MIT", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^2.0.0", + "debug": "^4.4.3", + "http-errors": "^2.0.1", + "iconv-lite": "^0.7.2", + "on-finished": "^2.4.1", + "qs": "^6.15.2", + "raw-body": "^3.0.2", + "type-is": "^2.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/body-parser/node_modules/content-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.0.0.tgz", + "integrity": "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", + "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.7.tgz", + "integrity": "sha512-JxV13hNrFxqjOc8alRbq9dK1MM79NEXYpma2B2J4wAtpWS5zIEIKqWPGCl7N4o7Uc7B7itylh7SuDujATRyyTw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "baseline-browser-mapping": "^2.10.44", + "caniuse-lite": "^1.0.30001806", + "electron-to-chromium": "^1.5.393", + "node-releases": "^2.0.51", + "update-browserslist-db": "^1.2.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/bytestreamjs": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bytestreamjs/-/bytestreamjs-2.0.1.tgz", + "integrity": "sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", + "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "get-intrinsic": "^1.3.0", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001806", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001806.tgz", + "integrity": "sha512-72Cuvd95zbSYPKq6Fhg8eDJRlzgWDf7/mtoZv6Qe/DYNCEBdNxoA3+rZAU2ZhGCpZlns3EssFavaZomckT5Uuw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "license": "ISC", + "optional": true + }, + "node_modules/classcat": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/classcat/-/classcat-5.0.5.tgz", + "integrity": "sha512-JhZUT7JFcQy/EzW605k/ktHtncoo9vnyW/2GspNYwFlN1C/WmjuV/xtS04e9SOkL2sTdw0VAZ2UGCcQ9lR6p6w==", + "license": "MIT" + }, + "node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "license": "MIT", + "dependencies": { + "restore-cursor": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-spinners": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-3.4.0.tgz", + "integrity": "sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==", + "license": "MIT", + "engines": { + "node": ">=18.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/confbox": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.4.tgz", + "integrity": "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==", + "license": "MIT" + }, + "node_modules/content-disposition": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz", + "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz", + "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "license": "ISC", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "license": "ISC", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "d3-selection": "2 - 3" + } + }, + "node_modules/d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js-light": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", + "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==", + "license": "MIT" + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/default-browser": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.0.tgz", + "integrity": "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==", + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", + "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "devOptional": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dompurify": { + "version": "3.4.13", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.13.tgz", + "integrity": "sha512-2vmYIoqjze2d+kakP8S/nS5shfsl587kzwEjcGlTdiksUVgFHnFCsLYDVj/JNqJVOQZGSYBTmuycv0PodwmnMQ==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.401", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.401.tgz", + "integrity": "sha512-H6ViHN68nGYlChEvlIU67fn8O2/tpbWQPwck98yaJmh+08LSvHiydzDQ6oXNccLU3kNRVIRS9A4mA7CG+i6fLQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "license": "MIT", + "optional": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.24.5", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.5.tgz", + "integrity": "sha512-L1l8TNvomm6UVW5B253AGxQagSQr+vGwhMlrrfRS2qmhx46AMpMVJKQYLvWYbysTMY8VoicOvzHzoHMbyzB+4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/es-abstract": { + "version": "1.24.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.2.tgz", + "integrity": "sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-abstract-get": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-abstract-get/-/es-abstract-get-1.0.0.tgz", + "integrity": "sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.2", + "is-callable": "^1.2.7", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.4.0.tgz", + "integrity": "sha512-c/A0P0oxkACDc+cKWw8evLXK83oBKgn0qPOqCYT4x9uolpCIJAcYvJC9QYKNDRPsTeGyCrQ326jrvgZWdCdK5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.2", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.1.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.3.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.5", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.4.tgz", + "integrity": "sha512-yPDz7wqpg1/mmHLmS3tcfTfbw5f1eryXvyghYBffGdERwe+mV7ZcWzTR8LR17Kvqt3qfPurjlonmnq3MKXIOXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-abstract-get": "^1.0.0", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "is-callable": "^1.2.7", + "is-date-object": "^1.1.0", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-toolkit": { + "version": "1.50.0", + "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.50.0.tgz", + "integrity": "sha512-OyZKhUVvEep9ITEiwHn8GKnMRQIVqoSIX7WnRbkWgJkllCujilqP2rD0u979tkl8wqyc8ICwlc1UBVv/Sl1G6w==", + "license": "MIT", + "workspaces": [ + "docs", + "benchmarks", + "tests/types" + ] + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.39.5", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.5.tgz", + "integrity": "sha512-DgZS62aPLXKlnxILS/AYCoRvHaZeXceIzlXPkkGGzJWSow1aEk0lbTlxUSlyjC8jcaKxAdOnTDz+o1JFSBsyjw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.2", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.6", + "@eslint/js": "9.39.5", + "@eslint/plugin-kit": "^0.4.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.14.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.5", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-next": { + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-16.1.6.tgz", + "integrity": "sha512-vKq40io2B0XtkkNDYyleATwblNt8xuh3FWp8SpSz3pt7P01OkBFlKsJZ2mWt5WsCySlDQLckb1zMY9yE9Qy0LA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@next/eslint-plugin-next": "16.1.6", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.32.0", + "eslint-plugin-jsx-a11y": "^6.10.0", + "eslint-plugin-react": "^7.37.0", + "eslint-plugin-react-hooks": "^7.0.0", + "globals": "16.4.0", + "typescript-eslint": "^8.46.0" + }, + "peerDependencies": { + "eslint": ">=9.0.0", + "typescript": ">=3.3.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-config-next/node_modules/globals": { + "version": "16.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.4.0.tgz", + "integrity": "sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.10.tgz", + "integrity": "sha512-tRrKqFyCaKict5hOd244sL6EQFNycnMQnBe+j8uqGNXYzsImGbGUU4ibtoaBmv5FLwJwcFJNeg1GeVjQfbMrDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.16.1", + "resolve": "^2.0.0-next.6" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.1.tgz", + "integrity": "sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@nolyfill/is-core-module": "1.0.39", + "debug": "^4.4.0", + "get-tsconfig": "^4.10.0", + "is-bun-module": "^2.0.0", + "stable-hash": "^0.0.5", + "tinyglobby": "^0.2.13", + "unrs-resolver": "^1.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-import-resolver-typescript" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" + }, + "peerDependenciesMeta": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.14.0.tgz", + "integrity": "sha512-W2WCRZ9Dqntd+2u8jJcVMV2PKulc6RdLgUUoh/yQr3uB6lo/ZOeGx11sv60/8S4QFFKNslAlWhr9u0Ef7ZW6Ig==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.1", + "hasown": "^2.0.2", + "is-core-module": "^2.16.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.1", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.9", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", + "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.9", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.1.1.tgz", + "integrity": "sha512-f2I7Gw6JbvCexzIInuSbZpfdQ44D7iqdWX01FKLvrPgqxoE7oMj8clOfto8U6vYiz4yd5oKu39rRSVOe1zRu0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.24.4", + "@babel/parser": "^7.24.4", + "hermes-parser": "^0.25.1", + "zod": "^3.25.0 || ^4.0.0", + "zod-validation-error": "^3.5.0 || ^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 || ^10.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" + }, + "node_modules/expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "license": "(MIT OR WTFPL)", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/express": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", + "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", + "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.1", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "depd": "^2.0.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "license": "MIT", + "optional": true + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", + "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.4.tgz", + "integrity": "sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==", + "dev": true, + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "license": "MIT", + "optional": true + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.2.0.tgz", + "integrity": "sha512-jObKIik1P2QjPHP5nz5BaOtUlfgS0fWo8IUByNXkM+o+02sJOi94em77GwJKQSJ3gfPHdgzLNrHc1uokV4P/ew==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2", + "hasown": "^2.0.4", + "is-callable": "^1.2.7", + "is-document.all": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.6.0.tgz", + "integrity": "sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.1.tgz", + "integrity": "sha512-Dz/6HxkrxgNehhxLVeyv8sad9UzF2xBVeaKBQNDfJ5XiSXmp2gTR0eO0RWiT2NCKS5aGP9jjkOMggTN90qU50A==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "license": "MIT", + "optional": true + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hermes-estree": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz", + "integrity": "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==", + "dev": true, + "license": "MIT" + }, + "node_modules/hermes-parser": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.25.1.tgz", + "integrity": "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hermes-estree": "0.25.1" + } + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-3.0.7.tgz", + "integrity": "sha512-iwbQltVlx8bCrqePUM8C+hllHvdawVhQJaLrj1X7qllkvFQdXFsr16pW/mo9+JDVjN+QO2XUx9jd8SmoFkE5qw==", + "license": "MIT", + "dependencies": { + "@types/http-proxy": "^1.17.15", + "debug": "^4.3.6", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.3", + "is-plain-object": "^5.0.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": "^14.18.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz", + "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immer": { + "version": "11.1.15", + "resolved": "https://registry.npmjs.org/immer/-/immer-11.1.15.tgz", + "integrity": "sha512-VrNANlmnWQnh5COXIIOQXM9oOJw7naGKlBT74ZOOR6lpVXc3gFEu9FJLDFcpCJ2j+NWr8TIwtWD//T6ZX6TKiQ==", + "license": "MIT", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC", + "optional": true + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/ip-address": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.4.0.tgz", + "integrity": "sha512-oSK96Grm3aP6OrS263xVxbNDGVL7rzBtYdpGqlDG8iQdoenDoTs/nkki+DflYbAEE8Xl6o5YxhxlrKvI3nqKXQ==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bun-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz", + "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.7.1" + } + }, + "node_modules/is-bun-module/node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-document.all": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-document.all/-/is-document.all-1.0.0.tgz", + "integrity": "sha512-+XSoyS05OdBbhFuELhgTCpFNHkpBOJqtsZfUFFpe5QTw+9Sjbh8zitxhQkYAo6wV7e1Vb8cAPvpCk9jGam/82g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-in-ssh": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-in-ssh/-/is-in-ssh-1.0.0.tgz", + "integrity": "sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "license": "MIT" + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-unicode-supported": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", + "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/jiti": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", + "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/jose": { + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.8.tgz", + "integrity": "sha512-Bsdjwm3Qsd/P0jR+BHDe3LytDfY7WBq2HmCCLIwuVRHMuEC9ae7/R474GIUdF1NgCyZjzVo/A9DOiOBtXq8ZoQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.1.tgz", + "integrity": "sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dev": true, + "license": "MIT", + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lightningcss": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-7.0.1.tgz", + "integrity": "sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==", + "license": "MIT", + "dependencies": { + "is-unicode-supported": "^2.0.0", + "yoctocolors": "^2.1.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/marked": { + "version": "18.0.9", + "resolved": "https://registry.npmjs.org/marked/-/marked-18.0.9.tgz", + "integrity": "sha512-/Sa4qiiHZxf0/FQdBBowr9q4r10krCwMvpK48FUBdXdUXScDxiQGR9zCPrFgRVR5LU3iySOiIjy09ZQvADir1w==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 20" + } + }, + "node_modules/material-symbols": { + "version": "0.44.12", + "resolved": "https://registry.npmjs.org/material-symbols/-/material-symbols-0.44.12.tgz", + "integrity": "sha512-lZkS9BwISNU2Jbup+IlwZrr9z1oAK6zx38qPpe7mNzkXwiIEnQaxPz1Sf3bNZ0MX15LNlJQNjKI3MWLgmo83+Q==", + "license": "Apache-2.0" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.1.tgz", + "integrity": "sha512-yz3xRaG20c6/BOzvYoDaGtPmGscs7YivItZEEqe6GbwNfHuxu9YNmvnEkMzKldAGY4/80pRcQRZSEnhquk9XuQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "devOptional": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "license": "MIT", + "optional": true + }, + "node_modules/monaco-editor": { + "version": "0.56.0", + "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.56.0.tgz", + "integrity": "sha512-sXboRm3BeBeLm938eaiyLMe0OxzfXIlZvbv4ir/jVgQy1zDhWjgmny0WoN45fuDKhCCQsYMbBJrv/A6jd8aCUg==", + "license": "MIT", + "peer": true, + "dependencies": { + "dompurify": "3.4.8", + "marked": "14.0.0" + } + }, + "node_modules/monaco-editor/node_modules/marked": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-14.0.0.tgz", + "integrity": "sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.17", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.17.tgz", + "integrity": "sha512-xQLf0A3HOMlgHq0n247/LRuAOYmB7dXJ/DvAxGvsSBij45XtBSmQycu+F8ODbHwns/XyFZagyL1+J0Offw1E0g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/napi-build-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz", + "integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==", + "license": "MIT", + "optional": true + }, + "node_modules/napi-postinstall": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz", + "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==", + "dev": true, + "license": "MIT", + "bin": { + "napi-postinstall": "lib/cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/napi-postinstall" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/next": { + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/next/-/next-16.3.0.tgz", + "integrity": "sha512-NEdGOzH+08eTXMUp9UYkA99Nhi5N6Thrhc1jgFOQgfgnGK/dA2hRwBpXep+exdFQrnwlRf/3Wixyp8lLBUpE2A==", + "license": "MIT", + "peer": true, + "dependencies": { + "@next/env": "16.3.0", + "@swc/helpers": "0.5.15", + "baseline-browser-mapping": "^2.9.19", + "caniuse-lite": "^1.0.30001579", + "postcss": "8.5.23", + "styled-jsx": "5.1.6" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=20.9.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "16.3.0", + "@next/swc-darwin-x64": "16.3.0", + "@next/swc-linux-arm64-gnu": "16.3.0", + "@next/swc-linux-arm64-musl": "16.3.0", + "@next/swc-linux-x64-gnu": "16.3.0", + "@next/swc-linux-x64-musl": "16.3.0", + "@next/swc-win32-arm64-msvc": "16.3.0", + "@next/swc-win32-x64-msvc": "16.3.0", + "sharp": "^0.35.3" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.51.1", + "babel-plugin-react-compiler": "*", + "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "@playwright/test": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/next/node_modules/postcss": { + "version": "8.5.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.23.tgz", + "integrity": "sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.16", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/node-abi": { + "version": "3.94.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.94.0.tgz", + "integrity": "sha512-W5ZNO5KRPB5TkYmGVD9F6YqhsglXJzE6etpbmT+f6EQElhiX/UTG551cnsRGvLG3fyZEg9HwaDmNmj5nwJ4z9g==", + "license": "MIT", + "optional": true, + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-abi/node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-exports-info": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/node-exports-info/-/node-exports-info-1.6.2.tgz", + "integrity": "sha512-kXs9Go0cah0qHVV2v389IXQLdLCeE1xfFtjOAF+iobu0OIoG1pje8At2vMHyaPMiPMnG/LWP50twML21eMcAag==", + "dev": true, + "license": "MIT", + "dependencies": { + "array.prototype.flatmap": "^1.3.3", + "es-errors": "^1.3.0", + "object.entries": "^1.1.9", + "semver": "^6.3.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/node-forge": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.4.0.tgz", + "integrity": "sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==", + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-machine-id": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/node-machine-id/-/node-machine-id-1.1.12.tgz", + "integrity": "sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==", + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.52", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.52.tgz", + "integrity": "sha512-MRlTqhAfoMx/4mhEbPo3Hi02g9LJZaJkka69V6h67Cb1gjrAG0jsTE4CZX1eptNx+VCAwJmfpnDIF4P0Nh1A7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "license": "MIT", + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/open/-/open-11.0.0.tgz", + "integrity": "sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw==", + "license": "MIT", + "dependencies": { + "default-browser": "^5.4.0", + "define-lazy-prop": "^3.0.0", + "is-in-ssh": "^1.0.0", + "is-inside-container": "^1.0.0", + "powershell-utils": "^0.1.0", + "wsl-utils": "^0.3.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-9.4.1.tgz", + "integrity": "sha512-6VlU9MLXbjVQD04AZCMX28hVtA5bUoadvUqO76MUCVA0ilwJbMiHsITRPfyVm6p/BC0Av/BXMujx39WCe1LEqw==", + "license": "MIT", + "dependencies": { + "chalk": "^5.6.2", + "cli-cursor": "^5.0.0", + "cli-spinners": "^3.2.0", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^2.1.0", + "log-symbols": "^7.0.1", + "stdin-discarder": "^0.3.2", + "string-width": "^8.1.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/own-keys": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.2.tgz", + "integrity": "sha512-19YVAg7T+WTrxggPukVq7DjTv6+PJ867TmhCvBsYwmbFCsZd344rq2Ld1p0wo8f8Qrrhgp82c6FJRqdXWtSEhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4", + "get-intrinsic": "^1.3.0", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz", + "integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkijs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pkijs/-/pkijs-3.4.0.tgz", + "integrity": "sha512-emEcLuomt2j03vxD54giVB4SxTjnsqkU692xZOZXHDVoYyypEm+b3jpiTcc+Cf+myooc+/Ly0z01jqeNHVgJGw==", + "license": "BSD-3-Clause", + "dependencies": { + "@noble/hashes": "1.4.0", + "asn1js": "^3.0.6", + "bytestreamjs": "^2.0.1", + "pvtsutils": "^1.3.6", + "pvutils": "^1.1.3", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.5.25", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.25.tgz", + "integrity": "sha512-DTPx3RWSSnWyzLxQnlH0rJP+EW5ekl16ZU4/psbIhA0e53kJfdgaN5vKM+xP7yJtXVu+nfdVFmlgFDEKAe4Pyw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.16", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/powershell-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.1.0.tgz", + "integrity": "sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/prebuild-install": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz", + "integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==", + "deprecated": "No longer maintained. Please contact the author of the relevant native addon; alternatives are available.", + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^2.0.0", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pump": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz", + "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==", + "license": "MIT", + "optional": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pvtsutils": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.6.tgz", + "integrity": "sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.8.1" + } + }, + "node_modules/pvutils": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.2.0.tgz", + "integrity": "sha512-BbubeCEyTuQjVMakvJQ/Sxbc93F2pwmbsxONT/ZRrwU7Ua38d8unYTwXpTVLAKJ4BDuH9IGztCjQcd/N/39Dvg==", + "license": "MIT", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/qs": { + "version": "6.15.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.3.tgz", + "integrity": "sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==", + "license": "BSD-3-Clause", + "dependencies": { + "es-define-property": "^1.0.1", + "side-channel": "^1.1.1" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/range-parser": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.3.0.tgz", + "integrity": "sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/raw-body": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", + "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.7.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "optional": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", + "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz", + "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.4" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT", + "peer": true + }, + "node_modules/react-redux": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.3.0.tgz", + "integrity": "sha512-KQopgqFo/p/fgmAs5qz6p5RWaNAzq40WAu7fJIXnQpYxFPbJYtsJPWvGeF2rOBaY/kEuV77AVsX8TsQzKm+A/g==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/use-sync-external-store": "^0.0.6", + "use-sync-external-store": "^1.4.0" + }, + "peerDependencies": { + "@types/react": "^18.2.25 || ^19", + "react": "^18.0 || ^19", + "redux": "^5.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "redux": { + "optional": true + } + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "optional": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/recharts": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/recharts/-/recharts-3.10.1.tgz", + "integrity": "sha512-QXFrvt6IVcw7eeZCoyXTwkIJAX3Dv1nyVhMicXJ47GsGDDpcN8z6o644DibE9XjpBTThtsomLKnTV6lc+cVFUA==", + "license": "MIT", + "workspaces": [ + "www" + ], + "dependencies": { + "@reduxjs/toolkit": "^1.9.0 || 2.x.x", + "clsx": "^2.1.1", + "decimal.js-light": "^2.5.1", + "es-toolkit": "^1.39.3", + "eventemitter3": "^5.0.1", + "immer": "^11.1.8", + "react-redux": "8.x.x || 9.x.x", + "reselect": "5.2.0", + "tiny-invariant": "^1.3.3", + "use-sync-external-store": "^1.2.2", + "victory-vendor": "^37.0.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-is": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/recharts/node_modules/eventemitter3": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", + "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", + "license": "MIT" + }, + "node_modules/redux": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", + "license": "MIT", + "peer": true + }, + "node_modules/redux-thunk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz", + "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==", + "license": "MIT", + "peerDependencies": { + "redux": "^5.0.0" + } + }, + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", + "license": "Apache-2.0" + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "license": "MIT" + }, + "node_modules/reselect": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.2.0.tgz", + "integrity": "sha512-AgZ3UOZm3YndfrJ4OYjgrT7bmCm/1iqkjvEfH/oYjzh6PD2qw4QuT3jjnXIrpdt4MTpMXclMT3lXbmRY+XRakw==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "2.0.0-next.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.7.tgz", + "integrity": "sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.2", + "node-exports-info": "^1.6.0", + "object-keys": "^1.1.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "license": "MIT", + "dependencies": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/run-applescript": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.4.tgz", + "integrity": "sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "get-intrinsic": "^1.3.0", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, + "node_modules/selfsigned": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-5.5.0.tgz", + "integrity": "sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew==", + "license": "MIT", + "dependencies": { + "@peculiar/x509": "^1.14.2", + "pkijs": "^3.3.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", + "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.3", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.1", + "mime-types": "^3.0.2", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/serve-static": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", + "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/sharp": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.35.3.tgz", + "integrity": "sha512-ej0zVHuZGHCiABXcNxeYhpRnPNPAcvbG8RMdBAhDAxLKkCRVSpK3Iyu7qbqw3JMzoj0REeM6f3tJLtVwl0023Q==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@img/colour": "^1.1.0", + "detect-libc": "^2.1.2", + "semver": "^7.8.5" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.35.3", + "@img/sharp-darwin-x64": "0.35.3", + "@img/sharp-freebsd-wasm32": "0.35.3", + "@img/sharp-libvips-darwin-arm64": "1.3.2", + "@img/sharp-libvips-darwin-x64": "1.3.2", + "@img/sharp-libvips-linux-arm": "1.3.2", + "@img/sharp-libvips-linux-arm64": "1.3.2", + "@img/sharp-libvips-linux-ppc64": "1.3.2", + "@img/sharp-libvips-linux-riscv64": "1.3.2", + "@img/sharp-libvips-linux-s390x": "1.3.2", + "@img/sharp-libvips-linux-x64": "1.3.2", + "@img/sharp-libvips-linuxmusl-arm64": "1.3.2", + "@img/sharp-libvips-linuxmusl-x64": "1.3.2", + "@img/sharp-linux-arm": "0.35.3", + "@img/sharp-linux-arm64": "0.35.3", + "@img/sharp-linux-ppc64": "0.35.3", + "@img/sharp-linux-riscv64": "0.35.3", + "@img/sharp-linux-s390x": "0.35.3", + "@img/sharp-linux-x64": "0.35.3", + "@img/sharp-linuxmusl-arm64": "0.35.3", + "@img/sharp-linuxmusl-x64": "0.35.3", + "@img/sharp-webcontainers-wasm32": "0.35.3", + "@img/sharp-win32-arm64": "0.35.3", + "@img/sharp-win32-ia32": "0.35.3", + "@img/sharp-win32-x64": "0.35.3" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/sharp/node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", + "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4", + "side-channel-list": "^1.0.1", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true + }, + "node_modules/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.9.tgz", + "integrity": "sha512-LJhUYUvItdQ0LkJTmPeaEObWXAqFyfmP85x0tch/ez9cahmhlBBLbIqDFnvBnUJGagb0JbIQrkBs1wJ+yRYpEw==", + "license": "MIT", + "dependencies": { + "ip-address": "^10.1.1", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sql.js": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/sql.js/-/sql.js-1.14.1.tgz", + "integrity": "sha512-gcj8zBWU5cFsi9WUP+4bFNXAyF1iRpA3LLyS/DP5xlrNzGmPIizUeBggKa8DbDwdqaKwUcTEnChtd2grWo/x/A==", + "license": "MIT" + }, + "node_modules/stable-hash": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", + "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/state-local": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz", + "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==", + "license": "MIT" + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stdin-discarder": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.3.2.tgz", + "integrity": "sha512-eCPu1qRxPVkl5605OTWF8Wz40b4Mf45NY5LQmVPQ599knfs5QhASUm9GbJ5BDMDOXgrnh0wyEdvzmL//YMlw0A==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "optional": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.2.tgz", + "integrity": "sha512-GaPUh5gfdrYzqeVNZvUfT23vYYxXzKYidUcnMtJg/3rxRV63EFZy3k6xfKlmfeJD0176lnUV/Usr3XcwSvFzpg==", + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.5.0", + "strip-ansi": "^7.1.2" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.11.tgz", + "integrity": "sha512-PwvK7BU+CMTJGYQCTZb5RWXIML92lftJLhQz1tBzgKiqGxJaMlBAa48POXaNAC2s4y8jr3EFqrkF9+44neS46w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.2", + "es-object-atoms": "^1.1.2", + "has-property-descriptors": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.10.tgz", + "integrity": "sha512-2+3aDAOmPTmuFwjDnmJG2ctEkQKVki7vOSqaxkv42Mowj1V6PnvuwFCRrR5lChUux1TBskPjfkeTOhqczDMxTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/styled-jsx": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", + "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", + "license": "MIT", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.3.tgz", + "integrity": "sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/tar-fs": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.5.tgz", + "integrity": "sha512-OboTd8mmMhZDNPV+UjQcK9yKAatXu2aJ+r1w4im1Otd4M4fl2hwvdoXUxIYHFTHWK/3y3FarBP70v3vwmGlOxw==", + "license": "MIT", + "optional": true, + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/third-party-capital": { + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/third-party-capital/-/third-party-capital-1.0.20.tgz", + "integrity": "sha512-oB7yIimd8SuGptespDAZnNkzIz+NWaJCu2RMsbs4Wmp9zSDUM8Nhi3s2OOcqYuv3mN4hitXc8DVx+LyUmbUDiA==", + "license": "ISC" + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/ts-api-utils": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tsyringe": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/tsyringe/-/tsyringe-4.10.0.tgz", + "integrity": "sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==", + "license": "MIT", + "dependencies": { + "tslib": "^1.9.3" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/tsyringe/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-is": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.1.0.tgz", + "integrity": "sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==", + "license": "MIT", + "dependencies": { + "content-type": "^2.0.0", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/type-is/node_modules/content-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.0.0.tgz", + "integrity": "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.8.tgz", + "integrity": "sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "for-each": "^0.3.5", + "gopd": "^1.2.0", + "is-typed-array": "^1.1.15", + "possible-typed-array-names": "^1.1.0", + "reflect.getprototypeof": "^1.0.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.66.0.tgz", + "integrity": "sha512-QlEbBPz/RuJ1XUHj29nm3t0F/O/cSlEnntozqPOYHnnTGAXFamnMBu5i9Vn6vhUPHGAjR+Vl+5J8vPN/BMUrJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.66.0", + "@typescript-eslint/parser": "8.66.0", + "@typescript-eslint/typescript-estree": "8.66.0", + "@typescript-eslint/utils": "8.66.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.29.0.tgz", + "integrity": "sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==", + "license": "MIT", + "engines": { + "node": ">=20.18.1" + } + }, + "node_modules/undici-types": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz", + "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==", + "license": "MIT" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unrs-resolver": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.12.2.tgz", + "integrity": "sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "napi-postinstall": "^0.3.4" + }, + "funding": { + "url": "https://opencollective.com/unrs-resolver" + }, + "optionalDependencies": { + "@unrs/resolver-binding-android-arm-eabi": "1.12.2", + "@unrs/resolver-binding-android-arm64": "1.12.2", + "@unrs/resolver-binding-darwin-arm64": "1.12.2", + "@unrs/resolver-binding-darwin-x64": "1.12.2", + "@unrs/resolver-binding-freebsd-x64": "1.12.2", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.12.2", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.12.2", + "@unrs/resolver-binding-linux-arm64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-arm64-musl": "1.12.2", + "@unrs/resolver-binding-linux-loong64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-loong64-musl": "1.12.2", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-riscv64-musl": "1.12.2", + "@unrs/resolver-binding-linux-s390x-gnu": "1.12.2", + "@unrs/resolver-binding-linux-x64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-x64-musl": "1.12.2", + "@unrs/resolver-binding-openharmony-arm64": "1.12.2", + "@unrs/resolver-binding-wasm32-wasi": "1.12.2", + "@unrs/resolver-binding-win32-arm64-msvc": "1.12.2", + "@unrs/resolver-binding-win32-ia32-msvc": "1.12.2", + "@unrs/resolver-binding-win32-x64-msvc": "1.12.2" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/use-sync-external-store": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT", + "optional": true + }, + "node_modules/uuid": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-13.0.2.tgz", + "integrity": "sha512-vzi9uRZ926x4XV73S/4qQaTwPXM2JBj6/6lI/byHH1jOpCzb0zDbfytgA9LcN/hzb2l7WQSQnxITOVx5un/wGw==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist-node/bin/uuid" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/victory-vendor": { + "version": "37.3.6", + "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-37.3.6.tgz", + "integrity": "sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ==", + "license": "MIT AND ISC", + "dependencies": { + "@types/d3-array": "^3.0.3", + "@types/d3-ease": "^3.0.0", + "@types/d3-interpolate": "^3.0.1", + "@types/d3-scale": "^4.0.2", + "@types/d3-shape": "^3.1.0", + "@types/d3-time": "^3.0.0", + "@types/d3-timer": "^3.0.0", + "d3-array": "^3.1.6", + "d3-ease": "^3.0.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "d3-shape": "^3.1.0", + "d3-time": "^3.0.0", + "d3-timer": "^3.0.1" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.22", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.22.tgz", + "integrity": "sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/wsl-utils": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.3.1.tgz", + "integrity": "sha512-g/eziiSUNBSsdDJtCLB8bdYEUMj4jR7AGeUo96p/3dTafgjHhpF4RiCFPiRILwjQoDXx5MqkBr4fwWtR3Ky4Wg==", + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0", + "powershell-utils": "^0.1.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yoctocolors": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.2.0.tgz", + "integrity": "sha512-xYqdZFUK/VYazNl/oCDYN+3WloWQwMfZxBoiNt6qNyk+xfOdi598muWE42rNZFp1kNOiqW936q5RhUdnpqElSg==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz", + "integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==", + "dev": true, + "license": "MIT", + "peer": true, + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zod-validation-error": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-4.0.2.tgz", + "integrity": "sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "zod": "^3.25.0 || ^4.0.0" + } + }, + "node_modules/zustand": { + "version": "5.0.14", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.14.tgz", + "integrity": "sha512-/8tAspM5LMPr28b3fwLYrtdj77ECpfZviaP75CMTnwO8ISyaE4GDIG/9rDDYq/cH9D2Xw2A2RXglLInmVBQB/g==", + "license": "MIT", + "engines": { + "node": ">=12.20.0" + }, + "peerDependencies": { + "@types/react": ">=18.0.0", + "immer": ">=9.0.6", + "react": ">=18.0.0", + "use-sync-external-store": ">=1.2.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + }, + "use-sync-external-store": { + "optional": true + } + } + } + } +} diff --git a/scripts/test-combo-autoswitch.mjs b/scripts/test-combo-autoswitch.mjs index 358ebcf9..e01402d6 100644 --- a/scripts/test-combo-autoswitch.mjs +++ b/scripts/test-combo-autoswitch.mjs @@ -2,9 +2,14 @@ // Sends text / image / search requests to a combo and reports which member ran. // node scripts/test-combo-autoswitch.mjs const BASE = process.env.BASE_URL || "http://localhost:20127"; -const KEY = process.env.API_KEY || "sk-6581be4f05a82b6b-uxy6jn-c8190ea8"; +const KEY = process.env.API_KEY; const COMBO = process.env.COMBO || "haha"; +if (!KEY) { + console.error("API_KEY environment variable is required"); + process.exit(1); +} + // 16x16 PNG (valid image so vision providers accept it). const PNG = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAFklEQVR4nGO4I2JDEmIY1TCqYfhqAAAeBCwQ8YdREQAAAABJRU5ErkJggg=="; From fd22290a34800bbf803e8c7a9f6d44776458663c Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Fri, 7 Aug 2026 03:51:19 +0800 Subject: [PATCH 07/42] feat(proxy-fitness): pool fitness registry + Smart rotation + pool-scoped retry Pool/IP fitness registry (globalThis-backed, provider::model scopes, 5-min cooldown, provider::* wildcard) fed by pool-scoped failures: freebuff limited-IP / model-locked gates and opencode free per-IP limits. chatCore retries a failed pool via another pool without locking the account; new Smart rotation strategy (per-connection + no-auth providers) skips unfit pools. Proxy Fitness dashboard page: active-block table with provider/IP filters, per-record Clear and provider-scoped Clear All; egress column via pool geo enrichment. Unit tests for the registry. --- open-sse/executors/freebuff.js | 194 ++++++++- open-sse/executors/opencode.js | 19 + open-sse/handlers/chatCore.js | 89 +++- open-sse/services/proxyPoolFitness.js | 126 ++++++ open-sse/utils/error.js | 9 +- .../dashboard/providers/[id]/ConnectionRow.js | 8 +- .../dashboard/proxy-fitness/page.js | 384 ++++++++++++++++++ .../proxy-pools/[id]/fitness/clear/route.js | 25 ++ .../proxy-pools/fitness/clear-all/route.js | 22 + src/app/api/proxy-pools/fitness/route.js | 13 + src/app/api/proxy-pools/route.js | 3 + src/lib/network/connectionProxy.js | 38 +- src/shared/components/NoAuthProxyCard.js | 5 +- src/shared/components/Sidebar.js | 1 + src/sse/handlers/chat.js | 18 + src/sse/services/auth.js | 25 +- tests/unit/proxy-pool-fitness.test.js | 56 +++ 17 files changed, 1000 insertions(+), 35 deletions(-) create mode 100644 open-sse/services/proxyPoolFitness.js create mode 100644 src/app/(dashboard)/dashboard/proxy-fitness/page.js create mode 100644 src/app/api/proxy-pools/[id]/fitness/clear/route.js create mode 100644 src/app/api/proxy-pools/fitness/clear-all/route.js create mode 100644 src/app/api/proxy-pools/fitness/route.js create mode 100644 tests/unit/proxy-pool-fitness.test.js diff --git a/open-sse/executors/freebuff.js b/open-sse/executors/freebuff.js index 655060aa..4f23e630 100644 --- a/open-sse/executors/freebuff.js +++ b/open-sse/executors/freebuff.js @@ -8,6 +8,7 @@ import { DEFAULT_RETRY_CONFIG, resolveRetryEntry, } from "../config/runtimeConfig.js"; +import { markPoolUnfit, clearPoolUnfit } from "../services/proxyPoolFitness.js"; /** * Freebuff Executor — OpenAI-compatible chat completions on @@ -87,8 +88,110 @@ const FREE_ROOT_AGENT_BY_MODEL = { // don't share one session row). Re-claims are driven by the cache expiring or // by a 428 from chat — no early re-claim, so we never POST /session while our // own row is still active (which could come back as a spurious model_locked). -const sessionCache = new Map(); // `${token}::${model}` -> { instanceId, expiresAt } -const inflight = new Map(); // dedupe concurrent claims for the same key +// All state lives on globalThis so Next dev (Turbopack) bundles share ONE copy. +const FB_STATE_KEY = "__9routerFreebuffState__"; +const fbState = (globalThis[FB_STATE_KEY] ??= { + sessionCache: new Map(), // `${token}::${model}` -> { instanceId, expiresAt } + inflight: new Map(), // dedupe concurrent claims for the same key + modelLockCooldowns: new Map(), // `${token}::${model}` -> expiresAt (ms) + poolLimitCooldowns: new Map(), // `${proxyKey}::${model}` -> expiresAt (ms) +}); +const sessionCache = fbState.sessionCache; +const inflight = fbState.inflight; +const modelLockCooldowns = fbState.modelLockCooldowns; +const poolLimitCooldowns = fbState.poolLimitCooldowns; + +const MODEL_LOCK_COOLDOWN_MS = 10 * 60 * 1000; // session bound to another model (~1h) — re-check every 10 min +const POOL_LIMITED_COOLDOWN_MS = 5 * 60 * 1000; // IP tier refuses this model — try a different pool/relay + +// Cooldown maps need pruning: expired entries are cleared on write (sweep) and +// on read, so long-running servers don't accumulate one entry per (account,model) +// / (proxy,model) forever. +function setCooldown(map, key, until) { + const now = Date.now(); + for (const [k, v] of map) { + if (v <= now) map.delete(k); + } + map.set(key, until); +} + +function getCooldown(map, key) { + const until = map.get(key); + if (until == null) return null; + if (until <= Date.now()) { + map.delete(key); + return null; + } + return until; +} + +function proxyKeyOf(proxyOptions) { + return proxyOptions?.vercelRelayUrl || proxyOptions?.connectionProxyUrl || "direct"; +} + +function sessionGateFromText(text) { + let parsed = {}; + try { parsed = JSON.parse(String(text || "")); } catch { parsed = {}; } + return classifySessionGate(parsed.error || parsed.error_type || "", parsed.message || "", parsed.currentModel || null); +} + +// Parse a 409/428/410 body into { kind, currentModel }. `msg` may be a whole +// error string containing a JSON tail (requestSession errors embed the body). +function sessionGateFromError(error) { + const msg = String(error?.message || ""); + const start = msg.indexOf("{"); + if (start < 0) return null; + try { + const parsed = JSON.parse(msg.slice(start)); + return classifySessionGate(parsed.error || "", parsed.message || "", parsed.currentModel || null); + } catch { + return null; + } +} + +function classifySessionGate(code, message, currentModel) { + if (code === "session_superseded") return { kind: "superseded" }; + if (code === "model_locked") return { kind: "model_locked", currentModel }; + // session_model_mismatch with the limited-tier message is an IP-tier refusal; + // without it (or unknown) treat it as a model lock so we don't reclaim in a loop. + if (code === "session_model_mismatch") { + return /limited/i.test(String(message || "")) + ? { kind: "limited_ip" } + : { kind: "model_locked", currentModel }; + } + return { kind: "stale" }; // 428/410/unknown → reclaim +} + +// Applies cooldowns and throws for non-reclaimable gates. Never returns for them. +function throwSessionGateError(gate, { token, model, proxyKey, poolId, log }) { + if (gate.kind === "model_locked") { + const until = Date.now() + MODEL_LOCK_COOLDOWN_MS; + setCooldown(modelLockCooldowns, `${token}::${model}`, until); + const label = gate.currentModel ? `"${gate.currentModel}"` : "another model"; + const err = new Error( + `Freebuff session is locked to ${label} — it cannot serve ${model}. End the session on freebuff.com or wait for it to expire (~1h).`, + ); + err.status = 409; + err.resetsAtMs = until; + log?.warn?.("AUTH", `Freebuff model_locked (session=${label}, requested=${model}) — model cooldown ${MODEL_LOCK_COOLDOWN_MS / 60000}min`); + throw err; + } + if (gate.kind === "limited_ip") { + const until = Date.now() + POOL_LIMITED_COOLDOWN_MS; + setCooldown(poolLimitCooldowns, `${proxyKey}::${model}`, until); + const scope = `freebuff::${model}`; + if (poolId) markPoolUnfit(poolId, scope, until, "limited_ip"); + // Pool-scoped, not account-scoped: the caller retries via another pool + // instead of locking the account (resetsAtMs intentionally absent). + const err = new Error( + `Freebuff limited-mode IP rejected ${model} — this IP only allows DeepSeek V4 Flash / MiMo 2.5. Use a full-access proxy or a different model.`, + ); + err.status = 409; + err.poolScoped = { poolId, scope, reason: "limited_ip" }; + log?.warn?.("AUTH", `Freebuff limited-IP refused ${model} (proxy=${proxyKey.slice(0, 40)}…) — cooldown ${POOL_LIMITED_COOLDOWN_MS / 60000}min`); + throw err; + } +} function sessionOrigin() { return new URL(PROVIDERS.freebuff.baseUrl).origin; // https://www.codebuff.com @@ -185,7 +288,11 @@ async function requestSession(token, model, proxyOptions) { async function ensureSession(token, model, proxyOptions, force = false) { const key = sessionCacheKey(token, model); + // Lazy prune: drop stale rows so the cache never accumulates expired entries. const cached = sessionCache.get(key); + if (cached && cached.expiresAt <= Date.now()) { + sessionCache.delete(key); + } if (!force && cached && cached.expiresAt > Date.now()) { return { instanceId: cached.instanceId, status: "active" }; } @@ -262,6 +369,32 @@ export function resetSessionCache() { inflight.clear(); } +// Periodic sweeper: drop stale session rows + expired cooldowns so long-running +// servers never accumulate state for accounts/models no longer in use. +// Returns how many entries were removed. +export function pruneSessionState(now = Date.now()) { + let removed = 0; + for (const [key, entry] of sessionCache) { + if (entry?.expiresAt && entry.expiresAt <= now) { + sessionCache.delete(key); + removed += 1; + } + } + for (const [key, until] of modelLockCooldowns) { + if (until <= now) { + modelLockCooldowns.delete(key); + removed += 1; + } + } + for (const [key, until] of poolLimitCooldowns) { + if (until <= now) { + poolLimitCooldowns.delete(key); + removed += 1; + } + } + return removed; +} + export class FreebuffExecutor extends BaseExecutor { constructor() { super("freebuff", PROVIDERS.freebuff); @@ -282,6 +415,12 @@ export class FreebuffExecutor extends BaseExecutor { cost_mode: "free", }; body.provider = { allow_fallbacks: false }; + // Freebuff agents (base2-free-*) own reasoning: the backend applies the + // agent's reasoningOptions.effort server-side, so a client-sent + // reasoning_effort / reasoning.effort collides with that default → + // 400 "both provided with conflicting values". Mirror the CLI: send none. + delete body.reasoning_effort; + delete body.reasoning; // Free-tier gate: first system message must open with the CLI marker. return injectFreebuffMarker(body); } @@ -292,10 +431,32 @@ export class FreebuffExecutor extends BaseExecutor { throw new Error("Freebuff requires a connected Freebuff login (no access token found)"); } + // Fail fast while a known-dead (account,model) / (proxy,model) pair is in + // cooldown — no session claim, no run registration, no upstream spam. + const proxyKey = proxyKeyOf(proxyOptions); + const poolId = proxyOptions?.proxyPoolId || null; + const scope = `freebuff::${model}`; + const lockUntil = getCooldown(modelLockCooldowns, `${token}::${model}`); + if (lockUntil) { + const err = new Error(`Freebuff session locked to another model — retry after ${new Date(lockUntil).toLocaleTimeString()}`); + err.status = 409; + err.resetsAtMs = lockUntil; + throw err; + } + const poolUntil = getCooldown(poolLimitCooldowns, `${proxyKey}::${model}`); + if (poolUntil) { + const err = new Error(`Freebuff limited-mode IP rejected ${model} — retry with a full-access proxy after ${new Date(poolUntil).toLocaleTimeString()}`); + err.status = 409; + err.poolScoped = { poolId, scope, reason: "limited_ip" }; + throw err; + } + let session; try { session = await ensureSession(token, model, proxyOptions); } catch (error) { + const gate = sessionGateFromError(error); + if (gate) throwSessionGateError(gate, { token, model, proxyKey, poolId, log }); log?.error?.("AUTH", `Freebuff session failed: ${error.message}`); throw error; } @@ -396,9 +557,17 @@ export class FreebuffExecutor extends BaseExecutor { // 409 session_superseded — another instance took over the session // 409 session_model_mismatch — session bound to a different model // 410 session_expired — the active session's expires_at passed - // In every case: abandon the run, force a fresh session claim + a fresh - // run, then retry exactly once. + // model_locked / limited-tier mismatches are NOT reclaimable — the server + // keeps refusing until the session expires or the IP tier changes, so we + // set a cooldown and fail fast instead of force re-claiming in a loop. if (SESSION_STALE_CODES.has(response.status)) { + const text = await response.text().catch(() => ""); + const gate = sessionGateFromText(text); + if (gate.kind === "model_locked" || gate.kind === "limited_ip") { + markFinished("cancelled"); + throwSessionGateError(gate, { token, model, proxyKey, poolId, log }); + } + log?.debug?.("AUTH", `Freebuff ${response.status} session gate — re-claiming session`); markFinished("cancelled"); try { @@ -406,21 +575,34 @@ export class FreebuffExecutor extends BaseExecutor { runId = await startRun(token, model, proxyOptions); activeRunId = runId; } catch (error) { + const gate2 = sessionGateFromError(error); + if (gate2) throwSessionGateError(gate2, { token, model, proxyKey, poolId, log }); log?.error?.("AUTH", `Freebuff session re-claim failed: ${error.message}`); throw error; } ({ response, transformedBody } = await doChat()); if (SESSION_STALE_CODES.has(response.status)) { - const text = await response.text().catch(() => ""); + const text2 = await response.text().catch(() => ""); + const gate3 = sessionGateFromText(text2); + if (gate3.kind === "model_locked" || gate3.kind === "limited_ip") { + throwSessionGateError(gate3, { token, model, proxyKey, poolId, log }); + } const err = new Error( - `Freebuff session gate refused (${response.status}) — another freebuff instance may be holding the session. ${text.slice(0, 160)}`, + `Freebuff session gate refused (${response.status}) — another freebuff instance may be holding the session. ${text2.slice(0, 160)}`, ); err.status = response.status; throw err; } } + // A successful chat means the pair is healthy again — lift any cooldowns. + if (response.ok) { + modelLockCooldowns.delete(`${token}::${model}`); + poolLimitCooldowns.delete(`${proxyKey}::${model}`); + if (poolId) clearPoolUnfit(poolId, scope); + } + // The authToken has no refresh path — when it dies, the user re-logs in. // Drop the cached session for this token so a re-login starts clean. if (response.status === 401) { diff --git a/open-sse/executors/opencode.js b/open-sse/executors/opencode.js index f7aee211..f1af1ebd 100644 --- a/open-sse/executors/opencode.js +++ b/open-sse/executors/opencode.js @@ -5,6 +5,12 @@ import { injectReasoningContent } from "../utils/reasoningContentInjector.js"; // Models that use /zen/v1/messages (claude format) const MESSAGES_MODELS = new Set(); +// OpenCode free tier is limited per egress IP — a 429/403 with a limit-ish +// body means the POOL's IP is exhausted, not the account. Declare it +// pool-scoped so chatCore marks the pool unfit, retries via another pool, and +// it shows up (clearable) on the Proxy Fitness page. +const IP_LIMIT_BODY = /limit|rate|quota|exhausted|capacity|too many|retry/i; + export class OpenCodeExecutor extends BaseExecutor { constructor() { super("opencode", PROVIDERS.opencode); @@ -29,4 +35,17 @@ export class OpenCodeExecutor extends BaseExecutor { "Accept": "text/event-stream" }; } + + parseError(response, bodyText) { + const status = response?.status || 0; + const text = String(bodyText || ""); + if ((status === 429 || status === 403) && IP_LIMIT_BODY.test(text)) { + return { + status, + message: text.slice(0, 300) || `OpenCode free limit (${status})`, + poolScoped: { reason: "ip-limit" }, + }; + } + return null; // fall through to default parsing + } } diff --git a/open-sse/handlers/chatCore.js b/open-sse/handlers/chatCore.js index 9f17cf94..d21db965 100644 --- a/open-sse/handlers/chatCore.js +++ b/open-sse/handlers/chatCore.js @@ -29,6 +29,12 @@ import { getCapabilitiesForModel } from "../providers/capabilities.js"; import { stripUnsupportedModalities } from "../translator/concerns/modality.js"; import { prefetchRemoteImages } from "../translator/concerns/prefetch.js"; import { resolveSessionId } from "../utils/sessionManager.js"; +import { markPoolUnfit, clearPoolUnfit } from "../services/proxyPoolFitness.js"; + +// Pool-scoped failure retry: when an executor tags an error as belonging to a +// proxy pool (region gate, dead proxy, …), re-resolve the proxy config +// excluding that pool and retry instead of failing the whole account. +const MAX_POOL_RETRIES = 2; /** * Core chat handler - shared between SSE and Worker @@ -57,7 +63,7 @@ export function stripContinuityFields(body) { return body; } -export async function handleChatCore({ body, modelInfo, credentials, log, onCredentialsRefreshed, onRequestSuccess, onDisconnect, clientRawRequest, connectionId, userAgent, apiKey, ccFilterNaming, rtkEnabled, headroomEnabled, headroomUrl, headroomCompressUserMessages, cavemanEnabled, cavemanLevel, ponytailEnabled, ponytailLevel, pxpipeEnabled, pxpipeMinChars, pxpipeTimeoutMs, pxpipeTransform, onPxpipeEvent, sourceFormatOverride, providerThinking }) { +export async function handleChatCore({ body, modelInfo, credentials, log, onCredentialsRefreshed, onRequestSuccess, onDisconnect, clientRawRequest, connectionId, userAgent, apiKey, ccFilterNaming, rtkEnabled, headroomEnabled, headroomUrl, headroomCompressUserMessages, cavemanEnabled, cavemanLevel, ponytailEnabled, ponytailLevel, pxpipeEnabled, pxpipeMinChars, pxpipeTimeoutMs, pxpipeTransform, onPxpipeEvent, sourceFormatOverride, providerThinking, resolveProxyConfig }) { const { provider, model } = modelInfo; const requestStartTime = Date.now(); // Stable per-session color so all lines of one CLI conversation share a tag @@ -291,16 +297,23 @@ export async function handleChatCore({ body, modelInfo, credentials, log, onCred log, provider, model, reqTag }); - const proxyOptions = { - connectionProxyEnabled: credentials?.providerSpecificData?.connectionProxyEnabled === true, - connectionProxyUrl: credentials?.providerSpecificData?.connectionProxyUrl || "", - connectionNoProxy: credentials?.providerSpecificData?.connectionNoProxy || "", - vercelRelayUrl: credentials?.providerSpecificData?.vercelRelayUrl || "", - }; + // Build proxy options from the resolved provider-specific data. `strictProxy` + // is forced for freebuff so a dead/limited pool can never leak the request + // to the caller's real IP (the freebuff session tier is per-egress-IP). + const buildProxyOptions = (psd = {}) => ({ + connectionProxyEnabled: psd?.connectionProxyEnabled === true, + connectionProxyUrl: psd?.connectionProxyUrl || "", + connectionNoProxy: psd?.connectionNoProxy || "", + vercelRelayUrl: psd?.vercelRelayUrl || "", + strictProxy: psd?.strictProxy === true || provider === "freebuff", + proxyPoolId: psd?.proxyPoolId || psd?.connectionProxyPoolId || null, + }); + + let proxyOptions = buildProxyOptions(credentials?.providerSpecificData || {}); if (proxyOptions.vercelRelayUrl) { const connectionName = credentials?.connectionName || credentials?.connectionId || "unknown"; - const poolId = credentials?.providerSpecificData?.connectionProxyPoolId || "none"; + const poolId = proxyOptions.proxyPoolId || "none"; log?.info?.("PROXY", `${provider.toUpperCase()} | ${model} | conn=${connectionName} | pool=${poolId} | vercel-relay=${proxyOptions.vercelRelayUrl}`); } else if (proxyOptions.connectionProxyEnabled && proxyOptions.connectionProxyUrl) { let maskedProxyUrl = proxyOptions.connectionProxyUrl; @@ -314,7 +327,7 @@ export async function handleChatCore({ body, modelInfo, credentials, log, onCred // Keep raw if URL parsing fails } - const poolId = credentials?.providerSpecificData?.connectionProxyPoolId || "none"; + const poolId = proxyOptions.proxyPoolId || "none"; const connectionName = credentials?.connectionName || credentials?.connectionId || "unknown"; log?.info?.("PROXY", `${provider.toUpperCase()} | ${model} | conn=${connectionName} | pool=${poolId} | url=${maskedProxyUrl}`); } @@ -324,13 +337,65 @@ export async function handleChatCore({ body, modelInfo, credentials, log, onCred log?.debug?.("PROXY", `${provider.toUpperCase()} | ${model} | conn=${connectionName} | no_proxy=${proxyOptions.connectionNoProxy}`); } + // Execute request — with pool-scoped retry: a failed pool (region gate, + // per-IP limit, dead proxy) is marked unfit and the request retried via + // another pool instead of failing the account. Covers both thrown errors + // (executor.execute) and non-ok responses declared poolScoped via + // parseError — poolId/scope are completed here from proxyOptions. + const proxyScope = `${provider}::${model}`; + let parsedNonOk = null; + + const tryNextPool = async (poolScoped, reasonMsg) => { + const failed = { + poolId: poolScoped?.poolId || proxyOptions.proxyPoolId || null, + scope: poolScoped?.scope || proxyScope, + reason: poolScoped?.reason || "pool-scoped", + }; + markPoolUnfit(failed.poolId, failed.scope, undefined, failed.reason); + log?.warn?.("PROXY", `${provider.toUpperCase()} | pool ${failed.poolId || "?"} unfit for ${failed.scope} (${failed.reason}) — retry with another pool. ${reasonMsg || ""}`); + try { + const resolved = await resolveProxyConfig(credentials, [failed.poolId]); + if (resolved?.proxyPoolId) { + credentials.providerSpecificData = { ...(credentials.providerSpecificData || {}), ...resolved }; + proxyOptions = buildProxyOptions(credentials.providerSpecificData); + return true; + } + } catch (resolverError) { + // A resolver failure must not mask the original pool error. + log?.warn?.("PROXY", `${provider.toUpperCase()} | pool re-resolve failed: ${resolverError.message}`); + } + return false; + }; + + const executeWithPoolFallback = async (attempt = 0) => { + let result; + try { + result = await executor.execute({ model, body: translatedBody, stream, credentials, signal: streamController.signal, log, proxyOptions }); + } catch (error) { + if (error?.poolScoped && typeof resolveProxyConfig === "function" && attempt < MAX_POOL_RETRIES) { + if (await tryNextPool(error.poolScoped, error.message)) return executeWithPoolFallback(attempt + 1); + } + throw error; + } + // Non-ok response that the executor declared pool/IP-scoped (e.g. opencode + // free per-IP limit) — parse once, retry via another pool when possible. + if (!result.response.ok) { + const parsed = await parseUpstreamError(result.response, executor); + if (parsed.poolScoped && typeof resolveProxyConfig === "function" && attempt < MAX_POOL_RETRIES) { + if (await tryNextPool(parsed.poolScoped, parsed.message)) return executeWithPoolFallback(attempt + 1); + } + parsedNonOk = parsed; + } + return result; + }; + // Execute request let providerResponse, providerUrl, providerHeaders, finalBody; // Most executors return their registry format. Cursor AgentService is an // exception: it is decoded by the executor into OpenAI-compatible output. let providerResponseFormat = targetFormat; try { - const result = await executor.execute({ model, body: translatedBody, stream, credentials, signal: streamController.signal, log, proxyOptions }); + const result = await executeWithPoolFallback(); providerResponse = result.response; providerUrl = result.url; providerHeaders = result.headers; @@ -359,7 +424,7 @@ export async function handleChatCore({ body, modelInfo, credentials, log, onCred if (log?.errorLine) { log.errorLine(reqTag, "✗", `ERROR 502 · ${provider}/${model} · ${Date.now() - requestStartTime}ms\n ${errMsg}${error.stack ? `\n ${error.stack}` : ""}`); } - return createErrorResult(HTTP_STATUS.BAD_GATEWAY, errMsg); + return createErrorResult(HTTP_STATUS.BAD_GATEWAY, errMsg, error?.resetsAtMs || undefined); } // Handle 401/403 - try token refresh (skip for noAuth providers) @@ -402,7 +467,7 @@ export async function handleChatCore({ body, modelInfo, credentials, log, onCred // Provider returned error if (!providerResponse.ok) { trackPendingRequest(model, provider, connectionId, false, true); - const { statusCode, message, resetsAtMs } = await parseUpstreamError(providerResponse, executor); + const { statusCode, message, resetsAtMs } = parsedNonOk || await parseUpstreamError(providerResponse, executor); appendRequestLog({ model, provider, connectionId, status: `FAILED ${statusCode}` }).catch(() => { }); saveRequestDetail(buildRequestDetail({ provider, model, connectionId, diff --git a/open-sse/services/proxyPoolFitness.js b/open-sse/services/proxyPoolFitness.js new file mode 100644 index 00000000..72fc4644 --- /dev/null +++ b/open-sse/services/proxyPoolFitness.js @@ -0,0 +1,126 @@ +// Pool fitness registry — shared, in-memory, engine layer. +// +// Rotation strategies can opt into region/provider-aware pool selection: an +// executor that learns a pool's egress is unfit for a provider/model (e.g. +// Freebuff limited-mode IP) marks it here, and the pool picker skips it for +// that scope until the cooldown expires. +// +// Scope format: `provider::model` (e.g. "freebuff::openai/gpt-5.6-luna"). +// All functions are fail-open: unknown pool/scope ⇒ fit. + +// Scope format: `provider::model` (e.g. "freebuff::openai/gpt-5.6-luna"). +// All functions are fail-open: unknown pool/scope ⇒ fit. +// +// State lives on globalThis so Next dev (Turbopack) never splits one Map into +// several per-bundle copies — the executor/chatCore marks and the +// /api/proxy-pools/fitness reader must share the SAME registry. + +const FITNESS_STATE_KEY = "__9routerPoolFitness__"; +const fitness = (globalThis[FITNESS_STATE_KEY] ??= new Map()); // poolId -> Map + +export const POOL_UNFIT_MS = 5 * 60 * 1000; + +export function markPoolUnfit(poolId, scope, until = Date.now() + POOL_UNFIT_MS, reason = "") { + if (!poolId || !scope) return; + const byScope = fitness.get(poolId) || new Map(); + byScope.set(scope, { until, reason }); + fitness.set(poolId, byScope); +} + +export function clearPoolUnfit(poolId, scope) { + const byScope = fitness.get(poolId); + if (!byScope) return; + byScope.delete(scope); + if (byScope.size === 0) fitness.delete(poolId); +} + +// "provider::model" -> "provider::*" (null when the scope has no provider part) +function providerWildcardScope(scope) { + const sep = String(scope || "").indexOf("::"); + if (sep < 0) return null; + return `${scope.slice(0, sep)}::*`; +} + +export function isPoolFit(poolId, scope, now = Date.now()) { + if (!poolId) return true; + const byScope = fitness.get(poolId); + if (!byScope) return true; + // A provider-wide mark ("provider::*", e.g. manual blocks) also covers any + // model lookup for that provider. + const candidates = [scope, providerWildcardScope(scope)]; + for (const key of candidates) { + if (!key) continue; + const entry = byScope.get(key); + if (!entry) continue; + if (entry.until <= now) { + byScope.delete(key); + if (byScope.size === 0) fitness.delete(poolId); + continue; + } + return false; + } + return true; +} + +// Keep only pool ids that are not in cooldown for the scope. +export function fitPoolIds(poolIds, scope, now = Date.now()) { + return (poolIds || []).filter((id) => isPoolFit(id, scope, now)); +} + +// Clear every mark — or only scopes belonging to one provider (`provider::*`). +export function clearAllPoolUnfit(provider = null) { + if (provider) { + const prefix = `${provider}::`; + for (const [poolId, byScope] of fitness) { + for (const scope of [...byScope.keys()]) { + if (scope.startsWith(prefix)) byScope.delete(scope); + } + if (byScope.size === 0) fitness.delete(poolId); + } + return; + } + fitness.clear(); +} + +// Snapshot of live (non-expired) marks — expired entries are pruned here so +// consumers never see stale data and memory stays bounded. +// Test helper: drop all marks (module state is globalThis-backed). +export function resetPoolFitness() { + fitness.clear(); +} + +// Sweep all expired marks. Returns how many scope entries were removed. +export function pruneExpired(now = Date.now()) { + let removed = 0; + for (const [poolId, byScope] of fitness) { + for (const [scope, entry] of byScope) { + if (entry.until <= now) { + byScope.delete(scope); + removed += 1; + } + } + if (byScope.size === 0) fitness.delete(poolId); + } + return removed; +} + +export function poolFitnessSnapshot(now = Date.now()) { + const out = {}; + for (const [poolId, byScope] of fitness) { + let pruned = false; + for (const [scope, entry] of byScope) { + if (entry.until <= now) { + byScope.delete(scope); + pruned = true; + } + } + if (byScope.size === 0) { + fitness.delete(poolId); + continue; + } + if (pruned || byScope.size > 0) { + out[poolId] = Object.fromEntries(byScope); + } + } + return out; +} diff --git a/open-sse/utils/error.js b/open-sse/utils/error.js index 315723e3..d44a8344 100644 --- a/open-sse/utils/error.js +++ b/open-sse/utils/error.js @@ -69,7 +69,14 @@ export async function parseUpstreamError(response, executor = null) { const parsed = executor.parseError(response, bodyText); if (parsed && typeof parsed === "object") { const msg = parsed.message || DEFAULT_ERROR_MESSAGES[response.status] || `Upstream error: ${response.status}`; - return { statusCode: parsed.status || response.status, message: msg, resetsAtMs: parsed.resetsAtMs }; + return { + statusCode: parsed.status || response.status, + message: msg, + resetsAtMs: parsed.resetsAtMs, + // Executors declare IP/pool-scoped failures (e.g. per-IP rate limits) + // here; chatCore completes poolId/scope and retries via another pool. + poolScoped: parsed.poolScoped, + }; } } catch { /* fall through to default parsing */ } } diff --git a/src/app/(dashboard)/dashboard/providers/[id]/ConnectionRow.js b/src/app/(dashboard)/dashboard/providers/[id]/ConnectionRow.js index 51c8e2a5..2e4f92e4 100644 --- a/src/app/(dashboard)/dashboard/providers/[id]/ConnectionRow.js +++ b/src/app/(dashboard)/dashboard/providers/[id]/ConnectionRow.js @@ -43,7 +43,7 @@ export default function ConnectionRow({ connection, proxyPools, isOAuth, isFirst } if (selectedProxyIds.length > 1) { - const strategyLabel = rotationStrategy === "random" ? "Random" : rotationStrategy === "round-robin" ? "Round Robin" : rotationStrategy === "failover" ? "Failover" : "Multiple"; + const strategyLabel = rotationStrategy === "random" ? "Random" : rotationStrategy === "round-robin" ? "Round Robin" : rotationStrategy === "failover" ? "Failover" : rotationStrategy === "smart" ? "Smart" : "Multiple"; return `${selectedProxyIds.length} pools (${strategyLabel})`; } @@ -318,7 +318,7 @@ export default function ConnectionRow({ connection, proxyPools, isOAuth, isFirst Proxy {showProxyDropdown && ( -
+
{/* Rotation Strategy Selector */}
@@ -331,18 +331,20 @@ export default function ConnectionRow({ connection, proxyPools, isOAuth, isFirst + {rotationStrategy !== "none" && (

{rotationStrategy === "random" && "Randomly select proxy on each request"} {rotationStrategy === "round-robin" && "Rotate proxies in order across requests"} {rotationStrategy === "failover" && "Try next proxy on failure"} + {rotationStrategy === "smart" && "Skip pools whose egress IP is blocked for this provider/model (e.g. Freebuff limited-IP). See Proxy Fitness to clear/block."}

)}
{/* Proxy Pool Selection */} -
+
+ )} + +
+
+ +

+ Shows which provider is blocked on which proxy IP (from provider region gates, per-IP + limits, or manual marks). Smart rotation skips these pools while the block is active. +

+ + {/* Filters */} +
+
+ + + + {providerMenuOpen && ( +
+ +
+ {providerOptions.map((provider) => ( + + ))} +
+ )} +
+ +
+ + setSearch(e.target.value)} + placeholder="e.g. 104.28, vercel-relay…" + icon="search" + /> +
+
+ + {/* Records table */} + +
+ + + + + + + + + + + + + + {filteredRecords.length === 0 ? ( + + + + ) : ( + filteredRecords.map((rec) => ( + + + + + + + + + + )) + )} + +
ProviderModelIP / ProxyPoolReasonUntilActions
+ {records.length === 0 + ? "No active blocks. Blocks appear here when a provider region-gates a proxy IP." + : "No blocks match the current filters."} +
+ + block + {rec.provider} + + + {rec.model || all models} + +
+ {maskProxyUrl(rec.proxyUrl)} + {rec.egress?.ip && ( + + egress {rec.egress.ip}{rec.egress.country ? ` · ${rec.egress.country}` : ""} + {rec.egress.isUnstable && ( + = 2 ? `Egress IP changed ${rec.egress.ipCount}× — relay egress is not stable` : "Egress is unstable"} + > + unstable + + )} + + )} +
+
{rec.poolName}{rec.reason}{fmtTime(rec.until)} +
+ +
+
+
+
+ + )} + + setConfirmClearAll(false)} + onConfirm={handleClearAll} + title="Clear all blocks" + message={providerFilter !== "all" + ? `Clear all active blocks for provider "${providerFilter}"? This lets those pools be selected again immediately.` + : "Clear all active proxy blocks? This lets all pools be selected again immediately."} + confirmText={clearingAll ? "Clearing..." : "Clear All"} + cancelText="Cancel" + variant="danger" + /> +
+ ); +} \ No newline at end of file diff --git a/src/app/api/proxy-pools/[id]/fitness/clear/route.js b/src/app/api/proxy-pools/[id]/fitness/clear/route.js new file mode 100644 index 00000000..ce587750 --- /dev/null +++ b/src/app/api/proxy-pools/[id]/fitness/clear/route.js @@ -0,0 +1,25 @@ +import { NextResponse } from "next/server"; +import { clearPoolUnfit } from "open-sse/services/proxyPoolFitness.js"; + +// POST /api/proxy-pools/[id]/fitness/clear +// Body: { scope: "provider::model" } — clears the mark for this pool + scope. +export async function POST(request, { params }) { + try { + const { id } = await params; + let body = {}; + try { + body = await request.json(); + } catch { + body = {}; + } + const scope = typeof body?.scope === "string" ? body.scope.trim() : ""; + if (!id || !scope) { + return NextResponse.json({ error: "pool id and scope are required" }, { status: 400 }); + } + clearPoolUnfit(id, scope); + return NextResponse.json({ ok: true, poolId: id, scope }); + } catch (error) { + console.log("Error clearing pool fitness:", error); + return NextResponse.json({ error: "Failed to clear pool fitness" }, { status: 500 }); + } +} \ No newline at end of file diff --git a/src/app/api/proxy-pools/fitness/clear-all/route.js b/src/app/api/proxy-pools/fitness/clear-all/route.js new file mode 100644 index 00000000..26c29e3a --- /dev/null +++ b/src/app/api/proxy-pools/fitness/clear-all/route.js @@ -0,0 +1,22 @@ +import { NextResponse } from "next/server"; +import { clearAllPoolUnfit } from "open-sse/services/proxyPoolFitness.js"; + +// POST /api/proxy-pools/fitness/clear-all +// Body: { provider?: string } — clears every mark, or only marks scoped to the +// given provider ("provider::*") when provided. +export async function POST(request) { + try { + let body = {}; + try { + body = await request.json(); + } catch { + body = {}; + } + const provider = typeof body?.provider === "string" && body.provider.trim() ? body.provider.trim() : null; + clearAllPoolUnfit(provider); + return NextResponse.json({ ok: true, provider: provider || null }); + } catch (error) { + console.log("Error clearing proxy fitness:", error); + return NextResponse.json({ error: "Failed to clear proxy fitness" }, { status: 500 }); + } +} \ No newline at end of file diff --git a/src/app/api/proxy-pools/fitness/route.js b/src/app/api/proxy-pools/fitness/route.js new file mode 100644 index 00000000..6929b8d3 --- /dev/null +++ b/src/app/api/proxy-pools/fitness/route.js @@ -0,0 +1,13 @@ +import { NextResponse } from "next/server"; +import { poolFitnessSnapshot } from "open-sse/services/proxyPoolFitness.js"; + +// GET /api/proxy-pools/fitness — in-memory snapshot of pool fitness marks. +// Returns { pools: { [poolId]: { [scope]: { until, reason } } } }. +export async function GET() { + try { + return NextResponse.json({ pools: poolFitnessSnapshot() }); + } catch (error) { + console.log("Error reading proxy fitness:", error); + return NextResponse.json({ error: "Failed to read proxy fitness" }, { status: 500 }); + } +} \ No newline at end of file diff --git a/src/app/api/proxy-pools/route.js b/src/app/api/proxy-pools/route.js index 3dcfa06f..3d05aa3e 100644 --- a/src/app/api/proxy-pools/route.js +++ b/src/app/api/proxy-pools/route.js @@ -1,5 +1,6 @@ import { NextResponse } from "next/server"; import { createProxyPool, getProviderConnections, getProxyPools } from "@/models"; +import { getPoolGeo } from "open-sse/services/poolGeo.js"; function toBoolean(value) { if (value === "true") return true; @@ -65,6 +66,8 @@ export async function GET(request) { const enrichedProxyPools = proxyPools.map((pool) => ({ ...pool, boundConnectionCount: usageMap.get(pool.id) || 0, + // Egress geo from the background probe cache (null until first probe). + egress: getPoolGeo(pool.id) || null, })); return NextResponse.json({ proxyPools: enrichedProxyPools }); diff --git a/src/lib/network/connectionProxy.js b/src/lib/network/connectionProxy.js index 135859f7..af819be3 100644 --- a/src/lib/network/connectionProxy.js +++ b/src/lib/network/connectionProxy.js @@ -1,4 +1,5 @@ import { getProxyPoolById } from "@/models"; +import { fitPoolIds } from "open-sse/services/proxyPoolFitness.js"; // Safely normalize any value into a trimmed string. function normalizeString(value) { @@ -13,24 +14,41 @@ const rotateState = new Map(); // providerId → { index } * Pick one proxy pool ID from a list based on strategy. * round-robin: cycle sequentially (in-memory, resets on restart) * random: uniform random pick + * smart: region-aware — skip pools unfit for `scope`, round-robin on the fit subset * none/single: return first entry + * @param {string[]} poolIds + * @param {string} strategy + * @param {string} providerId + * @param {{ scope?: string, excludeIds?: string[] }} [opts] */ -export function pickProxyPoolId(poolIds, strategy, providerId) { +export function pickProxyPoolId(poolIds, strategy, providerId, opts = {}) { if (!poolIds || poolIds.length === 0) return null; - if (poolIds.length === 1) return poolIds[0]; + const { scope = null, excludeIds = [] } = opts || {}; - if (strategy === "round-robin") { + let eligible = poolIds.filter((id) => !(excludeIds || []).includes(id)); + // Region-aware filtering is opt-in via the "smart" strategy. + if (strategy === "smart" && scope) eligible = fitPoolIds(eligible, scope); + + if (eligible.length === 0) { + // Every candidate is unfit/excluded — fall back to the first non-excluded + // pool rather than deadlocking; its egress may have recovered. + eligible = poolIds.filter((id) => !(excludeIds || []).includes(id)); + if (eligible.length === 0) return null; + } + if (eligible.length === 1) return eligible[0]; + + if (strategy === "round-robin" || strategy === "smart") { const state = rotateState.get(providerId) || { index: -1 }; - state.index = (state.index + 1) % poolIds.length; + state.index = (state.index + 1) % eligible.length; rotateState.set(providerId, state); - return poolIds[state.index]; + return eligible[state.index]; } if (strategy === "random") { - return poolIds[Math.floor(Math.random() * poolIds.length)]; + return eligible[Math.floor(Math.random() * eligible.length)]; } - return poolIds[0]; // "none" or unknown + return eligible[0]; // "none" or unknown } /** @@ -66,7 +84,8 @@ function normalizeLegacyProxy(providerSpecificData = {}) { */ export async function resolveConnectionProxyConfig( providerSpecificData = {}, - connectionId = null + connectionId = null, + excludePoolIds = null ) { try { // Handle new multi-proxy format @@ -85,7 +104,8 @@ export async function resolveConnectionProxyConfig( * ----------------------------- */ if (proxyPoolIds.length > 0) { - const selectedPoolId = pickProxyPoolId(proxyPoolIds, proxyRotationStrategy, connectionId); + const scope = providerSpecificData?.proxyPoolScope || null; + const selectedPoolId = pickProxyPoolId(proxyPoolIds, proxyRotationStrategy, connectionId, { scope, excludeIds: excludePoolIds }); if (selectedPoolId) { const proxyPool = await getProxyPoolById(selectedPoolId); diff --git a/src/shared/components/NoAuthProxyCard.js b/src/shared/components/NoAuthProxyCard.js index 6229e60c..5a823cfc 100644 --- a/src/shared/components/NoAuthProxyCard.js +++ b/src/shared/components/NoAuthProxyCard.js @@ -11,6 +11,7 @@ const STRATEGIES = [ { value: "none", label: "None (single pool)" }, { value: "round-robin", label: "Round-robin" }, { value: "random", label: "Random" }, + { value: "smart", label: "Smart" }, ]; export default function NoAuthProxyCard({ providerId }) { @@ -121,7 +122,9 @@ export default function NoAuthProxyCard({ providerId }) { : isRotation ? rotateStrategy === "round-robin" ? `Rotating through all ${proxyPools.length} active pools in order. State is in-memory (resets on restart).` - : `Picking a random pool from ${proxyPools.length} active pools each request.` + : rotateStrategy === "smart" + ? `Skip pools whose egress IP is blocked for this provider (e.g. per-IP limits). See Proxy Fitness to clear/block.` + : `Picking a random pool from ${proxyPools.length} active pools each request.` : `Uses the selected pool above. Set to Round-robin or Random to rotate across all active pools.`}

diff --git a/src/shared/components/Sidebar.js b/src/shared/components/Sidebar.js index 812e319e..2f329da2 100644 --- a/src/shared/components/Sidebar.js +++ b/src/shared/components/Sidebar.js @@ -25,6 +25,7 @@ const navItems = [ { href: "/dashboard/usage", label: "Usage", icon: "bar_chart" }, { href: "/dashboard/quota", label: "Quota Tracker", icon: "data_usage" }, { href: "/dashboard/token-saver", label: "Token Saver", icon: "savings" }, + { href: "/dashboard/proxy-fitness", label: "Proxy Fitness", icon: "network_check" }, // { href: "/dashboard/pxpipe", label: "PXPIPE", icon: "image" }, { href: "/dashboard/cli-tools", label: "CLI Tools", icon: "terminal" }, ]; diff --git a/src/sse/handlers/chat.js b/src/sse/handlers/chat.js index 88353c50..e8231160 100644 --- a/src/sse/handlers/chat.js +++ b/src/sse/handlers/chat.js @@ -17,6 +17,7 @@ import { errorResponse, unavailableResponse } from "open-sse/utils/error.js"; import { handleComboChat, handleFusionChat, detectRequiredCapabilities } from "open-sse/services/combo.js"; import { augmentModelsWithCapacityAdapter, withCapacityAdapterStripping, getActiveAdapterStrategy } from "open-sse/services/capacityAdapter.js"; import { handleBypassRequest } from "open-sse/utils/bypassHandler.js"; +import { resolveConnectionProxyConfig } from "@/lib/network/connectionProxy"; import { HTTP_STATUS } from "open-sse/config/runtimeConfig.js"; import { detectFormatByEndpoint } from "open-sse/translator/formats.js"; import * as log from "../utils/logger.js"; @@ -284,6 +285,23 @@ async function handleSingleModelChat(body, modelStr, clientRawRequest = null, re pxpipeTransform: chatSettings.pxpipeEnabled ? await getPxpipeTransform() : null, onPxpipeEvent: appendPxpipeEvent, providerThinking, + // Pool-scoped failure recovery: re-resolve proxy config excluding the + // failed pool so the request retries via another pool, not a dead end. + resolveProxyConfig: async (creds, excludePoolIds = []) => { + const psd = { ...(creds?.providerSpecificData || {}) }; + if (psd.proxyPoolIds?.length) psd.proxyPoolScope = `${provider}::${model}`; + const resolved = await resolveConnectionProxyConfig(psd, creds?.connectionId || creds?.id, excludePoolIds); + if (!resolved?.proxyPoolId) return null; + return { + connectionProxyEnabled: resolved.connectionProxyEnabled, + connectionProxyUrl: resolved.connectionProxyUrl, + connectionNoProxy: resolved.connectionNoProxy, + connectionProxyPoolId: resolved.proxyPoolId || null, + vercelRelayUrl: resolved.vercelRelayUrl || "", + proxyPoolId: resolved.proxyPoolId || null, + strictProxy: resolved.strictProxy === true, + }; + }, // Detect source format by endpoint + body sourceFormatOverride: request?.url ? detectFormatByEndpoint(new URL(request.url).pathname, body) : null, onCredentialsRefreshed: async (newCreds) => { diff --git a/src/sse/services/auth.js b/src/sse/services/auth.js index 8eb0545c..c2e80572 100644 --- a/src/sse/services/auth.js +++ b/src/sse/services/auth.js @@ -47,10 +47,16 @@ export async function getProviderCredentials(provider, excludeConnectionIds = nu const override = (settings.providerStrategies || {})[providerId] || {}; const strategy = override.rotateStrategy || "none"; let pickedId = override.proxyPoolId || null; + let poolIds = []; if (strategy !== "none") { const allPools = await getProxyPools({ isActive: true }); - const poolIds = allPools.filter(p => p.proxyUrl).map(p => p.id); - pickedId = pickProxyPoolId(poolIds, strategy, providerId); + poolIds = allPools.filter(p => p.proxyUrl).map(p => p.id); + // Scope region-aware ("smart") filtering to this provider/model so + // pools marked unfit here are skipped. + const scope = `${providerId}::${model || "*"}`; + pickedId = pickProxyPoolId(poolIds, strategy, providerId, { scope }); + } else if (override.proxyPoolId) { + poolIds = [override.proxyPoolId]; } const resolvedProxy = await resolveConnectionProxyConfig({ proxyPoolId: pickedId || "" }); return { @@ -64,6 +70,13 @@ export async function getProviderCredentials(provider, excludeConnectionIds = nu connectionNoProxy: resolvedProxy.connectionNoProxy, connectionProxyPoolId: resolvedProxy.proxyPoolId || null, vercelRelayUrl: resolvedProxy.vercelRelayUrl || "", + proxyPoolId: resolvedProxy.proxyPoolId || null, + strictProxy: resolvedProxy.strictProxy === true, + // Let chatCore's pool-scoped retry rotate across the same candidate + // pool set (excluding the failed pool) instead of reusing it — this + // is what makes per-IP limit retries work for no-auth providers. + proxyPoolIds: poolIds, + proxyRotationStrategy: strategy, }, }; } @@ -172,7 +185,11 @@ export async function getProviderCredentials(provider, excludeConnectionIds = nu connection = availableConnections[0]; } - const resolvedProxy = await resolveConnectionProxyConfig(connection.providerSpecificData || {}, connection.id); + // Scope the region-aware picker to this provider/model (e.g. freebuff::gpt-5.6-luna) + const psdForProxy = connection.providerSpecificData?.proxyPoolIds?.length + ? { ...connection.providerSpecificData, proxyPoolScope: `${providerId}::${model || ""}` } + : connection.providerSpecificData; + const resolvedProxy = await resolveConnectionProxyConfig(psdForProxy || {}, connection.id); return { authType: connection.authType, @@ -193,6 +210,8 @@ export async function getProviderCredentials(provider, excludeConnectionIds = nu connectionNoProxy: resolvedProxy.connectionNoProxy, connectionProxyPoolId: resolvedProxy.proxyPoolId || null, vercelRelayUrl: resolvedProxy.vercelRelayUrl || "", + proxyPoolId: resolvedProxy.proxyPoolId || null, + strictProxy: resolvedProxy.strictProxy === true, }, connectionId: connection.id, // Include current status for optimization check diff --git a/tests/unit/proxy-pool-fitness.test.js b/tests/unit/proxy-pool-fitness.test.js new file mode 100644 index 00000000..aae84a0d --- /dev/null +++ b/tests/unit/proxy-pool-fitness.test.js @@ -0,0 +1,56 @@ +import { describe, it, expect, beforeEach } from "vitest"; +import { + markPoolUnfit, + clearPoolUnfit, + clearAllPoolUnfit, + isPoolFit, + fitPoolIds, + poolFitnessSnapshot, + pruneExpired, + resetPoolFitness, +} from "open-sse/services/proxyPoolFitness.js"; + +describe("proxy pool fitness registry", () => { + beforeEach(() => resetPoolFitness()); + + it("marks a pool unfit for a scope and prunes on expiry", () => { + markPoolUnfit("p1", "freebuff::gpt-5.6-luna", Date.now() + 60_000, "limited_ip"); + expect(isPoolFit("p1", "freebuff::gpt-5.6-luna")).toBe(false); + expect(isPoolFit("p1", "freebuff::other-model")).toBe(true); + expect(isPoolFit("p2", "freebuff::gpt-5.6-luna")).toBe(true); + + markPoolUnfit("p1", "freebuff::gpt-5.6-luna", Date.now() - 1000); // expired + expect(isPoolFit("p1", "freebuff::gpt-5.6-luna")).toBe(true); // pruned on read + }); + + it("provider-wide mark (provider::*) covers any model lookup", () => { + markPoolUnfit("p1", "opencode::*", Date.now() + 60_000, "manual"); + expect(isPoolFit("p1", "opencode::sonnet-4.6")).toBe(false); + expect(isPoolFit("p1", "freebuff::gpt-5.6-luna")).toBe(true); + }); + + it("fitPoolIds filters unfit pools; snapshot drops expired marks", () => { + markPoolUnfit("p1", "fb::m1", Date.now() + 60_000); + markPoolUnfit("p1", "fb::m2", Date.now() - 1000); // expired + expect(fitPoolIds(["p1", "p2"], "fb::m1")).toEqual(["p2"]); + + const snap = poolFitnessSnapshot(); + expect(snap.p1["fb::m1"]).toBeDefined(); + expect(snap.p1["fb::m2"]).toBeUndefined(); + }); + + it("clear per scope, clear-all per provider, clear-all global, pruneExpired", () => { + markPoolUnfit("p1", "freebuff::m1", Date.now() + 60_000); + markPoolUnfit("p1", "kiro::m3", Date.now() + 60_000); + + clearPoolUnfit("p1", "freebuff::m1"); + expect(isPoolFit("p1", "freebuff::m1")).toBe(true); + + clearAllPoolUnfit("kiro"); + expect(poolFitnessSnapshot().p1).toBeUndefined(); + + markPoolUnfit("p2", "x::y", Date.now() - 1000); + expect(pruneExpired()).toBe(1); + expect(poolFitnessSnapshot()).toEqual({}); + }); +}); From b75d665fa547b6ed10ea3e4c51dc4778b8ae6e4c Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Fri, 7 Aug 2026 03:51:29 +0800 Subject: [PATCH 08/42] feat(proxy-fitness): egress geo probe + unstable detection + state sweeper Background probe fetches ipinfo through each pool itself (provider-agnostic transport), fills an egress IP/country cache (TTL 1h, 8-IP history) and flags flapping relays as unstable. Periodic state sweeper (10 min) prunes expired fitness marks, stale geo/ip-history and Freebuff session/cooldown state; schedulers skip non-server runtimes. Unit tests for the geo cache. --- open-sse/services/poolGeo.js | 137 +++++++++++++++++++++++++++ src/lib/network/poolEgressProbe.js | 75 +++++++++++++++ src/lib/network/stateSweeper.js | 47 +++++++++ src/shared/services/initializeApp.js | 10 ++ tests/unit/pool-geo.test.js | 26 +++++ 5 files changed, 295 insertions(+) create mode 100644 open-sse/services/poolGeo.js create mode 100644 src/lib/network/poolEgressProbe.js create mode 100644 src/lib/network/stateSweeper.js create mode 100644 tests/unit/pool-geo.test.js diff --git a/open-sse/services/poolGeo.js b/open-sse/services/poolGeo.js new file mode 100644 index 00000000..319934d3 --- /dev/null +++ b/open-sse/services/poolGeo.js @@ -0,0 +1,137 @@ +// Pool egress geo — engine layer, shared by the dashboard UI (Proxy Fitness / +// Proxy Pools egress column) and any provider region policy that wants to +// pre-mark pools unfit by egress region. +// +// The probe transport is provider-agnostic: it fetches ipinfo.io THROUGH the +// pool itself (relay headers for vercel/cloudflare/deno, proxy URL for +// socks/http), so it works for every pool type and every provider. + +// The probe transport is provider-agnostic: it fetches ipinfo.io THROUGH the +// pool itself (relay headers for vercel/cloudflare/deno, proxy URL for +// socks/http), so it works for every pool type and every provider. +// +// State lives on globalThis (same reason as proxyPoolFitness): the background +// probe and the /api/proxy-pools reader must share ONE cache across Next dev +// bundles. + +const GEO_STATE_KEY = "__9routerPoolGeo__"; +const geoCache = (globalThis[GEO_STATE_KEY] ??= new Map()); // poolId -> { ip, country, ..., ts, ipHistory } + +export const POOL_GEO_TTL_MS = 60 * 60 * 1000; +// How many past egress IPs to remember for flapping detection. +export const POOL_GEO_IP_HISTORY_MAX = 8; + +// Debounce probe-failure logs: one line per failing pool per hour — the probe +// runs every 30 min, so a broken relay must not spam the log every pass. +const probeFailLogs = new Map(); // proxyUrl -> lastLoggedAt +const PROBE_FAIL_LOG_INTERVAL_MS = 60 * 60 * 1000; + +function logProbeFailure(kind, proxyUrl, detail) { + const key = String(proxyUrl || ""); + const now = Date.now(); + if (probeFailLogs.has(key) && now - probeFailLogs.get(key) < PROBE_FAIL_LOG_INTERVAL_MS) return; + probeFailLogs.set(key, now); + console.log(`[GeoProbe] ${kind} ${key.slice(0, 60)}${detail ? ` | ${detail.slice(0, 120)}` : ""}`); +} + +// Test helper: drop all cached geo (module state is globalThis-backed). +export function resetPoolGeo() { + geoCache.clear(); +} + +// Attach stability classification: >=2 distinct egress IPs observed = flapping +// (typical for serverless relays — Vercel/Cloudflare egress varies per colo). +function withStability(entry) { + const ips = new Set([entry?.ip, ...(entry?.ipHistory || []).map((h) => h.ip)]); + ips.delete(""); + const ipCount = ips.size; + return { ...entry, ipCount, isUnstable: ipCount >= 2 }; +} + +export function getPoolGeo(poolId) { + const entry = geoCache.get(poolId); + if (!entry) return null; + if (entry.ts + POOL_GEO_TTL_MS < Date.now()) { + geoCache.delete(poolId); + return null; + } + return withStability(entry); +} + +export function setPoolGeo(poolId, geo) { + if (!poolId || !geo?.ip) return; + const prev = geoCache.get(poolId); + const ipHistory = prev?.ipHistory ? [...prev.ipHistory] : []; + if (prev?.ip && prev.ip !== geo.ip) { + // Record the IP we are leaving — the history tracks past egress IPs. + ipHistory.push({ ip: prev.ip, ts: Date.now() }); + if (ipHistory.length > POOL_GEO_IP_HISTORY_MAX) ipHistory.shift(); + } + geoCache.set(poolId, { ...geo, ts: Date.now(), ipHistory }); +} + +export function poolGeoSnapshot(now = Date.now()) { + const out = {}; + for (const [poolId, entry] of geoCache) { + if (entry.ts + POOL_GEO_TTL_MS <= now) { + geoCache.delete(poolId); + continue; + } + out[poolId] = withStability(entry); + } + return out; +} + +// Sweep geo entries past their TTL (ipHistory rides along with the entry). +// Returns how many entries were removed. +export function pruneStaleGeo(now = Date.now()) { + let removed = 0; + for (const [poolId, entry] of geoCache) { + if (entry.ts + POOL_GEO_TTL_MS <= now) { + geoCache.delete(poolId); + removed += 1; + } + } + return removed; +} + +// Probe the egress geo of one pool via ipinfo through the pool. Fail-open: +// returns null on any error/timeout. `pool` shape: { proxyUrl, type }. +export async function probePoolGeo(pool, timeoutMs = 15000) { + const proxyUrl = pool?.proxyUrl; + if (!proxyUrl) return null; + const { proxyAwareFetch } = await import("../utils/proxyFetch.js"); + const isRelay = ["vercel", "cloudflare", "deno"].includes(pool?.type); + const proxyOptions = isRelay + ? { vercelRelayUrl: proxyUrl } + : { connectionProxyEnabled: true, connectionProxyUrl: proxyUrl }; + + const ctrl = new AbortController(); + const timer = setTimeout(() => ctrl.abort(new Error("geo probe timeout")), timeoutMs); + try { + const res = await proxyAwareFetch("https://ipinfo.io/json", { signal: ctrl.signal }, proxyOptions); + if (!res.ok) { + const txt = await res.text().catch(() => ""); + logProbeFailure(`http ${res.status}`, proxyUrl, txt); + return null; + } + const data = await res.json().catch(() => null); + if (!data?.ip) { + logProbeFailure("no-ip", proxyUrl, ""); + return null; + } + return { + ip: data.ip || "", + country: data.country || "", + region: data.region || "", + city: data.city || "", + org: data.org || "", + isDatacenter: /(cloudflare|vercel|amazon|aws|google|microsoft|azure|digitalocean|hetzner|ovh|contabo|leaseweb)/i.test(String(data.org || "")), + }; + } catch (error) { + logProbeFailure("fail", proxyUrl, `${error?.name}: ${error?.message}`); + return null; + } finally { + clearTimeout(timer); + } +} diff --git a/src/lib/network/poolEgressProbe.js b/src/lib/network/poolEgressProbe.js new file mode 100644 index 00000000..cd76ec15 --- /dev/null +++ b/src/lib/network/poolEgressProbe.js @@ -0,0 +1,75 @@ +// Background pool egress geo probe — fills the poolGeo cache so the Proxy +// Fitness / Proxy Pools UI can show each pool's egress IP + country, and +// future provider region policies can pre-mark pools unfit. +// Fail-open everywhere; never blocks startup or requests. + +import { getProxyPools } from "@/models"; +import { probePoolGeo, setPoolGeo, getPoolGeo } from "open-sse/services/poolGeo.js"; +import { isNonServerRuntime } from "@/sse/services/backgroundTokenRefresh.js"; + +const PROBE_INTERVAL_MS = 30 * 60 * 1000; +const INITIAL_DELAY_MS = 15 * 1000; +const CONCURRENCY = 4; +// Re-probe a pool when its last sample is older than this — multiple samples +// per pool are what let us flag flapping (changing egress) relays. +const GEO_REPROBE_MS = 15 * 60 * 1000; + +let started = false; +let intervalHandle = null; +let initialTimeoutHandle = null; +let probing = false; + +// probe with bounded concurrency; re-probes pools whose sample is stale enough. +async function probeAll() { + if (probing) return; + probing = true; + try { + const pools = await getProxyPools({ isActive: true }); + const now = Date.now(); + const targets = (pools || []).filter((p) => { + if (!p?.proxyUrl) return false; + const geo = getPoolGeo(p.id); + return !geo || now - geo.ts >= GEO_REPROBE_MS; + }); + if (targets.length === 0) return; + console.log(`[PoolEgressProbe] probing ${targets.length}/${(pools || []).length} active pools`); + let next = 0; + const workers = Array.from({ length: Math.min(CONCURRENCY, Math.max(targets.length, 1)) }, async () => { + while (next < targets.length) { + const pool = targets[next++]; + const geo = await probePoolGeo(pool); + if (geo) setPoolGeo(pool.id, geo); + } + }); + await Promise.allSettled(workers); + const filled = (pools || []).filter((p) => getPoolGeo(p.id)).length; + console.log(`[PoolEgressProbe] pass done — geo cached for ${filled}/${(pools || []).length} pools`); + } catch (e) { + console.log(`[PoolEgressProbe] pass failed: ${e?.message || e}`); + } finally { + probing = false; + } +} + +export function startPoolEgressProbe({ intervalMs } = {}) { + if (started) return false; + if (isNonServerRuntime()) return false; + started = true; + const period = Number.isFinite(intervalMs) && intervalMs > 0 ? intervalMs : PROBE_INTERVAL_MS; + console.log("[PoolEgressProbe] Scheduler started", { intervalMs: period, initialDelayMs: INITIAL_DELAY_MS }); + initialTimeoutHandle = setTimeout(() => { probeAll().catch(() => {}); }, INITIAL_DELAY_MS); + if (initialTimeoutHandle.unref) initialTimeoutHandle.unref(); + intervalHandle = setInterval(() => { probeAll().catch(() => {}); }, period); + if (intervalHandle.unref) intervalHandle.unref(); + return true; +} + +export function stopPoolEgressProbe() { + if (initialTimeoutHandle) clearTimeout(initialTimeoutHandle); + if (intervalHandle) clearInterval(intervalHandle); + initialTimeoutHandle = null; + intervalHandle = null; + started = false; +} + +export const __test__ = { probeAll }; diff --git a/src/lib/network/stateSweeper.js b/src/lib/network/stateSweeper.js new file mode 100644 index 00000000..df33c673 --- /dev/null +++ b/src/lib/network/stateSweeper.js @@ -0,0 +1,47 @@ +// Periodic in-memory state sweeper — a cron-like job that prunes expired data +// so here long-running servers never accumulate stale entries: +// • pool fitness marks (proxyPoolFitness.pruneExpired) +// • pool egress geo cache incl. ipHistory (poolGeo.pruneStaleGeo) +// • freebuff session cache + cooldowns (freebuff.pruneSessionState) +// Fail-open everywhere; never blocks startup or requests. + +import { pruneExpired } from "open-sse/services/proxyPoolFitness.js"; +import { pruneStaleGeo } from "open-sse/services/poolGeo.js"; +import { isNonServerRuntime } from "@/sse/services/backgroundTokenRefresh.js"; + +const SWEEP_INTERVAL_MS = 10 * 60 * 1000; + +let started = false; +let handle = null; + +async function sweep() { + try { + const fitness = pruneExpired(); + const geo = pruneStaleGeo(); + const { pruneSessionState } = await import("open-sse/executors/freebuff.js"); + const sessions = pruneSessionState(); + if (fitness || geo || sessions) { + console.log(`[StateSweeper] pruned ${fitness} fitness, ${geo} geo, ${sessions} session/cooldown entries`); + } + } catch { + // fail-open: next tick retries + } +} + +export function startStateSweeper({ intervalMs } = {}) { + if (started) return false; + if (isNonServerRuntime()) return false; + started = true; + const period = Number.isFinite(intervalMs) && intervalMs > 0 ? intervalMs : SWEEP_INTERVAL_MS; + handle = setInterval(() => { sweep().catch(() => {}); }, period); + if (handle.unref) handle.unref(); + return true; +} + +export function stopStateSweeper() { + if (handle) clearInterval(handle); + handle = null; + started = false; +} + +export const __test__ = { sweep }; \ No newline at end of file diff --git a/src/shared/services/initializeApp.js b/src/shared/services/initializeApp.js index 5b27f774..e627c560 100644 --- a/src/shared/services/initializeApp.js +++ b/src/shared/services/initializeApp.js @@ -118,6 +118,16 @@ async function runHeavyStartup() { import("@/sse/services/backgroundTokenRefresh.js") .then(({ startBackgroundTokenRefresh }) => startBackgroundTokenRefresh()) .catch((e) => console.log("[BackgroundTokenRefresh] scheduler start failed:", e.message)); + + // Pool egress geo probe — fills the Proxy Fitness / Proxy Pools egress column. + import("@/lib/network/poolEgressProbe.js") + .then(({ startPoolEgressProbe }) => startPoolEgressProbe()) + .catch((e) => console.log("[PoolEgressProbe] scheduler start failed:", e.message)); + + // Periodic in-memory state sweeper — prunes expired fitness/geo/session state. + import("@/lib/network/stateSweeper.js") + .then(({ startStateSweeper }) => startStateSweeper()) + .catch((e) => console.log("[StateSweeper] scheduler start failed:", e.message)); } function hasQuotaAutoPingEnabled(settings) { diff --git a/tests/unit/pool-geo.test.js b/tests/unit/pool-geo.test.js new file mode 100644 index 00000000..71f4eef2 --- /dev/null +++ b/tests/unit/pool-geo.test.js @@ -0,0 +1,26 @@ +import { describe, it, expect, beforeEach } from "vitest"; +import { setPoolGeo, getPoolGeo, poolGeoSnapshot, pruneStaleGeo, resetPoolGeo } from "open-sse/services/poolGeo.js"; + +describe("pool egress geo cache", () => { + beforeEach(() => resetPoolGeo()); + + it("stores geo and classifies stability from egress changes", () => { + setPoolGeo("p1", { ip: "1.1.1.1", country: "US" }); + setPoolGeo("p1", { ip: "1.1.1.1", country: "US" }); // same IP twice + expect(getPoolGeo("p1").isUnstable).toBe(false); + expect(getPoolGeo("p1").ipCount).toBe(1); + + setPoolGeo("p1", { ip: "2.2.2.2", country: "US" }); // changed + expect(getPoolGeo("p1").isUnstable).toBe(true); + expect(getPoolGeo("p1").ipCount).toBe(2); + }); + + it("prunes TTL-stale entries (ipHistory rides along)", () => { + setPoolGeo("p1", { ip: "1.1.1.1", country: "US" }); + setPoolGeo("p1", { ip: "2.2.2.2", country: "US" }); + const cache = globalThis["__9routerPoolGeo__"]; + cache.get("p1").ts = Date.now() - 2 * 60 * 60 * 1000; + expect(pruneStaleGeo()).toBe(1); + expect(poolGeoSnapshot()).toEqual({}); + }); +}); \ No newline at end of file From a0bf2e3f96e310cd12c3ab80fab5bcdbe5a41bcc Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Fri, 7 Aug 2026 03:51:38 +0800 Subject: [PATCH 09/42] fix(token-refresh): stop dead-token retry loop, lift block on refresh success Unrecoverable refresh errors (invalid_grant/invalid_request) are persisted as a refreshBlocked marker so the background scheduler stops hammering the provider every 5 minutes and surfaces re-login required; the marker is lifted automatically when a later refresh succeeds. Cooldown maps gained lazy pruning. --- src/sse/services/backgroundTokenRefresh.js | 27 ++++++++++++++++++++-- src/sse/services/tokenRefresh.js | 21 +++++++++++++++-- 2 files changed, 44 insertions(+), 4 deletions(-) diff --git a/src/sse/services/backgroundTokenRefresh.js b/src/sse/services/backgroundTokenRefresh.js index b10a86ba..d8bb0a56 100644 --- a/src/sse/services/backgroundTokenRefresh.js +++ b/src/sse/services/backgroundTokenRefresh.js @@ -21,7 +21,7 @@ function isTruthyEnv(value) { return v === "1" || v === "true" || v === "yes" || v === "on"; } -function isNonServerRuntime() { +export function isNonServerRuntime() { if (typeof window !== "undefined") return true; const phase = process.env.NEXT_PHASE || ""; if ( @@ -54,6 +54,9 @@ export function selectConnectionsNeedingRefresh(connections, nowMs = Date.now()) const authType = String(conn.authType || "").toLowerCase().replace(/_/g, ""); if (authType !== "oauth") continue; if (!conn.refreshToken) continue; + // Refresh token known-dead (invalid_grant/invalid_request) — stop retrying + // every tick; surfaced as "re-login required" instead. + if (conn.providerSpecificData?.refreshBlocked) continue; const expiresAtMs = getCredentialExpiryMs(conn); if (expiresAtMs === null) continue; @@ -79,7 +82,27 @@ async function loadActiveConnections() { async function refreshOne(connection) { const { checkAndRefreshToken } = await import("./tokenRefresh.js"); - return checkAndRefreshToken(connection.provider, connection, { force: true }); + const result = await checkAndRefreshToken(connection.provider, connection, { force: true }); + + // Dead refresh token (revoked/reused/expired): persist the block marker so + // future ticks skip it, then surface the re-login requirement. The marker is + // lifted by checkAndRefreshToken on the next successful refresh. + if (result?.refreshError) { + const { updateProviderConnection } = await import("../../lib/db/repos/connectionsRepo.js"); + await updateProviderConnection(connection.id, { + providerSpecificData: { + ...(connection.providerSpecificData || {}), + refreshBlocked: result.refreshError, + refreshBlockedAt: result.refreshErrorAt, + }, + }); + log.warn("BG_TOKEN_REFRESH", "Refresh token unrecoverable — auto-refresh stopped, re-login required", { + id: connection.id, + provider: connection.provider, + error: result.refreshError, + }); + } + return result; } /** diff --git a/src/sse/services/tokenRefresh.js b/src/sse/services/tokenRefresh.js index 6c808f07..4ca55920 100644 --- a/src/sse/services/tokenRefresh.js +++ b/src/sse/services/tokenRefresh.js @@ -20,7 +20,8 @@ import { formatProviderCredentials as _formatProviderCredentials, getAllAccessTokens as _getAllAccessTokens, refreshKiroToken as _refreshKiroToken, - getRefreshLeadMs as _getRefreshLeadMs + getRefreshLeadMs as _getRefreshLeadMs, + isUnrecoverableRefreshError, } from "open-sse/services/tokenRefresh.js"; import { refreshProviderCredentials as _refreshProviderCredentials, @@ -238,10 +239,26 @@ export async function checkAndRefreshToken(provider, credentials, options = {}) }); const newCreds = await _refreshProviderCredentials(provider, creds, log); + if (isUnrecoverableRefreshError(newCreds)) { + // Refresh token is dead (revoked/reused/expired) — retrying forever just + // spams xAI's endpoint every tick. Tag the result so the background + // scheduler can stop retrying and surface "re-login required". + log.warn("TOKEN_REFRESH", `Refresh token unrecoverable for ${provider} — re-login required`, { + error: newCreds.error, + }); + return { ...creds, refreshError: newCreds.error, refreshErrorAt: new Date().toISOString() }; + } if (newCreds?.accessToken || newCreds?.apiKey || newCreds?.copilotToken) { const mergedCreds = { ...newCreds, - existingProviderSpecificData: creds.providerSpecificData, + // Lift any previous refreshBlocked marker — the refresh just succeeded + // (covers in-place re-auth flows that keep the same connection row). + existingProviderSpecificData: { + ...(creds.providerSpecificData || {}), + ...(creds.providerSpecificData?.refreshBlocked + ? { refreshBlocked: undefined, refreshBlockedAt: undefined } + : {}), + }, }; // Persist to DB (non-blocking path continues below) From ad43a267ac45c96a78eeb281c515d2707b90d3f0 Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Fri, 7 Aug 2026 04:04:35 +0800 Subject: [PATCH 10/42] chore: re-sync package-lock --- package-lock.json | 25 +------------------------ 1 file changed, 1 insertion(+), 24 deletions(-) diff --git a/package-lock.json b/package-lock.json index c4271bda..3981b648 100644 --- a/package-lock.json +++ b/package-lock.json @@ -373,30 +373,6 @@ "react": ">=16.8.0" } }, - "node_modules/@emnapi/core": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", - "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@emnapi/wasi-threads": "1.2.1", - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/runtime": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.3.tgz", - "integrity": "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@emnapi/wasi-threads": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", @@ -4499,6 +4475,7 @@ "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.9", From 041e03979305dcf1df478eafe5c058500c76d78a Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Fri, 7 Aug 2026 04:24:54 +0800 Subject: [PATCH 11/42] chore: strip per-request DEBUG logs from chat path MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove [DBG:STREAM] chunk/pipe/EOF instrumentation and [DBG:SSE] flush + fetch success lines that spam the dev console every request. Keep the stream stall watchdog and the fetch-error (✖) diagnostics. --- open-sse/executors/base.js | 5 ----- open-sse/executors/freebuff.js | 5 ----- open-sse/utils/stream.js | 2 -- open-sse/utils/streamHandler.js | 26 +++++--------------------- 4 files changed, 5 insertions(+), 33 deletions(-) diff --git a/open-sse/executors/base.js b/open-sse/executors/base.js index a4c017e4..7dbb0700 100644 --- a/open-sse/executors/base.js +++ b/open-sse/executors/base.js @@ -139,8 +139,6 @@ export class BaseExecutor { try { const bodyStr = JSON.stringify(transformedBody); - const fetchT0 = Date.now(); - dbg("FETCH", `${this.provider.toUpperCase()} → ${url} | body=${bodyStr.length}B | connectTimeout=${timeoutMs}ms`); const response = await proxyAwareFetch(url, { method: "POST", headers, @@ -148,9 +146,6 @@ export class BaseExecutor { signal: mergedSignal }, proxyOptions); clearTimeout(connectTimer); - const ct = response.headers?.get?.("content-type") || ""; - const cl = response.headers?.get?.("content-length") || "?"; - dbg("FETCH", `${this.provider.toUpperCase()} ← ${response.status} | ttft=${Date.now() - fetchT0}ms | ct=${ct} | cl=${cl}`); if (await tryRetry(urlIndex, response.status, `status ${response.status}`, response)) { urlIndex--; continue; } diff --git a/open-sse/executors/freebuff.js b/open-sse/executors/freebuff.js index 4f23e630..891a44a0 100644 --- a/open-sse/executors/freebuff.js +++ b/open-sse/executors/freebuff.js @@ -491,19 +491,14 @@ export class FreebuffExecutor extends BaseExecutor { for (let attempt = 0; ; attempt++) { const transformedBody = buildBody(); const bodyStr = JSON.stringify(transformedBody); - dbg("FETCH", `FREEBUFF → ${url} | body=${bodyStr.length}B`); const connectCtrl = new AbortController(); const timeoutMs = this.config?.timeoutMs || FETCH_CONNECT_TIMEOUT_MS; const connectTimer = setTimeout(() => connectCtrl.abort(new Error("fetch connect timeout")), timeoutMs); const mergedSignal = signal ? AbortSignal.any([signal, connectCtrl.signal]) : connectCtrl.signal; - const fetchT0 = Date.now(); let response; try { response = await proxyAwareFetch(url, { method: "POST", headers, body: bodyStr, signal: mergedSignal }, proxyOptions); - const ct = response.headers?.get?.("content-type") || ""; - const cl = response.headers?.get?.("content-length") || "?"; - dbg("FETCH", `FREEBUFF ← ${response.status} | ttft=${Date.now() - fetchT0}ms | ct=${ct} | cl=${cl}`); } catch (error) { // A caller/stream abort (AbortError) is genuine — never retry it. A // transient socket/TLS reset (same class as the run-registration diff --git a/open-sse/utils/stream.js b/open-sse/utils/stream.js index 33e7fb04..87681089 100644 --- a/open-sse/utils/stream.js +++ b/open-sse/utils/stream.js @@ -338,8 +338,6 @@ export function createSSEStream(options = {}) { }, flush(controller) { - const evtSummary = Object.entries(eventTypeCounts).map(([k, v]) => `${k}=${v}`).join(",") || "none"; - dbg("SSE", `flush | provider=${provider} | model=${model} | recvLines=${sseLineCount} | emitted=${sseEmittedCount} | events=[${evtSummary}]`); trackPendingRequest(model, provider, connectionId, false); try { const remaining = decoder.decode(); diff --git a/open-sse/utils/streamHandler.js b/open-sse/utils/streamHandler.js index 7f04427d..8e818a3d 100644 --- a/open-sse/utils/streamHandler.js +++ b/open-sse/utils/streamHandler.js @@ -1,6 +1,6 @@ // Stream handler with disconnect detection - shared for all providers import { STREAM_STALL_TIMEOUT_MS } from "../config/runtimeConfig.js"; -import { dbg, isDebugEnabled } from "./debugLog.js"; +import { dbg } from "./debugLog.js"; // Get HH:MM:SS timestamp function getTimeString() { @@ -190,11 +190,6 @@ export function createDisconnectAwareStream(transformStream, streamController, o */ export function pipeWithDisconnect(providerResponse, transformStream, streamController, onAbortTerminal = null, stallTimeoutMs = STREAM_STALL_TIMEOUT_MS) { let stallTimer = null; - let chunkCount = 0; - let totalBytes = 0; - let lastChunkAt = Date.now(); - const t0 = Date.now(); - const tag = "STREAM"; const clearStall = () => { if (stallTimer) { clearTimeout(stallTimer); stallTimer = null; } }; @@ -202,7 +197,6 @@ export function pipeWithDisconnect(providerResponse, transformStream, streamCont clearStall(); stallTimer = setTimeout(() => { stallTimer = null; - dbg(tag, `STALL TIMEOUT ${stallTimeoutMs}ms | chunks=${chunkCount} | bytes=${totalBytes} | sinceLast=${Date.now() - lastChunkAt}ms`); streamController.handleError?.(new Error("stream stall timeout")); streamController.abort?.(); }, stallTimeoutMs); @@ -215,30 +209,20 @@ export function pipeWithDisconnect(providerResponse, transformStream, streamCont signal: streamController.signal, startTime: streamController.startTime, isConnected: () => streamController.isConnected(), - handleComplete: () => { dbg(tag, `complete | chunks=${chunkCount} | bytes=${totalBytes} | dur=${Date.now() - t0}ms`); clearStall(); streamController.handleComplete(); }, - handleError: (e) => { dbg(tag, `error: ${e?.message} | chunks=${chunkCount} | bytes=${totalBytes} | dur=${Date.now() - t0}ms`); clearStall(); streamController.handleError(e); }, - handleDisconnect: (r) => { dbg(tag, `disconnect: ${r} | chunks=${chunkCount} | bytes=${totalBytes} | dur=${Date.now() - t0}ms`); clearStall(); streamController.handleDisconnect(r); }, + handleComplete: () => { clearStall(); streamController.handleComplete(); }, + handleError: (e) => { clearStall(); streamController.handleError(e); }, + handleDisconnect: (r) => { clearStall(); streamController.handleDisconnect(r); }, abort: () => { clearStall(); streamController.abort(); } }; armStall(); - dbg(tag, `pipe start | stallTimeout=${stallTimeoutMs}ms`); const upstreamTap = new TransformStream({ transform(chunk, controller) { - chunkCount++; - const sz = chunk?.byteLength || chunk?.length || 0; - totalBytes += sz; - const now = Date.now(); - const gap = now - lastChunkAt; - lastChunkAt = now; - if (isDebugEnabled && (chunkCount <= 5 || chunkCount % 20 === 0 || gap > 5000)) { - dbg(tag, `chunk #${chunkCount} | size=${sz}B | gap=${gap}ms | total=${totalBytes}B`); - } armStall(); controller.enqueue(chunk); }, - flush() { dbg(tag, `upstream EOF | chunks=${chunkCount} | bytes=${totalBytes} | dur=${Date.now() - t0}ms`); clearStall(); } + flush() { clearStall(); } }); const transformedBody = providerResponse.body From 2a1e192734adbafc5181a85ac0a63ccdbf14dad0 Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Fri, 7 Aug 2026 04:56:40 +0800 Subject: [PATCH 12/42] feat(api): advertise context_window on /v1/models from capabilities --- src/app/api/v1/models/route.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/app/api/v1/models/route.js b/src/app/api/v1/models/route.js index a5826545..cc55c1e8 100644 --- a/src/app/api/v1/models/route.js +++ b/src/app/api/v1/models/route.js @@ -485,6 +485,10 @@ export async function buildModelsList(kindFilter, options = {}) { || capabilitiesFromServiceKind(customKind || liveKind) || (kind === LLM_KIND ? getCapabilitiesForModel(providerId, modelId) : null); if (caps) model.capabilities = caps; + // Advertise the context window for clients that read it from /v1/models + // (OpenAI-compatible convention; opencode's generic adapter ignores it + // and needs limit.context declared client-side). + if (caps?.contextWindow) model.context_window = caps.contextWindow; models.push(model); } From fa679a676dcff37b3ef1312c3192afe42613c44c Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Fri, 7 Aug 2026 05:40:18 +0800 Subject: [PATCH 13/42] docs(cloud): raise nginx client_max_body_size for large-context payloads nginx default 1m rejects multi-MB chat bodies (1M-token prompts) with 413 before they reach 9Router; set 128m in the documented site config. --- gitbook/content/en/deployment/cloud.md | 4 ++++ gitbook/content/vi/deployment/cloud.md | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/gitbook/content/en/deployment/cloud.md b/gitbook/content/en/deployment/cloud.md index 80e4b28f..c9518014 100644 --- a/gitbook/content/en/deployment/cloud.md +++ b/gitbook/content/en/deployment/cloud.md @@ -247,6 +247,10 @@ server { ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; + # Allow large request bodies — big context windows (e.g. 1M token prompts) + # produce multi-MB chat payloads; nginx default is 1m and would 413 them. + client_max_body_size 128m; + # Proxy to 9Router location / { proxy_pass http://localhost:3000; diff --git a/gitbook/content/vi/deployment/cloud.md b/gitbook/content/vi/deployment/cloud.md index 06ba2719..2098ae04 100644 --- a/gitbook/content/vi/deployment/cloud.md +++ b/gitbook/content/vi/deployment/cloud.md @@ -247,6 +247,10 @@ server { ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; + # Cho phép body lớn — prompt ngữ cảnh 1M token sinh payload vài MB; + # mặc định nginx là 1m và sẽ trả 413. + client_max_body_size 128m; + # Proxy to 9Router location / { proxy_pass http://localhost:3000; From c1bbe446de5a5d075e14e0d5c8552eb858ae9aa5 Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Fri, 7 Aug 2026 06:39:54 +0800 Subject: [PATCH 14/42] chore: drop full error stack traces from chat error logs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Shorten the ✗ ERROR 502 / stream ERROR lines to the message only; the multi-KB next-dev stack trace polluted the console on every provider error. --- open-sse/handlers/chatCore.js | 2 +- open-sse/utils/streamHandler.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/open-sse/handlers/chatCore.js b/open-sse/handlers/chatCore.js index d21db965..bca3b7c5 100644 --- a/open-sse/handlers/chatCore.js +++ b/open-sse/handlers/chatCore.js @@ -422,7 +422,7 @@ export async function handleChatCore({ body, modelInfo, credentials, log, onCred } const errMsg = formatProviderError(error, provider, model, HTTP_STATUS.BAD_GATEWAY); if (log?.errorLine) { - log.errorLine(reqTag, "✗", `ERROR 502 · ${provider}/${model} · ${Date.now() - requestStartTime}ms\n ${errMsg}${error.stack ? `\n ${error.stack}` : ""}`); + log.errorLine(reqTag, "✗", `ERROR 502 · ${provider}/${model} · ${Date.now() - requestStartTime}ms\n ${errMsg}`); } return createErrorResult(HTTP_STATUS.BAD_GATEWAY, errMsg, error?.resetsAtMs || undefined); } diff --git a/open-sse/utils/streamHandler.js b/open-sse/utils/streamHandler.js index 8e818a3d..e76dce90 100644 --- a/open-sse/utils/streamHandler.js +++ b/open-sse/utils/streamHandler.js @@ -78,7 +78,7 @@ export function createStreamController({ onDisconnect, onError, log, provider, m return; } - logStream("✗", `ERROR: ${error.message}${error.stack ? `\n ${error.stack}` : ""}`, true); + logStream("✗", `ERROR: ${error.message}`, true); onError?.(error); }, From 3c4bd4f1e5af564f370ef9bb482667bbc59b52aa Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Fri, 7 Aug 2026 07:16:29 +0800 Subject: [PATCH 15/42] feat(proxy-fitness): throttle egress geo probe + aggregate failure log MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Refuse re-probing failures too fast: 500/429 failures get a 2h backoff, other errors 30m (flapping relays/quota stops hammering ipinfo every pass, passes every 30 min instead of 15). One-line summary per pass (geo N/M · fail: rate×a server×b) replaces the per-pool error wall. New env POOL_GEO_PROBE_DISABLED=1 turns the feature off. --- open-sse/services/poolGeo.js | 47 +++++++++++--------------- src/lib/network/poolEgressProbe.js | 54 ++++++++++++++++++++++++------ 2 files changed, 63 insertions(+), 38 deletions(-) diff --git a/open-sse/services/poolGeo.js b/open-sse/services/poolGeo.js index 319934d3..862a013f 100644 --- a/open-sse/services/poolGeo.js +++ b/open-sse/services/poolGeo.js @@ -21,19 +21,6 @@ export const POOL_GEO_TTL_MS = 60 * 60 * 1000; // How many past egress IPs to remember for flapping detection. export const POOL_GEO_IP_HISTORY_MAX = 8; -// Debounce probe-failure logs: one line per failing pool per hour — the probe -// runs every 30 min, so a broken relay must not spam the log every pass. -const probeFailLogs = new Map(); // proxyUrl -> lastLoggedAt -const PROBE_FAIL_LOG_INTERVAL_MS = 60 * 60 * 1000; - -function logProbeFailure(kind, proxyUrl, detail) { - const key = String(proxyUrl || ""); - const now = Date.now(); - if (probeFailLogs.has(key) && now - probeFailLogs.get(key) < PROBE_FAIL_LOG_INTERVAL_MS) return; - probeFailLogs.set(key, now); - console.log(`[GeoProbe] ${kind} ${key.slice(0, 60)}${detail ? ` | ${detail.slice(0, 120)}` : ""}`); -} - // Test helper: drop all cached geo (module state is globalThis-backed). export function resetPoolGeo() { geoCache.clear(); @@ -96,10 +83,12 @@ export function pruneStaleGeo(now = Date.now()) { } // Probe the egress geo of one pool via ipinfo through the pool. Fail-open: -// returns null on any error/timeout. `pool` shape: { proxyUrl, type }. +// returns { ok:true, geo } on success, { ok:false, error } otherwise with +// `error` one of "rate-limit" | "server" | "no-ip" | "network" | "timeout". +// `pool` shape: { proxyUrl, type }. export async function probePoolGeo(pool, timeoutMs = 15000) { const proxyUrl = pool?.proxyUrl; - if (!proxyUrl) return null; + if (!proxyUrl) return { ok: false, error: "network" }; const { proxyAwareFetch } = await import("../utils/proxyFetch.js"); const isRelay = ["vercel", "cloudflare", "deno"].includes(pool?.type); const proxyOptions = isRelay @@ -112,25 +101,29 @@ export async function probePoolGeo(pool, timeoutMs = 15000) { const res = await proxyAwareFetch("https://ipinfo.io/json", { signal: ctrl.signal }, proxyOptions); if (!res.ok) { const txt = await res.text().catch(() => ""); - logProbeFailure(`http ${res.status}`, proxyUrl, txt); - return null; + const error = res.status === 429 || res.status === 403 ? "rate-limit" + : res.status >= 500 ? "server" + : "network"; + return { ok: false, error, detail: `${res.status} ${txt.slice(0, 60)}` }; } const data = await res.json().catch(() => null); if (!data?.ip) { - logProbeFailure("no-ip", proxyUrl, ""); - return null; + return { ok: false, error: "no-ip" }; } return { - ip: data.ip || "", - country: data.country || "", - region: data.region || "", - city: data.city || "", - org: data.org || "", - isDatacenter: /(cloudflare|vercel|amazon|aws|google|microsoft|azure|digitalocean|hetzner|ovh|contabo|leaseweb)/i.test(String(data.org || "")), + ok: true, + geo: { + ip: data.ip || "", + country: data.country || "", + region: data.region || "", + city: data.city || "", + org: data.org || "", + isDatacenter: /(cloudflare|vercel|amazon|aws|google|microsoft|azure|digitalocean|hetzner|ovh|contabo|leaseweb)/i.test(String(data.org || "")), + }, }; } catch (error) { - logProbeFailure("fail", proxyUrl, `${error?.name}: ${error?.message}`); - return null; + const timedOut = ctrl.signal?.aborted && error?.name === "AbortError"; + return { ok: false, error: timedOut ? "timeout" : "network", detail: `${error?.name}: ${error?.message}` }; } finally { clearTimeout(timer); } diff --git a/src/lib/network/poolEgressProbe.js b/src/lib/network/poolEgressProbe.js index cd76ec15..43a84eb6 100644 --- a/src/lib/network/poolEgressProbe.js +++ b/src/lib/network/poolEgressProbe.js @@ -2,6 +2,10 @@ // Fitness / Proxy Pools UI can show each pool's egress IP + country, and // future provider region policies can pre-mark pools unfit. // Fail-open everywhere; never blocks startup or requests. +// +// Rate safety: each probe hits ipinfo.io through the pool; quotas are small, +// so failing pools get a negative backoff instead of being re-probed every +// pass, and per-pass output is a single aggregated summary line. import { getProxyPools } from "@/models"; import { probePoolGeo, setPoolGeo, getPoolGeo } from "open-sse/services/poolGeo.js"; @@ -9,41 +13,68 @@ import { isNonServerRuntime } from "@/sse/services/backgroundTokenRefresh.js"; const PROBE_INTERVAL_MS = 30 * 60 * 1000; const INITIAL_DELAY_MS = 15 * 1000; -const CONCURRENCY = 4; +const CONCURRENCY = 3; // Re-probe a pool when its last sample is older than this — multiple samples // per pool are what let us flag flapping (changing egress) relays. -const GEO_REPROBE_MS = 15 * 60 * 1000; +const GEO_REPROBE_MS = 30 * 60 * 1000; + +// Backoff windows per failure family: server/rate problems are likely to +// persist (broken relay, exhausted quota), network blips recover sooner. +const BACKOFF = { + "rate-limit": 2 * 60 * 60 * 1000, + server: 2 * 60 * 60 * 1000, + network: 30 * 60 * 1000, + timeout: 30 * 60 * 1000, + "no-ip": 30 * 60 * 1000, +}; let started = false; let intervalHandle = null; let initialTimeoutHandle = null; let probing = false; +const probeBackoff = new Map(); // poolId -> retryAfter (ms epoch) -// probe with bounded concurrency; re-probes pools whose sample is stale enough. +function isTruthyEnv(v) { + if (v == null || v === "") return false; + return ["1", "true", "yes", "on"].includes(String(v).trim().toLowerCase()); +} + +// probe with bounded concurrency; skips pools in backoff or with fresh samples. async function probeAll() { if (probing) return; probing = true; try { const pools = await getProxyPools({ isActive: true }); const now = Date.now(); - const targets = (pools || []).filter((p) => { - if (!p?.proxyUrl) return false; + const active = (pools || []).filter((p) => !!p?.proxyUrl); + const targets = active.filter((p) => { + const until = probeBackoff.get(p.id); + if (until && until > now) return false; // waiting out a failure const geo = getPoolGeo(p.id); return !geo || now - geo.ts >= GEO_REPROBE_MS; }); if (targets.length === 0) return; - console.log(`[PoolEgressProbe] probing ${targets.length}/${(pools || []).length} active pools`); + + const failTally = {}; let next = 0; const workers = Array.from({ length: Math.min(CONCURRENCY, Math.max(targets.length, 1)) }, async () => { while (next < targets.length) { const pool = targets[next++]; - const geo = await probePoolGeo(pool); - if (geo) setPoolGeo(pool.id, geo); + const res = await probePoolGeo(pool); + if (res.ok) { + setPoolGeo(pool.id, res.geo); + if (probeBackoff.has(pool.id)) probeBackoff.delete(pool.id); + } else { + failTally[res.error] = (failTally[res.error] || 0) + 1; + probeBackoff.set(pool.id, now + (BACKOFF[res.error] || BACKOFF.network)); + } } }); await Promise.allSettled(workers); - const filled = (pools || []).filter((p) => getPoolGeo(p.id)).length; - console.log(`[PoolEgressProbe] pass done — geo cached for ${filled}/${(pools || []).length} pools`); + + const filled = active.filter((p) => getPoolGeo(p.id)).length; + const failSummary = Object.entries(failTally).map(([k, n]) => `${k}×${n}`).join(", ") || "none"; + console.log(`[PoolEgressProbe] geo ${filled}/${active.length} · fail: ${failSummary}`); } catch (e) { console.log(`[PoolEgressProbe] pass failed: ${e?.message || e}`); } finally { @@ -54,6 +85,7 @@ async function probeAll() { export function startPoolEgressProbe({ intervalMs } = {}) { if (started) return false; if (isNonServerRuntime()) return false; + if (isTruthyEnv(process.env.POOL_GEO_PROBE_DISABLED)) return false; started = true; const period = Number.isFinite(intervalMs) && intervalMs > 0 ? intervalMs : PROBE_INTERVAL_MS; console.log("[PoolEgressProbe] Scheduler started", { intervalMs: period, initialDelayMs: INITIAL_DELAY_MS }); @@ -72,4 +104,4 @@ export function stopPoolEgressProbe() { started = false; } -export const __test__ = { probeAll }; +export const __test__ = { probeAll }; \ No newline at end of file From a443834f53c21dae0c132a20284bd057b7a4e962 Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Fri, 7 Aug 2026 07:45:54 +0800 Subject: [PATCH 16/42] feat(proxy-fitness): multi-endpoint egress geo probe chain Try ipwho.is -> ip-api.com -> ipapi.co -> ipinfo.io in order so a rate-limited/broken provider falls through to the next; ipinfo (most quota-bound) is last. Normalize each payload to {ip,country,region,city,org}, keep 15s timeout per endpoint, and support GEO_PROBE_URL to replace the chain with a single custom endpoint. --- open-sse/services/poolGeo.js | 126 ++++++++++++++++++++++++----------- 1 file changed, 86 insertions(+), 40 deletions(-) diff --git a/open-sse/services/poolGeo.js b/open-sse/services/poolGeo.js index 862a013f..4a43b316 100644 --- a/open-sse/services/poolGeo.js +++ b/open-sse/services/poolGeo.js @@ -2,14 +2,13 @@ // Proxy Pools egress column) and any provider region policy that wants to // pre-mark pools unfit by egress region. // -// The probe transport is provider-agnostic: it fetches ipinfo.io THROUGH the -// pool itself (relay headers for vercel/cloudflare/deno, proxy URL for -// socks/http), so it works for every pool type and every provider. - -// The probe transport is provider-agnostic: it fetches ipinfo.io THROUGH the -// pool itself (relay headers for vercel/cloudflare/deno, proxy URL for +// The probe transport is provider-agnostic: it fetches a geo service THROUGH +// the pool itself (relay headers for vercel/cloudflare/deno, proxy URL for // socks/http), so it works for every pool type and every provider. // +// A chain of free endpoints is tried in order so a rate-limited or broken +// provider drops to the next; ipinfo (the most quota-bound) is last. +// // State lives on globalThis (same reason as proxyPoolFitness): the background // probe and the /api/proxy-pools reader must share ONE cache across Next dev // bundles. @@ -82,49 +81,96 @@ export function pruneStaleGeo(now = Date.now()) { return removed; } -// Probe the egress geo of one pool via ipinfo through the pool. Fail-open: +// Normalize a single provider's geo payload to { ip, country, region, city, org }. +const GEO_PARSE = { + "ipwho.is": (d) => ({ ip: d?.ip, country: d?.country, region: d?.region, city: d?.city, org: d?.org || d?.connection?.org }), + "ip-api": (d) => ({ ip: d?.query, country: d?.country, region: d?.regionName, city: d?.city, org: d?.org }), + "ipapi.co": (d) => ({ ip: d?.ip, country: d?.country_name, region: d?.region, city: d?.city, org: d?.org }), + ipinfo: (d) => ({ ip: d?.ip, country: d?.country, region: d?.region, city: d?.city, org: d?.org }), +}; + +// Tried in order — rate-friendly first, quota-bound ipinfo last. +const GEO_PROBES = [ + { name: "ipwho.is", url: "https://ipwho.is/" }, + { name: "ip-api", url: "https://ip-api.com/json/?fields=status,message,query,country,regionName,city,org" }, + { name: "ipapi.co", url: "https://ipapi.co/json/" }, + { name: "ipinfo", url: "https://ipinfo.io/json" }, +]; + +// Custom single endpoint via env (replaces the chain). Keys mapped generically. +function customGeoParse(d) { + if (!d || typeof d !== "object") return null; + const pick = (...keys) => keys.map((k) => d[k]).find((v) => v != null && v !== ""); + return { + ip: pick("query", "ip"), + country: pick("country", "country_name", "countryName"), + region: pick("regionName", "region", "state", "regionCode"), + city: pick("city"), + org: pick("org", "organization", "isp", "orgName", "connection", "asn"), + }; +} + +function probeSource({ proxyAwareFetch, url, proxyOptions, timeoutMs, name }) { + const ctrl = new AbortController(); + const timer = setTimeout(() => ctrl.abort(new Error("geo probe timeout")), timeoutMs); + return (async () => { + try { + const res = await proxyAwareFetch(url, { signal: ctrl.signal }, proxyOptions); + if (!res.ok) { + const txt = await res.text().catch(() => ""); + const error = res.status === 429 || res.status === 403 ? "rate-limit" + : res.status >= 500 ? "server" + : "network"; + return { ok: false, error, detail: `${res.status} ${txt.slice(0, 80)}` }; + } + const data = await res.json().catch(() => null); + const parsed = name ? GEO_PARSE[name]?.(data) : customGeoParse(data); + if (!parsed?.ip) return { ok: false, error: "no-ip", detail: `${name || "custom"}` }; + return { + ok: true, + geo: { + ip: String(parsed.ip || "").trim(), + country: String(parsed.country || "").trim(), + region: String(parsed.region || "").trim(), + city: String(parsed.city || "").trim(), + org: String(parsed.org || "").trim(), + isDatacenter: /(cloudflare|vercel|amazon|aws|google|microsoft|azure|digitalocean|hetzner|ovh|contabo|leaseweb)/i.test( + String(parsed.org || ""), + ), + }, + }; + } catch (error) { + const timedOut = ctrl.signal?.aborted && error?.name === "AbortError"; + return { ok: false, error: timedOut ? "timeout" : "network", detail: `${error?.name}: ${error?.message}` }; + } finally { + clearTimeout(timer); + } + })(); +} + +// Probe the egress geo of one pool through a chain of geo providers. Fail-open: // returns { ok:true, geo } on success, { ok:false, error } otherwise with // `error` one of "rate-limit" | "server" | "no-ip" | "network" | "timeout". -// `pool` shape: { proxyUrl, type }. +// `pool` shape: { proxyUrl, type }. 15s timeout per endpoint by default. export async function probePoolGeo(pool, timeoutMs = 15000) { const proxyUrl = pool?.proxyUrl; - if (!proxyUrl) return { ok: false, error: "network" }; + if (!proxyUrl) return { ok: false, error: "network", detail: "no proxy url" }; const { proxyAwareFetch } = await import("../utils/proxyFetch.js"); const isRelay = ["vercel", "cloudflare", "deno"].includes(pool?.type); const proxyOptions = isRelay ? { vercelRelayUrl: proxyUrl } : { connectionProxyEnabled: true, connectionProxyUrl: proxyUrl }; - const ctrl = new AbortController(); - const timer = setTimeout(() => ctrl.abort(new Error("geo probe timeout")), timeoutMs); - try { - const res = await proxyAwareFetch("https://ipinfo.io/json", { signal: ctrl.signal }, proxyOptions); - if (!res.ok) { - const txt = await res.text().catch(() => ""); - const error = res.status === 429 || res.status === 403 ? "rate-limit" - : res.status >= 500 ? "server" - : "network"; - return { ok: false, error, detail: `${res.status} ${txt.slice(0, 60)}` }; - } - const data = await res.json().catch(() => null); - if (!data?.ip) { - return { ok: false, error: "no-ip" }; - } - return { - ok: true, - geo: { - ip: data.ip || "", - country: data.country || "", - region: data.region || "", - city: data.city || "", - org: data.org || "", - isDatacenter: /(cloudflare|vercel|amazon|aws|google|microsoft|azure|digitalocean|hetzner|ovh|contabo|leaseweb)/i.test(String(data.org || "")), - }, - }; - } catch (error) { - const timedOut = ctrl.signal?.aborted && error?.name === "AbortError"; - return { ok: false, error: timedOut ? "timeout" : "network", detail: `${error?.name}: ${error?.message}` }; - } finally { - clearTimeout(timer); + const custom = process.env.GEO_PROBE_URL ? [{ name: null, url: process.env.GEO_PROBE_URL }] : []; + const probes = custom.length ? custom : GEO_PROBES; + + let last = { ok: false, error: "network", detail: "no provider responded" }; + for (const p of probes) { + const res = await probeSource({ proxyAwareFetch, url: p.url, proxyOptions, timeoutMs, name: p.name }); + if (res.ok) return res; + // Prefer the most specific failure: rate-limit/server over generic network. + if (res.error === "rate-limit" || res.error === "server") last = res; + else if (last.error === "network") last = res; } + return last; } From 37d03aa0d5482bd0a4ef34fbefb4b5b6abd2e4be Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Fri, 7 Aug 2026 08:01:55 +0800 Subject: [PATCH 17/42] feat(proxy-fitness): on/off toggle for egress geo probe MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Header toggle in Proxy Fitness persists settings.poolGeoProbeEnabled (default on); the probe scheduler reads it each pass and skips when off. The env POOL_GEO_PROBE_DISABLED remains a hard override. Smart rotation is unaffected — it runs off the fitness registry from real request failures. --- .../dashboard/proxy-fitness/page.js | 42 ++++++++++++++++++- src/lib/network/poolEgressProbe.js | 8 ++++ 2 files changed, 49 insertions(+), 1 deletion(-) diff --git a/src/app/(dashboard)/dashboard/proxy-fitness/page.js b/src/app/(dashboard)/dashboard/proxy-fitness/page.js index 5d886489..36a71044 100644 --- a/src/app/(dashboard)/dashboard/proxy-fitness/page.js +++ b/src/app/(dashboard)/dashboard/proxy-fitness/page.js @@ -1,7 +1,7 @@ "use client"; import { useCallback, useEffect, useMemo, useRef, useState } from "react"; -import { Badge, Button, Card, CardSkeleton, Input, ConfirmModal } from "@/shared/components"; +import { Badge, Button, Card, CardSkeleton, Input, ConfirmModal, Toggle } from "@/shared/components"; import ProviderIcon from "@/shared/components/ProviderIcon"; import { useNotificationStore } from "@/store/notificationStore"; @@ -69,6 +69,8 @@ export default function ProxyFitnessPage() { const [clearingScope, setClearingScope] = useState(null); // poolId::scope while clearing const [confirmClearAll, setConfirmClearAll] = useState(false); const [clearingAll, setClearingAll] = useState(false); + const [geoEnabled, setGeoEnabled] = useState(true); + const [geoUpdating, setGeoUpdating] = useState(false); const providerMenuRef = useRef(null); const notify = useNotificationStore(); @@ -109,6 +111,36 @@ export default function ProxyFitnessPage() { fetchAll(); }, [fetchAll]); + useEffect(() => { + fetch("/api/settings", { cache: "no-store" }) + .then((r) => (r.ok ? r.json() : {})) + .then((s) => { + if (typeof s.poolGeoProbeEnabled === "boolean") setGeoEnabled(s.poolGeoProbeEnabled); + }) + .catch(() => {}); + }, []); + + const handleGeoToggle = async (next) => { + setGeoUpdating(true); + setGeoEnabled(next); + try { + const res = await fetch("/api/settings", { + method: "PATCH", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ poolGeoProbeEnabled: next }), + }); + if (!res.ok) { + setGeoEnabled(!next); + throw new Error(`HTTP ${res.status}`); + } + notify.success(next ? "Geo probe enabled" : "Geo probe disabled"); + } catch (err) { + notify.error(`Update failed: ${err.message}`); + } finally { + setGeoUpdating(false); + } + }; + const records = useMemo(() => buildRecords(fitness, pools), [fitness, pools]); // Providers present in the fitness data (filter options) @@ -215,6 +247,14 @@ export default function ProxyFitnessPage() { Clear All{providerFilter !== "all" ? ` (${providerFilter})` : ""} )} +
diff --git a/src/lib/network/poolEgressProbe.js b/src/lib/network/poolEgressProbe.js index 43a84eb6..61b1e4b7 100644 --- a/src/lib/network/poolEgressProbe.js +++ b/src/lib/network/poolEgressProbe.js @@ -10,6 +10,7 @@ import { getProxyPools } from "@/models"; import { probePoolGeo, setPoolGeo, getPoolGeo } from "open-sse/services/poolGeo.js"; import { isNonServerRuntime } from "@/sse/services/backgroundTokenRefresh.js"; +import { getSettings } from "@/lib/localDb"; const PROBE_INTERVAL_MS = 30 * 60 * 1000; const INITIAL_DELAY_MS = 15 * 1000; @@ -44,6 +45,13 @@ async function probeAll() { if (probing) return; probing = true; try { + // UI toggle (settings.poolGeoProbeEnabled) gates the whole feature; the + // env var remains a hard override for headless setups. + try { + const settings = await getSettings(); + if (settings?.poolGeoProbeEnabled === false) return; + } catch { /* DB hiccup — keep probing (fail-open) */ } + const pools = await getProxyPools({ isActive: true }); const now = Date.now(); const active = (pools || []).filter((p) => !!p?.proxyUrl); From 1f4813c786d90d96c02d6ad86a6105c567fff1b4 Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Fri, 7 Aug 2026 08:11:44 +0800 Subject: [PATCH 18/42] feat(profile): Check Size Memory button + English geo-probe hint New /api/system/memory reports db + data-dir sizes and in-memory state (fitness/geo registries, freebuff session/cooldown counts); profile page 'Local Mode' card gets a Check Size Memory button rendering the summary. Geo-probe toggle hint localized to English. --- open-sse/executors/freebuff.js | 10 +++ src/app/(dashboard)/dashboard/profile/page.js | 43 +++++++++++++ .../dashboard/proxy-fitness/page.js | 2 +- src/app/api/system/memory/route.js | 62 +++++++++++++++++++ 4 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 src/app/api/system/memory/route.js diff --git a/open-sse/executors/freebuff.js b/open-sse/executors/freebuff.js index 891a44a0..8bbf8d7b 100644 --- a/open-sse/executors/freebuff.js +++ b/open-sse/executors/freebuff.js @@ -369,6 +369,16 @@ export function resetSessionCache() { inflight.clear(); } +// Snapshot sizes of in-memory freebuff state (for the dashboard memory panel). +export function sessionStateSize() { + return { + sessions: sessionCache.size, + inflight: inflight.size, + modelLocks: modelLockCooldowns.size, + poolLimits: poolLimitCooldowns.size, + }; +} + // Periodic sweeper: drop stale session rows + expired cooldowns so long-running // servers never accumulate state for accounts/models no longer in use. // Returns how many entries were removed. diff --git a/src/app/(dashboard)/dashboard/profile/page.js b/src/app/(dashboard)/dashboard/profile/page.js index 4df8cbef..b28d547e 100644 --- a/src/app/(dashboard)/dashboard/profile/page.js +++ b/src/app/(dashboard)/dashboard/profile/page.js @@ -10,6 +10,16 @@ import { APP_CONFIG } from "@/shared/constants/config"; import { LOCALE_COOKIE, normalizeLocale } from "@/i18n/config"; import { LOCALE_FLAGS } from "@/shared/constants/locales"; +function memoryLine(m) { + if (!m) return ""; + const fb = m.inMemory?.freebuff || {}; + return [ + `DB: ${m.dbPath || "-"} (${m.dbSizeMB || "-"})`, + `Data dir: ${m.dataDirSizeMB || "-"}`, + `In-memory: fitness=${m.inMemory?.fitnessPools ?? 0} pool(s) · geo=${m.inMemory?.geoPools ?? 0} pool(s) · freebuff sessions=${fb.sessions ?? 0}, locks=${fb.modelLocks ?? 0}, pool-limits=${fb.poolLimits ?? 0}`, + ].join("\n"); +} + function getLocaleFromCookie() { if (typeof document === "undefined") return "en"; const cookie = document.cookie @@ -49,6 +59,8 @@ export default function ProfilePage() { const [oidcRedirectUri, setOidcRedirectUri] = useState("/api/auth/oidc/callback"); const [oidcExpanded, setOidcExpanded] = useState(false); const importFileRef = useRef(null); + const [memoryInfo, setMemoryInfo] = useState(null); + const [memoryLoading, setMemoryLoading] = useState(false); const [proxyForm, setProxyForm] = useState({ outboundProxyEnabled: false, outboundProxyUrl: "", @@ -563,6 +575,19 @@ export default function ProfilePage() { setShutdownOpen(false); }; + const handleMemoryCheck = async () => { + setMemoryLoading(true); + try { + const res = await fetch("/api/system/memory", { cache: "no-store" }); + if (!res.ok) throw new Error(`HTTP ${res.status}`); + setMemoryInfo(await res.json()); + } catch (err) { + setMemoryInfo({ error: err.message }); + } finally { + setMemoryLoading(false); + } + }; + const handleLogout = async () => { try { const res = await fetch("/api/auth/logout", { method: "POST" }); @@ -649,6 +674,24 @@ export default function ProfilePage() { {dbStatus.message}

)} +
+ + {memoryInfo && ( +
+                  {memoryInfo.error
+                    ? `Error: ${memoryInfo.error}`
+                    : memoryLine(memoryInfo)}
+                
+ )} +
diff --git a/src/app/(dashboard)/dashboard/proxy-fitness/page.js b/src/app/(dashboard)/dashboard/proxy-fitness/page.js index 36a71044..cfe4a6e8 100644 --- a/src/app/(dashboard)/dashboard/proxy-fitness/page.js +++ b/src/app/(dashboard)/dashboard/proxy-fitness/page.js @@ -253,7 +253,7 @@ export default function ProxyFitnessPage() { onChange={handleGeoToggle} disabled={geoUpdating} label="Geo probe" - description="Probe egress IP/country per pool ±30 min (pemakaian kuota geo-API)" + description="Probe egress IP/country per pool every ~30 min (uses geo-API quota)" /> diff --git a/src/app/api/system/memory/route.js b/src/app/api/system/memory/route.js new file mode 100644 index 00000000..41101d7c --- /dev/null +++ b/src/app/api/system/memory/route.js @@ -0,0 +1,62 @@ +import { NextResponse } from "next/server"; +import fs from "node:fs"; +import path from "node:path"; +import { getDataDir } from "@/lib/dataDir"; +import { DATA_DIR, DATA_FILE } from "@/lib/db/paths"; +import { poolFitnessSnapshot } from "open-sse/services/proxyPoolFitness.js"; +import { poolGeoSnapshot } from "open-sse/services/poolGeo.js"; + +function formatMB(bytes) { + return `${(bytes / (1024 * 1024)).toFixed(2)} MB`; +} + +function dirSizeMB(dir, maxDepth = 4) { + let total = 0; + const walk = (p, depth) => { + if (depth > maxDepth) return; + let entries = []; + try { + entries = fs.readdirSync(p, { withFileTypes: true }); + } catch { + return; + } + for (const e of entries) { + const full = path.join(p, e.name); + try { + if (e.isDirectory()) walk(full, depth + 1); + else if (e.isFile()) total += fs.statSync(full).size; + } catch { /* skip */ } + } + }; + walk(dir, 0); + return total; +} + +// GET /api/system/memory — data + in-memory state sizes. +export async function GET() { + try { + const dataDir = getDataDir(); + const dbPath = DATA_FILE; + let dbFile = 0; + try { dbFile = fs.statSync(dbPath).size; } catch { dbFile = 0; } + + const fitness = poolFitnessSnapshot(); + const geo = poolGeoSnapshot(); + const { sessionStateSize } = await import("open-sse/executors/freebuff.js"); + + return NextResponse.json({ + dataDir, + dbPath, + dbSizeMB: formatMB(dbFile), + dataDirSizeMB: formatMB(dirSizeMB(dataDir)), + inMemory: { + fitnessPools: Object.keys(fitness).length, + geoPools: Object.keys(geo).length, + freebuff: sessionStateSize(), + }, + }); + } catch (error) { + console.log("Error reading memory sizes:", error); + return NextResponse.json({ error: "Failed to read memory sizes" }, { status: 500 }); + } +} \ No newline at end of file From 3844f04cb5b3bc3400ab584a97e99b7e2d0ab123 Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Fri, 7 Aug 2026 08:20:27 +0800 Subject: [PATCH 19/42] fix(profile): move Check Size Memory button beside Import Backup --- src/app/(dashboard)/dashboard/profile/page.js | 34 +++++++++---------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/src/app/(dashboard)/dashboard/profile/page.js b/src/app/(dashboard)/dashboard/profile/page.js index b28d547e..6e1df0af 100644 --- a/src/app/(dashboard)/dashboard/profile/page.js +++ b/src/app/(dashboard)/dashboard/profile/page.js @@ -661,6 +661,15 @@ export default function ProfilePage() { > Import Backup + )} -
- - {memoryInfo && ( -
-                  {memoryInfo.error
-                    ? `Error: ${memoryInfo.error}`
-                    : memoryLine(memoryInfo)}
-                
- )} -
+ {memoryInfo && ( +
+                {memoryInfo.error
+                  ? `Error: ${memoryInfo.error}`
+                  : memoryLine(memoryInfo)}
+              
+ )} From 56f46aa433b5effb159ec3194727ae45148954a8 Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Fri, 7 Aug 2026 08:35:49 +0800 Subject: [PATCH 20/42] chore(ci): disable gitbook pages workflow for fork, add healthcheck + geo env docs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit gitbook-pages.yml deployed to upstream org's 9router.github.io which a fork cannot (no GH_PAGES_DEPLOY_KEY) — renamed to .yml.disabled. Dockerfile gains a /api/health HEALTHCHECK. .env.example documents the new pool geostrobes env knobs (POOL_GEO_PROBE_DISABLED, GEO_PROBE_URL). --- .env.example | 6 ++++++ .../{gitbook-pages.yml => gitbook-pages.yml.disabled} | 0 Dockerfile | 4 ++++ 3 files changed, 10 insertions(+) rename .github/workflows/{gitbook-pages.yml => gitbook-pages.yml.disabled} (100%) diff --git a/.env.example b/.env.example index 6ed8f81e..0e77c7a8 100644 --- a/.env.example +++ b/.env.example @@ -39,3 +39,9 @@ NEXT_PUBLIC_CLOUD_URL=https://9router.com # Currently unused by application runtime (kept as reference) # INSTANCE_NAME=9router + +# Proxy egress geo probe (Proxy Fitness "Geo probe" toggle makes this a runtime +# setting too). These env vars are the hard override / advanced knobs for the +# background scheduler that samples each pool's egress IP+country. +# POOL_GEO_PROBE_DISABLED=1 # 1 = never run the geo probe +# GEO_PROBE_URL= # optional single custom endpoint (replaces the built-in 4-endpoint chain) diff --git a/.github/workflows/gitbook-pages.yml b/.github/workflows/gitbook-pages.yml.disabled similarity index 100% rename from .github/workflows/gitbook-pages.yml rename to .github/workflows/gitbook-pages.yml.disabled diff --git a/Dockerfile b/Dockerfile index 92822918..da8eaacb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -49,5 +49,9 @@ RUN apk --no-cache upgrade && apk --no-cache add su-exec && \ EXPOSE 20128 +# Health: Next serves /api/health (dashboardGuard public path). +HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3 \ + CMD node -e "fetch('http://127.0.0.1:20128/api/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))" + ENTRYPOINT ["/entrypoint.sh"] CMD ["node", "custom-server.js"] From 7929464427a2abbfdb2c6cc972ea944b93a7adca Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Fri, 7 Aug 2026 09:32:23 +0800 Subject: [PATCH 21/42] fix: restore platform-complete package-lock for linux npm ci --- package-lock.json | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 3981b648..c4271bda 100644 --- a/package-lock.json +++ b/package-lock.json @@ -373,6 +373,30 @@ "react": ">=16.8.0" } }, + "node_modules/@emnapi/core": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", + "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.3.tgz", + "integrity": "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@emnapi/wasi-threads": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", @@ -4475,7 +4499,6 @@ "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.9", From d00205511a4baace273e3c2a2f672bb68ecb6214 Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Fri, 7 Aug 2026 12:48:39 +0800 Subject: [PATCH 22/42] feat(docs): add screenshots + beginner install guide, MIBP Edition credits --- README.md | 151 +- README.zh-CN.md | 1315 ----------------- images/9router.png | Bin 758319 -> 618835 bytes images/fusion-combo-ui.png | Bin 38539 -> 0 bytes images/proxy-fitnes.png | Bin 0 -> 313675 bytes images/smart-rotation.png | Bin 0 -> 161518 bytes src/app/(dashboard)/dashboard/profile/page.js | 8 + src/shared/components/Header.js | 19 +- src/shared/components/Sidebar.js | 11 + 9 files changed, 172 insertions(+), 1332 deletions(-) delete mode 100644 README.zh-CN.md delete mode 100644 images/fusion-combo-ui.png create mode 100644 images/proxy-fitnes.png create mode 100644 images/smart-rotation.png diff --git a/README.md b/README.md index cb7a48e7..553aa3cb 100644 --- a/README.md +++ b/README.md @@ -2,22 +2,159 @@ 9Router is a local AI routing gateway with provider fallback and token-saving features. -## Quick Start +![9Router](images/9router.png) -### Install +## New Features -#### Docker +### Proxy Fitness + +Monitor proxy health and egress location to keep routed requests reliable. + +![Proxy Fitness](images/proxy-fitnes.png) + +### Smart Rotation + +Automatically rotate proxy pools and provider connections for better availability. + +![Smart Rotation](images/smart-rotation.png) + +## Installation for Beginners + +The easiest installation method is Docker. Docker runs 9Router in a container, so you do not need to install Node.js, npm, or the application dependencies manually. + +### 1. Install Docker + +Install Docker Desktop on Windows or macOS, or install Docker Engine and Docker Compose on Linux: + +- [Docker Desktop](https://www.docker.com/products/docker-desktop/) +- [Docker Engine for Linux](https://docs.docker.com/engine/install/) + +After installation, open a terminal and check that Docker is available: + +```bash +docker --version +docker compose version +``` + +Both commands should print a version number. + +### 2. Download the project + +Clone this repository, then enter its folder: + +```bash +git clone https://github.com/mhiqrambg/9router-mibp-version.git +cd 9router-mibp-version +``` + +If Git is not installed, download the repository as a ZIP file from GitHub and open the extracted folder in a terminal. + +### 3. Create the environment file + +Create `.env` from the example file: ```bash cp .env.example .env +``` + +Open `.env` in a text editor and change at least these values: + +```env +JWT_SECRET=replace-with-a-long-random-secret +INITIAL_PASSWORD=replace-with-your-dashboard-password +API_KEY_SECRET=replace-with-another-long-random-secret +MACHINE_ID_SALT=replace-with-another-random-secret +REQUIRE_API_KEY=true +``` + +Do not share `.env` or commit it to Git. It contains the dashboard password and security secrets. On Linux or macOS, you can generate random values with: + +```bash +openssl rand -hex 32 +``` + +Use a different generated value for each secret. + +### 4. Start 9Router + +Run this command in the project folder: + +```bash docker compose up -d ``` -Dashboard: `http://localhost:20128/dashboard` +The first run downloads the 9Router and Headroom images. The `-d` option keeps them running in the background. -API endpoint: `http://localhost:20128/v1` +Check the containers: -#### From Source +```bash +docker compose ps +``` + +Both `9router` and `headroom` should have a running status. + +### 5. Open the dashboard + +Open this address in your browser: + +```text +http://localhost:20128/dashboard +``` + +Log in with the `INITIAL_PASSWORD` value from `.env`. + +### 6. Create an API key + +In the dashboard, open **Endpoint & Key** and create a key. Keep the complete key that starts with `sk-`. + +Use it when calling the API: + +```bash +curl http://localhost:20128/v1/models \ + -H "Authorization: Bearer YOUR_API_KEY" +``` + +For a server exposed through a domain, replace the URL with your domain: + +```bash +curl https://your-domain.example/v1/models \ + -H "Authorization: Bearer YOUR_API_KEY" +``` + +Remote requests without a valid API key are rejected. The API key is stored in the application database, not in `.env`. + +### Useful Docker commands + +View live logs: + +```bash +docker compose logs -f 9router +``` + +Restart the application: + +```bash +docker compose restart 9router +``` + +Stop the services without deleting data: + +```bash +docker compose down +``` + +Update to the latest image: + +```bash +docker compose pull +docker compose up -d +``` + +The Docker volume named `9router-data` keeps your settings, providers, and API keys when the container is recreated. + +### Install from source + +This option is intended for development. Install Node.js 22 or newer, then run: ```bash cp .env.example .env @@ -25,7 +162,7 @@ npm install PORT=20128 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run dev ``` -Before starting, set at least `JWT_SECRET` and `INITIAL_PASSWORD` in `.env`. +Open `http://localhost:20128/dashboard` after the development server starts. ### Update diff --git a/README.zh-CN.md b/README.zh-CN.md deleted file mode 100644 index 1b2bedd2..00000000 --- a/README.zh-CN.md +++ /dev/null @@ -1,1315 +0,0 @@ - -
- 9Router Dashboard - - # 9Router - 免费 AI 路由器与 Token 节省器 - - **编程永不停歇。使用 RTK + 自动切换到免费/低价 AI 模型,节省 20-40% 的 tokens。** - - **将所有 AI 编程工具(Claude Code、Cursor、Antigravity、Copilot、Codex、Gemini、OpenCode、Cline、OpenClaw...)连接到 40+ AI 提供商和 100+ 模型。** - - [![npm](https://img.shields.io/npm/v/9router.svg)](https://www.npmjs.com/package/9router) - [![Downloads](https://img.shields.io/npm/dm/9router.svg)](https://www.npmjs.com/package/9router) - [![License](https://img.shields.io/npm/l/9router.svg)](https://github.com/decolua/9router/blob/main/LICENSE) - - decolua%2F9router | Trendshift - - [🚀 快速开始](#-快速开始) • [💡 功能特点](#-主要功能) • [📖 设置指南](#-设置指南) • [🌐 网站](https://9router.com) - - [🇻🇳 Tiếng Việt](./i18n/README.vi.md) • [🇨🇳 中文](./i18n/README.zh-CN.md) • [🇯🇵 日本語](./i18n/README.ja-JP.md) -
- ---- - -## 🤔 为什么选择 9Router? - -**告别浪费金钱、tokens 和触碰限制的困扰:** - -- ❌ 订阅配额每月到期却未使用 -- ❌ 速率限制在编程中途打断你 -- ❌ 工具输出(git diff、grep、ls...)快速消耗 tokens -- ❌ 昂贵的 API(每个提供商 $20-50/月) -- ❌ 需要手动在提供商之间切换 - -**9Router 解决这一切:** - -- ✅ **RTK Token 节省器** - 自动压缩 tool_result 内容,每次请求节省 20-40% tokens -- ✅ **充分利用订阅** - 追踪配额,在重置前用尽每一分额度 -- ✅ **自动切换** - 订阅 → 低价 → 免费,零停机时间 -- ✅ **多账户支持** - 按提供商在账户之间轮询 -- ✅ **通用兼容** - 支持 Claude Code、Codex、Cursor、Cline 以及任何 CLI 工具 - ---- - -## 🔄 工作原理 - -``` -┌─────────────┐ -│ 你的 CLI │ (Claude Code、Codex、OpenClaw、Cursor、Cline...) -│ 工具 │ -└──────┬──────┘ - │ http://localhost:20128/v1 - ↓ -┌─────────────────────────────────────────────┐ -│ 9Router(智能路由器) │ -│ • RTK Token 节省器(减少 tool_result tokens)│ -│ • 格式转换(OpenAI ↔ Claude) │ -│ • 配额追踪 │ -│ • 自动刷新 token │ -└──────┬──────────────────────────────────────┘ - │ - ├─→ [第一层:订阅] Claude Code、Codex、GitHub Copilot - │ ↓ 配额耗尽 - ├─→ [第二层:低价] GLM ($0.6/1M)、MiniMax ($0.2/1M) - │ ↓ 预算超限 - └─→ [第三层:免费] Kiro、OpenCode Free、Vertex ($300 额度) - -结果:编程永不停歇,最小成本 + 通过 RTK 节省 20-40% tokens -``` - ---- - -## ⚡ 快速开始 - -**1. 全局安装:** - -```bash -npm install -g 9router -9router -``` - -🎉 控制面板在 `http://localhost:20128` 打开 - -**2. 连接免费提供商(无需注册):** - -控制面板 → 提供商 → 连接 **Kiro AI**(约 50 积分/月免费:Claude 4.5 + GLM-5 + MiniMax)或 **OpenCode Free**(无需认证)→ 完成! - -**3. 在 CLI 工具中使用:** - -``` -Claude Code/Codex/OpenClaw/Cursor/Cline 设置: - Endpoint: http://localhost:20128/v1 - API Key: [从控制面板复制] - Model: kr/claude-sonnet-4.5 -``` - -**就这么简单!** 开始使用免费 AI 模型编程。 - -**替代方案:从源码运行(本仓库):** - -本仓库的包是私有的(`9router-app`),所以源码/Docker 执行是预期的本地开发方式。 - -```bash -cp .env.example .env -npm install -PORT=20128 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run dev -``` - -生产模式: - -```bash -npm run build -PORT=20128 HOSTNAME=0.0.0.0 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run start -``` - -默认 URL: -- 控制面板:`http://localhost:20128/dashboard` -- OpenAI 兼容 API:`http://localhost:20128/v1` - ---- - -## 视频教程 - -
- - - - - - - - - - - - -
- - 9Router Setup Tutorial -
- 🇺🇸 English
- 9Router + Claude Code 免费设置
by Build AI With Hamid
-
- - Tiết kiệm chi phí LLM với 9Router -
- 🇻🇳 Tiếng Việt
- 使用 9Router 节省 OpenClaw 的 LLM 成本
by Mì AI
-
- - Claude Code FREE Forever -
- 🇺🇸 English
- Claude Code 免费永久使用 — 无限模型
by Build AI With Hamid
-
- - Claude CLI Free Setup -
- 🇺🇸 English
- 使用 9Router 免费设置 Claude CLI 🚀
by CodeVerse Soban
-
- - Cài đặt OpenClaw Free A-Z -
- 🇻🇳 Tiếng Việt
- 从零开始安装 OpenClaw 免费版 + 9Router
by Mai Gia
-
- - FREE OpenClaw with Claude Opus -
- 🇺🇸 English
- 免费 OpenClaw + Claude Opus 4.6
by Build AI With Hamid
-
- -
- -> 🎬 **制作了关于 9Router 的视频?** 提交 [Pull Request](https://github.com/decolua/9router/pulls),将你的视频添加到此部分 — 我们会合并它! - ---- - -## 🛠️ 支持的 CLI 工具 - -9Router 与所有主流 AI 编程工具无缝协作: - -
- - - - - - - - - - - - - - - - - -
- Claude Code
- Claude-Code -
- OpenClaw
- OpenClaw -
- Codex
- Codex -
- OpenCode
- OpenCode -
- Cursor
- Cursor -
- Antigravity
- Antigravity -
- Cline
- Cline -
- Continue
- Continue -
- Droid
- Droid -
- Roo
- Roo -
- Copilot
- Copilot -
- Kilo Code
- Kilo Code -
-
- ---- - -## 🌐 支持的提供商 - -### 🔐 OAuth 提供商 - -
- - - - - - - - -
- Claude Code
- Claude-Code -
- Antigravity
- Antigravity -
- Codex
- Codex -
- GitHub
- GitHub -
- Cursor
- Cursor -
-
- -### 🆓 免费提供商 - -
- - - - - - -
- Kiro
- Kiro AI
- Claude 4.5 + GLM-5 + MiniMax
每月 50 积分免费
-
- OpenCode Free
- OpenCode Free
- 无需认证 • 自动获取模型
免费(模型列表会变)
-
- Vertex AI
- Vertex AI
- Gemini 3 Pro + GLM-5 + DeepSeek
$300 免费额度
-
-
- -> **注意:** iFlow、Qwen Code 和 Gemini CLI 的免费等级已于 2026 年停止。请改用 Kiro / OpenCode Free / Vertex。 -> -> **Kiro AI** 于 2025 年 9 月转为付费模式 — 免费等级现在上限为**每月 50 积分**(新账户前 30 天另加 500 试用积分)。付费档位:Pro $20/月(1,000 积分)、Pro+ $40/月(2,000)、Pro Max $100/月(5,000)、Power $200/月(10,000)。 -> **OpenCode Free** 的模型列表会随时间变化(部分模型仅限时免费)— 可能随时变更,恕不另行通知。 -> **Vertex AI**:新 GCP 账户的 $300 免费额度仍然有效,但自 2026 年 3 月起 **Gemini API 端点不再消耗这些额度** — 请改用 **Vertex AI Studio** 端点。 - -### 🔑 API Key 提供商(40+) - -
- - - - - - - - - - - - - - - - - - - - - - - - - -
- OpenRouter
- OpenRouter -
- GLM
- GLM -
- Kimi
- Kimi -
- MiniMax
- MiniMax -
- OpenAI
- OpenAI -
- Anthropic
- Anthropic -
- Gemini
- Gemini -
- DeepSeek
- DeepSeek -
- Groq
- Groq -
- xAI
- xAI -
- Mistral
- Mistral -
- Perplexity
- Perplexity -
- Together
- Together AI -
- Fireworks
- Fireworks -
- Cerebras
- Cerebras -
- Cohere
- Cohere -
- NVIDIA
- NVIDIA -
- SiliconFlow
- SiliconFlow -
-

...以及 20+ 更多提供商,包括 Nebius、Chutes、Hyperbolic 和自定义 OpenAI/Anthropic 兼容端点

-
- ---- - -## 💡 主要功能 - -| 功能 | 作用 | 为什么重要 | -|---------|--------------|----------------| -| 🚀 **RTK Token 节省器**([RTK](https://github.com/rtk-ai/rtk) ⭐40K) | 压缩工具输出(`git diff`、`grep`、`ls`、`tree`...)后再发送给 LLM | 每次请求节省 **20-40% 输入 tokens** | -| 🪨 **Caveman 模式**([Caveman](https://github.com/JuliusBrussee/caveman) ⭐52K) | 注入 caveman 风格提示词 → LLM 回复简洁,保留技术实质 | 节省 **高达 65% 输出 tokens** | -| 🎯 **智能三层切换** | 自动路由:订阅 → 低价 → 免费 | 编程永不停歇,零停机时间 | -| 📊 **实时配额追踪** | 实时 token 计数 + 重置倒计时 | 充分利用订阅价值 | -| 🔄 **格式转换** | OpenAI ↔ Claude ↔ Gemini ↔ Cursor ↔ Kiro ↔ Vertex | 兼容任何 CLI 工具 | -| 👥 **多账户支持** | 每个提供商支持多个账户 | 负载均衡 + 冗余备份 | -| 🔄 **自动 Token 刷新** | OAuth token 自动刷新 | 无需手动重新登录 | -| 🎨 **自定义组合** | 创建无限模型组合 | 自定义适合你的切换策略 | -| 📝 **请求日志** | 调试模式下的完整请求/响应日志 | 轻松排查问题 | -| 💾 **云同步** | 跨设备同步配置 | 处处相同设置 | -| 📊 **使用分析** | 追踪 tokens、成本、趋势 | 优化开支 | -| 🌐 **任意部署** | 本地、VPS、Docker、Cloudflare Workers | 灵活部署选项 | - -
-📖 功能详情 - -### 🚀 RTK Token 节省器 - -工具输出(`git diff`、`grep`、`find`、`ls`、`tree`、日志转储...)通常占用 30-50% 的提示词预算。RTK 在请求到达 LLM 之前检测并应用智能、无损压缩: - -- **过滤器:** `git-diff`、`git-status`、`grep`、`find`、`ls`、`tree`、`dedup-log`、`smart-truncate`、`read-numbered`、`search-list` -- **自动检测:** 无需配置 — RTK 检查每个 `tool_result` 的前 1KB,选择合适的过滤器。 -- **安全设计:** 如果过滤器失败、抛出异常或使输出变大,RTK 会静默保留原始文本。错误永远不会中断你的请求。 -- **通用兼容:** 适用于所有格式(OpenAI、Claude、Gemini、Cursor、Kiro、OpenAI Responses),因为它在任何格式转换**之前**运行。 -- **默认开启:** 可随时在控制面板 → 端点设置中切换。 - -``` -不使用 RTK:47K tokens 发送给 LLM -使用 RTK: 28K tokens 发送给 LLM (节省 40% · 相同上下文 · 相同答案) -``` - -### 🎯 智能三层切换 - -创建具有自动切换功能的组合: - -``` -组合:"my-coding-stack" - 1. cc/claude-opus-4-6 (你的订阅) - 2. glm/glm-4.7 (低价备份,$0.6/1M) - 3. if/kimi-k2-thinking (免费备选) - -→ 配额用完或出错时自动切换 -``` - -### 📊 实时配额追踪 - -- 每个提供商的 token 消耗 -- 重置倒计时(5小时、每日、每周) -- 付费等级的成本估算 -- 月度支出报告 - -### 🔄 格式转换 - -格式间无缝转换: -- **OpenAI** ↔ **Claude** ↔ **Gemini** ↔ **Cursor** ↔ **Kiro** ↔ **Vertex** ↔ **Antigravity** ↔ **Ollama** ↔ **OpenAI Responses** -- 你的 CLI 工具发送 OpenAI 格式 → 9Router 转换 → 提供商接收原生格式 -- 适用于任何支持自定义 OpenAI 端点的工具 - -### 👥 多账户支持 - -- 每个提供商添加多个账户 -- 自动轮询或基于优先级的路由 -- 当一个账户达到配额时切换到下一个 - -### 🔄 自动 Token 刷新 - -- OAuth token 在过期前自动刷新 -- 无需手动重新认证 -- 所有提供商的无缝体验 - -### 🎨 自定义组合 - -- 创建无限模型组合 -- 混合订阅、低价和免费等级 -- 为组合命名以便访问 -- 使用云同步跨设备共享组合 - -### 📝 请求日志 - -- 启用调试模式获取完整请求/响应日志 -- 追踪 API 调用、请求头和载荷 -- 排查集成问题 -- 导出日志进行分析 - -### 💾 云同步 - -- 跨设备同步提供商、组合和设置 -- 自动后台同步 -- 安全加密存储 -- 从任何地方访问你的设置 - -#### 云运行时说明 - -- 生产环境中优先使用服务端云变量: - - `BASE_URL`(云同步调度程序使用的内部回调 URL) - - `CLOUD_URL`(云同步端点基础 URL) -- `NEXT_PUBLIC_BASE_URL` 和 `NEXT_PUBLIC_CLOUD_URL` 仍用于兼容性/UI,但服务端运行时现在优先使用 `BASE_URL`/`CLOUD_URL`。 -- 云同步请求现在使用超时 + 快速失败行为,以避免云 DNS/网络不可用时 UI 挂起。 - -### 📊 使用分析 - -- 追踪每个提供商和模型的 token 使用量 -- 成本估算和支出趋势 -- 月度报告和洞察 -- 优化你的 AI 支出 - -> **💡 重要 - 了解控制面板成本:** -> -> 使用分析中显示的"成本"**仅用于追踪和比较目的**。 -> 9Router 本身**永远不会向你收费**。你只直接向提供商付款(如果使用付费服务)。 -> -> **示例:** 如果你的控制面板显示使用 Kiro 免费模型时"总成本 $290",这代表你如果直接使用付费 API 需要支付的金额。你的实际成本 = **$0**(Kiro 免费等级:约 50 积分/月)。 -> -> 把它想象成一个"节省追踪器",展示你通过使用免费模型或通过 9Router 路由节省了多少钱! - -### 🌐 任意部署 - -- 💻 **本地** - 默认,离线可用 -- ☁️ **VPS/云** - 跨设备共享 -- 🐳 **Docker** - 一键部署 -- 🚀 **Cloudflare Workers** - 全球边缘网络 - -
- ---- - -## 💰 价格一览 - -| 等级 | 提供商 | 成本 | 配额重置 | 适用场景 | -|------|----------|------|-------------|----------| -| **🚀 TOKEN 节省器** | **RTK(内置)** | **免费** | 始终开启 | **每次请求节省 20-40% tokens** | -| **💳 订阅** | Claude Code (Pro/Max) | $20-200/月 | 5小时 + 每周 | 已有订阅的用户 | -| | Codex (Plus/Pro) | $20-200/月 | 5小时 + 每周 | OpenAI 用户 | -| | GitHub Copilot | $10-19/月 | 每月 | GitHub 用户 | -| | Cursor IDE | $20/月 | 每月 | Cursor 用户 | -| **💰 低价** | GLM-5.1 / GLM-4.7 | $0.6/1M | 每日 10AM | 预算备份 | -| | MiniMax M2.7 | $0.2/1M | 5小时滚动 | 最便宜选项 | -| | Kimi K2.5 | $9/月固定 | 10M tokens/月 | 可预测成本 | - | **🆓 免费** | Kiro AI | $0 | 50 积分/月 | Claude 4.5 + GLM-5 + MiniMax 免费(之上为付费档位) | - | | OpenCode Free | $0 | varies* | 无需认证,自动获取模型(列表会变化) | - | | Vertex AI | $300 额度 | 新 GCP 账户 | Gemini 3 Pro + DeepSeek + GLM-5(使用 Vertex AI Studio 端点消耗免费额度) | - -**💡 专业提示:** RTK + Kiro AI + OpenCode Free 组合 = **$0 成本 + 节省 20-40% tokens**! - ---- - -### 📊 理解 9Router 成本与计费 - -**9Router 计费真相:** - -✅ **9Router 软件 = 永久免费**(开源,绝不收费) -✅ **控制面板"成本" = 仅用于显示/追踪**(不是实际账单) -✅ **你直接向提供商付款**(订阅或 API 费用) -✅ **免费提供商保持免费**(Kiro 约 50 积分/月、OpenCode Free、Vertex $300 额度 = 在免费额度内 $0)— 注意 iFlow/Qwen/Gemini CLI 免费等级已于 2026 年停止 -❌ **9Router 永不发送发票** 或扣款 - -**成本显示如何工作:** - -控制面板显示**估算成本**,如同你直接使用付费 API。这**不是计费** — 它是一个比较工具,展示你的节省。 - -**示例场景:** -``` -控制面板显示: -• 总请求数:1,662 -• 总 Tokens:47M -• 显示成本:$290 - -实际检查: -• 提供商:Kiro(免费等级:约 50 积分/月) -• 实际支付:$0.00 -• $290 意味着什么:通过使用免费模型节省的金额! -``` - -**付款规则:** -- **订阅提供商**(Claude Code、Codex):通过他们的网站直接付款 -- **低价提供商**(GLM、MiniMax):直接付款,9Router 只做路由 -- **免费提供商**(Kiro、OpenCode Free、Vertex):真正的免费,在免费额度内无隐藏费用 -- **9Router**:从不收取任何费用,永远不会 - ---- - -## 🎯 使用场景 - -### 场景 1:"我有 Claude Pro 订阅" - -**问题:** 配额到期未用完,繁忙编码时遇到速率限制 - -**解决方案:** -``` -组合:"maximize-claude" - 1. cc/claude-opus-4-7 (充分利用订阅) - 2. glm/glm-5.1 (配额用完时的低价备份) - 3. kr/claude-sonnet-4.5 (免费紧急备选) - -月成本:$20(订阅)+ ~$5(备份)= $25 总计 -对比:$20 + 遇到限制 = 沮丧 -``` - -### 场景 2:"我想零成本" - -**问题:** 负担不起订阅,需要可靠的 AI 编码 - -**解决方案:** -``` -组合:"free-forever" - 1. kr/claude-sonnet-4.5 (通过 Kiro 免费使用 Claude 4.5,约 50 积分/月) - 2. kr/glm-5 (通过 Kiro 免费使用 GLM-5) - 3. oc/ (OpenCode Free,无需认证) - -月成本:$0 -质量:生产级模型 + RTK 节省 20-40% tokens -``` - -### 场景 3:"我需要 24/7 编码,不中断" - -**问题:** 截止日期紧迫,不能承受停机 - -**解决方案:** -``` -组合:"always-on" - 1. cc/claude-opus-4-7 (最佳质量) - 2. cx/gpt-5.5 (第二个订阅) - 3. glm/glm-5.1 (低价,每日重置) - 4. minimax/MiniMax-M2.7 (最便宜,5小时重置) - 5. kr/claude-sonnet-4.5 (通过 Kiro 免费使用,约 50 积分/月) - -结果:5 层切换 = 零停机时间 -月成本:$20-200(订阅)+ $10-20(备份) -``` - -### 场景 4:"我想在 OpenClaw 中使用免费 AI" - -**问题:** 需要在消息应用(WhatsApp、Telegram、Slack...)中使用 AI 助手,完全免费 - -**解决方案:** -``` -组合:"openclaw-free" - 1. kr/claude-sonnet-4.5 (Claude 4.5 免费) - 2. kr/glm-5 (GLM-5 免费) - 3. kr/MiniMax-M2.5 (MiniMax 免费) - -月成本:$0 -访问方式:WhatsApp、Telegram、Slack、Discord、iMessage、Signal... -``` - ---- - -## ❓ 常见问题 - -
-📊 为什么我的控制面板显示高成本? - -控制面板追踪你的 token 使用情况,并显示**估算成本**,如同你直接使用付费 API。这**不是实际计费** — 它是一个参考,展示你通过使用免费模型或通过 9Router 路由现有订阅节省了多少钱。 - -**示例:** -- **控制面板显示:** "$290 总成本" -- **实际情况:** 你在使用 Kiro 免费模型(约 50 积分/月) -- **你的实际成本:** **$0.00** -- **$290 的含义:** 你通过使用免费模型而不是付费 API **节省**的金额! - -成本显示是一个"节省追踪器",帮助你了解使用模式和优化机会。 - -
- -
-💳 9Router 会扣我的钱吗? - -**不会。** 9Router 是在你自己的电脑上运行的开源软件。它永远不会向你收取任何费用。 - -**你只需支付:** -- ✅ **订阅提供商**(Claude Code $20/月、Codex $20-200/月)→ 在他们的网站上直接付款 -- ✅ **低价提供商**(GLM、MiniMax)→ 直接付款,9Router 只是路由你的请求 -- ❌ **9Router 本身** → **永不收费,永远不会** - -9Router 是一个本地代理/路由器。它没有你的信用卡,不能发送发票,也没有计费系统。它是完全免费的软件。 - -
- -
-🆓 免费提供商真的是无限量的吗? - -**基本上是!** 当前的免费提供商(Kiro、OpenCode Free、Vertex)是真正的免费,但免费等级有上限: - -这些是各公司提供的免费服务: -- **Kiro AI**:通过 AWS Builder ID / Google / GitHub OAuth 使用,免费等级约**每月 50 积分**(新账户前 30 天另加 500 试用积分)。之上提供付费档位。 -- **OpenCode Free**:无认证直连代理,模型从 `opencode.ai/zen/v1/models` 自动获取。免费模型列表会随时间变化(部分模型仅限时免费)— 可能随时变更。 -- **Vertex AI**:新 Google Cloud 账户可获得 $300 免费额度(90 天)。自 2026 年 3 月起 Gemini API 端点不再消耗这些额度 — 请改用 **Vertex AI Studio** 端点。 - -9Router 只是路由你的请求到它们 — 没有"陷阱"或未来的计费。它们是真正的免费服务,9Router 让它们易于使用并支持切换。 - -**已停止的免费等级(不再推荐):** -- ❌ **iFlow**:曾是免费无限量,现在改为付费(2026) -- ❌ **Qwen Code**:阿里巴巴于 2026-04-15 完全停止免费 OAuth 等级 -- ❌ **Gemini CLI**:Google 已于 2026-06-18 完全停止服务(由闭源的 Antigravity CLI 取代)。已停止 — 请勿使用。 - -
- -
-💰 如何最小化我的实际 AI 成本? - -**免费优先策略:** - -1. **从 100% 免费组合开始:** - ``` - 1. kr/glm-5 (通过 Kiro 免费使用 GLM-5,约 50 积分/月) - 2. OpenCode Free 模型(无认证,自动获取) - 3. Vertex AI Gemini 3 Pro(使用 Vertex AI Studio 端点 + $300 额度) - ``` - **成本:$0/月**(在 Kiro 免费积分上限内;OpenCode/Vertex 受各自免费等级限制) - -2. **仅在需要时添加低价备份:** - ``` - 4. glm/glm-4.7 ($0.6/1M tokens) - ``` - **额外成本:只为实际使用的部分付费** - -3. **最后使用订阅提供商:** - - 仅当你已有订阅时 - - 9Router 通过配额追踪帮助最大化其价值 - -**结果:** 大多数用户可以仅使用免费等级以 $0/月运行! - -
- -
-📈 如果我的使用量突然激增怎么办? - -9Router 的智能切换可以防止意外费用: - -**场景:** 你正在进行编码冲刺,用尽了配额 - -**没有 9Router:** -- ❌ 达到速率限制 → 工作停止 → 沮丧 -- ❌ 或者:不慎累积大量 API 账单 - -**有 9Router:** -- ✅ 订阅达到限制 → 自动切换到低价等级 -- ✅ 低价等级变得昂贵 → 自动切换到免费等级 -- ✅ 编程永不停歇 → 可预测的成本 - -**你掌控一切:** 在控制面板中设置每个提供商的支出限制,9Router 会遵守它们。 - -
- ---- - -## 📖 设置指南 - -
-🔐 订阅提供商(充分利用价值) - -### Claude Code (Pro/Max) - -```bash -控制面板 → 提供商 → 连接 Claude Code -→ OAuth 登录 → 自动 token 刷新 -→ 5小时 + 每周配额追踪 - -模型: - cc/claude-opus-4-7 - cc/claude-opus-4-6 - cc/claude-sonnet-4-6 - cc/claude-haiku-4-5-20251001 -``` - -**专业提示:** 复杂任务使用 Opus,追求速度使用 Sonnet。9Router 按模型追踪配额! - -### OpenAI Codex (Plus/Pro) - -```bash -控制面板 → 提供商 → 连接 Codex -→ OAuth 登录(端口 1455) -→ 5小时 + 每周重置 - -模型: - cx/gpt-5.5 - cx/gpt-5.4 - cx/gpt-5.3-codex - cx/gpt-5.2-codex -``` - -### GitHub Copilot - -```bash -控制面板 → 提供商 → 连接 GitHub -→ 通过 GitHub 进行 OAuth -→ 每月重置(每月 1 日) - -模型: - gh/gpt-5.4 - gh/claude-opus-4.7 - gh/claude-sonnet-4.6 - gh/gemini-3.1-pro-preview - gh/grok-code-fast-1 -``` - -### Cursor IDE - -```bash -控制面板 → 提供商 → 连接 Cursor -→ OAuth 登录 -→ 每月订阅 - -模型: - cu/claude-4.6-opus-max - cu/claude-4.5-sonnet-thinking - cu/gpt-5.3-codex -``` - -
- -
-💰 低价提供商(备份) - -### GLM-5.1 / GLM-4.7(每日重置,$0.6/1M) - -1. 注册:[Zhipu AI](https://open.bigmodel.cn/) -2. 从编程计划获取 API key -3. 控制面板 → 添加 API Key: - - 提供商:`glm` - - API Key:`your-key` - -**使用:** `glm/glm-5.1`、`glm/glm-5`、`glm/glm-4.7` - -**专业提示:** 编程计划提供 3 倍配额,成本仅为 1/7!每日 10:00 AM 重置。 - -### MiniMax M2.7(5小时重置,$0.20/1M) - -1. 注册:[MiniMax](https://www.minimax.io/) -2. 获取 API key -3. 控制面板 → 添加 API Key - -**使用:** `minimax/MiniMax-M2.7`、`minimax/MiniMax-M2.5` - -**专业提示:** 长上下文(1M tokens)的最便宜选项! - -### Kimi K2.5($9/月固定) - -1. 订阅:[Moonshot AI](https://platform.moonshot.ai/) -2. 获取 API key -3. 控制面板 → 添加 API Key - -**使用:** `kimi/kimi-k2.5`、`kimi/kimi-k2.5-thinking` - -**专业提示:** 每月 $9 固定费用获得 10M tokens = 实际成本 $0.90/1M! - -
- -
-🆓 免费提供商(推荐) - -### Kiro AI(Claude 4.5 + GLM-5 + MiniMax 免费) - -```bash -控制面板 → 连接 Kiro -→ AWS Builder ID、AWS IAM Identity Center、Google 或 GitHub -→ 无限量使用 - -模型: - kr/claude-sonnet-4.5 - kr/claude-haiku-4.5 - kr/glm-5 - kr/MiniMax-M2.5 - kr/qwen3-coder-next - kr/deepseek-3.2 -``` - -**专业提示:** Claude 最佳免费选项。无需 API key,无需付款,完全无限量。 - -### OpenCode Free(无需认证,自动获取模型) - -```bash -控制面板 → 连接 OpenCode Free -→ 无需登录(直连代理) -→ 模型从 opencode.ai/zen/v1/models 自动获取 -``` - -**专业提示:** 最快的设置。连接后即可开始编码。 - -### Vertex AI(新 GCP 账户 $300 免费额度) - -```bash -控制面板 → 连接 Vertex AI -→ 上传 Google Cloud 服务账户 JSON -→ 在你的 GCP 项目中启用 Vertex AI API - -模型: - vertex/gemini-3.1-pro-preview - vertex/gemini-3-flash-preview - vertex/gemini-2.5-flash - -Vertex 合作伙伴(通过 Vertex 提供 Anthropic / DeepSeek / GLM / Qwen): - vertex-partner/glm-5-maas - vertex-partner/deepseek-v3.2-maas - vertex-partner/qwen3-next-80b-a3b-thinking-maas -``` - -**专业提示:** 新 Google Cloud 账户可获得 90 天内 $300 免费额度。足够日常编码使用。 - -
- -
-🎨 创建组合 - -### 示例 1:充分利用订阅 → 低价备份 - -``` -控制面板 → 组合 → 创建新组合 - -名称:premium-coding -模型: - 1. cc/claude-opus-4-7 (订阅主用) - 2. glm/glm-5.1 (低价备份,$0.6/1M) - 3. minimax/MiniMax-M2.7 (最便宜的备选,$0.20/1M) - -在 CLI 中使用:premium-coding - -月度成本示例(100M tokens): - 80M 通过 Claude(订阅):$0 额外费用 - 15M 通过 GLM:$9 - 5M 通过 MiniMax:$1 - 总计:$10 + 你的订阅费用 -``` - -### 示例 2:仅免费(零成本) - -``` -名称:free-combo -模型: - 1. kr/claude-sonnet-4.5 (通过 Kiro 免费使用 Claude 4.5,约 50 积分/月) - 2. kr/glm-5 (通过 Kiro 免费使用 GLM-5) - 3. vertex/gemini-3.1-pro-preview ($300 免费额度) - -成本:通过 RTK 永久 $0(+ 节省 20-40% tokens)! -``` - -
- -
-🔧 CLI 集成 - -### Cursor IDE - -``` -设置 → 模型 → 高级: - OpenAI API Base URL:http://localhost:20128/v1 - OpenAI API Key:[来自 9router 控制面板] - Model:cc/claude-opus-4-7 -``` - -或使用组合:`premium-coding` - -### Claude Code - -编辑 `~/.claude/config.json`: - -```json -{ - "anthropic_api_base": "http://localhost:20128/v1", - "anthropic_api_key": "your-9router-api-key" -} -``` - -### Codex CLI - -```bash -export OPENAI_BASE_URL="http://localhost:20128" -export OPENAI_API_KEY="your-9router-api-key" - -codex "your prompt" -``` - -### OpenClaw - -**选项 1 — 控制面板(推荐):** - -``` -控制面板 → CLI 工具 → OpenClaw → 选择模型 → 应用 -``` - -**选项 2 — 手动:** 编辑 `~/.openclaw/openclaw.json`: - -```json -{ - "agents": { - "defaults": { - "model": { - "primary": "9router/kr/claude-sonnet-4.5" - } - } - }, - "models": { - "providers": { - "9router": { - "baseUrl": "http://127.0.0.1:20128/v1", - "apiKey": "sk_9router", - "api": "openai-completions", - "models": [ - { - "id": "kr/claude-sonnet-4.5", - "name": "Claude Sonnet 4.5 (Kiro Free)" - } - ] - } - } - } -} -``` - -> **注意:** OpenClaw 仅适用于本地 9Router。使用 `127.0.0.1` 而不是 `localhost` 以避免 IPv6 解析问题。 - -### Cline / Continue / RooCode - -``` -Provider:OpenAI 兼容 -Base URL:http://localhost:20128/v1 -API Key:[来自控制面板] -Model:cc/claude-opus-4-7 -``` - -
- -
-🚀 部署 - -### VPS 部署 - -```bash -# 克隆并安装 -git clone https://github.com/decolua/9router.git -cd 9router -npm install -npm run build - -# 配置 -export JWT_SECRET="your-secure-secret-change-this" -export INITIAL_PASSWORD="your-password" -export DATA_DIR="/var/lib/9router" -export PORT="20128" -export HOSTNAME="0.0.0.0" -export NODE_ENV="production" -export NEXT_PUBLIC_BASE_URL="http://localhost:20128" -export NEXT_PUBLIC_CLOUD_URL="https://9router.com" -export API_KEY_SECRET="endpoint-proxy-api-key-secret" -export MACHINE_ID_SALT="endpoint-proxy-salt" - -# 启动 -npm run start - -# 或使用 PM2 -npm install -g pm2 -pm2 start npm --name 9router -- start -pm2 save -pm2 startup -``` - -### Docker - -```bash -# 构建镜像(从仓库根目录) -docker build -t 9router . - -# 运行容器(当前设置使用的命令) -docker run -d \ - --name 9router \ - -p 20128:20128 \ - --env-file /root/dev/9router/.env \ - -v 9router-data:/app/data \ - -v 9router-usage:/root/.9router \ - 9router -``` - -便携命令(如果你已经在仓库根目录): - -```bash -docker run -d \ - --name 9router \ - -p 20128:20128 \ - --env-file ./.env \ - -v 9router-data:/app/data \ - -v 9router-usage:/root/.9router \ - 9router -``` - -容器默认值: -- `PORT=20128` -- `HOSTNAME=0.0.0.0` - -常用命令: - -```bash -docker logs -f 9router -docker restart 9router -docker stop 9router && docker rm 9router -``` - -### 环境变量 - -| 变量 | 默认值 | 描述 | -|----------|---------|-------------| -| `JWT_SECRET` | 自动生成(`~/.9router/jwt-secret`) | 用于控制面板 auth cookie 的 JWT 签名密钥(设置可在多实例间共享) | -| `INITIAL_PASSWORD` | `123456` | 当没有保存的哈希时首次登录的密码 | -| `DATA_DIR` | `~/.9router` | 主应用数据库位置(`db.json`) | -| `PORT` | 框架默认值 | 服务端口(示例中为 `20128`) | -| `HOSTNAME` | 框架默认值 | 绑定主机(Docker 默认为 `0.0.0.0`) | -| `NODE_ENV` | 运行时默认值 | 设置 `production` 用于部署 | -| `BASE_URL` | `http://localhost:20128` | 云同步任务使用的服务端内部基础 URL | -| `CLOUD_URL` | `https://9router.com` | 服务端云同步端点基础 URL | -| `NEXT_PUBLIC_BASE_URL` | `http://localhost:3000` | 向后兼容/公开基础 URL(服务端运行时优先使用 `BASE_URL`) | -| `NEXT_PUBLIC_CLOUD_URL` | `https://9router.com` | 向后兼容/公开云 URL(服务端运行时优先使用 `CLOUD_URL`) | -| `API_KEY_SECRET` | `endpoint-proxy-api-key-secret` | 生成 API key 的 HMAC 密钥 | -| `MACHINE_ID_SALT` | `endpoint-proxy-salt` | 稳定机器 ID 哈希的盐值 | -| `ENABLE_REQUEST_LOGS` | `false` | 在 `logs/` 下启用请求/响应日志 | -| `AUTH_COOKIE_SECURE` | `false` | 强制 `Secure` auth cookie(在 HTTPS 反向代理后面设置为 `true`) | -| `REQUIRE_API_KEY` | `false` | 在 `/v1/*` 路由上强制使用 Bearer API key(面向互联网部署时推荐) | -| `HTTP_PROXY`、`HTTPS_PROXY`、`ALL_PROXY`、`NO_PROXY` | 空 | 用于上游提供商调用的可选出站代理 | - -注意: -- 也支持小写代理变量:`http_proxy`、`https_proxy`、`all_proxy`、`no_proxy`。 -- `.env` 不会打包到 Docker 镜像中(`.dockerignore`);使用 `--env-file` 或 `-e` 注入运行时配置。 -- 在 Windows 上,`APPDATA` 可用于本地存储路径解析。 -- `INSTANCE_NAME` 出现在较旧的文档/环境变量模板中,但当前运行时未使用。 - -### 运行时文件和存储 - -- 主应用状态:`${DATA_DIR}/db.json`(提供商、组合、别名、密钥、设置),由 `src/lib/localDb.js` 管理。 -- 使用历史和日志:`${DATA_DIR}/usage.json` 和 `${DATA_DIR}/log.txt`,由 `src/lib/usageDb.js` 管理。 -- 可选的请求/翻译器日志:`ENABLE_REQUEST_LOGS=true` 时位于 `/logs/...`。 -- `${DATA_DIR}` 和 `~/.9router` 在 Docker 容器中解析到同一位置 — 符号链接 `/root/.9router -> /app/data` 在构建时创建。 - -
- ---- - -## 📊 可用模型 - -
-查看所有可用模型 - -**Claude Code(`cc/`)** - Pro/Max: -- `cc/claude-opus-4-7` -- `cc/claude-opus-4-6` -- `cc/claude-sonnet-4-6` -- `cc/claude-sonnet-4-5-20250929` -- `cc/claude-haiku-4-5-20251001` - -**Codex(`cx/`)** - Plus/Pro: -- `cx/gpt-5.5` -- `cx/gpt-5.4` -- `cx/gpt-5.3-codex` -- `cx/gpt-5.2-codex` -- `cx/gpt-5.1-codex-max` - -**GitHub Copilot(`gh/`)**: -- `gh/gpt-5.4` -- `gh/claude-opus-4.7` -- `gh/claude-sonnet-4.6` -- `gh/gemini-3.1-pro-preview` -- `gh/grok-code-fast-1` - -**Cursor(`cu/`)** - 订阅: -- `cu/claude-4.6-opus-max` -- `cu/claude-4.5-sonnet-thinking` -- `cu/gpt-5.3-codex` -- `cu/kimi-k2.5` - -**GLM(`glm/`)** - $0.6/1M: -- `glm/glm-5.1` -- `glm/glm-5` -- `glm/glm-4.7` - -**MiniMax(`minimax/`)** - $0.2/1M: -- `minimax/MiniMax-M2.7` -- `minimax/MiniMax-M2.5` - -**Kimi(`kimi/`)** - $9/月固定: -- `kimi/kimi-k2.5` -- `kimi/kimi-k2.5-thinking` - -**Kiro(`kr/`)** - 免费(约 50 积分/月,之上为付费档位): -- `kr/claude-sonnet-4.5` -- `kr/claude-haiku-4.5` -- `kr/glm-5` -- `kr/MiniMax-M2.5` -- `kr/qwen3-coder-next` -- `kr/deepseek-3.2` - -**OpenCode Free(`oc/`)** - 免费无需认证: -- 从 `opencode.ai/zen/v1/models` 自动获取 - -**Vertex AI(`vertex/`)** - $300 免费额度: -- `vertex/gemini-3.1-pro-preview` -- `vertex/gemini-3-flash-preview` -- `vertex/gemini-2.5-flash` -- `vertex-partner/glm-5-maas` -- `vertex-partner/deepseek-v3.2-maas` - -
- ---- - -## 🐛 故障排除 - -**"语言模型未提供消息"** -- 提供商配额耗尽 → 检查控制面板配额追踪器 -- 解决方案:使用组合切换或切换到更便宜的等级 - -**速率限制** -- 订阅配额用完 → 切换到 GLM/MiniMax -- 添加组合:`cc/claude-opus-4-7 → glm/glm-5.1 → kr/claude-sonnet-4.5` - -**OAuth token 已过期** -- 9Router 自动刷新 -- 如果问题持续:控制面板 → 提供商 → 重新连接 - -**高成本** -- 在控制面板 → 端点设置中启用 RTK(默认开启,节省 20-40% tokens) -- 在控制面板中检查使用统计 -- 将主模型切换到 GLM/MiniMax -- 对于非关键任务使用免费等级(Kiro、OpenCode Free、Vertex) - -**控制面板在错误端口打开** -- 设置 `PORT=20128` 和 `NEXT_PUBLIC_BASE_URL=http://localhost:20128` - -**首次登录不工作** -- 检查 `.env` 中的 `INITIAL_PASSWORD` -- 如果未设置,回退密码是 `123456` - -**`logs/` 下没有请求日志** -- 设置 `ENABLE_REQUEST_LOGS=true` - ---- - -## 🛠️ 技术栈 - -- **运行时**:Node.js 20+ -- **框架**:Next.js 16 -- **UI**:React 19 + Tailwind CSS 4 -- **数据库**:LowDB(基于 JSON 文件) -- **流式传输**:Server-Sent Events (SSE) -- **认证**:OAuth 2.0 (PKCE) + JWT + API Keys - ---- - -## 📝 API 参考 - -### 聊天补全 - -```bash -POST http://localhost:20128/v1/chat/completions -Authorization: Bearer your-api-key -Content-Type: application/json - -{ - "model": "cc/claude-opus-4-6", - "messages": [ - {"role": "user", "content": "Write a function to..."} - ], - "stream": true -} -``` - -### 列出模型 - -```bash -GET http://localhost:20128/v1/models -Authorization: Bearer your-api-key - -→ 以 OpenAI 格式返回所有模型和组合 -``` - -## 📧 支持 - -- **网站**:[9router.com](https://9router.com) -- **GitHub**:[github.com/decolua/9router](https://github.com/decolua/9router) -- **问题**:[github.com/decolua/9router/issues](https://github.com/decolua/9router/issues) - ---- - -## 👥 贡献者 - -感谢所有帮助改进 9Router 的贡献者! - -[![Contributors](https://contrib.rocks/image?repo=decolua/9router&max=150&columns=15&anon=1&v=20260309)](https://github.com/decolua/9router/graphs/contributors) - ---- - -## 📊 Star 图表 - -[![Star Chart](https://starchart.cc/decolua/9router.svg?variant=adaptive)](https://starchart.cc/decolua/9router) - - - -## 🔀 分支 - -**[OmniRoute](https://github.com/diegosouzapw/OmniRoute)** — 9Router 的全功能 TypeScript 分支。增加了 36+ 提供商、4 层自动切换、多模态 API(图像、嵌入、音频、TTS)、断路器、语义缓存、LLM 评估和精美的控制面板。368+ 单元测试。可通过 npm 和 Docker 使用。 - ---- - -## 🙏 致谢 - -站在巨人的肩膀上构建: - -- **CLIProxyAPI** — 启发了这个 JavaScript 移植的原始 Go 实现。 -- **[RTK](https://github.com/rtk-ai/rtk)** ![Stars](https://img.shields.io/github/stars/rtk-ai/rtk?style=flat&color=yellow) — Rust token 节省器。9Router 将其压缩管道移植到 JS → 每次请求 **减少 20-40% 输入 tokens**。 -- **[Caveman](https://github.com/JuliusBrussee/caveman)** ![Stars](https://img.shields.io/github/stars/JuliusBrussee/caveman?style=flat&color=yellow) by **[@JuliusBrussee](https://github.com/JuliusBrussee)** — 病毒式传播的 *"为什么用很多 token 当少的 token 就能搞定"*。9Router 适配其提示词 → **减少 65% 输出 tokens**。 - -非常感谢这些作者 — 没有他们的工作,9Router 的 token 节省功能就不会存在。在 GitHub 上给他们加星! - ---- - -## 📄 许可证 - -MIT 许可证 — 详见 [LICENSE](LICENSE)。 - ---- - -
- 用 ❤️ 为 24/7 编程的开发者构建 -
\ No newline at end of file diff --git a/images/9router.png b/images/9router.png index 283210a2304bd3e161249544f2ca485283c65c24..7b0a56cd8676c7e97edc9d1bfc44afaf3b15d795 100644 GIT binary patch literal 618835 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 VL%X2DM3)Ak&=>b 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 z z#&TpTA5e!X-$3qPsj;kzYMPrPu--Dtw-Ho=8`7#o2~{`<@FMp!q~#xU;WYS<` zIADG{T)<)uCEzRX-dXWKUQvIqcBj@!(d>ZTQZqK6^3TR$%rTQtPVfG(<9|ohyPzql zfJ34>dWTNp`(D#yyXaRuZj$^kS%L2H1v=wG?X=~U-!oCyWxq^9D>xA<629Yj4#p}v zUY>DXnCe{z2tfYUSW?iTrQ)QU8Ulv{X~(E}Tnbf~h&mvlzeljFb{|Tg&cgVyG+l}B z9-SmGMdodn06E2a%&!X`oAcFPzj}3wn+1Re824SN%s^v(({1}|$U=*MflGdbod9Qn z`8MPPsJd*Ee#W|{EX>qRSD@;uTK{L4l zLw0n3SfB*t4oel(G7$}2pb?al$gDfkE*O(5z?#LJy!m#xDlLw38ZZS$l|-yR`VcHv z-OB(PyXj)9ceV4bhQzadCBv+4@Ix09Dv%@BkPsusi|W$CpwwaozX?q4e)7qsV9C{)u9I-i9+n z({)&UX7Kago7NLAT$6Jwn%X`^U;x;nocfvhgA6+wB(Hd}IS_U3V|EEGcyLOIXW{Mz zvsQUnH;YzvX6v)h|IGsU$aH+n#_8i_n{qM+Z?V`K`ohZRA&_$Gnvj5Wwzja#B${Ht z{Gf^OxWTLOD0{lvT-6!I>6NLY6|jIZgmj0;H7UfYgIrhMLPNWHwMr)eCioJp_`xt= z*R=a*`W-MvV_m>xMdw*E?Ik1() zlb$jdDWJxevuST>;!;0I)>%bh9R+U%M*8+wq=cbflP1yGRAf*mcN@&qSW9f`yJ3>M zj}b+E`WfftTFEvU%Kh{A2RbGnc{0h^WvTA^N79Bg{9YOwn!QQ9)1CBKM!L#5B3%53RL+(>?awM^cZ_u0G=9P5!Kim3q$p zuSiADbeVdEy4ROhFEN5$A}jiIkMo+jZpl;5FUSnvD*uVuc4YjGo_Qvy=#MmoBH>i5 z%K`H+`kM~ttC+CV)=8%`^eNw@&8C(%{d}g;*WgLv6^4XnNod?;fOPv5iU86m0Z&Ec zk_ad&#A-z)HNW>sR8q0Y3)F`&$Jk5B)7kdWXTBJU-D<(>cdcw@e;9=J%h%iQMO>J! ztM~vSQIezzUwBsdG^H$a|2Jc#>MUQ4;w&uRo4}P>C!-hd$dG!p=F(E-gjV~u&*HjO z6deSanF=BB2DDXa627sS->YARIb5Yw=30G!`C>z?X~kdMB1Ty{|H4|r(f2yMHr^&D z-h|owS5uYwUUH~=|~E9iOXH& z_F%GYY4b(fS(&w6c`Yba@AW%)=%_*RlaFrB6|~_;-9;hIvuKyzAWzC|lWS>P(93R> zepG(kQKh7sG?-peRn~S)FyMX&XK7eEg65~ca$H?(j|L;66Nxe~Fa%9$dy(;(hGh;YVT+2KkEwS3fH3&fn)-7`|Na=x ztXm5O4hvxnS9_mG>GL7I1MLq!)^FDen2+ypIa{~JrSrgnzlnLHK-O;nsILGdaPm|& zOio)bl!%{a90PLnQfDE0oPt}&{2otQo2jD6ChP^Dyq; z%}6-w()hY!b;j}SFOd=IXpv9<@kuyXjIbx>^$p~)euFWtF&IxsY6VkW?Ke-D0UZx1 zZL{Hw1&(eLDBaN~*6r$DpMMkd1;#V99m#1g9pqYl z*KHSRzbh1PYBl)?%{%R;bCsfJmTL@hn#EF#gMDMp;#rauC7K(t`Jg zO*^G62R;+d&ddc{Go%yhdZd*XEFt)K@e2amxk{O90-K5pAKB$(-^adqvAMF=;=0&! zIe*z^yzslB&9(HUiYVTc06ugtIs;MkwrEEJu6M}ECpsz1NMFL`h;I>@Ww$^yO$ZZd z&lP0TdTx=Mm&b4$Xt-r$DDx#{B4vz0*H4oit9CwYKy>oMBBG2-X}&eUILLd^lqujw z&K`IR8HVzJmYd1`(?#~1~x0{$j{3G3^h(?4yUMJIpZg<~JU9y7k@DU_oR3Nv&tSCxYQ5l{@ zSWz?(`8-bn+So=N!lTEw`_`-g>3H?o9qD6w0M{;ekVj%{+Gmtt@(_tG3dqUCNQ0?K zD>gr?KsK2EIcf;3kP-|G1fWh@FtP%vqG)XaYesTC3vE~{@8Z5#^mP4_c|d6+AXR=F zgR>jao;Njjz#pGbudIL_`Rq9op)Y;8Uo@3O_brqCieIu;MFeQ8tW9PDj4ey`ej4{E z+iTR~?3?I_s$yycdld>AlVCY+^T$dpl!8);Pkb=r>JQB8|Lq&`5AOus_oGaa3`3Y<|YR7lJq{SD)PTjvl`zSuaBa& zn2qZ{yKg<6c+5dII1^Ej@K{OS6ptxAXxe0nAZsmiLFF*?!9N_#z~zscOLm#T({p=h z$l6;ZVC}MYT_ER=aw?WCQm6)S?l zu%sm1QX!oA48;F3de6xbfxj1qumruLQiLBCYywF(+H5^r=>ZrMvd$aK_Cc#fvmYEv z=qECLqg0}f6ahmdM`R5{F>zO`PW%;7khGH%hcK@-OvSVPZ_o;ONJF@i;LWp>(-ZL) z@7tDXx9x<-&%h(>lur#V`?_@OvE_Qvl67l41P_^bI1n6iieR|Txo}EH z^?XyWbW1=zsi=9Qg%3ZRh{OZ8abbQ#hSuHRf1`E9Z739vi*tI$ z44Nk%y6+K|rf~hnJQ4E{fV~!6pLvI^b8>yp>pU}E0=sSg{d{l||g@h}$t%y9I zmrOZMMy}o3{g8Y>+2HbbChfD=R!m#W7=!n~REOxD8@A{q#CezB9YYHjJgLack`C~V z*HnY{s@Vob&CV?U;3u!i{-iq@d-`YFJK-Y$<3|B`ryZ4Y8g6?$5K}U>kRuPR`c& z`_~#|9yki=^D0VYBSiVSl6;+>kwrqsf}MRtRpNRbKjG_judj-h8cA;)Iq<@sAxQdV zaDs!dIU+c+0YBu1vwbt8lnx^g6kA?dc&668667*#F+XF)sf_5j*l* znhV(*2F9~y>v4D)y3Y5UIgP!6IzgG=709LhgOb3sVN^>F9$zxd+jI5ae=^4=AYhhw zr(qjkW*E$MIN)E_T&xfGj0tp8%|N#ri#CLH{#y!s@yWLZG4GT0rQ=C1wf#VXFUI&f z|E8gr`PNt08HaNFFT&$@UMn+f~Xst_Nn7-Qr(kRV2=9s4;_` zwTW+95@@wMlV{xR~H9L=XJV(?Q*mwfyK$^-7Rw1-eE|{_1kj$`G~fTwtA=| z%ay8G=uK*A8)C2$5oKX72q!?cgeL0a0Cq_Yo_1?aO(+34!|P0?ej}{SY(B4zFwE{a zFLH4o8XA-?Cqv=4TiQw$KmX1h1|o6NqsXHP$sw~F?tR8|ORWQ%v8iKPa=$uS?im~e zs>Cvsq#=qsh?9vd)>0?YviT|RQWV$0lg)T^tn*Ybmsk$;_?O2@MVTF=AM zCjBg>0P=(9>tYWNJ~%rwK|Wc9<9`VigLm zj+f4y=!_PQDr>#g5SX{RJwY4#g7r!$o>IG200!Dk;mBEf)AuRMa~b8JYN(B<2L3*n z4hGUW{>5A6{oy-E{xl^yifHOvL^3C3Ou(iWl(LG->FJ_qzCECHyKE5|^I7BhqzN)B zv5^jfn>6HsxsBY31k@k-qd0AWajV$`n5{$&!X?uB>mW-u`#Ym7Pn0nPyUsE#^2Vi2{Z5jG?B(bup($n+ANEP0Re0ymr$Bq_vq7U ze>WUV{i1#N1CnO3PB70xhJ^CSfdXRfRKdqE*uPam9swR4Wi#~w;d!9IjLvSwZzJ(G zV;r_EUZfo%g0I|I?Zm-)fmlh6Dj#YKb(2noc=x&WS|TPr8HF-kx5)&*pO#Wlg#8(OY@|{ed*{nymPTaC*JHNjS^lic+2c3GDLjV_08leWRQcLkWz*Nn*{Lkm$+EqyAHl z<2Ec2O!7KYIvg8DD*6NIlmct!Z0@?>aWz;XM`g4s1S0o$Xo44O99i1ooyLk-J~{TT~Lu14O`$cg8+;YPwlVgJ+Giu=Oa-tv@GDd zaN$bEY4VnS_ms7*1F$La`8UX6AgMhskmj}gq8xrmF^LuLMb9HZh`lyKhVE}KWfT>o zQb6d@2gPE8Ga7J^>4o7FUf46HvgT}BQa&mXR>~qjX!E$R&POxhA$Mn<*zYnDi~(F=|jjk zGd*;gu7DWCFDAeZJ4WncAXSdXx=xy`D760aZaW)Id|L29l|DNw(Wd^uf{f4J-$l0X z_93F_Fr9)QbCFndvB`JH4gA3YfzIKY&t*B2MMh4}7zCCjU7ksOSYYhIU$_{&n1%gv zd$C=zmwLpl_?5jzN~oG$u%81*4;Ve}A5}G15AGs#p=z_%CkEU64sO5ST;Iv`xl_r7GE(TwG+L7a z>{R+B&aI{xT1ySuit;%K=AZ0U{99mNkH`nuHebAp!{;>czQ<_3o@ioTm^Ng&#Z?qM zn4;b6fHA9W;S+bVc=M*9e_hi6E{b>h-G|il{d%qIEuEc!wNT(Y?cx2UDwE^vFUiLE zkl9b!9-Y762g>QfLZ*X4s`%`-^9Y9*OX)gHs(?)tcf(X&(~!31>w8i|+6FgA;W~bJ zihH{JlaA8Iuba{{NCTzpn;!q}KwM4W^KWjgN#EA*F|PN-v9gzG)FbYAs!M=Fxxa zBCJuS6Oh*2UM@fe--4*DrX`CVi)uG9#vnUz5LriP71;end_Oj>IEq?W^-S6#3C4`N z9V!i5JWs*8;$S8>IL!TuX)X+brj44fisy`9;NdG5t~yg9rw3lAE$s&pkInaz0Rnu2 zmwOy`7sR6}@mj4PXkgNnYKhc?sWCXd#(w?stgsV1hNWQ-HB4L^r*}2|0tB^fc|ax0 zZAi4anq}6ia7b{O`bdhgb#lYR$_Z0z+j5%ueo9yVF5S~}!cqa8`q+QNy5M%oToN*a zNh~PauE}jl{dJTAl*07*(2Xw=7>@XT?n%Z`W@2fWcSYzCC0fl1%BtXnp>CD8?SAa|uu ze{++X%4ZbK>jevBT`fw!&MY`|iA(aS?QoZlFBRj91+HuA8qC`k| z2Xw6sM-z8#7n+Gj^Ofk_%;OU0ORbAx%nrufO*2EQ2EWea`nIuZhxv*es>` z1XHkMYTlop(1Id7UTpSSrV1L@TbT+E%>vY;wJTaA-r!a5%Uh-BWY)GYSJNSL2NADl z4e$c27=5?_I{fb+hp#rt>&$~KZhv$}zdvZcRyZN@_q~fjije@dCMK3>`2j_#+C~!z zGCDeH*Pom7+Ir`^fF~F};XevR z-Up&${U(Z{$$C>+a&mol`dG~3?=qQ zv0He535WW4JK8Ot`99}qqkM%?^bTRSAZ$lQLbY(?V8~vwc4kUAXW;H#Qj(9Y?R+Cf z-JBQCeZ~f1G>VhWme{B;yl7eFXA{f9z*qQTjiVe(H1;pxk^2XDR1S|pPEIFs)_?g4%o9?J zdMZ2f1;0>5KOo8KG6;8vWtq~vczn$?muI5J+WUh6X)c5{Y2rgmH<(1Hm3fH`r~K{G zGb!fRxDcysVub0)7G3nDW`z z-<)E+$fp_!AEpWXGn`F`oTQ0%wsD_>Lf@M`Z2dmoaPj=|Wwjk4*mUI-U%uj-2fh^e z03nVBzi+`4{}Y;THaDF0ybgzG?EtC@-g~e`SHPvw^LE|k&{c+426spkwsRpVDLM{% z>qb3a#1yD*E!H!=m!ViQc1Gfik2Qr4Ck|(>EEJ`Y(ODC?MGOx2;^$#P@<0U)-hS0Ca`^86w zXZ$BK0s;%TAScTU8GUbZpL=VzD=EBMkxH{qQATIY=ty4I2F)M)=CA5z%U$$W(FA6M zTsBUdnL!?~?L)pz%lsuwg_&3bZf{$h)a9`YiOeVk&7Sj$8~NDS6wJ9UK8oW0#tM#d zcerl9J!}^~(;s<%tNZb9 zfS>wapYt%rQeB1~vN15k_!H%38@7?9Jh!!YJZ+hC9`e5W)Ly37tQ}U3Hr>kjiqS@+ zG%up8fN~aXO?xhuJC+XB2?4<)d_r7thD(hN67d;&?a6QNW>a>QPb-S^N6HpnxefaZe3>)P1 zmuAiUqghj?J?{l2i!=gfQSNZ&Obxw44}Gsf4aT@vm+X;Nrhd!txT_d89m<0EIjG^3 zgt>Em_Z{9j2+F{3CJ1;5Q%)aquRnfunfcypuv|NJv6fIiV`*tNnN$MoeJ4sl(8$S$ zfs(=K+(%h|jUFDiWa6^7IkM%vkRno$CKI-&x+nL+9~n{I<|Vr4^ZJZ$@|Ii5ZN+RP z&3}MLC_iDekkiRe-ZEcjdO{T%1}eF0fKw8>fEB(u!o9jPIKO!pM+gA03T7oWSX?lZmN$wCzVc1 z`rLY}yTn+XZKXmMMdC%nouqZV->9QDu7g+HKb%Pn-k={q#A?{54~rSt>)7&En96U% z*yYAwIUU-_YPRCII~T5b`^xj@)Z~Xc8soKs``0#mc30>oUM=N#fqBvn?R@V?w2}S4 z^$eklR3Sws{&KptfC?;zpDOlr7M*TpW!o^VaCo$@KzOD_e6SD}anHoS?{wuHM{3kd za|Suw9J;N2yTRpkr?aycgz#SkPY&sHUM&C!Cdqg6(~|C+vb#-;yUTr7iF_)tq(rL2 zAXJ&XY9z3*+nmffEp&q58eMd|yXEvAQ#c=)R3n}Q4o>ZKp`%42U$ZlDo5bI+&GqUSzv&a4Qg z;5G5RTdn9y%lk zFK+`3d#A_GpgGaYyS5v(S|uEro7ON;^w(@wb4&tFa*J-w+@tcZr?s`qCB5kMY?3?- zq*>Y)iZr=1+|FKTF;CE1AB$NIeZvy|wiQ3b9j!R64%#x|8F?eEpnyT)wZ`@elJrGK zKE}n!a$Tpl?Vi$gby6x^m!HP{35g@%ZJA%lyn@;K49}#&9b- zyi07Ytp)lBc4Z%77A11AvTAN`G7NA?*}RBW$d9wAVnCdk@5|HgX=6fPY!>cVc$fl`D}D7^^|?cP_N@bw+$C50BoEGS(bIg1S_r0(}q3{ZYCXc!1b9SxO~cx zDWcZ>vo$Xe|C3Es0qyiGZsw0n@|V?M;6EuXV&VAUF%sZbU(pewOpw-|Z2zgz8nMY4 zg-KA=k0^hU9X7#br?pFdJli3|NUqsk2nVgQlS!ELGYI{F&kxBM5Ic?^_AT$1RAZGm zjXq6$Vlf4=v_U_d|Ro>A&mJjXi162qqY23g53Bh zDMuDt$mOL)ryW+T-MPoxTXCkHmW#eK<98$-=-|^sWW( z!!xM;%dJYLs0x7Tcx4$!38QKn9w$M$s9o!oF6S2_@G8au>TrVR89^aLf;4>Sx6tAloZY=2MX>AwbI5VjkNs3-y)&*nPX~C8_v;o% zb}+&#yl*e`8~Zb0Aq{Z^;ZoC-``-4!n%~?u8j`gdt*#XhE2=V{w)EWhv{vu2&x@k| zE3{eUb)(#)S1$&_iqf?Orp)baG4%2ZvbuTkE*j9v^K#exjoXHBM|x=|iv; z3k#f<1CvFT0|^0hAJ)mo2i3rPolJ+Bk?RcM9XNhkwDyZ!jkca%K-1whnQgz0*%xRY@5-U&nZxPeNI?v>-J!^#)w|D{WNvm{Z4&O} z2%?Sw#)yB#~k6DAa$&cx0AGCQ!5=mw*b}?*QBBuMa)T{ zVx&3i+At){b{lx}lV)a_iCKF5hU+LUAU_WelfTBPmE+V6#lb~UASZx;w?rg?~B244^?57@@Gkh5k0M;eJ4Uo=7JoA z-MnGPJGS1(#CSC5dAJ%7Eu2Mjad&mN%Nm@GT0;ol$XjqTuakdtQo;SgpiKB<&i#~a zx9zYRRrI^!-U`;l`Pbhv*keL+%&e3K>2wFR@2Zufe6AMj7Nknz9!$+-R%mXcGMrv| z%g|D@^3-W#AT|i!U8y3do=O_Ye+LLf&Ah%fKPq_Qrt#4y$NnU=+pjJq$524C))-0n zdJpY}!fTFdt|Vc#WZJ4DK2E8_TvaiMnuW!wm-1+JMdT5mOz3SaJ#-v@iyld@`jVLG z*4PzhtJV9KD#?fLq)*bSljygJ(KCKFHtYZ-ERAQJGJ%TAW)6a>b>X4=un$M4bYxx| zi&b9fi@uNPOSyzgxr^(~i|HUUg|Oyky-&VxiG0oCXntP{ikR~8v&#T~x4lHju-?jT zCt}mx6F>@Z(S6(b8RElS(c&i39&rgcUYt?7wN@%aOOMURh6okGmjVu%Fxhd6yc$A7 z*V7akyf|lo&tx=+MCqqVWX9|aG`IY$qQXLD={|y_k>D&BidFLU^^$q%xI5XV^54I? zG2y{B63_XVQTL4g@c_L9V-qVudmu9x#+H6?};n zy&nU5cVs~+qIVo3?SAs(|ufBm8S(U-*!0ogpVOCOqR115+UkV2FRg4xEo-z@U zV;VpS{u|tQ0&vDac%8p7D+(Wshk~??OjR)qFLU!1&Pe_+c&5^V=v>5j>R4TN*Hi`M zwC_UgQe5m`;edW~P9iVg@a%E$YraEn#1HoFpW@lF;OT*|xlPOV#k6pg{63XNC}^W{`=`PYco%57H?dnjJc zK5A+S#_KoEQ|~rEGqgv3<_rsZUk&xKwbE^bP0&S)iH(coH{|P0Vimg%!$)?T8$kS| z1YojsxtDa*GA0|q99oArY~|Y8+V}>!5|_jTy|PNwn3F7rLitlde;$$r(J(EoWFnnPQ?BZ zxm|RX4LFKDwSPf7R43a+r^i~0!rQ^|NU^f`;tn<(QPNQ;D1*}H%E&6Wr^jnfA6OF^ z*A!RUzb=9!_ez*`>lj2e1lk02ZK?nSvA>NKaO~ynV^V2dm2eQ+?WBq8n|amnvo?0X zL_$uExFtekYy*w2$%CAM^{E;C$k6!bfQ(W{Cl>HL7hcGw;y4lb&XSb0hv17l8$c~K zyHATw5+9{$Agt>*q^Wn!(*7nA^hW4fiYVd&nvZQ|apz(-oXeGombuIgBx7ING#}gD z+|rfG!$2d24kFW$30F(yv7KgaVr54>Q8=)jr-Xu z5A-_8z{j2lG!LS6Bxc9EGE`8<*ciG;G4#DoM@{RvfV)+vdn*Vp^Oi*EJqJ?A5+bQ8 z`Mq_s^C@@p<$;V=gIAW0e5d z;2*LM`WvEX#Q+FO z{I{4!CSFPpQ%6*Ze8tcYC$jQIAK5Uaz~Ar1!Oe~~(O678R$Y_uVyRZzJ^ee8DQ|eV zRbRr|I@3r6aASLYc=4D?@gPcWVJSGJQURx~!TL7T=WI|OE&^b7#P99Sq=t9Sj}rJ| zxIVrXqz`OzVyYd;3@*e-Ri=b#=j7k$Q2*o5D?#$zF0S$P0%6|d}h1h?4;@+N> z9iADYdiB;2@ItMLi)HBwT*nGjcy|hNzGP;W^;QkwnqQiE9HSAU3vsOVFFDGyzVFWv zB0X%mG(fI5sQf5b7Xd1nulig2{sc=*e4So`tT}hsoXlvyWeDSh%5m45Nfp~}mUimh z@TRwi1TQa^`@yLm56%**tO?PvG@B8$D37<&-z{5zKJ5OLY=5Dh0{~+g+`S#3R_c*W z6aIZmTO&`-J&@JE#lN_I96 z30E5O4fF8RxK*E%)CxGg9!Aw}sjRd=&f8oq@9b_jsR?>-;xk?7CBv8Dz4NL6{=yR# z?_DIQ%t^`z2XlkXWsXSCVY{K{_W+9Yvu~|-SbXE-NCnNfi(Y(KfM3ju(DMD8ph0AL z>x&(ZeTU(oy87zUiEelLxSiWnq&yY6wctM*H&FJUN&KUsl7zs_x%=GO|9$}IU=n{U zd+3v8A0Xe1louc!tEWQ zs7ysSFa*&g;9pr^Gv3v|=h}H?zLlDQ#v?YCs$omFluV0=QXJHdOfEL+QMfv$*{QA> zxOd0-@lq*ZXxFbz5h*|jiDs7@2c+*OX58IbQj`^ftgBLCg23&2&DD%;+x(Pmyi~Jr zwFbV{!OSXk3ob&(pYrRL+EhjPci9yezj|7B5U!<$JmyVp^Ga4~YB*flx602sWr8R6 zD6IQjKyX7fH8rSU8x$`S@;aOOu%?5?a7doRI7?ld*R?}U<&V-WLA#%J>Vix0C_nUv z6?*@RKt#a`0mg?cXvT{Bi#Hqc<)SOB$N5S^nx5N11Lg7DsmO@W>1Hzsntn>2sPU&| z0}5W|6Z|*@nQ>rfJYy=&XYL#%W8e!RE>e9xawlWcCOGG@8A-(M^lYHwtAr0aOTTbL zw*Lpg)1ORNJ4Lqi&oCsqBFG#)(Zy2jm;8{HZ0qy`#?I6dx=p-jrQnS z)mgoZ+_4*ZFR2;WP=LXj#IzLdL{=`AM=4<+H8g43LJ2MDxBBm0hkg`}TbextYxG-O z$qW=Vp^6WC{k+f3gcYqKiv3S?3;{m!3&1mhqXPc8`M->lpg+b51TaoUK+g|Kgs3rY z(}eL+ydBI@t`|b;UVd1fyId-{h3$;a|1_e?0PAE=c1D3z{J`1o^FWw8#jsP^{>Jts zpIX#?43)1LeGUHfOHMH?Vhb+HF)jL{E0HwTB9=FOqhm9(U*h-tPan<^X>ep1>|(1* z?PL%%il;*m!ZnN>jcE8LkUdH{R7uyiMpNUNSVeurTZZAnha=DBHH^mALVLDMgR5$T zvdN!OTla}gf3q%N)QV<{i<0`FgNpiwC%ZPAh_vkiH4x1wrc69 zs0QLl`gGLL*r?+-G^ZiY4U>ch-ND8ZI(xP;lvy@oTAnhi-{3$K78X`-(G&-Q?kB!M z{kOD!iuz>$)r}M6-Ona*)YC~9XB{icD%Wtdrh2-4+ANkkl<5~m z5%X^3dQpu@b4&SUJoLnRcnyFGFMeGpf%F8mFW(N0k54~yEBw9{|P zXB4sR+?-08!#YuuS*LbWgNBlJ^^7(wI)fRFv(B z)iYVy+8?TW;NeV=r9R0<^OZnUsvCVRep&m(fbO!(4fcD~21Ts6g&=qtMk(;%uO+e0 zFR5|CV?UjEtuVEEvP{_Dy)+Fo`|+Fds8c}&xlqqW4eDTlKtrP?h1ooA$(>c-49g-S zl|Z`*i2-l(#-V7NqfFUeDK|epX!ek?5pCbcG4whnz(UU9MGvRmA)Edti4fdVjv#Fj zsa3}}o{bWZx1ItUW_Vyy_@`Ho;q2w6$Cc1S=K(peu_+pI)<(zh$9&=nPq?pW0&&VX z9gOBjhk*u$>;|IDQM@(;F+Q7!rd%Rnl7*ZO3Shw@qAMR&5ghY1GfyZBY+STmZ;%S! zY~?V%;p`lut(3Z|G8rHN65ID3a^8PLNl8DULQ$nBIl=~2XMdPAQ%~=&nE>f#1VZ9M zm|&L~&IPS&_NhgP7gn15BeD5<-^2C2{pw;_2h=;5z76h{jW?z80)CUQda`5zEMVJ2 znaXWz0RS>X8k=a5?eE)eN5f4qlOjnV;AT;M-QAzJw!WW}ISliXeh|O40YON0xKo+G z^6%rNxetD4bg1^bV@UHi<5IYUI`g5P_2OH;Hol3&L-43c8C@Pc7KySPxa@eW)`1ZS zm{6Ns^!kMEEbjAf*@VEdJt0CsTTyfZzU8Qr1z@EABRrx!YNEheLS)te;RyWV-TqC? zeQ+ZGg<}PD_C`)Z(Scy2RL_rDexqF;bS50K?cy69XRweTK0>gGl&cA1s1fM7nP~)tU%SJ}a=)A%CrsPWy1>+qf^qO29KS8Yy)5DWe z4KMzOZY{xmcVxR?r}Ph-3L|H2m|l6b*S1~M1#`9OziFKp_rAuxMBOU^>T63~RPo&8 z!e41}oEGpY0ds_*~O=}{eH!yfvtQ8jF!EK77Cj{)g9=Ud?NMO$fo z{pXxR*lC-?!_9L1-$Xo;U?B>$Ik0h-mX;{s2O`!%FAM|QXR?@?glsWoA9t!5zPd~> z$jU2WNP}&@@~p@^YPW^K>ic0WKH`#$P75R)4p`~KH&;SiI|Jtn* z`|pRH%K4882LQ-=o37?xvjrL$gp~0)(6s^xm_Q6$L^<@Zh(Zog0n|$N{9fkkNG}}b@Z7^85;+lQ zMcRjOynH_RcBzWXfO*k`ZJJ&LS;P?!#${TX8=3aw`-58XO zJ?0_E$X}hAjZRe190;aP{ry(71_N-fUq*OWLQONR)Z*2DtYSbG(jwpJM74UIe#pfj z{@gBsCHYPqk=sT;DwesZd>I(6pKm2&X4gUPo%MDa8{q;60h7Y>86pPBv&K|IU)=~` zCPZM=Cz&U!FzT-*74_khuM;3)4ms6YUgh`=HGk5YHmPb~wtJpokiD|6z%yU13QCz> z*@CjR-BsSy&)aBiA+R7q-21@iU6G_J8XC3ov1p(cc?UV8e>Fw%4}EMx6(uB4Uwyc3 z``LUr5jPY7$|?WIPW<|z-0SZCQ04^_2StLqP4mM|ncID&p^DUP3`3nE>cjmZLqW0A z>f^(qgw?D8vG&KLsC{k@MP4KNhnpmcFDWF!D=Q>(-b0&i#uHRJH663LCElbDv`!N! zpm|9mzCRi(-~mxTA#^1;2nHTZ3LFauNMYHGq*f9m4y#j^=@XEWg4Z8-6GMh(zAWH7BLz3~cB zF8W?{ZUmcbxv9~8p?kqh^RuYUN( zbWjIG6DoU!NjE;_K2J}+n!X$ZpZM1KA5VU2eaV zGclr}si;>I{Jw73653LpS{YTT^+sVt_Gh`e(7j?T5)Z(2It#@7v;6*GN8l|v#lx}8 z40iWEY@vhr?-s7F2bVbD`cP0%fZHlmlsRXG&_x&RIx${=bgBY7c26HDeee7P4x3dK zcI*Xaf^%dYXH&VY#ogWAKh~sE0LxI-eJ%Gdr4fz52OP@oQdp?42VZLY%8ZU7+{-au zQ7e(3zmmViEGzqjfv(wlnapUIZs1`D^5F(d;5^RXJSUVDLPab39sF)`>g&vEQYUq# z4)53=L5qP5tBW?WPc1HI9wDd^q2#6fzgB7ar&VHrxf@r;!0_73OMSCx?cKCF#Hxxy zD5jaN{39Hr0mGTw+GRM?NMg8tFk2q55T2#XI;DJMXsVeo?H&R%V`&bE9Tl7*26B2N zJ9?u<=JoAcSLh=)=zgT1hdv}C9JO+O*v#$gTLJ`8C3S4bZ(s3RsiPeXZ%EXbiU1ix zV|_V%)x#;~Lgqb;mrq%xAtxkdcI<``ue8(DIl+H@>5pGX*msBPujl3Lps@OGu<=!-Db%UwYU$~+b z222~Qm5wdllF-Y$^qNn(yoJnhleMdHe3#y$3Pw};=hh3j6Qk!y6u-hX76ig7LV9%w zg|ECQe6*`k6-_ZP$!f5=Cy{Lzo?N6<=!EtWk?ceyDW>1Lu*R z`1z=W`{85&OnIBgYQtr&uK34Aq;PwA4RB5F;ektOb&a|rh~0Ke>df4=Z0T<}B%pKL zN>nz}m4Vs32RdicFpwIRFHgA<0Ck9JDnBV@K&kU=_R%@c(i0nqX@$GUdr33>B{da2 zd|FminH&|h2yd?cwbRE+9R(sm-gGa zqMgro|0?Y>gbxLO^C;MB?cpV6m&<=i9KP+m9V+Q4nVds5_Rm7G1IeE%@S zq++1=xr9`6`Ju_SV>p-+k;6}dKaAu@X!=K~PXe#+Lp7DPw4(<|C#XBKy7LIr{lp}K zA-(JVv#aVcS>`I9{*ZIVu(LR&W_VL^Di5q&Si<_%^xxpd)6B-ir-u7b z({^S|p-H7ah;9d67wBD4?^yT`@;L8*$yaig`ajsyQ}Pc3oV^CT;dBI1U9-Rt;6C)+ zQB>^E&`?GT9HonjmK^Jb{`DloQYvvv_vJ?Wg=mq75YNLF!nVhUrWCg|es0nde=%JQ z@ItG%08#ux!b{LuX#vfre{h9g_lfoGF@gqSQVy>tH@^zl3bmY(6BxxHc70@j-*M$N z=dwH8(;Jqbls)HmUW4GaFVdD>Sje{(H_J+_B;?G0a{4Y6!&29|0aik}Gst9lLYLMr zYZpjxOw->e>%xi#=l(gF@E3{a%&0rym_wZ%SJs>Bj;`g$ARL1c*ePa#K*;tjLv;_$qbc{Ar!;O^{R z9FREP>fl>)NCleQhVXZZY&YK&7?U?oEHS3RiZZ$Xr*QqC_|IN_{=XHu7pA1{V>mKc z5;M>WBEb{%ms7yK14{x{x;G@1NH*P&P8@7gx}$DcyDBcs#u=x6cOUWx`+MfsUBqJ_ zA*??P*o0u9wCY{DyX~5b4?&-p>N-~^jdnLM>K{%Gfl@y5DGCzONH@~m4Fb{)0@9_V zbVx{d*QUESAYFn;Zo0d>yWT&Z=XF2Vyz|UG^UUlId;$iJ<5<61Yc;l@R!b7OFF004 zzd61!GZ2ekh|q@v-ZGlNIf?$!lvP?FUsqSA=?{S+fA7{QBdxIaor6B{(?aLf$C_)T zaXu@t?_CN!GXJ4D&(i&KAJ?K3phH9;f_Yfk;D+(=@KC)>rFlNDvH$2C_F&{aN5Itu z4>{<6<_Sz`yWOStxLyg;Y;og|uxC(>4VkAh2zqB80UEritqtdtaEAcpPJm7Z?_YGM zNedm@kJLi|*V~l*a^f23D99|&#eSCp3pK5Q`Ax_MAIa~*>UO0d?%II%PyVOmp_he_ z`#ttis{;$-%MYRa6Q+9Q?I1_uj=lB=@{xGJ$ z!UZ>ImWbqY$W4}l1C3=)K9!#^WWu_uikdL|j43U!bf00P1Ua*5S(^~X4Gs?KBIrMu ziXx0I;j>wT#T$q(FC+5~bc=r8Kb+OgK>#v8)$=$ehJmt~VSo;lOb9AXW?#WV3o^Vg zQ$SEhNvEWG)xbMtRn4#|15W}H&tp7<(yvAQWiK)-%t&>9Gwv-{!D|d)g0xX+g#H!4 zE-U{dfMxX$?lFIsaKxAW@ARr zBw8oZ^m{1C?aXHD&@qur8$loc{2J6kd^P`tdcYZNUXWzmgS6Jz6f|oTR4^Id-Orgl zYYaDVqS<6mOBFu&+i*>?)3z>#AdJZ2;urf=PEs~!+x3#-2)#GEgq(d=?k70O5%`rP z7V?h(#3<`Wd!+|vYCp+#!h)F<$3R>Bg&v{+wGu|`tHXH>ItUudK-btnw+7ZTuQ~)8 zZoi}c2)}1-ty%Rp_30WpgQHD!%Q+B{dOrAVU);ZKoG?nHJ^z3?+h;IG14{AT93NMO zjdW8v?`HVbJtC)ViBr{pIm?#$ZgWh5udEvx+MKr6=(JbqxT72rr7HGbiAB9s)3?@Y zs@OAUq>vO)W#weeFHp>K}=O_^RnDOxdn+Wgxu@P{JJiK-_|$tN#C)&MbQQfbjs&mpJ#Ev(djuSVg?Hp znbv}VviEm9eH|SMNpu5R5P;5bAk>%n721IWMNLU~58}~`@WdgQvgv7Y5%9a%;{yIx zTeBUp>u4+SY-3|=UzWbtzoV|N(8dmBRu-c-^Wxt^YrdZMUcPK3Ti$ik-s$rzGE?Y? zEBXy|BEL`$x>KLdT+O-3L=bukq$c)6*Qv9W5bl`b*BFcH{fR=1;O$lhD{M6iD2;!M z?Wf`YbnfHu0{X_AkN>T2T&X;Bg&qcVP|RlUs?Ghf{+DwiWR*S|*zk)lIA!7o5lbw~ zQTT-1jM$txFo&#YrM$4<5+2xd#Ci9%h4)HWrp$~;dnni2`OjxU8U%T1>*wdC{}aE2 zD?TTT>O2Gu?aSlN8p};D%Pv2oWQBNf4)#PHcHD9n^^*Tkj6!8i5ScjAd&3Xj2*Qa| z+)832=`H#~5$xT}>iTlnaKX2w|`-9A1!9XhuI#tws8QUH}o<@iX<|MKV;o^8|xXsIkteFDJwi^aM>YK&=Xp3X8=qM zrUz@)SY6+g9|T!--nvW?Zd%koA*{dxx!Fj=7twf#nZ3?-# z1N(M$HS5m>;EnsN!$<@u1~GI%p84+yt1Ng9Nd3-00yB$>`e845)Zk2T5PGsC=_)X{ zrZ=HG?5sIf8{}Ple!tD~?F+90pA&o!aoqQ>Yxaf(*v-IE)nnuNPtQ{Azi~tzeiSSg zp0`EG57-b=GdPeu-^=!@iO=29vFN|M6VtyB41}3_y+j1p+tL3Ti)`^X@X{{?uYV#J z`7|Sa#wvD+=l9g~VENh9Y*ZEl5j$^Y!+9l<1lOa(TH= zi6z?U?*^8`{SP6iHWX1wFx%YY8hI-@$*IUbt@Ri_`9I)Za1fx#){UJWzYre2`7GFa z+oe4<&CQU4*2dv5U-~IrwwiUpbLM*Djk=Ek24uPIUcS;y8m}{ z{D5ji(5$>t4D2H>g7BPq!;H()Er{|0>n1uOm2sguJV7sKZ%%ocX$u)D1jC6`8m#sH zZJBU7?&2}i9&5LYwY_*XRRL1tYbmG_$HS9<}hNiL!H7Z&0i4DW!H~nu859fNuqUVE~ zUh<6DfNGg8-Dw#eU(0AEe|H~C?2kw!w8r*zFg($CK;*7N^bt+4g7Q-BSZ-#?i-V-1 z?G)X4pN5)`Y`g8#G|wVNq=lJc2MaZ!2&n_VM0|cP+xcDe0};Yp=<&cBv++o_&~m}r ztsARwp^g5I<#wwW&{n?n2^#hIeuU#9WXQIeDbe73j|3P;A%lfwtueK3(6r(}4;i91 zK)ra`ulucZqj(NLYZfQh%hF&d6{d zjmz{NWrh-QFol2)@=T0qQ6Uuy621{N+V8j0UnzZH3y?`hj~l7BQb>_L??7++9nh)P zmb3WDmr*dD(3$Gm+@ij5*QWAL)LWC)KXC zh>G~X1D=1`X?uq1GdtCT@nK?iS?vrpjUL4C_j7i+Ut1mEzAGL1`B0aG{bIp}O!$pl z9@kFRnj*PIZ4;}sfD%{@;q8xdY7!$NPps%EOBtSb!0D=bM%He`pmZ$wbZp&Hq$lG~ zNo+UKg@U{Sr8s;{4d?uXE~^yWH24n3U-9noNT+AEF0vp$u?#!~NgUd4U??TnmqZxz za;es!D8?*1)4JEB!mi^yHNVR`^m}MF=o>6nSz!c>x#jQA{)3jC z`Ga#Of2P_#$r;j0z8vb%qE-}TE>;xr^3xZXg*VU4AsT!zWHI$VA%__v{=jWcfiC!o zo!d*qwTz(FaZv&zL!i|s1eVCGb|q(qBn!F~ATaWSu|&OV3!PMu{*@qXUOmHOG8szp zrz+}?;&9BndX$y7F747k9Ipp}ycb2#^K_zT4ku9lPh2_rpSbeefwT6d=lcku$8QKM z4!LAr30A{rUz+kc7=I2`8g`Axlslc1VNb0{4*^X>H1zZ;Hno%Ji9i&GSnzJ2tyHTf z->_k3vV5H10JOcCA|3IM2GXAKw_iFPMOZ_%@pv_~Z8AbE5e%F#@Q@rS`}3DT1LU(> z1*CgyE+~);P2GC;-g;AUH?WL+&wMndnYFH4_6r^E2`=~`$&XNs(i4Q9@Oe2&a29Ik!NhZJ}2NmTbIMi?U8Q*n-9NSuR#?4 z4%#MtJtzcI-|)c+0F?jN!}hCPW@$*|3JSi9Ibt)I zZ;EAGAne-wI9}?(1&6Nqoc0k7$RA8WjS-8-Tv2C3;^>^fNDM0bq=|8EZ2vULq58O7 zillh*a9x-6abqbhA0n4^{}Ly+kHRBp_gM0?E8uNJ`1cw-dWGP7d~MXpgH2>83~VkO z{HM9&lRFZli8|3FM##E=gj0D17uhG7z^RRn%Z<dHpu=@p)YvBEWU1K(^zFdPSTd(SD<_ar(^nr-yUp)5O>M!0; z20?=Kr}Z04L2`*Woog?dBuE4^WP;TRoyJK^_4P*SKtv>V9bbQ=cO+Hr+$vL=5y?;z|IISV$De-A`>h|E|-mLtB$mk(@vy_N5!}YhuAZ?z*UbcL~ zFZ!0DX$X^3BrPL z+m9Auf+#_$zG<$GWeJ!D2LE*60&J|Z;NN^CkP0Km2WdA+#s2Xh82AuIB1AlvFE3W1 z-x8C_hJWyHpssD42cbKXu@Rw&qxbI@$%4OQpetTLdB6- zOcccPrtGaO1~?p^U8B7GJI^NxOC!O@>yB`Xpo{=Ru`Az_2mn7o2EMTJ&Ad>ZGU7yB zF$*F4lvg-x>X*sG$}WZT>AF{V19sn$JcxjA@0*qevlJs~((J}bRstE1#+xuz`Qw_g z4e~8~iKKjCSvLU*Rw&-dq~~8%5aS zU}2~6>+c6q5D2?kq66SMTkK3(stMPGe$!D^_2+TeT+WFURKC-%sIQ7%n12Iu;|hqi z{P*~zXFn$PDijAZSz>74Q@2P?yiP=JT%NK|_sN<@< zRi+!f-;i^i&xhJqGrha&DCw7-C)y93yX4ThV=G`yZ?|bNMRbaSb1KU^mC{IDmc6hJ z{(SH}UoJohb)HpLHiDH5e_ISbc3pa^9;>#mcBgIcf2HrXq9rXa-(zJr)B`}Y#;KRm zc7V1H9{VdSK#0NsXGjSIac;97e!F8*((xT>Z8em+rvr)PMa1icQHKnJ&c5E>k7{_9 z<;BI>xIbwy2^B|2c9zfJI}Hu=Cl#ODk=v*cl*S?jt1X#+Hx81)uGOR8+$sw zJ3<(=PANwh1}0OxHHmxKo`t?cxJ-hD0hSG}$Hq}Sqw{|qBcd%i4I?Bat{$Dewg)M$okQ(GThcAQj4;X#!NcfwV<86cq2O1r5fUs`B(2HsJy_Ib% zUvf5dnVpl~zQfS_R`to7T-}moB#nqf`&pW^^eG#P{cQ= zXnmEQaxjw>nnANf-NzFNWB8X7@295Pkx>yAhQ=}9P7D<{sqRmvmJ1t+eo;OTuYU~c zmP@GDZu8bh2c}P3BLpm+Mk47jQd2kP!*Z6yQ`M;;&t7F!7Us%O*RYO#eTYviY_{8c z_@UUEG`HSN`0No5tNoSa>E6;mk0zXA)+qFW=K+X0F z_`ajo72gEBO0{%k1*11hJ~}!*|Kvb0&?cg%27`F})-U0|57xo4S=5p5me^YlD)XNi z`$!jsxt_IRLOcB4z@oOVcLH3WGCc#^rO#;Pm7@}E2Sy_r7;Q40lg-qF3|)(rr`LF_ z>#GE86k$fdYJ3lxZO(9q%@-nZ@$s0i2YoHydQakSK8_Ja0^=0IVCBDpm2ARn;LT6G z&Ee{=?7E+-t|F`EvuL1r|MIw^l2~Nu2nx;rh=b2_O=+K#JjOthr>F%4X(X^8z&mi8 zu0b|Gv=Jkd;IV%lMMzq(U?}x*JO{#`)O)*3k#3ap(J&+0~7R-FbO5GfFaByDQSNVl98d2H^#s8kaRn z@10OOCfvr=HL@1fP#p9qKk#N?jT71(jCm`9pd7Ud{O3noG@VZU$Inqtf~In9%gm04 zuOkgARV|foBL#1aYHW!Gy$DB@V@`mj?^)HwjWe!)o>^Q*(O(v)#;krBgea_mg`JaI zNCQmh(-h+1z<#c5C%;J|f&4t+!Jt__1LV5dDr2OU%GGXQR{8N^)6pt`!zG-Yw(e~e z`lY4p)f0C2GC;udWPV~*J@q-{p=#hNh%{XpQZ&+3~7cGMro4N-(tih49{>+p*N&Mz_M8iOp;B=l)Bh zzhV?SXqH$yAZu|PB+Rz|Vc0#T51R2H@`5*MnAw@cVIcbF_ORJIrVb3cxmD>}PNMAO zH_=>+rfUyZf>b&`w%Gib6X`)Ivzv@kRq9Vz@bb(_+vZM+ z##)sxz55+V4HJ)|7QTSA?@5TrED~+R?@9EW&2x>jg%kf{3MTz85)&|gQeiS+=_L}~ z`yK*A8LsvuVNgvgaYGjp83)@NPc|e{YWMe}Yc-#a@s%2K@E0v{_i+edMoy%Egnl2i zgyB2+Nn}*KLJnw>$4cR20mXgzsuPo)QX>)8C@4_8G8!smx9*gez&IzyjtR6vao3JaDVTS_O%D^Etf4JD=X`# zJn08usx%GRF_3N=yuRJ5U~#{+hE1(If~1=(M)2*wk5gBN?vu(RHcmV5+*4diZCTB$ zm6KjdY2cyk1kpfSp7n6x_*H1uXQ;cGABssU)UAZH5sPMuS*Xzy=-QGbFw_51z8(1X znQ5|=HV?a$j5hl+oCgki)a)4z3ubQohQn#gU=|BrpdEEt`;zo^GCAk#oK0+0^r7(A zui<{ROG&lJfZ>Rd>jrk0Q|!R~jRYYBGmWbhqiN^?!y!YuPG$i?g6BYT5E)UtY^_H2# zahHkTd-e_JytJ|?S$XTDau{AyW{RBB#y3_<)`=jYB^0szE$!R|@Sty@2h*Y`+k7|` zqY_@*aA;B{5QMz$?!ux{|EByv@Vk)9{R%%V60mxTqV{2*fca3HUQrF72?uCr&_%F) zMj(vG1(bRC^R(>$WiWy|XnHm+7CXW8`4IN$aM+v2x9C?18l(aZxB;Q@^cr`lF zukP%#@vYp1kThmj2PInpIiNCI{4V<%M zDGTUFR0srD#LG4|(4JDm?KnZK4cucEY*j8`Ra=1}%EXFmxvW!M(4-!vWKYCb?H1G| zVpm%)03Wz_Q``06(JFlihkBu*OmC!y+;L?I4sWN3j?VI{4BkbF>u0vZ#An%ToB!{` zWSdvOq>i_xrs&;a&1r-lkB0rs@DlFKD;GCc^N)8&krre5hQEGbRBAFL@wqT9dfnMD z+<9LP!M!i0+gqb<(IE9-bU%_Pra|`mgajk8zo6GYIqc*zvEZZ!#68H#ko{=%+}=c? zzk4m~cC_(#)HoGe><4@5Seer{UbdqJm*JMHhr^c+o2^fLN9{2E*-mu=uD6c7c*9F~ z_X5hDicMdn{GOCVX09Ito?xDGjMP7&!3%?nZb$+_x7-yh>nBGYeMQxv#=@We$}#pd zhpPB3=ckC2{(`Q`8N^CwOLBpr#>&bh;-@=Vz~+dy`z5=!R5$TN{PM+lR)&BP4QW)4 zWI_R$R4B#6!bQ9C6L$p~JRg=YQq}NSo*19W20DzR*pJ6~iyjdEmm~4hs^tdrd+(PJ zHLpvvCfh0WS{%I}2nWi}YI)itnQe(JNht+iY7 zl8Kle%gU)odalhJr{fhIT9Mh2ZN3j{plBoJQ^a7_8DsR&qtz7K6 zz_lWthJ$(ig%PIf30T=2Ne>ToyZ`hO_MdeLq)-rwFsO{n{1B5=hS^CR+P9c$GT+jWI~eK;hTvC)&G|i2EqsIzVrNAVJBn zIH*CksEU(IRRdz&5i^KO73)T5AhajVBzcpl*lHp{NSk#V>OT?gL!M>h zRiyXD+_T;cTnMW@FmQOj@F4Oadh+xIm33gk!)rZG;mja(19I1`War?%5lL6RY zgU|a1*TE{5DuO`5Sn8GWi9_WKe|W&e9;a>I;GFZRUmnj~vr=m7{l$noEk8rtm zc!Mz?K99%iTB|YHK`{)!}Tp7rVZ^Lb`57>Pb%xc zIN5P4T+ocI03~HX@qIaec|CKI4U=(0mD?bd_C*bCXVKS3=9Wj8bOmlRtuV_jm7vhD z3yzxnA|6^Jdl|B0L63EK&xZqh%GJ7EQfFYZ$8MNU3C^-3-!{`zSE}9O$!e&ph=|Df z+>jpUQb6O@O0T~Ea4far=1~Ztc9V127*_{(@$ig?!DIQZz~}cH8z%_DI4bctI6PLx zYUqzr2!d;OxQ|Hpks(^XjKHRp{7rB8ld%$UjkquGqDQX-m!7Yj_T-BY9%V;c+jm5_ zjM3=C3b_T3wJDkS(M4Y0XYayw8x)KU;GviVUxoNERg(D( z6bTl+1ld>Z*a|PEZHtj4co5ccI~6Hc*26%JSA)1p6$m+MH>?rx8D8uBCg}<}y|#=p z*`jiNii24kE?yrRaILoz>7dg~*RS?>Ya=oW$+Hsj%voX{OtuTc{rN|cs zYz}5GJ~XPRI>w=PzKi(Iy0JZ+KN=rY(QFjDA3|95{xWPhWP9wCC@~>HA?Oux4zr-1 zD0SrTlQ;aK<8D8-?insm+jf!c3hCtS&HwbD3-kwdx6vBHuulqw8Ma^G>Uu{v`0O$F z7{CjPw6_571{|!pz@a`7pA$LP2-49}xgB@9jkiaG^JxSy8#I6Y!qjV& zFG(o2n{#=THK-z;WSyvE4g|@F|5l+2SBuVnGo%kT9f`)8s}8U<`d#jMzG1ZY0~`o- zVMMEzsxsFmiDAB7blH**amA1d5&X)UL6Pl) zTtOKOy}Qv^R2#`tlf2Op|CUt!rlW2kk=vFzll-I0J~V;i)Sd}#X3_1)LH5%kS!L^f z%vU;Ch|=$luHWOE8J3~v$vi~^kUCYL>N zn0ps`jP6X=6-I2@Ic^dUKM?Xb5sU_7`_3g)?=k2{rUX3WpCAdLpn0qStwcqe19xD1 zN#1=fNQTS{2Lr+v^Uf#mN#wJ~Q|D79j&Rr0m){0tvmlsZO6d4~q;P~n@0Fbj?^B?l z!{Q~Eg9!|T#a@zP`+98W{FI(xXS?b%@3&*vCr(Fwb_--MpG!!7>43*<3$^d!)2F5o zI?u4Z61rlD;arQ3LyjD0W^nM#`7pKmNI~YoCP51w8Dm|zjZE}?Q$nIXO{RphQ*yJ% zHRly+Y+KHp!mni-)B|G4N5&7Z8=bkZeS$F(cuk|0dQQTh-^&}=zY0Ef9d;-w(pusi zcbybgGXS1v1&uGiR)RiY1dX9*7RY;RiX&KHa~Zg#EG}V1Cv{tHdGRQ;-R}?tJ)Ez~ z(5zOc)>Xof;Tf%lxNm~Nmj@5woTW>$csqD> zZ3Cg-M|y=~WsezZ6MlQu&2QQKVLtB5*R@k=kE&MIf1>HW4SL=6d{a9vaBt*KGn$lXa)gyu3j%>S5@LKTxfoM;$ zM!=n2HGlB1YIQWmgL8;qLiGXM?E{DSsiN_IEUG1>F z!6o=v$u3aIBtEk%@Vvl^2endMEP*$Yn6KzptI>Flj#=Z^AvKB-U!iM93?lAtp+9G(*O>4X#+aKl4<5G~xM(PAS6B1joyUJCi^9<{elb^XBY!n7XfU`@ z(WWOd=X}Uf{Mi>GwBRu3L0P`oY=g^qw_>LMlS8i%$M7t@ejpEcNL7UxBo;eW;XBFt z63mA~6U*79#1o_krwrKAZ_oGhe{C{1UuKj(6_1xl;WoN1)>0T*W2k8;^xSCR2u~%L z*)+TjEoZ&bU*@6lvzIyjCSgeSL8D6A^I}#$UJ>RF05wj+?P_RW8uc7fpE{U)6hDG@ zZB;*0*eq3!+}kxC@_b8axz_6X9g#KeIF{2OcY3;!0@nF^Czam$;2a+d(Paq3JasX8 zhnT~|^Ct+aoC)2}JRO^0KY;6bNPL&k)bH;P` zZqMf7d7l2^_X<&Bb0Ytyt`3vVpDfy+NRoXeINcMCb4I9%iC3rBG_DI;D6ukYMOjD< zaec_EjCgou=WW;8F(^8)aU4cSavXY`lT=hT(7Dw|DS@2+bCnR=WSl=G7a1%i_GxCXE~EmUvx_1a-Bn7I^nNNHsPQF#{o}a5myXr8%a!xvW-JJf(6Pa?a@YIp(Pm;+t|$02@9hLS z@7dWqH9$jP84p0%c*GDfZSo7_m(_Gnau&MF;i=FPdJ~$IMU*4~Z$h0rlFT8sef(R8 z`@P?VJc6LF*SN!@bO_N%G8r#d!GH>_5{FL zl$jfYWMNF+H#avYDxBm+V!!LgS?drG5ReiQ6HyuRpw;W7Q)+#C39rydgiqz0u#+)! zsf2_gV}=So>dxb}mPZZkZ3XN$<%U(vNqfe8usUfTY>lR^$VTU(Qp#j&8CD8T+;MM= z%iP{6_rHh?u@dRIKr)QHcvb5CbIvxkii#{eP{qO@To+E`MY`==C%1Z zcv7E90=9aTsJ~Q`rs8LkqZk1XB^!W=d5T6HW0 z-`h`wPqT@3{p6ow9Nes6vkol5f4%6Ii@oUNkx$GE-6FQ~8M#X$czq0kJ^ z8=KU^QL@rjM6GD-D0Q4Xx*ZLIAX)|LH>`!6jY%X0H zVr?@ZR{}c?127|=zt!7$ApJ2&+$TXA8sjm8#QoE*&Gt%Qv{j?cOI6ovL5WOA4&K~_ z@|py@_4R$E`-BP!gI&Ad(@J@pI0OzhL++Wl5`vRpza5AucLs>d_V+^Y38i4obD~1v z)6>LGPIe%UGcdA>E)3e7)?vd*Ngo>@E|tbvsXmxs*C<9MYY8{GWM)kW5#{Y$-$lYF zcE;O;^D+t@NccpoE;-p~_Y@i-F!+@3f$A|Iw6cZwaye_}_^^ZsE<%ubSI)i}PwgmT zu+}Jtkw2vPmk*(WC7StH;t5pwqy*IX@Q=YBBd7ii}ZbISz~?&v6=!Pr;~ zuuaAM_(5L~wk88Pd>k$;^tkVul^9!(v{UL9XPWup;GQus9a|$hcY3QF#&vG0H5;GxM01 z;-&gSJ^XD>TUfboYiPkTcvEWX$|nms#f4p5rQW41W8Jq%lR^WrFa$tJG6h~57#Iki zOc`f0sZV)ED)&bsK1dE{na(MFf_Ba8m4?KnTGso87Bn>q4%ghPWdAb;PVO?VBpvKd zbYvgU-;a;fYk%AG$lkeV%F-l2b3ELwXhHb7T`29g-KwMJxN($FksqGw zQg{f|saN>WpiN!2@90E43P)b&@eAcwn?HV`ZR*QYEA))*9eG*Shnbkd3kfRTs`na| zKDn=Iopt7!;JMH7da~dw3*NcW9xS@I=ifF=4d%i;xQ(Q|)G_ZauH9SIwB6X53P&CLE1q;K_5sJ2)(`9De^M#yx!r8OUcJ&`J*LBg9Jw%wlgP@LaH-NNj4)-V(zzqM?bqPy) zAIW>$C00uc^+9ImcoOp$5m}@{QS=gdN5p5sm|X^}&)!3(WQfCh=cwSEH8@zS_Od0i zf=kNg1;vtmRlztVY>uCwQQshAadmlL-Q{c*H86!GO90_Cyea1NdPgUpt={Y)g+KGP z0cBjVjSa^49GY7)tCRAaMrAHam7ektYDpeC4Yk%9*ll#e30E2^mjuW|@Dc5!)Ex4k zh*=a1BAM95#^`%dIGWHL+#^rdmnMXAx$1;juF&s^G$(eLQWpA8?OVmDaxf6&gh;Q3 zbj(SjEYpWs6proOcRa9KINDWl#&mhwXnL(e02koxF&q+Yx@=>3o| zWXoM#Hx~vVmM0b!8iWwo!+fMd_Y3$n+v9$Mgv2j|#nI?+j z>>IB69q;>eyz5Ksom=?Mv%@wvjpNg1=ZP*aWi z3SJz+tKiY0vV?=FbHJ{pVgIFfQE=c+b+N&N7p&iu7?0Wy)(?!B#KhP{odto6m zKBpt-CCR*j1bz*}&2eUC^?aUL#%;}n7w=M5TR8b|o29Bm5)AbdO{5ah=UM{#`zgeQ z1*n0cO9AN5wuK6YNR!SzgU115yUgRy(7>_tekOI;bu)brISCSH3ZGV^SxR=(@sGuH zjSh~E6b~mZF3KW??*uM?IZU9Y+@0?#a4md^4-sWV6CI*TZ%x7lFJ8A(h15cXoKE3W zxSc5;s-37koA#v~5?^E;+2cr5n0$5I7;gcP{YB5-wucd`z}@KFW>;I2SysrY$F3tR zC1qa986#I9I;S4LPU9-|>~X)dQ*WjFRSvV3qiy4{nZ=rU6DO=WQAX{?Xug_U<5mR0 z4Qz8{3N_}tyXjyR$NP2KrnS{=kLXvhq|5lQ<=Q@D2jNWshK=yw>K=Kb{L?1&`;uh& zcWEQDXcSXL@je_ZY@x%EzN)TK2$hDq?f~rTD^&VrZ`EtjV9 z=3c&%<LC*cUbv2f7=3_89^^718=MEvkB%ym})njb+M3>=nA!r6RPNP%GKH*c@pf57CobP zy+Zs^L$>^qsZZ6@G_tL}UXCN)6O-DE6T#;GM8_D(BJo{OImO%l#mbNszK72Qb@#xJYlhvu2pTWXTdG!N+R(7A^ zZr3|cG{MFzzCTJ!fibA`4T%ONo#$4n|42eI_QhN5x4b4|o7R@UD_3+W9TP^WI%l{mlOt(!n z%ECIGO8&FelboGuxt@_lPoy0Hi>j)P?@x~$sq3eMW|hQE-C@nOaJ_czB4ZR? z;~4v$_if~`Y=e7jEUuPt7jttz-*sBJJB>?%%DTp03s3onjvP%VFm9jHzL{t~z2p>d zR*%TbGlTX`>{%qHBQFFp3W|W>b>;q&(U#&@PhHee}2Gx5aXQ ze5Ifq)Hvq3U^(6t%bZMxKh@itT?tgCp&G<0&09>9hLx-eny*r65{zng=ud4s6fCg!`Aj-CUmu)#P(% z3Zdp6S98k3+u#VDwdGLZ)nMUdRqxBWj&YvI>q?e4=(^IP_1h;y2$xTlBda(K$8)S- z_}0v_%xEH~cTaMYZDOyQ7Y$MPC(Msl8}%LY%1OkT6~~iHCB}bx$RQ+NxeXQRJP+Pu zrb7SuXe7W~i3EE{`j1pJaw!ULZsqeG=^`&V(LnZHhsY!n-2tG0G3N6$xI%yt-xgDc zmR|lEmPk$inlm8Sa%vC^gm~=sHK|M_K@)PLV73sNh7>FX57p|{-H|qU+WUHjD=s!x z%4LB!k)%vV*4ypgf;M}!bSH6i8$-b{^(>TG;Nqo?i<YGAv9df znbkE8s>w?=dJJ*foRK9eg&R`;>vNiTd-J*EyQLj zB18_zKusWs;0Pt27#}XA|97>Rf4~jC6mCC5W>EcGVfzF`ZsM*P~+;|o!Vl@m3P+C;@oFSpT(O@ z5*phZ!J6>Aw=)@_*^H0VulWdI&7Y1*Bep#%8Wf}mOqz)=2D_hfIM*0VJs^iO{J!?eOLnGU%=|XSU3IeKRnlNnYFO89&D!}R`+793CGaij z*{5NA5k=aMg;KIXDa@cGacIvi5&|$AfF6?tvK>cXK6s3ts6=K)nZ)To%=(LJ$3a3% zC8H|e=oZWUE9eEa@FjgrqSlZ#VPZ_PUR8y6T?`@m)R4>hs(^o<^nu0OSCc|7c(37o^W}hF0Z<%L;q+e%r-Ed~8%xX-@-Vs( zc_kqE0M{KYo4bON;c&-Ic6C$cyt;<}2NC(^D}Z3lTkt-Tz*6M=o(wgUwC#E-Wj?8i zDzSu7h>*itJTaF1XsM0pS!GU(2Hu)M1|z-Nm#eABu#LcCbdFc4AlBR2be)3!`8jqz z%a^GtXk9~shoRu@b!|(xES*Z0_dhsA3160D~KUosYIt!cKX!p z%+eQ(RCYXA%)AmByOkd@ST2=^2k=e#YhfMMlZ%Tyo~eP4tJi43f6m)*7hDYgGYcSb zv5r5?2C&I^$(D-|xEBs55}#JOF~BW1EVJ0S``0Ju9)<@{uLz^<{lwVAKUTA$PvbRq z26T0e<-H?Ono+7f*~PcgfTrm2?wX_y*8G~};zT2uQ>48Hncd`xJPHBo(IA^Q-^|b3 z9r>GS<41s(m*DP(7Wsy_-LxH@>4;@&k|ruTsw$$rD?=s%^iWptU8^jX+T7*rfUV*q zBWxNg^9MSx|L|Hm-Cki-4F(vF?EB8C-JwxO3Rn7)n;)k@W3O#|x*2+I`P2)g-<%JI z7#nHw1xkto*^|aiRbZ}o^&$7)eN4?N4vpszscMUt)NKXVYHbq@AnkK!4Th#jfSc^V zN>vM@yKK78E?n9*ecJ=JywM&JUK$Ee;ja50efo%cK^^9T_lyOYU_$( z%FHSCaVHdJs|@Qtf^HD+=rMl&=wMVi3IMFURLK$s4P@}fmZXeAmC2iFK+h@^dsgEp z5TKp$2!r~9UK^~YZ?>V;Z&6Py)tP*la0UB?W|egx*=&kiLiknkt3GF!?;N+8S?Wok z7r{~Kj5VT~6%(}g(XXu)|4d4%|G*>LJCI6M#U|y*#BA&#dy`g;)t8O7`=bc4j*fO! zO!Miz*vd;?@2XtGmhe4h0puxz(k=K)VK5WQ+eah-c*M1k`fQ?Uv_|J@ntrt?<&46$Gisjji1(6DU#l_xIe&CyZD` z*fM}Np0^@~IE@U}VUNt0BL1l-kso6|h+;NO(3K~+VcNxKmn=s#SD)uZP(OM_Kcz|J z0y*>c{u$XRDmEUg`m9{3eDI(7j&z7HNEwxjt{&2HEE+|4^~L1keFTb zUD2xc4Fz==k<8W*_2^0L$^Bi2E+jf!@%fHW{JkSglLb#%WFmJp$SK`W$&iS!+%O;v?Yvz%*rq0# zeES$jAk}!jtq@Ik!^0ualFi59#>9wqQnQ0;*bQ@K)A3Yz9I)^Cq#fa3@~p3oB-^%} z@bV6GsR-zJv0>l8>cR(|H`wHQX)mT4Jv-?Z`Ql~%I%fn&-Azw!`>1~jNo!`9ck1?H_|4vI_IgW<<1%d zqFG+{h@zfM8Pjg@?)}9?t>by1JPQEFR+kBK1@YC`E_hY@l`=(9e0V`oG?8C@v-4krM#owrZRn z_?G@|HPhgo=sKwoZ^ORE?8Q=iOj!&e!Q-@JUx;Fkzf%zH+P9d|c^*vRt0X?Z+eN_$ zRJJpVnNp1b8)*|V$4$Q1g-LdV?4#F-n;!uwJy{O_;oF$IsXoq8e%?MBw$$rk$qOMlF2m3$^DF zgIIeEhg8n=uGx7OMLw~qlY}W}`(ADuCn%duq^$oDF(I`x%KALKTUo?^C!<>qxev5$ zZP6j>&ts?bV#@cZWwtW`{;BlXCpE>;w4k&3%C>)4mdWZq1D@hX+R(8gfC z1%&%+q~fr_Mz9-VF6n+nl*`I z?EB)!Or2MKMebZWFfsRncU?z^tH@Y}kjKOWh;_H3X${Cr_4NN^@2#V))e&$@LBl=IV6yAa02n0#E_&nXdU*JLPZucj4kEcB)n}!ezew1j5 zrKh6{&}sRpZ0*EFBJ}p7YGmY@TbYOW10f-yp-&Ph>;2`lcl~__YJZA%EVM<$7KAjZ z$)Rir2NA=9mbU(rk|);1u(Gxn)Ub>B-Fq)uY_oNU6eypC47(gZiA=d<-l8{}NVdri zvr-`^##@W1Z|VKRnjFs68#p^nVNK3_rG#5oRH}d zijs^Fd|5yn>?WooRj4*|tP~dgbsUGDw@fz#OH%G|HG68W;;LXNIxbqG`=TZ*Oo!K9nK5<>oRdAr=dfNg{9G&z#zWkoh)>`X}yqirkwILN#) z%$Fl=X1e|w_^G*4C_O$fqSyN=6YDrm;u2gSrm5WZ5v^;L!|Ls+T>q>}+Qctd-cKWC zp!JT8%_~fYCyw>j507+S1VNbY>ydl0Fh>*NPr1~4@iBk(7Kx$;QHO#KoSx9R{`6PK zch=5D2_c+STuFEwS&07AulOQD`nhZrc3hFA%rh4ZaU-<~?@j0pquB%F8TS<=)K&EB z@pNTWb+%$y-y|6cxy2~kY761UE~&s9A4E}?)g&M3$ZMNF@eF@)CFbq0>$kyL19`u} ziU#5Nh>BoM^(W+cYO{~9sy)b>^CU|_*k>yvn(j3qX=NGk%qNQz*waY(`1h|yh@Gm; zHS^Y0R2rF?H$||ndV*Y5C)2;l1bD+T0UrgQdcAVFhpK?IMgPO}Lk2qn6}{Wl@Su6y zx5kc7K9nG~*~<%M7|IJMwln}E`GhGO#8d?VtUW2qQuJgzZ+*CScd%r_dYY;PUQ>F-di+Jk z=T)4*tHDLj$nWpFvxoEj{i>6|vd}xUNZJ(|`@fI@M{*mv2H@uEywrJ5X>nf6r*3yTV!(oy~K- z;U7##nv=o;pAG!Mb|UG)H6FX#i*;9r z_DtebrEBQf;ta(%YfcIe#pkwRL2L{ZcPE%v#Z43t`&9LmN?~Cw(jZM_Jyo5-sbZ6wgn!VYUU|L~*f7uQid`14GAHmry3?kHRcn53O&FepCqFEMHh-(uI+$!3j-OZW z3{`y%g^XwnSvcTV8t7<=B5#C$4ERCqnEX53Pk>LN^rMk>o*I3&h7Uag2N}M%<7MHU z!cWy{;TF}}WP^3l;{AAJy8FFWLW-Xy6UN_wY+9ypoGp$S6-eryU|bhqJ6#S=K46Ku zt-1TxnI1Ce&@(Q0@=Kgrir+2ZQD@cFg64kJz;`V!*JBR3(y5k9AYJZIVGr zzkj?VabRMw_Hnj=-E=Luq%rGfwz|J@As@ydMPl&^k}*j~3&C-RM_2#)@ufxG!uYi9 zBA~4OL76qFFg1`Dl<<1B!z7^b*Oqyvshm>}%eTAb`Nt9Wt&ME0zJTEis-`bqz;!1( z(SsN~3Ezq#lQD4BWh^LdP5k*+<3U9mrNlRwp#+@j$Zn{Vn3^S1Uwl2r>IS!UOsvjT z$xzF3)!XXz-Gs zrlpO`vx9QDIDs>i&(W-CU-4H;?ub@AOF`j532N^+09CA5BgHcrFnGmsQOnx(o>3M|W$S|q>4Pq+ z_j47^E9TIo4SHjP_fy4zNOcQKSNYmIzlo_Q{2#FG(J z9d5885c@3Y1ab|`Lmu=qZM2y2Cjw165>-_K5nlN()}345T0E%{yj#tI{7r(#eRD(4 zVReC-IH8t;Fkd`*`+G!^ZunMirjlt(USHwaPGZr<8*MT?gOjY)>CbKcX_pib2b1Ry zwm@ZxdOLtUE(+D$dG;zQe`z;t5uZ@H#YMtlHU(AvW1?I$SyFMw`h)bA9M<*%Xj{%R z+AtCfv&BDT#0l@?eG|-zxKAfZfU-!}TSYyUq=re72<>NzB2s05OgY;q5m);ig+JiZ zf_`E3!V|55s6J8pau-1X#u^+9apncl#5_uuwg;jihaiLAhGV$H>XS^Bl^?Zm*huo$)<*wWp}~iX z09@S3n{2KhG(+yo-o!|YGtMP?>%l#UzY!M?0>YzoB{+ybr&t8hS=n@3btJ}kUG&Np zZuxF)yk~QatH{XLs|M{^Mk*p_EO^^TDDKoR?Y7VUauiEuH)YB+52Q+Q_w$`3-LIcu zECfD`p{Og&GOs271^lLfqitjQMy#7_8nUnSe>d6L2 zbs@WGVWIh$ud`Cth2&7=Wb~y08s7dxQ>zc>)hQ%_|KvFoMpWE1Y6qxnx-@O@@Xj~H zk~VH__(Q-#9%!5U0Pb0D*x^18Y3c1jV%U79Oh1_93D;|gd6@3ez)13B%X+LTiEN_b z$9Cy?Pc;90b93|C{&c`Kvl}vXKSAEQN#J|2zyrbxlBid9EBfynSl;&$3Ffy>lIJ{E zv3vw?>>3BmA8m%?8WfW^PKxh8a38R&9@I58tWsm`(Mi3NI*5rc#|~f}Zf@*y8XjNqcxSa+rx2 z5OTi6s0<68YmMu)BUE{EaV^ehmx;do=>Q0Oa3H5 z-~AwqaH4i%_Pd*PE?pQ?d{mU2lJJRNeUg+LY%^w6VFAjV51dRm*(XpY0J0^LPLBCz z7$JF^w;9?;jpTMK`8&wSb8+`UauMGbY2w}%QyP**49G#c!C zJwRk;smEcYwn9c$7gZ}Uv8WkGo_S%a|F)>^<&noFYxuO7-GPX;H7Tr;c{EMtaQ&JN zFm|L^I1&PtpvNtb$=gr-x=OP07gQ|n(dO-b%wc#z```R3%s3jN9rgc86~cvu^p?(> z4J}PSa%23F9;s{LDjw2X;_JSK@ddwoBnUU@M#-D#l4zcW*6VoQ^t~V??mj&gPn+Ll zE;GORo-?D>zFvau60X{6W`vk!VV9xG+Jcf$Z#Ys>(+WYQ6}Fu7G+!LT9Rzi#tgPHx z-<%N>lG3tNflI;auwb3@oYbcTJb%0W{k36kp?vo5HK@0+wKE=sTBw`?&8#xvB zBSN&yM?re7dk-I=qE;2WTHO84FkZ7eS!Na2z1Q{0^4z?emFp}u7SKZSLXpnz0OKJB za-<}#KrZ?}aNg<$({+F*_!@ATkbjU~%LyDJAsYNC8LH_gLLDWEOC}0{P#N5W!N?i$GhFhf*TNGA`*oy65Mw3-3@PC8QXTfDb*zgm`ba#S~f~Hwq(fR?vyNs zZte7nflFKuRdPx4R;;_QumNrgU#U9!Yjbqc4%ehR(4R&?huZ8 z6Q=)e%bnpUoowNV+N%n|xb$Fg0bR|jNf;LgXTSgg32BM&t3-x(XeMMm!~?Q!0pwq^ zJFhMazEB@EN`-i<1R-a4N$1w}YP^LevG*EK{U3#qV_Z0?z>E}AA5 zHfsYO|2pTbS87K=WFx4jsU_C8*^p;?&{oh<6>+hQ@X&rC<>mB?)) z*_}y2N6Vdt6%}daGZVY?x^C+eoX*cZ$yfXKE7&pl&wbYP_?^=qg=sauKJiG(y?W;k z3=o|~zd&M;oGcwDXM-eWt&uL5=1V6V8yi^}g#~-1jL1mUBqypYK6nR=UVk&ZHX>LC zkhp(xl-)g%A~0#3X%3RQvN}&u=8SXpl}rAU?oU#fD2~FaQ0^=}%c5S3O!U#9od`yB z@b*)>)?2FC|BF2*?9t*JN)<(%QkE*-J0_Z6`NdzwQ|>2rT|ThpG4e|Vw0Rh=6%nKT z6Do$j0`vDD(cJYJG?E-=;mZ!184?1| zcdINGJ)$}?tW9U+EiEYpWn=n+^?l6T`XwF7%XEDd@m#9vuY9mNJ0K+&=mY*~EL>;_ z!V)zXC7zd0w_01$GU5!Neeb$Pk&t$?wApj}(jg7)BO@bi&(iLrljYfHzfJk^-hfge zmBWuli7l`uRG_oB1G9=c@yJ+>rVltn=HP;@W+|n<{g~HubDMXQj5xdBJcARwNL=G^ zc;l&YHIw=-?3X@A@-G99_u`1mYY|NX#&|gQ@0}0&lxCSt#?LM8tmK6e*-)fHY`Z1T z9cRcXJD1CqN~}4oI>hnHxvTkNL39dhYC=t_8WTS%mW5-UU*We&lCsjNR6iQSJ~-JJ z{4kOH?WL7kv~AYhVzm0XNxN)h5(YzF;^P9#V0YLlPFK>S&rj@~$Jk!Er@Xx3bahS+vNTs6MSeb=aW6y754m~;!Yo3YDrk>G!z+ky4k z;?{Yz!hgQ~MKy|>Q*;HVIOBQJJ=AE$NMym<2!U^Dr5#-yk&wJNwpxYo+msdXLArQd z_l6&kmnwMkb(l@i#FBnB%_tOPXHSCc?cf(#$xxgL?N$5JeVZ|exf)?FNo;8Yg&H}W zHC^kvY3ppuEPJdBonOrSj8ev+dODTsC|9>re0Om}Z7;qYAxzvVIb1!yGvbSZ$HJYk zpkxaU?V?^l2E}LAeyZ7;#F`SI_x)VI4AC}b!YJTK2) zj=z>doB{+I6E~8xH$$dU<|mCatL3b*T7l^#$mv&C?rX=s+{&%TRvO^81o{ajgcXJyVBmrNkJmqvtZzq7N5wQX zwp0?jdH@Is>OI9#?sDE=jPDFI9yU*zx6OKRtRxZ?jsaa-pc^va8}@bE`P$Fqic3@) z^UB4eG7w1FI`4?V(+?LXDn}&3wn1Dr6B7QsqHiv^KAW|rdvLscVc^I#x9Q@#^*Nlr zDP37Y_W0l=>j|a59o1^-`su(@kvX`($bw&()d1O5;yLsCooA&_7z`*#OJ-_9+1SeI zc&GwsLdg^sT0@ju(TD{^ciayv$BVagtq}Wia&mzEl+~@?$$cC4Wou;WV|EW?4HFPEEm-oWXtd zU%mwVww@HdKqt;s56hk^P~%T@Im;nN7SO?kI*l=mpLU`(t4kckmf{+o8Yv0n?fWi) z5{L>q9*-PgGo!m7b=y^1eGMGF+@4q|;*xj)y(;9S!mN_Wp8C)-swrRZ18Up_(I-py zyx5UfP}Km5NVDaqZ`%!Cd5Yg+OxFP+MmAU>(v*J?I`WV>Z_uSiIR3E z@ii0?07+gDp)Gt+lHVYcI6CA8B%Iy^>{a9&_%Or?G_|h*GOr2YuWG!Et6Nsry8^!O zYG{Ux+*4SXh{e<6(j3nRZvrT&pLm!1`ks_kA>PyVG%{$3f`^{za{&(=g(Nl=&Vz-- z(2D)mBSlV^CETbr3OpjYbBnzP)W2h_^xzM@JOs@l$wk==vWhZUrUtIMfsUX9Yohz0 zBtxj7uBf2{)1UPQ9+6yJ!=pGEIIB@P#HB`eSJmns61o_Pm7-_5QY5i$=WG4VDy1SwC-)6@T)C_+f!WPtw{IT3sX6GBgt zJ2mR+h+IsB*&vxG1QjKzo5o^c?!HadXgr?9Uj{A*VzNAL-wQ=n6t~uTbXN*jhi&tE z-VAM_cegU%?bCSjga{-ZUAkc4sQZnl$FvMA^tQ?m{yBBj6fXhJ zwR7#L{F)k{X{e=nLn_+8KYAmM?G!9SuieE}ZkDZY@t1L1o z&OVmzE;xKegjh%`Z5jy5*X2Zfj?kUM1jcVMFlbO(^IX;U^oFZbi<7l$IVaL`uCNSH zVXUV9VTAdpp7P8-dOnZT^Ji|s`yZm`oeRCdN<02KEWiiuiBf|-&7;=GX^VGOJt|go z0k`P)fYNJE6{k9c)ud&8i7TyirnRjT;XE%TnK9GHP#Q5f4U&X3a=_29mVUT?ab+B?+=a^DJ!O0hD?G$6wK zB78QlJKk`@Z9L9Ubyv^v ziv(5<^YVHM5cdc1Euod?oW7!`1;{hST1vdNRoojx#m}_@eLrKlmv1AgmM=7jdO+bwu7C_NU*{N8NkDUs*y{5i|A3o6aVca ze5CZGc)0U$^eLI{B#DX3oXd>_O?qn1DHtjR-QKIL;gd#cmE!!66R3W9d&x!!XiFX( zYR6V*XVfgoBlDbIRgcnq?tvUyZ&t%l57KGlUx#rNv^3$aMuaEjumZIPpjQi?(QyXp zRg6u7=k@$_0K>;zovQVgn{jJeji|#hW7g{0`OE_(&*19Vie}Z_pOYgxRjWb-e`wFz zWQ0wxo$@?~+a^q?FVm&MRYFoyIq7#P6Y0)VZ+Q5^#kk*}3hMldQa={WJ#k zjhzIs5RP~JvWmmnsi6ZoeM~H5c5*OteI3#C3$z~#BBeJc(QspMXP*GQdfTO(PI>b| z-zy}ob28yi9G^Xh;@}83$P`S*=fwZ~;Y1#IIjGplISOK*f;^l%x76|0bJDSq{TcST*H+x9VidHcR0O*n>V8dn(Fcgdmn;*u9A)7hOny5vYzzO!#@I74YiyMT4YfqVp#Et*;hcf{S5|e{KE>G0Ww*S=P5)#gKfr(aNw$r z^Lf&^_cFki;Zg5}=)Pa9oKGSL@6?!LOZH(0S9mvS_IvX|wrT+Om8yzYq6 z$8#g$HQsQS=-eWb*nfMvXNXK!;RamSW(qF!2)!ud`)yYPht9uM2iNUnZH{~cnemU3;slclQQeB|o>TC);9_|(xa=Mg`%;D^+A=eR{Q&COylA~hAC zLdw|6yTQ2KP4WkSaYzt)0B1lSK`AOTfGYw`y4y#w-rdoY(IkBIzP6!*2xVDM!QJgd zd5jZNB>42~7g2Fp(0+1KlGF+dm5Qp}gA^h6u=B%h#RfMg4M(>`xbu1BEVJ>&KoeqL z35miTdg7;-n_~w!I5^@I0{h4-NM|2l{>>jH;^KDEJ$A;SFx{;=jr^IDL3+~}oy4g2|iO7*0O zUcE!bT66eou7M7+k?V~Y7lv$*ZRZ5+J|2$FiPvIdNqCE?=d||LakC-3G4symp&X7? zU@r5T0E$1XOS+QTCL&_)a71cHyM4CjSMJsE61%Vw6kC(!GldMDtMj1$T~7G( zS-`(kb^^59gk!mtF#&mVM!8*9T+G#J5$=O^_DMby-jU__zTtBJW6s; zp~tYoa`+x(D@`?t;kgNRC#2Qkl#FE|FzDu#zNsO9gYFJRJZ-x9Abk((%b~C;)~yeb zT1YYFVZS-HFI0bf_dw+ItSpMP-tb8)-n5}Aac;CPVrLs(_SSkRc&?V$!7;HNEI9pu(Pe5Y0hMAej=`9MOf3dsY`Wr*pY|fX^2#? z83a{R6|~Fo>GQf)RafH+9-UGyZfv}!4C7MF_naXm_C2$x)YXO)v^kF9_~OaxxOoML z6jw~UpOYylerVCTgV{JUs)GY-^rZZh8nj-G7RxwhC zwhA{JXV3=kld-B!^fW$&+xnB#$fpNt_*%BB?ki89y=m|4jw{)@Q;Tayd!=W2WF_wL z-wH*Dbqfh_@#Fd~(wL6|idp0DK$|J=A*B3KEEs1H1k+*PGIefI0lYsV!v$IDqenl^ z{hQ~0{7IsKCQcmK$91$z$dKS|-qlezN6VK8X5Pm1)|Ech!C5079V(Vn5tmwzISePI z6M3vT0KZk`rRoF0t4X45vvF%8;E)gd?o_M160hO&Sntwyy_o9N+I^mW{6XyfDq!() zN(FK;M0g0F?DMOut6RP*=mpGSk*$f!XA@wY0zC;osi_d@!&#+jTbxZaD}`1t{=n^I zT^41wty^>{{7|zeouz=l1c@mR1fJBhevvD!yLvoN>l<-Eh|Q> zgvDWUGhn8J^29IQi{sC05PtlJ^@~6&8!y{t?j96txL;VGS?Dy`Ce@~uVg6V+tar0n zvi(c#EEd76{q63w?@*QFC%!7cTB&eqeg;A>P8-seg?B`t^Hx>0tgD?{o61U6h6rKx zd6>Y}D0VLa%`5sEA&{hIEqmMe<;zQGsuovpjC`O zT9=bkuo4B#@CW?BHL<|ZI;p&EI$+BwlJHgJlDMJw&l&Bx;{G7KfpsF^7LY(6X{sOE zsth0r;6lR=J>Pb%cz-y*_*nZN1z_PrO<23gEK z3J;~CaGkc0arw% z+JM=x647&Q$Iy-S@!C66t_PO;M|&!u``EX_bjBt+KAx%2h>+J3qtcAjs<`?~et^E) zh7q6pax!o4X#5i^tWYv`(Jk59N}?)d(H}0x!e%cF9w4L9V2a)^+pPnWUP73%IMQTz zq+kTatX4%;emn(qK;8x{tHO05mvxSYc7zRzFlpm##gy@W!Rl_!dYSeDS>>eWOuYiB zOq`STeqZakfZvgdwudXMP1?T@4%Hu^pk!F<@%L-6=PJXUbW5jFd7=GvnCE$Ubizb< zoD0J~mqj@a$sk03Q7cx@#SxVy+*)B~?T`X`e5fBBHZX0Yp*_f+kHi|UbLZaTf8#?b zn5P1wFZ1z5WRr*s&0x*^1xaJjrz|8i{d`4Xs91qf!=ZKCz0klfMcljbA}on6zO}BV zMyvZEizz@!Q6?uo9*^TF(srowc^9PfcgkURWQ-sEQ#dP0Z&>RYJ~n8qM9=5xOX07| zDK+xjZ(3Qau={Kpka^hi;I?=LhY*XHEB{atp!I=7RQ}bslLVb&M^#h4SK)z1zyVLd zr5oNTdcF~;XsthdTnIe-A7k)^Tp7#|K!nHqEo|wBOmK@p^Zy7#&p*Oo7HD$0;=lcD zexhSn9O?YW>m4;~Mg1i)oeK)ABNNQh9OaQRQK6p^PR#b}ruAa}Too_2IdSj^RjuxG z*-S|U$6mguelFrgHs#Uz+&5PzRPfH8%Iz#0o1_ zKckI@87>Ln{ssJSp0Nybuzc8X1zB-eZ9@*L*^+ZE6&c6a?6AeWL-b<@KuSIW&%}G> zeL9h}$mu!4n)*+CSqOQ>xiqj+v2bzsN?n)Ed71r5kB;x}l#FY~>y}fN^X9CVb5&G^I zMjf4ChV=)y@el+en99<;04V3VRaBAnapmBUf|zjegkoU3xx)6P?T_0%)k6NcJLt_q zA{?^#YqhsYXImu?8QPrXcPHhxJueQ^3p&RZosaaln#+LmN=Ed3dGj~GH&M>EL;O1x z2fA@NW#B6wr*ar_C@h&(AHz7chs*V8s$epILo;U&_TIrIucm6!@6TpqLBkc!GZ};< zbBcE`1H$Lcdb1?|%54jHQZ(F%t(GIt_nrJ_=)dw-nMonzU9?dD3t??j|rTvwTj?c48d$tKjTK&tfQ`OO98#@LzqkF7KWp zM(m5t{sN|=%*ujNPrcvrtan3!!OXV9dY8+1&5`DadXUcFwsJk?TRi5~ncuS3cr_Gh zYy3dB;iR?f&aN<%`Jdb=_(?(-stq+|vZc8_X=S8uP%}D8Uys{T!U8!sH7T*2$yWgC zdtG5md847DSMobiyobyVN{mOOOI*GioGg;@sgdNvbWV(A(p^&Kv5Y?OQNny8W$$1B z2K4lFGNywTHCQWk437?li7<4(9>mbf#?F)!Kk`97af>nY;+gpiTVoU`JK7PUL#?^nE6+$2<*MKwiQQ-hj)!Z zWSYnV4e9jtF6w=nLmk?gqj?&ZX4SGI%_% zO_=vD>2DFx47cLc`KHxWDXXm{P>b?9+8&O<>uKsC=f@oP0KMClcnr>)qp^Sr6!X$Z zXS9O6-?4gYRBnbvPe!7JnyXb%FiWrgH^@>?thD$Eg3LzkC?CHq9AqXU@3A~U3ETz z+p-y&Urqns?7@Y?g`bE9#DD21+@i4Hpc#wXh)+njV;JuU-w#dCqUV4D$jEix`)4eT? z;PlrIMpVu|_=oqqk-1CcyPDNYwoXH5eX-F^3m04r%kD=EmPxlwMwbK zWXKS|z1D3RYk_LEQ^_G-z>r5m!mmGr(ze2OBlVtb=B_Z|&&L^2H_Lnx2QnP>S|33} z+n-HQ_D4+K6W-K=<~OtOYHtWjcyXLB*l}QR;B5h3g$?7NH2wUpFfxl?4e(f3&~qK-Tzr$)WLH z>=6GfpbDXP|Ghp~NPQ!KW;tXJ?w@lsh0)B!bYt#JWolFDahY@6MLaE%?xT3m!b0Ew8si@<$U^%l zTraAHJMi-Pw+&q3%R?0Eob39qB+lwc&}Ne8{(Cp;UB&i-X7plk-ZTn<;%SJ8!c}-- zvFFeySf6tR(zDS0cWCOAd7B%b2&lsw9b`A%ZsTZX3rTfg+v@48P;ANNc3?KcI z(!S@t+V+N!Hya(uc>!ne@J1Dv)?WEjoPTRYXa58B9Qp;#-v;jC0C)%YaJcasgzH_1 z40}@dYdzex4yt-Zuo?rpy=6SQlcZFdrUmmAHlE>-lFH68g`uIKD%Y2+B5P~?ZoRZEWI_MsQ;KyktC7u;w|%4 zuhha+nD|>SpmlWh3>S}JGXRi>oaH5Svo~JM06tX7e*{FE8=b92wAk?EvA@c)cGGv? z0%kN7Q}*VEMcgs+KLe*Q;x`M-jgiJNNcu?JZ~c3Dgw(KY_N$~pJB-J?Q($@$R`~rO zkiKGP78&HH2RHtWA+(TxBx$|5J)DsCW>|iVln+aasCv7=RuJ_&9DphhsSh!){Sc_% zdO^L9!gC+@+J^mEVXB142sFR_DEwT=9?1C#7$tinCyz1vfSB-dQ9&h6o^OqTX6Nt+ z`~NJC^LlaBxo8e?VOHj+vqCsnSlNU^j>`fhydH$2W(|g3xBMa=2@$;MI%jh!lJQ@K z`@Fm^6;>nge5B65=r85;EgO$hr z`;`ZZ=mGB0C1EBs)2$~KtXy~C8`s~q2RH!uis{E2JbmAvdJpAEnXZpDPy!Q?#2*=( zDj~xZpeWay-L?4~Pkcq?=~GNxZcOi30z|Hxqe;Jq`0ngpmKU5bh`=*<`(6YE{gsEu z^foN$FZK~tWo2pqu%G?j&9rpfCFav_s31~JsVShV=ag(Y@H$L|oqj&Gcj76TR9O6F zI7K67Q33TQPmW5=*0VnlcKx6`bgsf7>k%c$j}dwbSG2 zD`ienkuNvHtz{Ds@Db&W%n=WW0nMFNlB z=V_#(N!SsuqtDNq2)SS z1*ss#?jR+S$84UINH5_5`sE?gs>jgBUWBk{A!GE&4KQzWKcW-ka zW*=b-BI3G)ga6-rga70U{?~i=uh;+A>Hn7r|LzAbmfKkX|F_ljUy1S|jH+J}6 zX7K+jFK~K&t3^;|@B(YYV3EVxqlN44F_tjqQeNJa@@B^bdI5;+aEK3Jv4C+L zs)5KiB}owznEPf!V1s${D9n%7&OOAd3+C%zA-;lnZ(7Pn*Up>(J^|+2+mYI?UH$*o zufiClKBSg6Igx*T_rLc1|HrbHimeNJPb`#6xGK$@a5W0m!(?Nap32CyAFj+yn5~s* zL`O!h|9qfv1H(bD8?2%m!qw>ImG)n!a{sZmiULH9EO>w7-0^k)l=F0fzu3ZjTeF;M~M~-$DWSjs5-$ALIXkIr#T$lL4Jo%o(Po4WBQLhH9IKV-vf^;zxN1 z*{$uCN%C)tUl?x~VfLzK?=Iqhg+==JOZcCR85RiEL@w|6gv|t?R&`J4RSdPlv;8s1TLUaOW*ndLLb}qDFVX( zIs0()8pz%+nY~!l>TpmuJ-Iaswe)}V^*9}W-C0Zf%Y<}x_mjb?%4W|%WIt>0>z;;=uiHktAnNu~9KhU5># zvC{S(64VBV}Js^GSP5Pf~CL97O3>^H$|KDQ$ z(zU?YJT4n~_nkGvR;wBBW)7S06hT2jRYh@lkKV`r)7yJJvw$u4zex~jz0gq5bMR9M z@dg#?fSU zMI4yT{+a+Zr>sZ~!$5>VgGmmzBQ|3oM^-ry%Mgc@Q1t0jZ_u+PwMa?CdRxj!m&Q_- zd)Q7-AN}#8bm?9k9Uos9OTK@dQX0P!;0!TF<}vZon?g`7(UDa~|77WK8?)#qLV6WG>5!n8l)2jU4cfLHWJGrJjE8*I1lrt=w6Cs#a~1a$ zj?M{TbyaOLhf`1P4!H>wRc%8zxqns z7Aj14p6WEM+2mzjh`J9v6o4%U2WHwkS)z-GSI0SvRJ+$Tl`9!=+YJQieEz8v5+by> z(>rkNAoV#3gkAr*O zYlR1$&pzcCH+|;p3?tA)POqJr3`iFw_wv{qYmFAE4p}Hz(E{YA5WMh}(Z@;mKI?Mk z2sPLYGB-l^@Xy_w)5a=Ti0i@alWSqRHejY#b%)cp38&3W7Zkh#Gd-EHs%FJMR%`@D z9Qvg`FXHcqsJ3vfsrtc{)6vJ&hzdXR588Lo+* z9Q1kq7)rvH&F9wNOTy`hW6r6<%!QWY06FgUO|LodZthQh%xgPZ6By{(1*c&>x#^|;1 zCoPLZjj(+voIUxV97-YRT*V56Nb25U#`#e($C&$hi-05Lu9vn`SB)xMxBCj!`(q!t z^W2S+tT&EXLr?Uks;JM-&Q)bC7_3GQ;})!g!UA)a7@=+IX>mcBbY30~v+n98ip-(j zHXP7;cUoBQ7{Z-9`TAQr>S_{6pb|H7L8)=ISdgY>VetgrJ0eczLlq3Z%_6|W>Ctkl z_putn=U9bxweq5Mdh{Wu%W~P>cdMf^d`_1YSOWM;Ph&S_zujh{ld-|*j@&{`_4GuI zvrzFI%g~{b9?$BXjHars+~}A4UYM8YD+hNfZvdh)24dO1aMjkRm~Pb%F#TKVX&2w& zpVFW5B=V~zPwC&n`}WZ0!4dckveZTd9-(W+6S1X$iCVOQ;h{nHie)8i$26tTvH<-# z>U;cN6g>@14^usZ+DZqZgYLl_QbcKS47c2X4Rz^lI1Wy$F9o7a9hoWL*k)S&UkKq z^w^rSFym)m^87qYe{PdgA4IG*nUj^xaaTB~E9Yn6AJ~8+3P?~u`H=FM{r;4VmD`YO zI-qSESLjMc&FB7kC2(PXTC$asVGlmCF5S2=S;g93+mtk1VVPM*>_?h)4l)b|#h~O$ju{dVAx5flezB z4hw2IBKF>2EnSFC4tMEqc#U6|all!(BOw=Y526aMqrUO**#tW9x&<$J=V|$QQv@6(B@Se}hx{1dZfnvRJlm0z zm9=xVs!^b(?pc2QkcbGF_Oy(*jvoYyUJ>*2@+K&z2<0V}e*0{_mFU_9hP`!l;2d2G z_7j+3_pP*eHx}#JgIFe4XjbNkx72C{9x2WE^zU1v&M3a2*eVd}%fv8@Hezp&+Xwu% zx}-I5cc}+5Y||wA@Q)J^v4xexg?MCbYqxp8$i?dv`z{rH0W=~G5Q_zrgt&eS3%K8X zbIW}Ag8A{BOf}56-7_M!i2dRvtrschOS+fe%zpKJt(s^q%kznXz;JYxH*Y>px4vBZ`ID;N$+$B*GpXJ& z7f*q3Y}noqRJ|(}<6>}JE~9Hp4AN4EG7CO$X&SI*H$ks@Cr!I6UQZ=&Hy+^WwOBS@ z&6#dk*R7pztkxY{fjcWli#@`zo_L-t^d@9#+f$mf%WKnJO-J{deYE5e^2t?~^}$X%{1p6;Z;=2T;!ni& zkpjifNt}IG$*Sl~CHmFAnZwN`66D{ZbPqH!S8fW=IDqI+7o>^1a_bJJ6&^J~q^!3+ z-=24sLjH}h_VThvI6D$fK8d{;|1sON2(jFsE*nKo_eXd883O67p;3frNpuM&Iot7S zeR*_JwLP-&?8f}?SJE+Hrq@r8de`aCd|%_WqecnJ>y4MYk4{?oIw}ROPG;f!P-KR` zT@%@ycmH5$jU7w^pc`zA4pJ7_-1DcS5a{|OryvLB`Ukn+M;kosZKTk!qA7xNojPY$ zZ_vRl)E~zCJYgA~dbTk`!r=@F@0cF&Hlma}OLSt+cMjjKTmIQTcsQ3=z7`oYnH;CS z6clv0I19g+M%tfXg^h)+;jkf6o^*ODcj!HDC_YlGnTIFHw=2}(+1ew>Ve}iJ{4?jl zX!DhP>FFZ6X}Idm3jMG4Xtd7AbjX(rg ze8EZyJF@qSiz0EFHX1dh*uprtqQE7aHK*~fzEiK*OusD=g3cQPZ?^S|!{N__MgH29 zbczjoE7ik9YavS)Rh?*yzrq0b3X==%mW~42rJ$5#eJ{YQpFfBBh~gs|lrryvEEB%= z+rteq7Ow!7o5&#@4tcQ^`Vp;l;tGH5Z0VK3CSqT>@Hw2Gc6nm^QnQlDp!bK=U`Z_; z#6HbxtEbLK6@ebTDNQ1;J!Zrwpc7fX?V6m0N-6vml%AfRbq;4`Kyb}zd3t5x^fZxO zp(nF~I*7z2nY>CDr*eF@`ynnP-&xM4}dXIWjR&JwqDmwWwXMP1{t2Gs(Z zdX_8hl*gP>r`Z&luDos$T%zw!@2B459^pZsxdbh#!s4ld^WQvC5h)?~< zT`cdl21mD(YnsMt7iNxuD@2AtgYCU)w6e=#O}oQdWWz3BrZ`Wi>zoWpLP8d&Qu1M- z%b}B%PTy36<;X{gP5~1<_BcAsrwT)yUvqTvty1GBKj9yhr4!n-%- z^(6QIILML;PilR7?;5-N!mvAIM9Q7+U>ok4H_UendPmx@P0gl$eg28w|8LkY`0yU9 z$8}B$1+q)~>-_o@S6=}jWqj`kozt^N$-3>#{{%>cZ9#vn|C4SF64Ad3-`w`Z8G2|x z!TMX+PVT|hZK9_faev)YT56*k_{2#&BiL!*+1^oL>fju}FUL14EmmRnn315yROSCefO&`x#^S$F4 zFjrp#d55|}+dG9t6ai`Bb<&+4y01s><4gWUCJ#*UZ3?*V&J2O+ zeX&YqWEf(@+cBM>uu#@jvAPOR&`;G8*mHXz%rM^MU3Rp;b@c`LM_njo(FIv-u|Ooa z&{68kLi#^ytP2%$z%btY436)s-D}wKog6mCj8|Eh>}#KIFz7VyqnB@P%Nyd07&t4u zUUzZR47CCS@G4H@ViGXU^LKwL2|iJlh$+lJ2~9gCPvIxaIS4~oz2hI&H!F3aX7=V| z7~a`f*BPLQKdl#XcXwYM#%zwRVTkTY;{ zST|nLgCZMwHu#_X5$K7eM>$vR5&#BN&i%5e1Az-Ny@$ZcYde0S}>ePq?fOYPj}` zQu~wVTSR`eTjJkK*rV+Gd(WT}uKKmt5WR1f z#uS}Ov&>TWCl^Gx3T`E8J`HZu@*@>i1t+EP@e(b`pAc4?qIavTQ*>}JNpnxSFV}U) ztBk69bUkBO^dj|LtpkeZ^9Svhp)aPamWjAONiioGL!fgsCeP|cx-h4Oa@_hzL*#lvS|l~a<|auN{lu2~-Kr9;jITkb z&t;{wi?y>D_FM?s8E97OXzv}-T1UmkN|uzi@#+!l~U(JBKa?j!pLRs>| z>-;_smdp(p7l9F)ljiLLZ)Q^Ja6X^EQ$Q{WeT9_HT7)#g+H@SI63PsVXWqitVa9Q- z33uG}>X(Po^%d$caK$>GSq-4GwTB`6!{l_voE<53+?ssmz7vwJ=Z02L%`@7h(x$i2 zwqZN#xft_s{FZ5c0+?ZQf+Gl&w}x|G^bt42zZ@XabN(S)6w`A*mCGbQF;#RHg zng!y|ysxA9{O}H+b%xE_DAD6XUcOu~>#Aut86!zhrIu43q(RNs9+X_?EY}<*u{&+E zbuw1Mn|>&m{2t*BJvn)VJ|TPmnldTLTe4xbOk+jt=@d!RUi~-YJ%se<;D+Ua@fq$7 zr)TgLS#!7Wur$$PC|^_w&GoUGyAy8Fh*h?PTYVa_{j-TOP=`F@=1nm=;k@V-y1xYxbz#S!7AGZglC zar~ZW-yaA(fG6eV%B%y@@oX)(A_*LKQq+oH2Te6k7{anBH+N%pY9PIjeALyh9Y}m%e*!{`R zO2VXS&5;dGB%%(#HkIfDi@%MbJD$zhr5vu1H!s$Tg9`fNneUzQm|PjjzIp|PUkxz( zijcYa6W@n)nbi8l4u)5fjpm;XxDx_OENIzyfTY0I&1y@iMUaq@z0|p0 zlx#WuebvM&DDYo2j~6P65P%jt)!rf@cL`ZT?x$YtCMhch5ySC;Npgg}e+<(PH57>* z`uoeG+FswLz;_Z`4YUEuvV`}?Z`7_;Y~@m$wf;Or+}q0TW?BCsg0_Wb z(Qg6*pXpIT-k-==byJEn0W!EUKB;h8Y%W^L)^5wCvjsHgwkZsLTP3)U=ly5MZuzAl z7uyv~qiy62DqU}rzU1A1%mLe9G3>3-g*@^dCVj#U=#=a~zw!3LP(SO5Rw5otHYo@IS|52@JpW2ECsjC*h)PlEp5kjt?9_b_tiHP!`0h;Buq|a{sNrP=^0D^CY zVMxZGZ9v1amww2C>~=@ey9kr&vXuFdQ0pB3CB$bujE+Y>q6y}&Wka6&+y9$mYX#e)-9UtVi-_Z|2M{$S-^SgUodlUld7PEJ!+&6% zXkubwSU%_d^ty-51$y|Ki@7aJjp`wmKDPI!4+#MFq`UJ5y=wJK{>9yh#)9#HqA&p) zK#$<_FFx(u9Bv1aUr%X0qD$0@%jT`rr`Ih9;49ZJ`t1ObxE_P%H+hBeAh)a4Bsz){rp8GOf!E9TZUk@bEz*MGjM1_m0o`0LqW`c0{piF1`g6?Z@E3pe$QV^o=v??E z=v7l9h~%4_AtG0_Do5qd=I%54l>zu~R%;IcWJr7Ogyo~nF*h6AlII#a<}F;k9E@1} z5p=1v!(y2v7bTUE#pVN1BZ_rVada%x+LKELV5M`X(_DS(5{UutxDttPpf{#tyLK%T zpJ5j#lRLfg&AWfHeuoaYwkL9xNYz zex55)sau;thHM>QFg4Pg)B#XWfxO7`fy4TO&#hU&#B$wIUpGW=hict#s|htFNbr#FuJx_y>yciteo&3!?EGc!t{kV8GzZa?daCEYJ$nS>z0SAe)&yc6DkPQUVz ztzJukYOV!CWjF>z0u0Qz<(a_7{98OuM0tAR@C~d#&PDVgAy(Qss24y8@w2M0V}kHQ z3jWwS#b8_%a^HPQ2Dlg6^Lma1jE&&nXYOi}_ZkX9V!;Kmg~QsVx(S3pYZNDka5>$h z%M>qp*L86Lk70cyi{0Z-Z>+IKg(m-0IABV(Ngf}F`>c^RjiIB|QgRg~3Om|-)9bWU z}R(K{|^|jYU$lV04N^6oVK|LYp`CH z>x-*uH43pMO>QQ&GcuHCoipaNvnbi&9P%d-oi0*}4-~pUJGXyf7O&|zh_S9xIIJk@ z3s$R8^#fwZm#8f0^1LI0IQ3N8Z-kj7uR=nj@OBEzyq%T z2H33;zC;1O%eXw2*Tj{SOPHsCutW*If9F3yudin!Hp%v|6DxaS^^t9et-YJZ8QsnPeun7S;Y50Y0OMuFI2PSOEK0k(JtBuM(pmG zJG)%~@_t)wFq2swt|n5^qcg!e8*yRlHl_iUmDB=|_wz8o*wmmfs1&Lb#h461-BSIw z(s3Afigsu9h<>kNbwxQ<&uguKiy$ue!7jR=Z#>p8PvLFT^3IRok2aX!QSyNqZ6 zxQ>U$-29hMe(zg?Z!U7>E(TqhkCDgss{4O#6rM1;G*aCC<C$2Nq5r zCdn3O9!$1l2B8$(o#~7W4dgM*07ebv^9?Zoy?dhWLh=J}9sbs^selxH=ogaP4$G{c zm#Q72BHgzcFWAh`xj~tIPA#D+x^fXMZ(z#0`6?FLDP;B_VP}89^7+3vT#e9MOQ4rr zUfd#^=Rdzpg?pUP7Z)jF3r3$8?gR-8qXg7S${xZ2M7-6LcISA4qks5 zL+;-~b>!Q7z(@ZQcJQ9wtUuZRSbx?xG$&``PXr@t1UKO>LmOSaks+&6l(V{!peSn7 z>0zKzTdL#gPQWdkWH@lTQwgY9Q(is-fk5y5IFXO@ACEO1DUqy8{Icw_ReHk6D2gA^ z-PN_R(1ibW4CvLKnW0j)ReY#crs}5*r51EM;D0Su z*UJy6UZqWscX(c$E-@P6HebB^^o1g$mrxpc>JY*v>x|5-(Ti2g4Wp-E zcCLZ67(4*Z_`+5e#1+>9!HzBWWPoj=7!HIadkHa`Lj8mIq{ zo*B#Ab>>Uao6riW)awN?9pwDhm>n-f6-Xih7dsZ_`{8dgO@*?}m`2nXe_iaCNZ=V~ znkE{qSD4Vbr@-6nck%x2meFlZ1R)FoXvu|Dqcy|S;Ke@6OKYJ1SqE~nF2RYx=caiW z8{`>o;r)p$h9~C$bqKcSgXH@EKDypqW6qq0dTxa5o%%h+yfUu;5z?{w3GkFE3Ni>R zmD0LvBl14kEclw<30v>V{2oZmHqfvsm@wt|Ch)Irwy*CragkyL_u^#nT~zxi z8KSi}cePdT97MYE|L44bk?(bo`*A2$xG9zoLVpjv9`HKi?nrEmjrXj+Yv7o^>*>VJ z$%^Ey4zdt5cVs6$_fG6=lL#5*A4LM-p4>sfExLOxwN!vI^k`SUB_sQF&Hq~8s?oQo zMzWqBy_}|H#LqFiF62I=H}(Hg7hDznv+ZaYFs!ocKL0%kP^TsqHAG-e{O#Zh#X&Dc zK59c^pgVGsi@N+tUYf24Vo>_G=Mn0a^Kn~-*^mCbkgsUx4GGKXi&tZ8M+eBO&6b~` zFz^`8OJXHu`zN7bVq);z%+R#McP&ebqLzUkW1khMe7rh>9VoEARrz}yZCtx z;qr3qx1fzuo5b$||Dz{x`u@gr3yTuvSYa)>yJOitSSS>P^H*{OKq8SV>I*L({C!nl zltM9AM@_kpt1L={?v3d0@`3VJaZ=kfg+cQ18^LL4CF?uo5>@cgo5GM7Y|L`$FzXknkgRoH5On-9H!oSj}}>=vaV#kdTBpQ~j{_UUj-O~7Oj)kb*%c1<4^53;*2EHE?Viod+Rx)=cq#i@PTnAzMQF8G=AY9O z`t;@wz}%vc+13~5w~DBIHVdES*FAOuDI$t+YNG!<=9hWkc-nq`dG&?wiV%m9@sDBl zwftvD!YvK&{m>7?Bo&t&7w>G_PW*5>BUnOifO22o(|@KW7*FE@{7>+I9uZ*5pdLPj z4>!7QUn?YY=acq`>?`@~Nh4Boe#stvb%m?K{DN7G`w#BA4GmDHams}hLFqCG2;SCl zHY^NV<8YkuPcjklg8D@AOPs`Zr=_t2RCT}xhxpIv9vjse5!I2sG*u;?*Ub+lEqWP% zR|mNycq$aeMwWIXvFVC^^Xdw{R9A$DcWXkTSf8%0Q@t@3pD)U6P<{THGXP6h4BeY3 zfoyl+N&eT-{Jd4igF^xV@{U&stAe=6ffLNPM2;5zUNo|QH{TeD`ZU>bfsWTZMt^Q+ z)(>EGHZTY^w3YGNJ-@wR7=GB#2dcTA4^3{s-aO{B;>$*pnECk{11hapMK_lY%)l&ZUsYmOY z@>^7eC&2fQUD6ccv4lFST77f>&olu=3x1RrCI6O-@mPOUSt&}h&MI#*PF41mDn4Yh zFU55wjC^(w&cWb3g=d08R6CYvVUaj9tX)_>u{Br#^GY^e{6H+a<*wr*8(1!&Y)9-r z`BOJbJ4wagj6T0u2FqN4GS`c+*IU6l*`WIt92UyLtP*hen~D4J$H>eVVtsT`6V-+> zj@MlQ)Ik6niK)3povn7UCv2?F2I*Zpn0$S@EPcAPsAE3hwej_PEVt1Nm*ctp$~_Yv zh&?GbmeGB5Rk^IB8BGC~YazYQ_wva;5;;xm{>%kTlOp3kMxZ7G4xTh^Bo>&b1I-RU z7AhixGCFanF}bB4PvT9AJimA<;JIQMD)%DEjym$=*Df=T@LM~0NcvTY#Y}uc!l&)$ zW_hm@*~feYT__|IZ7iWBuZ(3AhZ~mj@*X!oppjdT2NU1Fp9;}Y*ela5{&XT7VV5T2 z5Ew}-Y(jF>TCUMZASq!a6kUbDcNXfyey(!NLbFjl8-OY3(LpP>wlX_#=oP-xe#J#a4ADHzh( z2-7kc%eJD!cign4X?u2MKH)rI;4@alX_I6uGPTVilK^D*o~Uf{;eCUpAoixMM!$^Eec#{m4TKi-F7Hm zBn1;0RtQ=2b3}e|`*1uLzWbbyOBc^DYAo}9s;?-IkduKj_GNVwZDa$?i#jqz+GF?) zkGrZ4^jU!9=m}x87UgH2Em>rDIi|}CO+yAcH;*gL+5{VU5s_nx+U?E3un}Q#no7&e zQtR3Eg<4Y%HiM>=1V)1aD$ro_-ck$9ubsk22h6Vj66AHIRWUrGm3vSbRbV2Qn$*%O z@0xn8+0n^L58zin+5po9SopqepbiG^-v`&MukBppNdInKZP0=BQZ)m^R+1)SUn%GG zGJugUkJdOI5|~7*HUD0#IR5%W%(=y7Z}Ihr5Z}wn?{ho0j99mBjdt0r%|Z!0PTb~N zY&!I4@K7@Afk-7!>`{xc&Y##)?u{W|!_> zjD5^da*hk*Y{*)7$yc1;5kpBmPbgMvq335MxY*g7o>!kA=@cQAC%e>6Xto-#&r99w zOOE?rb1296$2&MBsn*YYr%Pc{0n0|6y|qb*MVr%LllQ(D!%_WCS4YclaR+gv0Cs-%e8+M`kNgV1CH%8?>RjZi|*Rs!ap%IZe1Gf_=$NgMxXVR<_EL-BL`l)x( z%PMKQVx6B?C(X-PAiBlr%z#6YhBeA+Zh`N!%d@i;XIX zwz-&BK40Fx#>8RDc267ox-;M9-O;!6#a0v*A1eNd107L3^#3Ccyp8^e3|z?Zt7?Ov ziTxFR%=w#beanJeA&2xOF%fOWGJM^4u^i@iW95PePnxUqi?$rwE{usDJKW#(!yc9T zxvCiogUargInU&5Qb6MKtu0x$mP@GbQHr)-H%x!G`-R2k&nw_^)ZkY8v3rYHtA|U;}`xwoNf4N zhMWwYJ9G7f204b$5m9plVOZbA(*a~9#fZFoMaKYsUw4B%pxgU)jq8e#LIXG)`tBc) zG344642Cbc{%Qe0JY4qlxwCx0hECiH=^dxnsuxafYdGh%#G-u$p@m}Nfn!Y$>$O6F zlA~5mCjlW4Nk+YA@}2r=nu_d9e8|rf^Zq@%ayT*Aq5T9XJb)KOXtI&I~o>yUc)C=1izl==u_0XtQ* zVFy)Awl`BdPK9gLkcMIG(bkcT*rPPpB&l>aM>UEEWYI*o1$eaJBb9~@Hq2TzSine; z5TKb8m_=zA6I163;{b%W--U)msKunPD6R(Hg(d9jF=l@a{51t=_Jt2JkFAg2HEcRkM5`#0n5Wy*pN4W%xlX7jJ`a6Fhp$eY5 zl;vlfF%33KbQ@N5VozC!juUdlx#+|SOL~iEiwg3|Iq)z255YAr(sW9M*?h0vW-IH= zzK^Umm6(g=zm5l>w5c3H4|oieRXMUuCEf^=ln@$tsUM^ws)MV~%3t^NG=f$PfDGFVj7pZyhsY=S!7hUfsU z%A_16e6{x%a1!IunyqG^A1}?{FVdZ@S=(TLs#`!V6`9kP;6bo9d>r1mq;W81$A2hJ zfm(DSxqptG-fa-zpwRw<>=n;$>MADIqz{>RqAD|qALbW+)g%MgGHSifR4bP|&TWL1 zyeC7mtEvCde~ecvUv9^bo7E)TLCp5}aU9T2APYc#8ab9A0hcva8bRmqpX@y)ROqs4 zWpfliEgLu^jVtHt?|!`}I6pVr`?mD;@`#{ooVP3%O$JfOLmtW7(c6NPZ1{)MMTz=( zrSlEdf?v}r*C#X_)>CsJTk>SGQ4~DNAs$;v&|+r)UmrF}E!T%lC0xFTq0Ma<-7^Mg zKJ?NN1wPk{YsYtX+gkX9U40B%yfTNAUM;g-ja3j}qs;O??>})>q6dPI6ds%lE-ZA0 zg0q9Onx)28=lh{vMV6HhOSC5x&R;dGR4H_U$vN`oBu0G-iU1LB;mM?rZFL9V=qc{L zz~h$w;B3gui0qCijD{&@kcpZ)(Z}Oxx9jq!2%OX4X%L!Gn1AOO*!VzLNF^C%^T_w) zjNuEK=od=>zJ`4~8Hz!wAs1ddOhF6ZM}0ARrF+qb#j{cNeT zn;^^Ww;muoilRBfll*8ZB-AHHOzY)Yq}KuvAs6=R?e3d(_YOJpN}&T2Q?MGAB!Jxw zO+-r}zyEw!ZeKWhBaEC;3PGZNP|I1UiA9qQxHbPZ53q@>p;F@xZG@JFZ}NhtbzmSs zom%ZvE>GbZipk3>7_~HfI=Ti%KHoxBsDXuJbpH!%0OObcFNY?N{wXRmG_s8TUeR=g zo_xWtk49?hVfJK7T$y*n(jorq;SQ_n$+0C)Go51@2n3?oBqC)p|FyKmLLO1P3I>rp z`LID266obp1LjM#V|u`IGSy}VA$97rc5QD0vYf3<1*hX)D5c z3^%b-7xFa68k*A-scq)iY(Jzekoysq_991q;)#Y*58iL5x)jJfGI!DAMDhLm-E)9l z7&>R*zyox;$Mnas%b5;mXsPjd>L)isc**wN=Axsiwnho$VIkONMj56toYZ5B-_jvkV4D!7g>>ry(uet z6#$Y~T92Gof?Gftxmn`~s9(r(ayda-5!sxwiA8mCz(i>mwEM-J&xZ@R>a#3+ zW?aR`h-S|K{k=x#FQ>j|LkUh>Q|iF*YxC3HwmL|k&xMCj2mco>dtDXV*5%c~TTUpn z31}U=ft6~s076mtzq4-vDU(Mx5YJFL#$yBITj80yIBr?RvCQ~}KI;{|;%vBgo2xO= zBTLRYNaEu6xs>_6{Zqm`Z61p;1maRLC~{gcM44d_4Q)Y0Kp=tlsy)QSi(eyz`9$$k z?R0ywZ-_t%ca&I2Ccis()a)Br&}5ETyvv>a!3JvVlw2_fS-D|P!!O$dJ;^~J_vqbi zx1d?eJola7z)V=VSDR`s{Q2!(y9JkfTZX*z6=WS5pz~0z;RrPMi^3^iOiNBs)Ow;B#bcd=Y3R<} zD3^FOxuWtZwOX7XwtUlRhBC|!p5Z%YN-I$ie8)2ER zf_9ZJDV-1-1sP(h`OTR_ca^)1eR?jsPqR+;WD5-1UuUWG)kJN!u6z>>eJx}}WoVx^ zr+r197`f11>wgR`leU;{;JNEr)sbHLZZWgSdb2{aK2YR*8^1a4YuRl6RJr!(=%Wui zwAat)j=EJUqkLjz6PfdKc`4ukkyLLb?3W`w^g&RylP7)8r%a!0!U8X=?Wy@Fu&05r zQ2a`&aK2})Fxm3p+}Uhl(D>bS!DO`wFe1%cvu=h}hwGFPTr|?=qGTIA)X}(m>4k82 zcNxc-tnJ$Y+Mez#ANKXU-pGyOLf$?6pd}t8RDgJ40DqRtQ=Q4ZRq8g!L2)`)s@3k_ zZX9O9?R?BQ5$Cmhc>$Ic0W?fY1H_ct40d zY4W%9zVt{7{&VgCu z-Y6RJp~(*)rG7T{3}qbED?J8c+6>{^f{cbZk%+ zt)ACtG-mq#A3wg{j7WM4J7jrYV$!g!+@6y7}&XSJR87Yd9ab<*<+g zs{)~izjbqanAX~$#?jeM8U=D`Zs!e0obnc-gNeymcx(IEQN`tUiolYN+re)QCS~Do zi1Dxy^Ml%Y&iM{LH|BEv7I}@M55G9>_{f$!#5M3voU{2LBrBsl24KQ@X}hOJn|DZW zZu{V$+aB^mrB)qsx-c6ZasNMN=ffX21W?81*S^1UmtecAmL3T0!+e0utK9XTq5nV) zX~Mvi!yDW55(#7WM`Q|r&~^=8v`(`V|PEr~#%QE*uH;vwz+r{OO7js9J%q9M63xHv-tjNi`L_Tw0{|y)9CdQb0P-P- zw0v;n$*7g)3V(BsMDLIXj9+F4^MhBB_%xcuJd@($XG4R&DSBz|wXepx?3|AxuC+5I zSjZTZb;F@YRrNgHpeTJ=L4^(oOM$LB!JAGbmHy~;ke#*HE=-Q_xJALuAC?77PHA9$ zON+R8A>edT7uzN=&EgXTy7iNf+bEu0LUJsQ5S*h#Z@`@jOviGL=lBGZ+PuP+y-J1a z2vJM2vU)QZPi1>TCS+FtpVbrsznBVX)P z1hus4dQss3FwLk2mNGAhysi&akFxo^U+lnEI85AM;{rutHLJD|plCq?La)2<9i5veP6Q2!Q%cERJ6`C<7^kBy3b!Wo-%RH+$KW2)>GN0h6`JWsTo&UIe(>Toh5|=70a!+*q*8RCZRY}0CGoY$e6$LF=G9up0bk95d<;
    >I&)kvixTVPka9drMFtl6|r3$zrpTv$GT%@FB2@Lls67gmRm<~4_*P;)Xr zL2mj|$%lQjI?3iNfvS(ho?Gt*6{|v;YzmY)n4l>jj0l2Zs_!n zAD!abjw<49y=_X}x115_FWf%eDlM7`2|0;*bja)rOl_ql<-F8C`V1V>{e44|ChxZ9 z<6)iEZRJO+$Ip;hlWl_yi5J`DYK6~-2 zSmpQ>tONUzEq-yOU2i2%v_e!sA+7Ie*d+l}e}>ZqMvq2>j5Ycy6Og7`yrH4ZG7HkN zy%Esmh#fI(>lY}{695gJc^QGtA+f&kw#v4NNHOotPNGb-!=t+e!y4?Ipv`y7U9Q(5 zM`>lo!&H#6%LswgfbxhKz6L3wag}l?w9NM&E zpEze4EJTA>Gu*t53K}U?OEmoor4T3ON2)j%@Z zTzq@*YQ$vIEN<4`=N&Tl4ocpbDg^%5W{3<}zug3roLIfO3j_}_ZppZ$P|le}yo#-~sM^q#XcjYLW0mlL(kJO&X?Nmet%&n`TYDGN zYG)L-w=|kVKk0iJe>|s2pSL&q&1v}5NIUU|S0oeo=KPmn4Fub6+*4CNrRwVLE+2BdR)ar0H(~hL@B}xjoI4uDeDV7eUh~)X zR|EiEFS9G1BB;C?_3_J*0ZhlNno}a$_dX8A5O+@|9;WzDtMNaQBt@7nYUOmTdi z7WikszT-Oh9EWU)|{J=+J?Y21{7>ULf(dwB>!D|Mz9M#kz)J^AOY zJ7XosZ6ZA)Fyb{c?~nWzIVG&R&#{>MQ3x|Gt50U$<*G1}OPkHggmp84QR!t!(-M!t zyS{1f{aA&u@3DnSQwS@WJIfD$wdlh5u||X~dJ}@rvjrR(ze@ z`?Z7(^>ue~_p?h|u#|(W#Ym`ggedEyJ`f!x+_!PcXe4|3d;j{e_QjB~z~`r{TwhFL z4m`HLYrw1)_AK_9FO+0EJ2o4#5QObar!Z-dVn}c}j@Joe=1Lor3e2|I;LDh2%aSAJ zU3b^Fw{YVD&7a+2}IE}Q5k5(%kx9$ z9f0Vr2Mc?#B=b8p+0w_rCejZv$E;SOxGHs5^|(EJIp4yedkPQW9K1_?ifJ{g>|1U*AE>W6KE-R zk5!+ou@wdf+cwws(KzlcwoT|5SpnEwq!N+V7WN?^EitSwsP_sGFO&uFZatn-X_KF1Az`x{`7@o{`{{y-|fG8W){E9 zXC@)jr)!JQM%s2$Rh_+!T%PYpf|Hi(wgnc*yFUe{MxVAJHpY$NzV7VG-T*YW(+k*! z@{riU)&0|h7!HDwW3Q`a$h`UXXFm9;A)p*!u~>pF4F7enr9Ppu<2>PP2WJWky)ORN zAu2$R=DMkK3z(|U*6;hF2?z?!+yoXk!8^%qRF6T)F7d0QF3IWI99gMQ`aa|EJRt~7hJ&fy9?u48xxvLaTI*UvS_J-O{%u?y52R3GiuP} z*V)B|Qe{Lwo6j|b*Vc2WmFs|)&w3`Somf&&?D7-QlkGlPFA5gb{-RIP+$ou@AYW`PC3%8^ z^Nyui=9g-bwq$7EsGgB4HU*A-l^kEWE;O@wi9*7O>VWFG6??GL0DHj7>I3+Ksl7cV zL@QCW!_y`CJqM+9HQ4%BPo~-F?DqzGhCYf2JS&~iYw1&KJ|Z77$`H_@oANn99~~F1 z^Yato%VWjnY=@`0GTZpV$KT!_9r3+*5xh2Z-Q~F-Om*Gxo}o?f923Bv_NgA9p)(t( z7Zg5~Mz1UNBI=_m?zO9(%jmEb3v1OV*Gh!()CWeeV2=)^@?_gpM({RI&ATikeZ6(s z$15W7PmgycF)x;FH1+`DC{f|B&YA8>Lo!#2KVucZ($euDL%Bh>!J@<>rvb95%{N3@ zZtGw9mPeIxBLes2Gjb{pm~)F7SxZbhMht{mzlVU1H^KW#?=xh8lZ!15Py^{TuCo-7 zR{%p9_o;?4K>pXk_XGHmSA;;N0e4PD>%6-6y44y0*QgneL*6y;`RFb;(ckrPPn!Mx z`{Tgz%zcG1*o3Jg4c6!rN~6}`e{Qv-Z;nmNwEgbjtI&4WrLc;?qwJ5Wdtz|+RPlb6w>sKqXJbLI6P=dSz7>yWUYCU2lH8Oi*^O5|A8Mw)g{;ATZ ziq_0NjaalWZ+Sz7M|&Yw=@*_(o#|2CWQ5qF{EqU@=i*HFcrRa{hvyfUB{KEi{a>HF zdFLma8wfW)!&gwotcUuOrZ(+%pY@ETo$k&m#4eu)UteE>xSH9dE#%d}tdVl^^2%;J z>SQ9toUJS#vJ2E1mrsP{>NSQUS7@)%!!VCdZt$wyB>!=ICT zx>m?x$_u#trDiX|wzKilVFGDFVOQ{?mnnzC@?RJzfr`&U#wH46nc%X!BsWr`v1l4E z)&4B4qUD6rq0vyn9KcR;dR~X*3Q#exiO7RqKD zoeUQ0Evuk41o?2`=mmw_CqkG z*!r2k>vx+@l@9G!y5}Lh?^qh$P6A@;fFyVE3dK|ypwHlwn_XY!=+l$w0(#o5$(IMMUaGAp=-NSJ$Mo1-OqNXenfbty`efL%YHr8?be$BxB1! zuPchoH??6oJB+>=KxL`sLUq~mRCp+fe||0^xl*;5&PxO#4xF|=+)-T@hiNMFjp)ua zsQFQ*&sb??+dC5YRQ1pkc0kvy zp}0rEYc#+Uy53Z>{B((KGINIjmH{asGdKNyOYjdP6(E-}-ay?`dKiyY&}d5aXRV30 z&KP5=A~({!DOG@%jJHw15 z!$)})I&+4=sk@L4X!M=pS~n3PXZ=B0sN5un+6kdcCR+0i;_2A?l1#d~#pg?RFDwKV zg=ZjlT$t^%9f(v;Q(MMkKj0*zo?n{td<<(*DF;ppReaXicv8 z9pb{-*`P?H3J9D%YAeJL?x=MA_==ZBEs$K1kEL@MII>X7pM;~o2WB}emdoilMSk52 ziOJ36nl3M?T=X~{i=mh1l8kJiz3&F3JY5Q3)bMSUiFXgdchDXCw3lN#D&_7BfhMl_ zcXy4b`MA4+niq)Q?AY8<7FS#fqr8K(9VZOTPvqJhKXqucmZ)=jO~;nu5+YBdz`5m! zv#DWk!CEftT3Ehu3*8a8snpd?5)vQn+_{~vbdLK1BTQyFxghF;cgYlrAWy7JLhu9lU?%No%Ho zlE`5^XEJTCeLkA|@c?}hBz0=d)?536%j<0HDe#w$HU~JATX-RZ7J#*DG#Dv}{&CL% zdDa+bbK((bW3nqV!kWaV<3;|>Z0`*k4JBnxj-Zdcm|p|c2CMzvJkp1RD)r!*Z*I|& z7C5p`3aHwPN&$`&GArs6IiR>UOL;Aw5o3;d1`68#(uv$BK(2P;T#U83y|ep;;mL;}R!(ovG*S&t|%no(5 z2JUB6y8{UyI(G-+@LQ+wrif&Tpxyearig0sDprXT;vU2M6Rw?lH1|tlf&GavdF)a5 zMTz>gOHsAb=|=|j(C^|HW)45Jj6|-jZn0e*6tbR}sIE(+4UHA9mj->MQMt6NEJ)OM z9WK*vx8P|zTDmlu{ia%~Es38NaTrj9Ke^W#e#xdw2q5VHObPi$^G^uu(pqEj8x!48 z-AwUsd)Pxo)teBw1_*&EFgEfwejTIN{s_wDo0sVJq*q+NquLQJSysnQMpy_79?kA# z^{kK}yt5(Aw=@}ofq@ZX5DQU}EuGG-ZrcneU%-t2@#x_f12*s3uYE8aZoXpK?7^-P z2{;~{gu$IRM{xe)q48ejN#W>R{1$A0!eL`{tXo!>vXcC6Qv@5#&yt8c%J1^W>K5)O z^9bfoPtjNN7-@oZsBY!-f;MCZr|A24yEHCKsovfuPVHR4mA&>{W7XbYd|7C?>Ang- zo{SYA^oqnV>!SjjbnBX!j383h1_wU#$AZw0lWR@kLj`4DN2mi@_2#FTUyejD+dH_5K(slJ+M9YR6#A;dnnVlAdk9<<9+}%{S0eV&jLwDQ!}t_2|X&Dzx+5#3PnIf z2rospvCToj2#Wb^*V3Z~J?G0+05dq4KB#;5+qgz(z&O(Gx1V)GD;3r#Hp~YL3u}}R ze=T{vhl1=~)dTv{UuV5R{01Y1vkvW3LpTJkzPp>y32p>X`GMO)C2F^m%z;#>jd#^3#Y9VUai}SnI0w&oM4k< zR;NpsDzNF_ERM+_snqjxN4RbNjt7SH)=ylG@85e}NG9%}RIgA_^~%en^KHCq>D|sw zq%ZPaI@{7OpBEyYr+ZTn?w68ePHO!CkFL)x%Las^#}0`fHqYcn5kf7?!pPa5ZSeyI zA)q-%NEF4&NJSHPwaCTq>}t?H?Q~9yQ)y0hYIZh$Fvo@b#b5`zxSK8?u9-K~sL1R@ zZNuTK9-o-2FgC`c0vk*qoV-i+`U{~xixO||XIGtkcZgS}45+Ic0OJK2z;QxXun_wJ)Gb6q^fWR&)O; z$vj0{r8x7nZLYyL{*ms9(%r6?-9X4cb$s<&yjZu%p7|xDM0*BLChE%SxK~F%O$EGA zxhtqAW(4VSb7E~XDHz5ZGzt;Nw7)tWUI3@(UcTP6y0N)ab@;C63guEc-Wkn)VjQSXuCo@ zNcC;!I32Oq**+4d?lM|;`O!``#?8d6R9CFf7EDuW_rM7KUId0je90+fXm2)SwHN4sAUY450M z4l%Qu%7h`XrOZ|YNnL)1HOOn1wb%2Cso}a!&NNwCpZbfJz6>^EjGiyfw(PoZ`3t<=oF;8L`muH2Bndb?vn0q3F#1|InvS{($am9 z?(Xh}Z=?R+_l|qV9p9gfJqB#fdDfb9&AHZknonw_mlkT+-~~@(G`chDrzyX|DhXrP zHz9{U*nhdLl#3A)@>*{@2}d;a)&Bf3vG7J9yYsOZ=iPoZdU-HzCLg@|G+7B!0ny2a zQYnRu%%4Y(j}o;pMa&@fksf(`KKKMWHTE~xDQPHPa`Nz-Lm4JqQ?EhQw6Wr0@1d-H zzjA_jIo=Q`^`QT_!p5T)Xk9AMZeacCdK9(1tUr-P(q}bOi9@gUHsAfYNuG;%q}>~s zV8{YmEX-%Cf1IH86n_nzp5`9R5YT#9B%Hk0P_cRN+kxVx=fD_kOk5rhCg_!)F{`bV ztoJ2(MXwrCmf0HnRuYurYU^QejrjWY>o^;c<)!q%K-32}JI|}59=4HIuf=pcIKN3( z)u=2#8ggXq8D#T2F_8JzVKxXdyhB|g0R?`WRWPP)YKpWGHhEk8Cc%I(RS#>;Z;x#3&AkJ$i2} zT1b3|kRyWP_ZGUNZ)XIPY0A!-1hC@HqHf4j(}Pg5<))NJL-RLiTkz_l^P$-@`5QJC zkqjy6L9=*D(2Y3I+mzQtwf9O2bh~E1R*}%Ov)y*Z3Ft>n{#yJB+oB@b|4H~eG~%|gk!GjGJ`GFn zFX7Nx!hP!C0;=V-<`3#KWDTHmTNg3TjCmK02Bc;>danFqmMWvQo1>jRNEJ~)|Icg> z28D6k-Jn8_=4Bc3>OzC6pz51nQkH4-JN(}3?fCXwn&kMw8#YH@*8@ z+aaj0MZOM=4&l!jF!3$7=E$u5UF#9)vD<)GVP^ZtBDVbu?(_2zEFTR+X!CplIwVhQf!HDa(>CfX~VtQvX8YeWwqK66^ z$|$sH-Y~5?SpPA0GIp;wcwXST1nrqIX|P#rYrz#s=EOR3(nk?!ffq41=tU12x;o!# zSej{{1DXkNp7y6LCS40v*pCMG zDR@0}skj~YOKZ6$;JRC9b?F8nHI2<$Tidb}9WGYk?F*=c`~pF=>)vMvyB(!-IkTnE z%e8mFAQ+uqE9~PQpn$BUU&k7L5S}B;ec>lB9nrHB-!sVb5FVT9tFSj)Lr*1}@MAD6F%$&BWqD199QvH*i~VYaVEtSUseXPzFyDgxI{7EAfk%Ec zb{n+hplZjfK~+#3k}&mp%jsGl(;jRR3r@HD;cgcHyns@pq;=EDu$@Yg5{{tY;_>Ua z-in1>ni#&Y`N`dT55Xw9a%%I%D27P=FY(m!D>W-m9ixTBp^8n zQj-WY9XMe=k69UM`Cs66g;i}?*~1{*mqe^?FL`Th%@RwgqB)P6uKbf3EkI5oE_FuJ zSkb9#bLAFnP;*B~JK>Ss(2x#2&-5mmEocbdSY~!lZ~ZlQ)7_)_@#J|_`>6894amHw z_WtNQOS9YV{0{+5U0)J=hg%fX!AE=2Jl~AFR|6F#90x~7A!<{4(WN@PD}|cuJ61@= zw3hTDKt6jULdKqeO{@A;-~R{!oilLY&7#lTAF*EXl+sO~@~ErZ7Z@x>GjusS3q*O| z)KhSGrq>$fKILne;mQj+M%W8q~v=c_ULkXo!S$xHhui`FT0D zU5|BLiqXCGs9^+2W@ATJr#)G==7e_HP+9X0C#Ow6S=^2BAPpa%p8#c5h%t$-&x%HM z!}l6_x}%YOxS!zTmAfObNVA7&1&$veN9xJdorQ7OtQx<)w~p0VB0Rag{55~nS^<-X z0u64^X>Dm9ZQN=$#Vc!lV01a0jkIk|F@U~kf>`2POT2ylTp3%T4SlEC)kbWhEQ{I& z_4d(INrU)-07cx`*AAT~Q%`(Ysi%ZLTD;f~?~tQ8_ImOn#_N{5wIcMczEdFj(7NnqiBESpSwfU2n{0?6Jdz=RKq=W2 z0CUbaegl29$fMr|;y>xcLiX8wbkaW>MHOm&dc6Bs^9kqoZ^nIN@w$!d3jxf00seW6 z54FSr0oHuSJ3r#c}S&mUd8$G%dABOCnyN;seCv3G0O+N5o;6V0St zs>}GTb~*l9x4fvRA#~=Di{QqdMsv$LJ-HB^%bFcJJL9A($O#yFJ9RTl*S@!018lWc zrL6_bDucjVx2>V6{n|oej!mPtfC`VDlLG}&rBi=(#A-Bj($(FC(Rm)4{%A@efsZ>p zI9P2u(-n^C*HSc)j?cbqQ1x`y-b)57j5+; z8|JlK+Z?K1XcTxk{N&RAjVZq^6N@^_N%d@7j&!m$iL(z)($H2I7zkzCdnXPYl2R+U zuuss#8aUb}zUxq6hD98?^WIaSFZibu34L;B!jODKqVA%w8xQ(;!CFw>)Gb)rS>bft z)^kP5+uTmWSqdqAbCTFhOp3(X!ZJfiy{5XRs&faMr`oe?xWpnfyif9p+IF2$2VPiD z{%%dtg<--dkdxBfD?AkP6G!h~)6x5&Ei&JX=#f0{QYM%vh=Yhr zaC9`fsqbAvx|E0%XcmLrXwDLX)iKW5x`|{R>#*^P`DRSP94b3nV;xbr^>Np37U&Sy zXffGaax+;^HJv4FsBor7^*!OS#2rQuR*xw5`w`!rdT}$~__z>>m+3t_n96*^_V#*W zk*`UE<{9>AKEMIQlmmY->7;&p;|@G3_NfV^s4_6%_?n466p*DZ%9 zFD*BcZLZ%PiJQ5!HqyiMpM&M&64C+@NJ-7ND$Wf-+hA4`W_M^$FElmpN|@m3dN-A@ z2=);QfVu|#FLh<4A~efZ(23g}20>7dFZZSt++9mmeqau1nTx@{la~H9TVu&$I*9*P z=jT_KkFw11x(1Efh$A@zrM0!O9#0eB6^t5G?CeE$E!89dlA4hgfi`GhU6?K++X zXAyZZaZR4~6iu;2T2)iviMMd77@kZ|FX0=XwW)TUk9+UUH#A|s%TE*R2s6OlkMU9g zMmCH_{;cAehl}u7bVP2$3}>#h>!_;Dqh0q7w*VS4C!cZUifX=N8WA2j2CJsqsP`- z==t?2n*#?V_(_0T>uQ&8q!;+3PRkHM=Z6pp|V4kRy|-@gzhKDlFDTTSE5 z=lh(Pb>4_el1?dZt+V%V(3kW(3-CI8r7QfISg)fs;XkTZayz6#r0(vw8Lz{5mo0H- zdAw;!8L?O4-6C{L`Btx@pK)YhKxPI`wP@XgZ&5^RSMVv$dyXkjP7>BV_cz7vI4vr{ zCF%!a-8MlxU)%X9%Beu+DOXr9PZ`Z~?HF_IaVG@9Tlnd+VvuAoNWE6RJ^~=>DAkG% z?R0lIrLY7-ZQ~5zgdEo*xN3Y9!!N2>5o(NTOSDVd0?z%|!}hCz?RNLQj`veK*JyzO zOnPn<5c79@HXZR|@N*LcLKetA6huRWqGDp$+a$7cEm|D_11Y^~_q5Fh^y|XDSfieD z*CijUye;dryGt^^&Q5X5Z5k$<)2<~%`Xnt=EFFg#S@5h`>DCGt6lL{gsb_WUpqPtOY@ zw)*8SWZJX)vlI?XW`kAO`;#8Bcd|4oOYPUh?XW^2iIL2uHJ_m%`~{X4?MFn_$5Vux zPn9pR@?~pGf7F8@?yqA}|Aytee_>fS@_z}-8JOx6yE+Vh8y?QzQX7O=C;Z7rI~!kW z>*htvw-i51eO8)1eza=Vyg*hO8?S}Fq#A19UObH(RU1ZF=;VYgwWb|nN)gKltg<`Y z=LulSTm1%y5*wRb+LUW&{Q_w6b3|0!5V{>a>;eh1vGWBtA?r!#zAW)ynUPDaqjRHX zVL<|{1}R{{gFakPy^n_^?~Y&q|BItKPO0~>U|aJA%(ABIrUh>IqRTGd`}b4s;tNEJ zK4+s+x7p4EdqW<;wzoI7C?l`v=?4bsrGbrMLxiy6-sYD>!Z*EKOG-w+llPrHI|rCz z>WDp)dXR-3b%MwEYFov)I+UPKdZIEz7hpxqeqY1fKiCgV$l)wo1x=UezPM@R`O?H( znJ-PER;CkDX6B7B8PM8+8d%fZ@PhPpl5{J!QIjvTh(XAE86<#G94{&UsT5T^R4+r2 zgr{!bxb~h;PmNd%57r=XOT58jMX4u*TaZd-wOK!zAySX;*_yp*TG_Il=Dhc1LI_Ub z$&15Y$)@`r8dmg~A#-)dg6Ey|pd{;qu}PdOr9y!qOyK+q*)kfsLbiyF(4^o5tr9Wl ze4|q6I+rT2_+oF8gE2}FYX@%EYqr!AM_@o6qs?ofh5_<;IR~kJZ&ZaQ)FBz+g|e?Y zP3W;W7TLCPSEBLB0DBIt$x?EnKVkHzstj{lk>2cX{|yvG!Xlg-`rX{qjDN{o?cP{X zHW>r*Itc|K*Qe0(%GweiYYw+>aX#oTs?VspF7PF5gOjH5XBSqeD`}%>=fE4zQ$HS8 zu`t^f@15*`=zl7i(gTu7>7?qoJ%{_LW{Y9XY59DPJ!R#Jt!TLE)bzy4XG+iz=it{b zYx}t16VBf7#QQJ6tm`WKi~>VhBksYru1c9Ehk`F2G?872ZdW`$oDn>!M$A!;?V-;P1rhs-dCp`mXbjXV3+yr#!UtShcx!m^;4@>5T#hOdH5FOE&zUax$Iv%fLqKht`ybp&1HyrTU zMs;$?rG9K=S%Vf%{qQa)31F8}7BJwEj4z_v`wcQ5(tQ#B@!f#R+9fXclkNQ(I2g#r z4vE;);{%J;G_!-?hxWrOb6vZihF!>TLQHzKO^A44!ZTWt_V0+{JjG_K;e8^ED&Zi? zLuqt~*B8{PDB_d2h1!FlCMU1!laKcePVO1IZ!mx+LBYFm#ret0MEir{)j!MuF)aIevPr(ZfY^-cJUc;n#WraEeu$c;&^Rn9cLf224Dh5shhYh^n5KYFK@7f%wt>68Wp#xjOH_o z)&I+4k)ByBGz7&;!J4pv6KC68Jb@yvPFpXhv~0}D_%3h}CCe*^8mM?jB2#Z5GF%Fk z>Jk0VbxDcP{9@eZXU46pX-5t2a%z$ubdyzWC)~Kzs@UXMF;F$pJyIbW(wVR^jzU05 zvtmUUp4UC9mh@Gh_qHN2h&}VpVVZ2-Rw95)@ZnnQ`u5u4H{&rhlWX1}$*+68zM|jj zO}YvE7T>2o?$Qf^C%>cI*SaC`&f7O8r;~w(f+S3y199^U3Wfp6qSuzdeT_l9j`bz> z5XcEow)Rg+uuz4bPWNnG8bj9+gsXIZ&0T+rnXVv9H*GZQ>Q{B)OaTJRndCrbVezCl z1GxK8Ffb4H~gob&r+2-9>ZjRbRL6%h}*RYz%Pzk{kQ>dlQ@JLds_InI4S=uL^A~`PRH7 zqj&{ebLO_c#kssFNaD|b-AS##67c4FJsTKvr=~4ym>+b(&4#;B#RQp?qIQrfpt%#* z&5w8E&%p@-w@`e3ubj7%Ny2wlvV&M)HQz)4NZ?UA3w>)nv+e{wDY}LGi&ay_Y{tjr zPM?;BWfh)Q=}(2ZM`X1q)yllnMo7b#+>c-^ad6CHES9s;vmJZT-1~{y+*Y0Y&qpfO zqjRGqXrw_Yd}d5v0URX;?)^JUlQApL?~6?3G&%-LIpYEnKcoIph*&1RI4P#skO!PZ zB9;~4oagYz_w)NN1UBhj?o7a-ils9do0zQ>C08B8ED#;6+WboKcVXwWii0Y{hQ@m0UXbZy-P+zs*8;2jcMOVSVir48i>pdq!1 z!$CYlhq>5!=J48KlS_Y2G6b+5vMMDQafEq24~YfSxi#GH$Bb%7XK)EF4pR$sfnn&m zh_geo4n1!e=hDJR|7d>W%`F6BM~XS_GBjU`=qZtfn35G*Wiv?WD+2u6Yx4B;9++yz z`usT^w|ZZpTk4$0u5GKc-bGYB?+0tAhN^7nJm>bHXHL35)?qitz_mxU+sl+n=4Bi+ z&Fxb7PV}$KA#$tv7>;$9z1?bS=$ocDb~Y3QaMGI|i`WzCav`^#Dhwu}XiW}FO-Wrl zr=g!0Nz#snO-X{ScC;Y&tFg1i!|kOq+YClHzhTNR#`PZo;)w_X#1ep+nxc=wz@sW2 zJF3oBNR5OXYqJWuCNgLRBVkcNY(!v%sPnOXUZQa{=-JxZZh)!cac6hiZq%VcLu<_` z{2Q$@q-P}tJEu6;`h(P_i6BTGHYUa&+aXNt9~Ke)U$BU<58ln9NtYQ!9!So~f5md$ z7O%d)V!Lbr9RdvtZSXLG*(|-0AHv(oDR^ zmU>~uP@)7Ckfxqu_~z70{4u1VRGsu5tk<4Ao7Nk7!`IL(EEPY$EL0RgnIASeGIKI_y@Lb(x_X{0IZ)V>U-OcPY_EScCgykg=)cg) z^eC1|wPaLNsLE{D)={99??P&~qb-YyM$G?NW9b20TQO1x(}xYzDfF8DSt)*wYOsJE zLFm`=BhmvdPo6_e-wxKeXvclDjkh4stt3`((lrL3c#9-nV^Be9IJ#wuMp%~Eqt**JJ z8EBX5;tlzn3#-<{DlGUS#&Vp7@J{Tirw0)2oet(>GtynbZ{1TW;V=D~fOQ4;>`!=B zGq-g$G)r#6!k~7-1xPHeDclF`kk6g46FtR8rbX5r`Lg)=;p6gXfgu7$fNVNE`zi=7 z1~WeHB_3YBRejCg(=Wn+ns}yTQ66@7SU^w>?0!K6_PF?DWgowg5($(It7l~`-69^3 zt_Sl-(E_)j?izq4q3v&-2DnS&sYF^GfjeGW+|IY`RKA=fdylhzQ6#fC$bOr7L!}mB zcOHx3k}n9iOTX&;G&>UXV!u=-7H}bE61+N>fPnxP?E;optHEVotgUa7oZa2qM*jED znBIbh7Bk2^wkhC*+3xp6(4?K-ffs@j-)aOz z3qB$eaaj$n<%msA(5yV+^FIKX3te>J19U(LZ49yj_#rj88uvMT|CopV z^a@bVPs~c8W7t6lrZC`0B{mNOs7#)CvnE8*%L`M`tpQNW!o)YA$=RG_c3z7YYqp^I zGHM_NGtdyNtQgeaBof)}k#J#54>E@fy!EJcVb1w4qA}}}LID&4M zkvd~y^f!27%aTRno>vmAJ`Kh;6RXkap{*Dgz`9{=`>fNfuC0Y%+`7djHZul?eCzsx zrL;>O-xB_f@S3nlr8Eb;4NUH@o+qy7LqVaJc~HqS8uh$xmLXx5!bo$Wnf5K4!a6v!qs)}niir&vTeDoV)+K3(~qEAny{zi&UZ z-U$^<$mJKTS^x)RWm(ztnhWxA^@O@Z?u0Hu-e%Fl?9GcKXaS5!plZ^ijdG#ujZf|# zliw&6hJC8*_Xd-zj8QUPX)!2e)X!?|9U{z)BcPFrfBKZd)}d^a`pmio;rTCN z<;Byh2jV|JyUx0RnECQw5 zc=C?iUJ1-j`{%Hs_)ej~2v5B(JB#K&MZ7)V2?PdDrrSqoX=$$y>Xwc#=Z^I6F0JwI zy~jAM4dp`$*yXa;TZ~qCaI$fuBVE0gmkegGs-eMRh<;Ia3;>XEXA5^`@J@5^4qUvsjVyI=2Mwv!^1M!@(0cDFVB% zC(9N?X|Y;gAGu1!#P%Hrr=C`7RfxVOCA|jCR$IdX7c~y6QG_7oCpoet@vk_()vHa> zg?>#QuFdds>@}en5rdXaxD@SzCBFC2KQeW2$BgXZ0L8!y`N{sY#ti6U!754|>a zTy3V90ZUy3M{9@$rdn-@n*{`0u<3z!bLG4Qsgt?OPAXL9Vjx}?b#__AiEidMG*Y=% zl0k)8j)UI3JLHnod(PJtLK-bx{e`Sb-&})H^%GU;zQdy7@_XpU0MN9_uRG{WTs+N)pd2 z;x>Q2y!j{HqVzl>zdT_A2*N3_{>SU`qfx}frYS_?HY@A;qfhB^ zpl{H5ton<5M?^hU)J>m(HP{nP#-AO8NO^>s#Z#MJq7IR!5=3mmDYR2$7=Mc)5xc0i zFzh@VU{hH=Mg7#ecBJxFFD*11feo>oiqBsbeq&)~^(5IE0j)td^G5~42u$!wgxYpFR`-8li@(b93&(zWC$^7{ z=RL8`o+VsC51fdKC1?Ua8vVbxCHI~YpBB+CgUt+$N-pIy8VT>RKLRPJV?14u>^f=^B_(iRxH*>d1wO+$*_rUOtD5o12&yof-;lHOgS2Yln9au~ z6q+DnBWig{ip>9fLE#gczaTlbRN@h-spi?%uvof08H@7@vU_U^D=c9B{)?-te`?HXR~)|_DDx|9Xt1N3!(h^| zq5cdZzSHH|MbE>7$9K=@QW_#PT>icUB7E`wU+oW4CzF=hRy19!IdAWsU;r{LiT`dKZPI1{|QcM#t4;IX=RcPMH;qiBSw z5dThvFOX`+(8!SaDSwICXm@H{3iHAeG%_9!4KA^OPppKQuAwAhi_Dhp4fz`?z-f{F zn^`(s{{SG--hC)?g23@M#Ln%Ga4~gaEmLqBdsN6O1K&QXp!I8Q_fG$im*qUPuwz51 z7-LE_v1~_H(8=_TE8*`Cm3>s?DB@xx#`O3v+3BSt&xCnO-X?wS1azDyOw#sWuPa zbuv+@P9tvf-Ff>cr4%EY&t^Bff0n;#k2`t>;R+AI~H^*yz+}@jMGhK3A+To?Hi{F0( zcaOkPD@df89N08s5OF<;WxyH@@qhUru`bKc68j}+mM2{YjyxIUR7qyUPxq0!%$!i> zL?DAyw?MTDH^b9{hLF7wVR3a(3~I3OV~r7Tt3gH}KF_KEv7o~=yztx=0S2x=x}XmV z$0t>4zgZACJ}!>sC`6ChdiGnjDj`hYtd<|kD_dK#^KEyo!@W5j_o&NqcNPfh2hQ|w z&B9NOmQ39dgbKRgD{?j&CE0l_9e);#9(y@vlN&a322eGoh~R%{sq?1>xfBI7HFMBy z@K48=*sD?g9j_EQ=Rbbzim7B3nucZZsyD~ znfh4#G3E1mj+JNhNWTg=#c2=@{DUHJboLk`CD;I;*I+B}SpL!NVHWaO!~HQmf3Q!^_jupVkanTp_<o zQ0T6Fz}o4`Z%)&|=Fa?cG;Y1sIgK^YjAIP?k@yYq@?N9u5-Cp{!ZE*$P3R@)k0p}Z3J4HWxj9+lrT3LIN6ldrOW zSv1ttKZZTFP*M#Ifr9d>e@G;P6q-10tc>sw_(y8huFa8crY^W)u(RC&zAqgCL$!D4}HuI-5C?6lhuJB<48q&>C zKSp}^=mS;%peLQHpIpnyz=m-lmqzh+m>yhHOrZ3yp zK+$9cE9re73=MXtM$Z7tNK3y0-KxuGUgFGH21}V1^?;acZK1)9-_4F1F-S2?-B|T! z`*7moE?s!sE$lWCGhed|XyLx~j%T{S(|K=pxv zrOZuo^2~H4Et1d!e)u+ z7MSnAu9QkiIypHJ5f|si#EO3@#^-o?kJ{?FVt;#k^Xm0$VqhKX!ZMs6V@~-8xxa*S z+2P*_QJyKOhJuii9-4b9)6Y97%gp|U^zd9*mAGF_-(^$JxI4CdS9NsS`>i`M-QvjA zlEl-)uMXVzdED9NW6CQih=JmB2a{TN$b9z48U6=f-~Lo_V?eJ-96VT{7lu7v7~WJ| z3qt=k)PkH#vv>20hx496uQJT&`YwF`8JnjsCrpRfIdynj*25hdJ?OSKR?J;MSUGdW zWB>#7@a)M;YPEaDPIXy9gX2%etl+_Bbm$ONE&@<>R#@*GI}F4%+bq+@g%tdPupb}J z(;sM1X{#;aJK32YIcBoX9Rk(vhL{}}&@ak$l7B-Czy!@UdH;uxG(P{NL;F8CGkIY) zR$CwpR86BLQU#~4I$c0z6(4F5d#r`LtclIAg7ix5$3u$(38%5D?Jv zR!4*kE7mfxk8j^H_V(pb%?4JnViZ7aRH&N;XUtgH4XCC6xZRDYbx|2W)b7FmQkY#u z68#8e(nA6JGA@^Hpt)rw`nC zL?NF)i+57L9#sekGcz{+l?qB8A9t!!2rdp0dV&oIjF>PIdZ@&wSGQ#zux-x8;jOW> z%yTv#X$idkG#PC?O|S^(+(P`6ip*|1iJw5P*7mcNb8UR5>S-waYZ2yi-30zj_uQw* z)&2LNDMOF@MK&;qx?>yUe0=5R?vbr^Rk}TPq$~b4nz>1c$SF1jku9$o-*1=#bW6VI z<&5p_z$fd6fhAchOwx!klmpskDa-aKDTL+30?C~#85*+sP=P$Ut8IbuS`;U;k9A>u zU_c5ABJdSqyV8!DFQ&&LVz?kd?x7qHFcn7hCkJPeuGYMajq`|(F;yqA>^zF0g^7Ol z<^Ro}!hL`3*=9mOIimtCEPFa!po*)V{_23Ce2KaHgY*d5ZZo90lFUlMi)71-PG7mp zv^2>+!K@1NH(R9zDLIVgWVcaAuy`exn;G(_LZ1Q_k_AM!VHN=aB6s9~%|~k!ub*wg z=(A8AFr-caNsbz!(cdN1P-TkrEx)C*4vSa_;?$WX{XD4=Ok&@X&j!TPV6;=(zmA<^ z@t;aas=^0qWBuRPocrPLS-PIn!w2zFQo@)Grzw#p1qKErU=i&R)O%eWE+h#W@%p6k zq4z|Qs2(ZTqm5{3Gar9OQLur;F71^E5+BBI+49p4y;X2Vg-|$Fr1HMNKsci2pHeHb2SL;_4>J>?H@IRXC z;RreN5|VlG=RzLdN&G|CEu3ef^a3DC7NA-BAiM;YJR?{bKhC@se80o-A0(u11zdD$ zr3F-VZY?qhmyd(KY)Ec`@%O60D1(; zWCNv(fY{+OWR(3=*g)P2(TxxQJDDrF1n^t(pw=%3^Ql3p!@l?1NM0OkT5q-Mlc9;*y}O4;VN)0mWvn#c zJ$u0t2;jYxv|XFiiXijc)MtzSUlILG(Pta(memMB+d%RGlUd6gN&#a;Oyyi#z`d3F zGyTrh3k^{9X=Oe>Ci@RJxn>BI?452biD@apv9^(u{Nb#Xi*6SL*LSz;Q`#H3IeDuC zwmvFt_WlWB^~)FP8KU}rPjH@cR7d0S`QCC`foVVW7oI%ef_L@YZYxCfHiL)eju-af z3Vr?|DjliwDZ6BJ`ll%csneH-YaK-x%H`Y92`(mo?RH^oJKaC@3j!oON|3di_PDYx zd#prK1$D`0nRL-58PO@T=7Jqbllf`{ficzxHT{Ygev7X7w#}T#Qc-aT+g2{==I8Cz ztds-$P<~M69Wd2g7wx2AB)^QRmwK{hpjl8{0+-|)12ibeBC_A%=pEy%Xe5;RZhT0= zExXfZU*ma%Q?XVvM!aBpFd$=+^YzsB2&nd5fQGP~ZQfl)s=t8q<2;X7_$TMCs{Wl^ zK>nNXwzV$!ua2P!*-xd)7FQ4vkC`)0?u+yF;nE}FG#lI-Hf;JCzsU4?x1Fq*|D`-YNr?u!kV7Ao_?P&3 zivA^Oi@!D!-lLYCAc$8$K*!xBgWsLC<>6B6bxeHoVzcL3`y+amL^y7Bwkp`r?0n{0 z;Jud@zgmfAP%@jDVOJOqtVCwsf`A2wJB27C=!N*_kndI>@ePfPl!9HX(OlJJz9G|Zww4s@yoE2l4UIB<)h#Uz$=~!oe@}Bq!8I8AIdp@A=bnM%r`uo} zI3onJ5R23Q{ev-FjQ}FvYZh1m=e%@v%PJAtu#ZsNZl^KL-dn9(&9{_N^7>fr{*&L| zXa6h^r$^(mnho2os^HZkA&5giKI>{o`q*^W4%^83SI;L$<}Q2gVYb+&1NFgzl?Q0V zdqCmyI9A4Qcg+;SZH_N4#d?MhAZ5M^D&(m_XKt0U2;H93Fy|uhU@4zaN-0EPP61)Z zA4GCK4c~#eCRpLt;7=Sy0Rl4gAYNLevn@=JfHf`@#G)=y*(~BJZHMV+6oDl=V_e$?=-kp6}18&8tj{D!bQR8pj$O_br zNg$^+jc!faQ)m+0mG`<~zaRy%6^@BGUYmP{bAe|O-1(8*BTy!$8_OS6=q7E#IySA5 z*pI~ZD-9&^6I9X&kCi;VYr6?NHpvotq+onDb%5Pdk>Y22(0xU*2cK2azQzFOA*@B15gE3V*U#gLp8wEsSpagp{L0QIsu=}5SpMr^Htlw zmhJ(E`23uGf4%_=NPcauOWygyriTf8bv6rx=mO_2XKQSwh^2F8C&oM^FA1B0s|N;? z*$`SEF8R>*mqHx3hA9F?%sI-wQ*#xUm>&k-svQLvd|2RhPUzY3zPtQ!#RN1u{Av#j zQOy1HqLX@-m;xDO%>>T*uh5qGLjexb?rol&(IE#mwt+5nwX}-4=}(6p0YNf$w}TDP zd)T#pdREQn`)f2rgod2SPkWee^)9|8Phwnx=Cie^zlI}@X}Cv)KWhH~@AJcbqv${u z7UH^J;5XBMdE4G{l_kO#Q_==1>;)`-CW90xI=x1-v*Qh@) z)T<8Uzq5o~NHX9M?L(Qvxa85Y8ird03~=^rNETf#^r1Kb7h|!k_et4%@8MR%@s})* zZ1{~kn_z&v&7Uxu?z*M8?Uu=*Ap0C`YF}vH=su8PD4{*w>BAPrrFYL|pS%Ygz>__N za2D@=*_^z5d@OS+?Q}7ePA|w>i_P}rn*0V-ipZx7<1zmgvyAe&avwIq2RGy>Qoi7~ zaC%$YGUNqc*1SZz&3=}FAeurvVgJyk^>52;!k;k`r-8hsm>H1~v)TFfIY2HiWe9Bi z`MG_GX$pm1=#=BWnCz*06qH5av*=BZB%_wzb?E(`ISqGaA9iijcA9-ZH+jqj#Gb24 zLgxqq^JHFCY)|k(*DYZn>j}vd_)n=EJaEBb^<;>jTP#jaOx6iHWD;)|NE-6>q&x^j zdYyo*x5@ug8oLSsWx~)Gdk;@hp79?Oq{I0$uMpJw0BBeH+qNSa3rWldStR#X2Q?lS zyW78WQEo5xLICv>GCY0Rn16Pc#%4CGKUZr#U2mU#t5Iu3uxhyWb&b$c&oqt7*p2@_ z@eTi5Vw3)_O2<`ob$GveiOvC6tU9oOjMe=xDDeM9L;ubd+I0Am`k4Z>7VN9lL@bk7 z>LM>9vj_N^%PpR~S`L2EJqkS)Yt#p)PQS*+U`P(@3F@jXepC%+)32Bb?mYK5bgX&b zG_)h;S&L5Fk(_LXyi?$+B|bU3l9-9nFU@Ph&Ckghl@SI@CrBfoKDu5B&WZ|ZBxniI zeMMJqt4HvcVKFY3jCJiSe(O_ZMg|Ri{}PiphgDg5%G30A&7 ziMoSBA#aFAI|U{op)3=tw<@Ej?xrQTo*lejZB)WY$JUzS4?}lnFOOcz-Ci;>Z(g~s zk|`2Q%+DZSp#=e5Pz`Yl*Fy7rrMW>5f5xaZRi65Vyio>0rl1O`>3Orx- z8y9ayPsRkvIIW%4XU#@h8!H&^Ak$oKz6PY#&7HT{6- z0DApG_$~)-v?_`^7qvcVGL1m^r4iq`qQP->{ zSUtmSdV5@SG&9?s=0`g#Upy}MRyNc_zIz$FZ#es{Y24B=)!%mGFz7zG zo*5Wn^L-NLzx^mQKU?}jt^iKcg=9tKgIuB8rYw6)nji{_uSP`mxk`c=c(@kh1Ia}Q zUvA8%2=T^(RN4PgM6NHyEP(YzOYc*gEY=>w<}naZ9Wa@JBo- zZKmP8BH>?J?@QWme?)G%dxLz3Zh0h%ixbf!=rD+9JD#}O-wm!Lh7*WS&sue2Bn^iD zKEs&hHl*2t&tC9q2=2OoWoI!yuJU+qWUJiIhn1}XhJ!U5J<36IW2c^I@~|OVrW2<6 zdw|z}aa;uu21sBE=@k$&XLw5TO#fo0@Sjf8dH}>sa`mledjOo!j#>D5)r&A6d5L(s@N$Oa~p4yNzUP!!O!CX7vn_~F&`JUvkf zl+l8}X>^3LH|Ak@xU^zrz(P6Naoi7Xy#>ZMFK#amgYzQy9I@kj*G>day$0KneSLW> z87upa_eYznkapx#E?-<82<7aaN(J85jQ;S}QX#jSB*eswFL$~jEdJQso+2l#1j_Ke zWdUgO%kr;Z(0c>3f`gsAfX(t42ez&6-%J%ReQpqXkiVkGW)eKB@8`qv#yyHoE-u>Q zLG$$~52zqe@$eka4-J>;Rqjby0bUDq7K#^Ka9I0Lg`($kmL2AMeQ38wyT7_$;sq3e zMNM~y2NAeKDFxTZQ$oUPk{6Jgv4gxt?Ka_?VzSM(wsy)wT_3XInMf|}5D?LI$=?2q z>q|%9#}}icEW87U+Y-$8Iy$r8XC@+h2lBq@5O{Vxx?Bc$8Jx*jo4G>&WkHIt$cUhW zv`_$+WI?J3sY@cnBFDUegUGvNk@jgxi9=#|;M)b^fK>WcbtM1I=Dm>543 z-{N0WdV_fkV}`wwY*hVj6l%$BtlKmBM7&Nds_yW1`9Z4u{@shI+2%?UIrf=G1BuqX zIZjcp;^x18+lD_!^>NeJ8~>pm-h|+W1uBuuQ7GEAovD6dBpE5CGLGadUyC}k2my>> zDnLje81stUdPXLS|3RkwzsSV#cfj#tYVh@SvZVD1w6_k*Df9v@w7-AGy}aDRu`_{v zttx8cXR3a_Cz4-^|^iq5PRV0`ZVH|Q?zi; zrNKJG7Yl1jKqBb~`EYWxr8M0bvSLY?dYD;cCuBvv!_QlKSBGu}u#STNMWtc@mF~e@ zO~T<1N`rcmJk9^k`41()KLuuM1wE<4`04d#ZFYcgyO%c^PUAuL6SP}yb8i*W?Ifr+ zABArAxDW+y0a2>?q`HyTT`@YG&d1`ktyrwx5QpnQgm!DL){!&`eveP09zH?4a616V*S&~3uGuT{@+L+{&J+I2{KRoLa}X$ zL}(JqzMC^t&J*o}D!^r}LME3wuC8BP+F#VMNXFJTjAHKyE#i5#UszPI#(3(%e}Dq> zv4*~vTB$_Sgnzya0l0ZNR6<5=Q+e&w6bIMuaI%KP#(YNf#pd48roq4xpXxla@YC(x zhj|Z2%WKTy;y@g~QsqW?(w!v~()+wpzvBU0U&Ea+XO~=Hou1^8XJbK=@6~?K_(&_; z0D+{B>2x;otLQJ0Jt3L0lA4;qbY!Q~Fa^3bm0?v}CYPuO_=T!PpT7r^s?0QAk+zw! zwKx~YQR{pFZEI9*(T}Y4gI)1WG&OmtP8JDZ(&{4D${H0hvqbqq# z6AO{Tn>Ds@{jG>|)LCRfLf^NVK^rnt%Y#46Kcxp&8ho!m*-Wg@USptgh)FXpIqU3fGIu_TjH`BR*>N&HaA&y~$ytiN#nEXS}ezHJ&JcW#sEutG9X> zfk!^vk<}_TgAEPd_L}bBYTe^?TdSDV0bxT?MDX8EhA<64ZP^xKxRhe?McFw2Pu!CO znEmsjiT{Ry>gF^+DOYXJw&&`Y2su89FFP>0w!zHRSmFi0APQD3QlkZ> zxRaE|OUgpGcC6SR-=l67xw5lAU|?d34%-C8yd*12TU06jh>^@bh3P$6I|fVyeRCSg zjr|wIqyO1c6D90Wkhci{CH#%#!=qR5fd@04Z&8vdx^Pp=dM)wbI+1^Gw~Z+&!}rt6 zeu>XJZ=DCxS8IxvV~#1Anoy^)rD)!Q1kO(oluD%EaCEu~;zuVXapM4MKCC`gemh85 z@46v(?;jrQfBo|EZ5(ENyW-7S^kP{P>#6t0+D{~pGZm?&d@mx2CPh+-N~LJrr8e92 zkMf4*RJDEiPxYC`%d}+PwBDPd0l1>o)u7+i(9E0+io!iv@f?)+-bC%Jo+= zfA;db?9FDh9d6PIoXwF{IL|Rw6@z;>K;Q=?#?9kRdW9lNn8712Zr!dbwyGFu3p6#r zy&%ivcZMHOFX=fcP+q^_MNQ|cep5oJy6~_L<*{mZzB-9n+ImTNzCEe5LCo)k?He~` zeK}8ztpXoOG_JbXaPut?7{5HNO-G4$44hn7t-8}8QPH}T7I>QK;ug!uf`NIk*9p(t z9xpAStMaII$xGjr{cE4n7{WadYbgGiIlh!b;m{}Z;A~)dl(loPAs35yWW_#^E4n7j zk>J%iw25Xtm#v}@Ei4R3-qGm4lp`kHX9bF-{wxUs+U%M)dwTYe6jKZeRju> zFV|+`vj)67_B%PbF4|Mnm(Kgx?s4+4LRFOX2~t5}8#IULi=vU#GvoT#@zisOF7jCm z47g9V*zw&X;J$hl!^qybsz|R%5c`ptEok%}DaRu-SAo~n^kh0{cm0&&Kdo^3ZzBnu z^B>D*Pt!|cF6(zyGQV)uPP-I36IZplCcLZb+vrecqXCr+tkta+d-hUR79OnZyrZ5` z8jr*(k?$}<+p1t$E$tbYPU<4|t(nt>?cB7m-yti_$-iq^tI)0_KxdI9qRe31HImDXBT8 zY{k0?ug|w0yOTSBT~<_Nl_=n9-j*Jp0kNj)Pr%eZG#}CX>I$*ryjy+Ju`NmIt&$cb zir0R6#Nejl@tUM;5#2jMjF?dV%9v{}`l{>U>PiJ(y3#-d8iY@kD}&G0uIEn}ek{Yl57v)t^w|b_42C`%SxYujO#{K27^4B7ZTdW!eN*gE%m6T!PHW z)iOMI@C+}oMY`qn+dOg!qhX)*DGNMtaS`x(Go`}oh25{fuXu?(CCvBv9EN4mOk7R~ zDE|rRHUSMQpX47Ej)d)0k>9PFYyeYg6kwP-T?wpu;VaMC z_y^F%7D*4fQi6yAXNcyP9Am#xh`CG-dtc<$O~CtA|MIWwzbQDAE`M8Y+IbeJxz}7R z$=d_Nu#&%WY3TYAT&&9@xY)b2m9!@BsIkD=68b}Hs;jH59JQWTKe67jprz@-67?Q? zn_N&p?CHoSg6hDHmNa`gKtD3rk{No4yxbOE|9(A$+wlE%m)(;@^SfS@a?khA8tk&M z{nG~#T)bYU4N>^JnOrB0WXaGYW@2w{sQmyOE%CNX`Azs-_>XO}t#6*b z&$KYxq#+ zC7Sqv?nfWZ%ED|9{CKBm2Lt)X?VbWcc5b9xwTCD^a>f zxDAWQ@*67h=}!{-uY@kT&KLkf1=6oyVOIk8H~=X86S2ZeCgO1-0w)RWyMcejX=`gM zG|UnD*bL*Vv0tGGC*^F75hu!PA_`Zwz)&iC8GUkf(=?%v;gMtBc4jl(CPBj*g$%jIiK- zFg8cGW{H{!_THv(R-iDgd8fq~xu?nUdpboA|AlGkS3QNwFspB$l-Q&-ETH2 zysCzg>z1`E!Ia8<$mdQAVxrC2B#1j?-H=Nnk_BnaRM3k9^O13~KOmJ7Vwk%|d|L^G ztrUBI6)}PcB^jpAzX8VR{_rK6X}f8Il%9fMu|T=#P0i#iIB;uC(KU8ia*kfYC9~N6 zT}GAFKFFMu+=%f$EqbJc&Emyky2v4^!6%8xi=Udc#U&T~p!={Py|X%g7Cq{O`Qh=; zZ~vkgMy|g#OYUFIQpPQiWilZcr10O`f9-Ep*XPsXGkW!>^`sR!Ft87qhfoGhELY5v zLJ@fgOR^+{x8H@vJGfP@S>1Q4do|2SD%%a~wIk`}-k{{~^2YMuX7t+aPpV6wGMW0| z47Bvdr@!*9!=97n+Nq?*o_-?V)A3B*CzzZf>e4;= zCP%**S;5j25xqW~3b}E>aMKpC?M?UtJ2Z`r%TxW=j!_2Y;^t)_-XwI z{Fpd_v~>#ZQ$#ARDI5R7j$-U8oBeK;xL=6A(x|>n}8rfcAzA%|R_N z0>w}vXZQMTK7zb$OU+kQOoAc##va3;7(5w)zPA6D82K-gh_6AjLUrKwX&2D-I6BQ= zXB|+Evcz@aly&l(LEYi(J7S*05`FmIT7cNqhE<*S2%^vBO})7vf?e!GH;ZzL6`K2_ ze%-VJv3uuJaj+#T%Z%+0Wz6Rbnoy)s&?C@tpk-glvfWubl#)Fo>Rx;wSMvBvxt+C7 zJ(#jcF1?&LVb^fey|3vsK3P$9{KJT-y+WF}rXj!T8;5=k)|dtM zYu);Z9>3P+5=)V?OrP^seft$H|74bf0zZEHrGO6U$N*6zQk8@wx+{;OLnrU3#J|8< z>Tgtx)h=MOJQY9xN|dUQTScm@5^AzMZWp+ zq?dDwg_|ZADfC&ANjG8Zg!@N@TnxOKWomU!V#@lqWLpoF2rDDE_*Ntvh{*`n-d-II#*X)T3b8BV*SGoS1>IGV2|0^E;B?poE2)E9gh`Qc>TP8S-M&`m< zx+?XC_5SOm@^y~zrI2+CwIP>uoBFvIeqt0J_siA|O@>eG_N`qyg_UiW zi6X1Gaj9uy?LJ|m9)%4nZmDjbwOJ~O*GAS0*B#6LXzS>cQO*%-_%?J7{kDxP@mPEI zYW*#eI9SGk=|8)~App?jqIzr2Kh09IUsv}r{ih|qMN9!)Wkx#$7i&4L>0y8ImizFxngz#VXZzTJ!`@Xs5Fn zMa6~R+}x76*V%{GZPWq?$bT4@V#e;NP}^BI`h~pY7v?SECeh}VB7e7@+k5gkr7K$^ zU*&A2^eUFNNjJANV7~B=I!&$iXXy3QUv#wNk7ZJTjY?cHb#nkqQl$){Q2T-3N_25@ zAwH2GetLiM>Pe2>n25-t9ieUaH$P;SYJ+A8ss*pgnV|im^qY=y)nzZ{V04p9QycMM zGNi;|sf?~!&J3f&dF+imD)sOl|2&dF^RM4T$zDH8Gjlt#MrfLH9a>#qS0s$Fdav#8 zn~zTXra4J}DL3HkOKafs8rkb(#vhM{XqU%|dPHB=O6(z>ziE0Ng^3xo|Ky)2{oMdc z*nuzq1)$WjSupPOhOg$3ogoeRS0P33kbrZNGmtX(XC{S}qWV5?BXV&&zqY;Lqoub< zzlxcAhJk(dEB0#YOd|sMlZ~)b+r4xPs8=r<(cUA81;& z@5xI5;wpFN;R(9m;HTiG6eqT9@jvW4avV+E!Zde%_P4K`g77w{6w9&HRku2M%UwPI zHi5Pal?p>-Q*-mxnLn4PEUhNWh$-X{d+;Im_uvs`DHd#%jvj)$EOp55cZgbiftJ)3&)w(ESjK3-C9q*l!={BJ`r?ExFY zGCopNd}S%mpiPdR@W~l*02Kftx*K2Iu?fALZhwjk+mE(yu8M8@fse`KFk(Rdr~Tc0 z$@84phzN0tjt(%c?JYPeNuO5?hlVO6Apg?QIiP2>XMBd>3p9}&epC&&_{&H(ae=TT z)?kY-I4ZCg`EY7Vgxf9B3dsbe`V?fNlgqNJo>w$EtHfdd`J1YC`7!QCkUn{LXbEYy z@<_ABato@9^7ONZ^!JFCmw_VDEv&?R-=87e&Ym*n7La~8zv&iR-=C9_t-E@oljB8{ z2ZlG*{(SwN_k@pUW#k4mrS8FGNb6MIE}?*?@9*Ty4~##6=8cH;9y5Y0@@PQPre(~x z!W=TR3=Hx9SHxjYFR~iGjWWcYD?hPwzua3G$@YVLom`yNw5v!V=~TNU-;Fzd8FI*B$3ZKd}OxCw*Y2+uvTlW(FN#tRI%x>4)EiTas>i9Fe2zI z5g%VwYYxJoJjbC`q9TSgg2lO7pT{z7{CjPa?lI8x6Hp*l3I4TG{se}BMiE?~Ha$N( z7{omT+-MMz$r-t^6c>0i-)Vvt-7V-QE6hCnwcHRBVzHx=<3DHRJmx1jzI|R2xX4n^ z&*ro$;VU|xC-l*h0L`AmS1fEKDe)q*NzeYbMP7;lTLjx(r(E?JqZhD6GPj#&DWx8| z2<~!v>Da2szrj_F?ZdGYo-vLA-g^$v7kh8`*qbG4%@w#!T)iv$&Jmp=IC(!a;2Mw= z@AYx${s0 zC!nKwlaT??Q8R>GpN7aLv7=`K|JIRx?EWyvW$=DYJa-7vBi(;(AnsFtl!YHD3;L1l z(v4)Tvgj!uv-Ygqn=^q?| zjIePI(ry_-gFiOE`(Ei4ZhoEo>Hz)DO?v$cY{$^-clcE|wIEYhl}^Ae3z2`@fB2@U z+%dMj^LIzj)0XaE&tLOsHuC|O{mvn2vXDN~kB^U^UKTpa$jY)*rpViAe+X9lI~FAV z3ebO>qTUdx4E=56ghPL=Mz2c|I$#Md(6>F=Fq#g=phOPhJ8QLiQz99>a59?HijUX1 z{H!Pj&7Z8IAk$}xL(`3Q<|f|ntWPa(?kzhV1D(mVHpqB+5!@%X@%im1AXhp0R_jO1 z?S{`KlA>Sc5?9oL=kyNEgx_iOW{uR#TBRR! z0l+7cz=c(<7ie-3)e9uC6+^Gx^nEs>~zD3mf7q~M43^bu-lJbzt*1gq4O1IkJ z!yPsK#`vVk+6;6-kI*!xDbY`1d*LU&=B0u}6+D+8zdjU(#YiKnko!7L3rX;I@Y8tFxv$>>HGC3_D1sXUNg^ELOx zd1M}mQ9%??vucx<16Etg19d&)a|B%=*!1>suV9w)aY~qFhVI|sB$Y3)(#|-N1|iQH zbLr|Nt3YxGWzhj4NOZdY7(p_5eQKCc=@E8MQp#!{3ctI%SA|4qwVgV4d5fn=&o6Oq z%95GFh?i3(6A_=K@rZ~%=XTOg+Rq|P^>#Sh+OkeLN-HQ}{TvODp;8`cLH2NPcmmw> z5C{Y#8WX8SDJne-r;CObPE_rYhdWl4pCYhb2D7vac6qY{y)W7j!DdE>y#LYWAYe9l z`>Dr1TiIxlfnF{AsvZjI1_@tnJs0Y{{tfF5Y9(_D-=H|V;5WNvg@)C0zxa4wdbOXO zckMi<3oXrktB)wI7w{WsU1r`1Y<(&C#ryc^Yy6BsPPN5QdL%Hsoub*>-9;EgAr32! zvkHw>XyG>}0B{s{@`C>|M#fNQK#=s{ZA5er`h`?k@)RCvg8$V!0fXI)D|A* zK6A9+j8)xwPE7AN#)ycoj8+Rax!P5f9~!qB+DKfBz4lLES@X9D#uhjI>{PthInvhs z5ESgneT%v=KA%MXPviK%V9>_auH=0LsSh;pcig)4J-(-3{s)A27b;m?52_G>ex~H_ zm>5sHD=pC0=HrJfs|Qk?ckRXAp*K761R*kz`lcjpnI`sc@7=iMG>zD0Q{^el^L=DF z{PcPY-Y4MB{>7ihWPB7Qvyp}GlcoNiOnSym;!%2-Mx=lcHoTA313!AxMM)ZlqJJ^> z;#2TvW12a`mB(xOHuzJ7vHWZqP(8K(d@9 z%fz+|LDatF6V8mbe?`5~eqocw=FYCE&*i?vL8P3^Pfdx7$ivNHe?iD`WB z4pQ!M!~5V4Q$MhY_$~)!35(<# zqXX)nI2qBEKkMJV6gc(StwIh}4k8J>ZA?F8i--Ja`O8E1r!U~!589DWgo<@AYI?m&jGHB?ZZB5NS~-B9uqYz!%5@oR57F(PgtWxVbi!BPI7I0$d-81D^J;+yk!v>LGE~hp{cj$ynG)C-3z)OX;z^?3 zxKy{crM>}@);p^Yg<6f-lI79&;dP;g)h@LLI!RoJmXnz{)8#A131BsXa)itq-HexK zubH(=Gueef%Co#ydahr-&smx)&)Yv76V8kAxx`h+Ca{A;!G2&ly;PL7 zJPQi#lAB?I4?JE68dF-DPS=*prJPdY3@QBq3-LVDP=UA7+mv&>9TUyMJ|B+-|tc#wK$#!)3c#Jp; zEhy~*bvPaR*cSW+ZN2X&?yGMt$RC&LF!%Xitmr)=fJA1So6mgw&J=jM)%E-uOORLU zvm&qfTgBVCtwoHD*By!uUE2RM7z_Uzj8cHX*y!mItGJ3YVhg%9`#c(P{srAK=+>yI z$N$S@L7=a|JD8}bN~04UmfxAtq>V#dVCK{(eX)cgg(&>Nufx6Dg-Y3Hile<*&y`Wk zM?Wq2RWmSzr3E10;g(40J!RzDp-EQRc=njZQi(X)jY91iekl-)RsXD5QrtzW9DBnd znOboVqru+l_gw3e(9c*A7KL<9%$6SmoX?*7n{!~c+@VpLn5^Sxh_A-S1`rc{`GP|8 zn#%tHu!OnDE6V4rNE<(GUCIQ4i>wo*2#0NPq1aZ~2W&L{ zdw|(RdbKzeP|h)TfsppjP{hU87cSe^=Xs#Kw9>Vs^Q`HleaQ*mXcglM(Ddd-qISl5 z|LENMS%38}VJ)D;_vEAioktW9wu0uv(O5;Dl`ajuNZ9)4!4moh zvaZ(a(+t+Rz3Ok9%XVQuKLj!5Us32H1&n(8BLrL!KXAY{PnYEbTw=uEyzy5-MnOtk zeq)JdYohOPY*1HhCO-`^SMqi}{&@ASpn1YK;eCBQH*^!az5~RI525{f6^l})tQ}Y6 z_Vdu3n11}p7b^O#-E_DP11O<*1)C5Z_d8}J1smx00n#7J(OSG$jLR;pC&>`i&AS$f zSAKq%a2<3_Gs*H^5&>}y7iN=mozwG3jR*N869Ph72ZcdC-J;k$p~CY*(t4m3CoWnj zM}PiSH@R*gqR!mP&W>}vQcB9YRBtG?w1?nA;4?+=4CKOsCqS7GsRP^V35`#fVdUnQ zc7EZj3rXL)9Jl<~4A)=IAusJYv@?)*IE~;I^)IicGn#ik*}@C5tJS(ANjXZi%6LqU z>6mqNXPDU7VqXRAoAu(QMP`e!F|(><5by4@zRqyBonIXF<+Hxe8CXbcEtpVN3Av{E zBzZ4!kH3dq`pVy*W>kHh5)R`qt34Q}#N7C;CXQ6|*eqrhd3x5x(uP<6yW-KIf)(5* z^wE>=`Gpozjnd1u)24wu1=K9^y;CNkDz~E^OvRX-kx7gF1o3B))J7~`{A2wtcp5*Kfr!ZpOpIje-oz1kv4a`Rj zK1{fg zSqo1bA%Nl;72-S&w4Na9>C?Ls2@Y5yH}4beIZmD^ghSIS7xd$R_lCF;MFCAmVXxAD z=;qExyx>)1Z@9Ld^Inl<4k_vu;Zh85OX@Tc#WcQZN6vn2{HTdHpRFfwoI3O4N9wX{ z!mXN0&~0mz!-KKsP5^`1T+C*5iHY`=e@1ylWSJrCanQ4n2s-e?t+lMmvW$5eD&by? zva_5Puv!iRS^D)*I&Zw9zqz~wKXTGL^6MbE$U0V~W*Jw*3lup+cIKrxShOqRAYxbF zSoNxyD}Qc}m_!O`M2H+v5i$rVl4=;&M#MhAk63;6OyV_$H$m;5IT}UMo4W;JVU)uC zB5|gZUyX`wh!Q;}bhgx+}LuK$4 z92ZoCX0a68e=)&blS25o8|rAhnZ(g*l&(VP9AMoM^)pDJS(dN|HPjW9ENq`O=(FoO zSL0bSC#Kr<5!|u}U*Wh7O&Mvw|5CKA|5!1Zu&7n^p4~^bYoc4~F=cfTs?6=H#t^$N z)pLwV%oZn|;n7X&7@R@5|AZ<^EFk@*KUB11`5P#=@;%(|s6vdEC4M*fQCEYJK*oo! zg1UaQSfewD;aBp`iIg;wv|>rZfHDb7 zo)J{sy?AylC=dJWZku=j2aZY#Z_E{nM2f@9n^FAb?5^fUb)zGit=04VR(aOgPq}!* zB5g%K_vLgEXOb0-%|<6vhpB^R$bt8d-&;Y7+;^%#JWxR3wPfcFT>j7Ayqt;GL^(6` zzm{}GgbSx%=SV-Y3t-4}Qg%`*-FIC}M?MglSUlNi@h60AC?nP2@LW*FvF4>)HrfrK z#UdE!>N0OyzloyfU9V2B9QKLNLVJGkqA~qdQw~&85hXh&2S#gUeJ?RGUCQ9Xq*f8& zyUS;;34c;9Kx%C08VFVLII2kB(kbfR8qgqs4in9lr587vNH-_pNipziYiSk%kyoat zYhCn3o{_S#3P>(N$#`!W6pt6@*mI;Kj{JOlO+oPGwa+K_)COf`t1`dGi@{Y%kgIIOWY9H*?ix&WEZ8gySz9%vYRDQyVybcQyoTFUt%@$`d8g$CnYz;Sg+K+4_Vvlkstut{h^y0_D zX3C8R+0N8TW}oHAZl~-YZR_R+5e^S7dOL7qpkmJ1=hHA)P^4HqI>m$Z+qpv3j?I^G z;yJOi>ug@;yP%cFM4%hymRh{{aE(0Z@ClW_e>eihD4!Q~Yn;Evs4^YsY9i7|9s2C3 zJbH~?lqFkE;Angfv=r)B@i_4_@F6Gu$8%9amuQkjp@ZHa(`2uwoufuUQwX|^FJ;t2 zruIM|+|CplE(Wh;&^E1J%x<0jd{0q9%9>^8gfe zKz6zuhUO;g9gu941*S5pwW+r*LA&-caYS3aI6k5q(CX#4Z=4?VxbNR*ey66)hXE#_ z6W=FEu4vh4StZW9ux(u+P0^q}wd8#=uY94<;a*&zR%%fH$|pf~Mp@+OiQwrhje@AC zbCnYPG*mwF1z)GFxBWDk=UckYFC0bbq1*@su@TB*4>H^n7s<7xx#e}bUvP@}gFPOD z8qZGFAF)8G0wHY`#h(r&f%^=wO3U9jzVqEJf8Sj=D~r2UuBkkIy+nB&DQjL%@t%&~ zz&(j`CC~huVUum%%Stw)G>o{Q%6;D;JGtLzfc2_Y{RGBB6D7NL&qO4`N2g7)`qm&RU!ye*@Bs#};G=9Yeb z@jH{WRK@7K^>x>=as)LV4Td<4Qq(HRe{=b*OGS3Q31%`%#7{g$at)y4!BEo`zI4RDg7=mZZ6&ZUI>&8 zlNU=!?>w7mcz2Kg%hm6Z0P@xkK?W%QG^MYiB9Ze5(C(g zRJa!Yd@H3mv~2sQn_JyzbJLYwv=q21CY4@cx{*VBBZ4kY)#(R0b#+?4!((~$((17m zg`DUH`LPKws!x7SCIxa4A3uKNi}gOxA`BAfn^1b>$~Z1;65`Z>_~i_gXc#-Yy4LRK zq_VIun+?RX?J))4I>)e|^ZY0-4qz^7)Uvj=&V}ZvKWEpsBuJMId+|z9QE|&-s<>4C z5NbH|P#T%#?B=3Y^N?c^vs`0U!m6QsIN8G+N^-Yj=&r=BSOGlI`!(FPNEQ1J*oY`( zKpA-afVSgE_zUFg=;IkqlWC#ctTg0LYOhmDK~x@V?`*d_gkovO?YC$t2+PeeTTE2N z*AP9Mg$x{g0KyfKyLCc3^P}6k!r-c zf9}2Lq2QI=L!a8M|0y-{yfF6HcHvy(((^Qt%QJtO%hh3I$qJ%i_zOzZY>$nbH zBFxi0SWbK|uZzUL`8bPV^7sL@IwQI7J&5VeNZs9l@FVNK##%X)R?c7SF?C|oAAYF{ zmA2;ve;Rj8GXzH0H)-QKeLAzyLmpx#D7 zZ`xBo9fdH{HA^XK+79MBHLw%iF-3gC&gpwJ#*j_~N5QrjQ>JVDoh+~51Z!V`i>Lb? znQ;r047eJfyJ{QI2JKl7dIG+-jd~hYX>2vjb|ezS%Pl}tonCZv@2s4_6npi$Z>zoG zoWhkofaa)n8>Mk=Z6w9iHcf-PRbYk^j`*QCT?u&Y5tPIXy9QUS;6kw-ECpgBqL+kr zw=HsNkkcuM6d36kUz`dXNt74C!rQtv9-+)6B-_ckDQ~mGtpDeVI!3p3iju!pNH_YS zunN1Fa}5^xvq$-#UisPXVsq3G59=haakU*x#Xar@anno_tk#`ev)1zZ5)k1#jb2Y+ zP;?AtMsIlSA_*1Y_by|dA1#bYX(mi<1|#>478iL{ETEfzp5|1!@@@s!7DG_K7waT; z7ves&nsP;yw*7yIzpU4fq17A9Jwf~@)V47bnNKY&g86J95NHSqk#Gle_^I{X+k1XTU z4w-j#fcq!`f5L)QD8yr@GOJoobkiFC1*VqOUB+)epG#lN7@xKWjk+Wk9-63UnJgV^ z^7Fn^iv7MgK5pFIdsoz_dSN@}6;=;6%EHoECp_GHL1fKmA-ZrO9(NCX#&#ZuQfzVX zq{Rr1cK&vR3-E-F&5UeqI+fJa)D5A~O=ETSIIX37@d&=qR413$ zmNh(gR00NL9&2hRkz8pJJn{V8X1n`s=oRO}#7WTKC)Dbsj6kUX2qF7wC*>dldHEWo z)t@92o@G!HlX0aYJ9-+wJ(ZK60ofh$=(3F@C{zil@j`2-COY8bvE_#z2=-B{YI+~o z!82dpOlw#0-|3Z`GfvA2%(YnNaK&w8Td3ID_dOC~}x8_XnAvBNAkaQqdKTdt=B5B}orW+j99J zLB$i?G)uTA`b4e6LkCB?8QO3GN%c5o;}X0=&RtTYRN8jgk15sD#L;qZ?r^!IL6B)DqV76| zu@1~`L@_+x1m5o->ini2El# z*BZG@2Sc_vFW{4%GSX!48Hm$3b&FY$H&4q;s>~7=&ljCMy$!F>ZRuB49zn+_6t}f^ z$^m|zt-3Q6Il=J*4O!N1khtC!WBJh1xoPTVOk^ksJvKemg{vkOuWSKzKDjUD*X05j z{y<)AE;L_Ir<6Z6)3?J6qs6Kn(m86|t~djM+GtMdiV&@77v045%3Ma?ucF`LPYt6ntC0Cvg1JX zxQ|LJ?kzphhw}(qsz};M@+kB3p7GtPnmX;DOZN;=R~FKW0Bxx_Q{#$WD)Z(TT0UI^7WQJqQ1A@`)4Y5yY#T}4o zWhd{VSfyQ%Sx>wYHuY}j{b_JC-6y>yJN`4=O5c&xe*)}qJFlpnG8gxFIv9Gk)xN@S zfyaU9^=PHO5$HS;g&G>)oAGe_b${-t%$&CEKHFKL^u8G+x~j|Iv;L!4ZfrXrU7`Iv zXCYk2!?VRT#n}-p^Wkzw{p|OFCueZOP7Bm@zRerB7oepqJ^s|Xa#8kT3M#y>lb%D& zFy^_rSBnpBn}F)=>y%S^9ats7#(Ktv2Jb4CJ>rsfZz8Y6Y$+xR_|v^Fi=0jnCpI#e zqwjg+RE}I_=@93;xiu3)+a2l@(zxaZHGGeeAqi#J3oVA!FaXg0pIS-^DWv`Vt9q5` z*mtx{O{+{Sa{^-&eKLt8GnNkE^&GW>dTj)=8Q5{_8ajA7b)#PW=PD6B$aiHo*Ho zUFU4yF`S~G22YfvUbBb*KkgX&O%!lXxOOlfG^z?=lR0Apr%F*+-t7Sf77T! zr@v3TE5VH6wcZ_Wu4R?>$v{i1yw1Hpk<%o%yj-a}oYLa5N|VlZ-(){255@_bXq+yc zqmqwjk4zPR3qf2wM9$)I^##B=Zh;LxM1bHAqiO)8jHv(0B#Py+<>qGISn+361oJiPx(_X^g`(h{{Be&c6B$$cIr}( zAYdnL1OWux&Am~ZFlw^sdExGJ7-j3Tegu*R?}q+kj6u1~0udgoQK9HwQ-a+LuTdqq zvi-zJEWa5uQ}5&`Ea$mqdA-y&8Tvf>JgRP@E`E3#pHi~(ht)wV!XyMcwRFYkhcN@K zQKp5b(}jZQNRj&c^GjJykwVlF(MS9rksWRmrOEv&Q~mlK=@D-V+FJ$&#mG1iZwDuo zqG)hLRS1TT^!4=E9#7-;a}BVg{H~|vgEnK`XaS~qSCa&oz-$d1cfTOUUCth{F%X>Df5v)G|EBUf@^U`Agfs#R>) zhJuKn6~9S)Qbv%{HF#D!t%&5}PVE9=z|ghFE#3FpI|o6*Y0pH(hoWjMT+0RvDOuN9 zrdVb6qHAuWeh=`$BsM&W!F2M^IWTOO%f#*%mb?M39Yg^6Wc+F^au%pNktgj{r8H3) zKvCLbdf!PYx_lD?`U*-_A_{At^oaGlO)~rnA|p4%?*;z>q7^8XuI*_(imoeOX^SHI z;Um*CGyUQ)96#x%M>lEiMUH=iqRQDjoN+mM3u+bDz!( z8|#5ZOtg))wT1yKR~cqzCraZ|#LS_BOwy!3@~qX_qSV1JxlUS^7^EPc8X3m?1fW`T;Vjg*#4)3m>4zQ z^K6~E(YzWKuPN4qUA+ZqDXUfsh~XSn#x zwO04*^=Ty0XQWd*;kcq%=9icvTcX+i`~XfwK=L*8N3m?yTinNx*>k~sie4yUp0<>O zHl6#nxanOY?aqfY=t~F8T+aRe03J%-)clnl`aLN+3{AUk+n_NJ6K>$`C6-G2_CD;x}!8DeL{jmbNp`S7?^;|%G3(RAgoKC8+H z?a(@6{umET z*9`!PmWpeqe7qgbC35fCRr>~-S}D#887rbVO?vu|hLtATa-bcwl2__|BYO3Gi6ipU zr8;(7aX^x8v@Ecu1^D^+`uBKka$8CjhWHFVn#X^%v58gV&2eeH{dM)7N&O-uId|s) z87B~$$7GShfgQ-Gb9_Xms`-WG+<|Q631Q@#@B&4o8c9_xE#~!}2rbCFen0hsLWy%O^^0D@kzQ|T zQ|wi0|DV#X`%f(0;39++zR#}INb{ni80F?v61|XXJPYjDY#<4m8kCB53|!!?t99=$ zp|p!a2kS5$HVX|MPqK?HKtC3PT^k5e;X3e-E-@)XB|_EdFr7yxHSi%<$e4ACpXTPC zvnbRsPYgjM+pj^Pq9{QEd2-!sYEa?hz=HEue_6dBSc_F>+MqOIrl{>}UTmiKKb@kJ zvI=9gld|=mIHu!O)aU<*OZSF`1IS;BF-+ACOlEMtd^pEWA8WtdfCjZoh=!Jytbsuq ziRKtoYJWt+MaM)vhliJU0Ec(Lxg8w-^Uf za7?p`PVoT8obZc~RaZ8ewylA`F<_wT(P2RBB_C1C< z|Akrg|Nk)S(Q;}^)9LI~y1x^{MA5(2c=P4W_F#h9VN>{n`@7H@Osp3ww1kuOgfM=r z`a*kxa)Ww9)QMJ5v++E~cjP|>;)%y|zzyY&v*`+>rP}3IC3%DTc~8}9Nmj;7U25h7 z6HxXn=|c;JPaB&TTQDPLP_>X2koJdX6Rd2yTPNKNOrL5f)>6Ennpki}H7IW^xWlynk?^2 zOzE{h&{=6C#|atDH-b5da`5QBlxZd1bD8~ln zE5{XNc*EyOHy|6Y%sYS!@K4?F$Eni^QYh-D4 z;V)T#c8!oBA$J`*fs~{S8gt0>0>IO)OCAfGx{#lmdBO1ntxp_CwAASHJ~Ok-n~j0{ zZ~F|~2PlskxJxzC-f!a&K?-}?%|HCr&K~YgrG&640DvS^pb`0WKfPctoJFeTx$ElghW%)Eh)wB5-C$^BZcG|H)| zuTL4lN!Fxxwb5%nQ0p6Sb`OS(>4if~8E_7Io>Dd<-jH~C8#1{H}N??;2}#dvBpB3tgs>`RzuGs zs!Sd!$gXVsLrjM7TRKu#4zG8g%9n(0<_<>Z7E3Dn&{l7+jw{TW+vKcmiZ_>Zpqs16 z`CYW)Gq}ZZ_KWvYyBf%$UUgf%HZ#)tLFuo~n@ZSY03Wp9#=b45P2^hct!E4W%FVQ* znvN>F^20gm&CCMSxOlhoV0R+Fw|zN@?zj!K@O|OmDwg=Oilc(A0L{v=nibrr>-SiI z9%gfWdU4AsO+mdsZT}sx0F!lIU(`wBs2vWA%+cnpoTh+^C6;?Ru3*PtT5#*BHLR;0 z`|NsR1l=McUBoI--?MMqtRtW83<_S(b0?~5FlZ0AV8$42YCnX|P;mKNtNcMjKW*HU zT#ow)H_t+c;|{I;@7p0~q!!$O8XEQPpB>*d*iFf-*O=kwQ!=cJ!%8C^9>-zeT$K8F z15HzO1Pf1T$T%n1#iASPv$OEm75nZQ6s^F$+=X`MT8iy%o!`L?8N_i_@W07<;LwYf zRR8eS%xmwxp0^fso0Un@*J0b-!=x5Ucho!b-QaAz8@cLB&SQDgbt|vk?0V*WjUJe_ zw)~#vk5c`y9nx`(cpBV38*@$5a#a~2egt5nLhk}(l(k5T!_L2@AlNCi{l%k$i-!~y z1Xx)#5TIDLYMWqgrObI{QrGOzZUIQ;JhMrcL`Z{961O}-j+gYJ+HAnAQ-)WvM(*1* zWpmgIPPI5(Rj4q3(p>7mK)+eAoC-S-o)?n}v!K6)#vU%z4|IoCK>VMT%oV~;Vf$f{7QM5a>v>Xi`W*TVGIWadGB*1- zt}O-uBOl)slub`I1mCRHzYOXdeFHQU{B{uq6u3Zb6uc+I4r{msnH`$<6~uqc_VDL_ zfj;nR7XHXiOYLFwRIV9b5}>%9oQF>wsA`OKsC#1;YOj!=%1t#JGw~$7^_pe>{%oUk z{}l&RGjb5Mr#;mxfOc#2Qk+O#la57r%GK_?TsS~bVB1-uz{RCVqQ0EZiWtUNUrw*d z;q;}ee2JX-xRB=>YVoSj z^X$uVIi-~QeO2%PC$o;u$gfPo+Jc~cvfa3OUg84W9 zsPcvQ3BVc5(?xO!Qy-7F+i~f+65_x2CbW5kV5ves?zjO~kNVI@e3{aj<&4KgD=yc5 zQ=NLF*n53C8Q~k4SAN7For>hiLj~odPy=ZD<+=d`Fnfg4PRa>aauQ^{!xBn3M3tvY z=2GpC(}x->D>HodS!PP+-ZF2(>X%~+GJKh4OB+1=^{;QZrxd0MH~)|R97cqKCzBzr zjQwLS-H5M~a$I@ny0pL?N3VZU;cYM_pJar{y-E_FDSHKNY z6ke{MOBd#+(=JM>pK|X*zbRb|j?mxebTN44ZzJBS2$ATvYVQNzpnIpS{k=CNN4oEo z_15;c?1wE(z2U4ne!l){_&VwNU(*~s;6pwc&6fRTr=pC8_nV#gem!-mZeb9CUoF&8 zDM(89(JL6EOIPf#Wqy0nz#3{PI@k`h3u9tK70#f3Q`}NB#VETG2ITZ4O)aH^v>aEI zqbsz6`$@?*Ha2Fky{UXVE6*ez9@{v!lzKT;)vTLR^UdP8YPTU>Zl*6{N+90Q8o#Mn z^T|mR`X9Rm5v_XRRXcs}g@kE9&LJX3n(LCyvtwCNp47WS>09jL63$@11Im#;;bULZ=`_lwCB+#7 zbMxM5ZVR9RY<@65%VLh5gM}Ak%pHF7^Xps#Oo1HS_*;&I%OmPQ4SB3&x-=FT#_A(w z9(&JmS`N}2(GWwJ+;%((nAli^DovG)PcCK?tY{ZYlWO%dx{hE@@$T5&&bv^WNC0h{ zm=}`>sfS7C%J*3oCK|G%sL>&#bu$T2so%X>S!Mv zy#64OI)qc{NjNuDf)Mhy=-N;I9-o@#pPjtpofhy;7K@iDgXuh{(!Ch~C#0Dq{nNWC{r9!Hy;bw3LlolW*M0R@bN3g= z`TJVWtLYJ$4!E99+9C)16cA-B*!FNUcfu+89xyd}Flt??h~4CRsKi4ffu^KFKE98j zpCnfd?;e^d+?eO$g}yn!8ofP`2mI^O38nAw{3AQ_0EcoJ22l|FV4&LN=KrDYEufJHi&7eqMkx{LZWWMjknZm8Vdm@!e4h7w z>pkaN|60#ki^ZBX^NYRjy!PJLy|o=b% zqg2sw+lCsv7;(MWAlC!dx`w#tcc<12mJi-qG^{uq4{zdwaT&Aq3s2|r;oonU4VjGx6X!G??Rd?koJ!10 z&BDwF3!7Gkg-h7iLjr7NU2D4KUxYa6+@l|Ns7`4y{B6eVlK$no!15LYir>;ah*o4E zl%M^|4Y*y|uM}p!OLm>7hN+wf^YZg0Pmz8N{qS48|8pj%JhS3%qm&r*;58;PKPB_% zJH2zXGrvbGg&?mQCG)5$`UHhQmrnY?md^G|tP+xWB+WGMNq@UENteTHb~~X63spxx z%sRS*ix7S%7r<&-DVVQ`%0B5eavqbdm#1Vs3pW#Qfz=_jxlSdZC$iwewe(nCtKhLkf;pfAAlTEe1%VC5 zkYMK(>;s3$>5=uZF13-@Fr94Iz*x;(rHyn63AS0edKiB$EYkqsWxwMh<~|72=01Af zGWsrlNGx3jITrdeVW4M);RLDH?E#$BM8J^0#5PM%75lUUKTIeY)>ygT>xFIB4zb`m z0T9lvAJq7dv_ZHyjm`pHGVt6#YAIoCS3O}>*sFke!Y<>2lbSThe-0~DM!>z$ozx@8 z=<~3Vc3K!WB5}tkWne`&7|;BVw8`pkW9FL%dZ^<$Rp@O{&)No;eg24V8{ZHwQ+{gY zFs^>Cgu+8VEdCX?L+$CHLluoJKd=vn!-)jf>-1Jg-+3&lJi8kC@B*s-wQ!vz);#!t zZk`aI7eAwVUcC~yEvmD zs|V+V{=6fETAEBwOjJc8ic)!<<7((=rf0{nkJyR=CX%IWOOKTY+1z=;K-h}MjT^|| zH0ZTou(=P|>!!Tnj_Ae^6SYq=>(7;$?ssUG$l-3P7srg+8cxQGXf`&T{=WhFjskaJGUr)=*3a8d} zQR26-kTIdVc?ahoW2Ok96)=OkL2UEcrHz*tcqLgi7XylPYCL- zQ2M}lohb#6MMDonLtK9uA19h?P#~HjBrUL&2lzK9>Bx)TViyAlw=})h_NsR_sVNd< zJy-HPl#6fRG-O2$0>*Id;_suBrK<#r@z?wx@OHb^@EKd;N;?^<{kO|8S9_~&uCZLn%c)H^TDGPWPVSn0E z{(FNGJ?<5A;2Pw^GR6q6V>fbn>ILc|rouu4!rq$S+h~?YDQZWm9NU$qS62Y+!Sk=| z(2C=G*)+EOz$xGsWFk;EaR!cSNjoPTaa#iuPC)P+IbWXw)@-vXQUf(^ ze1Oiy@f&y?cXk>b;6@YtE3Mw1qoQi0Y^&tr%n(^}sK0Wo^>k=slibvjYG6n}fMN;i zM{4fGkPj?(g5Qb)`;er2AaiVCx>_@Aw&mUjggYTkvnUg>< znxjemTX=-7hX8x)_Ff{%2kRO-O>1sJBCM!7ufh?*Bx*apm@tNi?+g7r8EEGCT6B`m zcjW@kDyJ&pc8Dh~QvGCAeY&sixd5umma#wX4k1=xvBTzFkgYwyjjU%N32V_RY-rZV zV_x0Gd^e0o@(vqGqd>Ck zJkz{#Z0&dHg^~4d(IMrj1?45IkmpqKJAnVx8b~0Xx}4=-21&FdkrOAssU&m~Eovc3 zs9M|aN&;i9^0fh%Tx;7`!-^)@oP>w3$#BE*{`(lmt=pX=m8!^tH9k#S-2+K3p};+c zbPGZj^fEID>!d_v9$RFLWw)_`0MdqUvF^ROFP#!k-?-;JJ18TC6{C&ZcTQw>g{PUX zo>>+{&kiFzl}%dYk2PXKek>(?RlwXbvT&7AGsn52e82T_S#0NVV#~cd=0l@u&|LqC z*Jb6J(`uqp?o9cX@8x{Db!qisGR0FEWAVB|L64lfDr1jrA0B?($)O3-+08%&7C0Yr ze4k&19D7|1g_S?djGJC-f_iXKra+9SJ*}~W1ZQwI>X^m9S!nx_yxi1JTSanKGDELI zhGZNL(PS8F7N^&_Mk=}!lV7-8A7$IcqM|N`2v!q#9f}o20s(*^&UnE(xY3g*x0fSU zGL#84sI?a&X*hK%64ro*D2e}{8bW;qE|NzE_L7s*b$<3?IN*<#Xs88|^(XY_#!A1% z9QFUWinLN(y+5p1!{HHm{B^J-+y>)y69b|DfW*obD}85mdR<_(g?-h*OZewK1_V%) z9{VI+WaWv=bXY~jQOcb2=)1xc4HRW6n~YY}mkzA50or+lR@5LhEnMk>h)RIi20X9J zNY7cT(84rd1P_OQ;0e7apQoo!bx)G=)VWQ+-!*91=&5igaVL>Mj7$5MVk3fnD#+LN zBh;;@vG1+q2;xBcAQ22*=l?}sOD98W=?bOm3-@YwoDqdAkb$fV+sD2*ds4=;5FGss z*&^rL32g}dC0AX@?1b!bNM?{XdY4~jg9EMY0w?{tDQOjjXC9}eWrhJ_QB(A)YZxUp zup!DK-%xDo{jTP@R~`Q5{c*^;3*lb(9-O5!5oJ;;GelHVQifyQyXqNjR_#PdZ6{}K^2K*-F4hUc3uzu5qr zlGv_u7Hts=30Nql^jpGV<`HV(TW+=iK3LzcBzE+LO}HV0O+}98;|&G^hdDy*)TAO^XOb9_%gZ0Af78t}42*f^K#voV zCw$;!z(*dnU+*rnadMh(w1GVJYvy-8T^O#1IILaW3 z$nkA%`e#*y<~6jDoL={4_yPFF=s?iV3es8Z?wdR;a!cSQPNMK&JOoy*`!7~bf%$&q z*+!>Xpk9ccm(E!LhmS`rc=$rs(K+qjCIx)4E{E2w#)~(p^7rMXqkdxj@riJIf|TO{ z+e6|dA?y6hg66sXZEx>sO&17^M*NylUpz9bCILBroXd&?tDG7z`HUX;;dP%e5IQ7PDK;K>ube)^kX24`Td!oKybnfD)`mJ!#ta*{|>saR}Bn00V29%rw z5FlL(=y3P}ral2JbvJC7S`_e%yJ4SnS=7xBgwd!ISr038!I?Kw*8n_7z)36)y7hf9 zi6~JYB)SxL5J16cG@_cht_7((C67P_tH$c(Sxk;@rv?e;0&0%<=%Xoin8)cA=LbW$ z1Ak=tn?J(EiMJjgo|t|#UH4z!zFWis5q|V~7bk^wY{05bgSNkU^M==LRLo#NJXG>D ze%)xfK{SU(Lp#{U3th=(&mwgk>j_VXMTFPakH0ebCg*(Rfd*~g2ovw&q}0Zbp*JAX z(|j9@(C~pBYz$8iV4_p*J&<5{97e7=d629VOw#rLekMeRHhiy2dNOWgHVsM!=vhIF z_ixhNkfoHD3=3py{FP*go%(U02b&!N#@1J#CPzqNdDzt4B>G ziz3eSEBh-K6U$Ln;`5vlPQ(#%rdsaq<1%%0hl*FYLwD$rg!X69Rj|N7Wt6`wA##kB z>5+ZOl|JE?#FKRU_H`w?m`>T9-t&c-)xpffQ8KAs5pI+oj>?}&u=Y6u1)SzJ`@8F= z(>4eS)YtNeDFghi?_S|HztULhU#}-7=YAe4Q@{9}|5j0bNHY6$nvq`E@?dnQ71aJ1 zfOdfBDeb@KGO7y6cfUE<*HLZI?Q>P-!GpO~#xKX{&HALUu&_Z-)Y)9u=|{kNUJN2xGI(N&u8uxua&D;oB7hKs$aBtlXlbXuB;M#x0K=$|3F`o(xhN z2V!EYXBk|0f^?U`X>>qif_hcsvL@duMZ$}XO^qto_hIS%9=Rqa%6T`2kxgYXFI!Wh zf0kgd$Cf6>Db0oP=RQd+=v(PzM3&@!{i@B@t?kh0%fFvJpc=}{Nzzu?Ea^gzEJ&Vw2Jx+a!~+gg_L zhdhF~G`r6QQh*NW7#;n8xe)$0*)o6^z1O`s5P}zb>H*FV;OMNVOfNpVK}r_?Sh;82 zAAf!SJnWzHadS8jI`@Snc)qCr1D?)(dKEP_*4WtC&Y__wlPdvOZ-NJ+E7$5iu0rx- z;|SgDU+(?anbE(IprHi59SSMM>oy>6GxzSupfCHXN?%rdN#}3cwji1hEhmL+%D*x4l2f>w`q+jJI-%`ZRD;1tmDc*FXr)HN9~U0FBuRmv>=3r7T4 z!>{!**Bve29P!?0Zq}$!SCX&LvM9du{Q1}9*Sgg%n=|&9$v`r8IKJIC-*`^M ziJCxlGaba!dkC{1ZU2yu!>+qchtN3%mdmKELM;YogOoO-xuDxN)5){48FG#H^1o@8 z>8^Op5%m|Fm?{*kqN=o#K9@I}?b?dHS~Q)G)+=ev*UGhfGvu^;#B&%ha$imD>gZ7* zx3uNX7E;f$iaQWB>7?|cOKl$Iws|To?aK9x4D$^@RSV9n&ep@Ekn12`Cc<4STXyjV zSTqz~AfC#&ntyMj)=)6`2Yj4%-DQ9r{2qKNEM;j?p8}mzX7Fx6mj~9?o;dSkWw^`$ z`Lj0ncFVz#QVYHqAl3ETc0%Vh?mun>OV^=#Bl|`s78dX67h9lnogq(!rjrsG0!mR@?rZ&5E0i0C&(-?_D`QNr%XmY-T<)S2TRv@n$6IOiI1?^;zr zyhq;J`Mo!$dwO+kRho{(h@ZC*S(CG)9OWn7$1fs#*EcQCkKq5u9=pFHjc*qNoeNbG zl`AbRo!X}!C0yketBm6$YCk%pZqTqSeFSPg`c)lA4X@ zOq4z=F!+LE-Ey^*`?I1YGhF(z;8IIHxy1B`OPM#d>^3&zSKJuC-E>ix^=yrE`4I`^ z;ZB5}kFVMk^DOM5{L!XJ_FowP|23_c0o-LT>nXmS^lWurE&?{JWMP{9rQenzg|y4o(N6a~uLx$Vyd}NF zK}%aE#gZy;i@$D|zHVW3N*ConV4$Hk63kN+xvs? z#B6Hr10GWNjPtfx9csI(%CFeINZ`b&b7@JV&Z_y(>PY(YORhfT?4?K`CO&LX1C*Q4 z^2_D)1)nJcJod|~WNcOC_YCtgjf{{R+Y#xSiR{lBW6o~QaEDY4p*}8+3{RW!X88h! zr6`IcQruiF+dbN5B`YK^7P_37$+bVofC?fNkD~roeHxAPJq1Agt`MqC4_}4YiBe|` zu5YqU>ypA8sI#>G2_LcG1Zq5N?aW6ce2F4~^kZd~HXw1%tTwX{i-*I84}E&8V42%C ztdP=#1UQ!u86kx5RMSxnwi*P+$76 zb?imN*T_iA@*S1%Gvf7TE?|eD{rgOeSzteD=2f2CB(Xd?zXE7X8b_Q^3{F$4ZP395 zbX|k<-FeF)n~b!DeU+e;dBmL zpKJyi>Y}RH+p0EFL{UE%8;~Q69Bs+aIg>-h5As}lF(q*=S{Feb?J%c^!-`*VB|Ddp zM#|Ey1~ZrK_eIn5MtUS4JXXGiPG{2)eB7mLJ(65O4O0H#tx)-DNP!w?>6O|3&X#u+ z=;0(Y!>vv6jS|#efp{GXYA=6vyR7A;P9JI7zBJ!zM0V|b=wR?}@>4UN3O(untX1eU zFIK8gL8uS7x?XT~^n|hAL$2_3+uQ3oL@>ICTx$P>j~ELU1X9h~x{Hx&y!(Q+O>?mK z$Equ&qKG8d1j8GJn!tPya{a|w4izKKxOP`yu-x1huYv*SFLIh6suT)TWleDG=dWNj;d&MFw=Z4*^zH zKh@hCnY%i=V+%l8_(0V2lI=@+yo0~L4bnRx76LQP+1Z+=4@WEe!_0^BH35vLd$~Qq z1Sh5Ae`ry%&W46{3l;G&_b*0A zO?y8-HR~w9r_fP^TCmV8vq*eL!>3|Vx}(xH^-5@S%8MZWU9YzLUTl^en6r}09=STY zKfe6Kc^yojypbRo(Q6f-WMoyDrLLUoPoZ`%eK6v*%CN8hV`A+ZcG^o6ur8L#*%S+0 zNfRcs9Y@~98?p8J?Um#@j`;ioK7L$vXN0rJcwP~D`bFEN=Z(rE6^f2e&TRXdt2aS{ zsit&7!+I2Q-SS#y@AADTPhe?ZzuuH8dvM1Bq~7dDTug9O7AWl{`gN~`bK}*ZJ9+ur zx$q`#ap|3Y7o|L*Fg&q4V4B9T&`ofcvIJ$RBq=~#i5hpPVm4s&tyF8dainvrD<8eB z%I_DadeoXAY`5LwE0`PFuWqZfi!tPPAu}8d8%E<}=F6us^F!Yg0oJ+lY2rcCE}k%n z|7^>iQ;JQ7Pdu7g@K5-7Jdhx-_O34g8#9HdSG%YxF~h*bxdhmW@as`)k%bCT3)PH@ z$4*n3{_w%Q@d#P~U|7U=msDGJG)5h@;@o$pAIECTdD>G1Z8vz#R#`-VaQ0)7P!GMW zM(Dxq0>iFdi^G!qn?-W>w&5Mi+qo7;clZ0bSNRt^U~J)wyU58V!_Bwvqo-M5D2Z%8 zTg30*{QE0`D})vfTCA)z^v|RN!vGK2C?qFVe{K}D4%xSBuqk3T17t%enGcw@vAcXB zFdB?ZcIwX+U39lL5v3ZN^<}kSLQHfzvVCu(R2`Drt4&^i;2F=7QXIbKFF%=v2UAk8 zW*?`H_@xSQkNY^G{*#;QeJVael&3c1wVw7xrIUM3PyMurs)}#MonG6lIafsSAAE45 z1B@a;ha%zL#-tR4T6*uvbaXVR1=VFs0x!62S3D|LmG}2TrG6}0sh=YG_Q1DQ zKn@muy|Um*^w3V|Xw)?^noWl)x4Z}HVe-;Osff9{D*Ic59s?sb9s5Sn{HrZdoaoIF zjCz^99hUG0u zFzr|KUq2Iw8wp-Q&rDDxc#~c-Gj!+L{fM|6`#omK&{b@~v12*0DRen2wNYN)e|k~C zL-~}tT9i)a!wU5kWY=htxwK2oRW`Q9sh^vzA?O_s7mpT-JOaLi$`iG_tlm=2ET0m! zMS^YDrc$f+UPYZ0wrg?zFwL#&f`P1O$hl3@AV#>X-?}`0Ski^6f67NJUVl9WHmj5rw{5g0 zA7<`2Q`SM$Onz2pM3O~Nx+sv#p_^;b_(>jKI?AD!bN4)_uHgu% zcnY_4pBB!m1gO7cbLDV2%5i`n475t7-?HBu22(U&DMIOd2Ul#3VmZ891iy!6>E&!Gkk+H?z#63 z+x8`YXAaVb?p)vo8x-CHgZ!tBx^9!^P6z!FugtgQ{*JXA_WgP`I!#d_V7wd&eNi#m zrAF7Yn`XOfv5)jXX)~Fx`ux8%G61szrPVQZKZ9*Lt)-(XLqSQGhL7T7{`V9JA4RJG z3p$;+#~LQA7X|FYwB0*|p3h8te^%Sc3Y*V$d>hmPhR;Wx})5iTvd|Ga?(^ zeB6;4k#e5up`uMpU~4c&2kBVdwdI4e(Nh8*#R5<5jZ?F=Tm0O*3L+Xo*^ZHF^CAJA z8;6I>6zlxLg5P!j2(X8y3WtEUL)sZyZ8~Kb;+_$pXCu2eH+IVC-dbWE<~w?Si7P=A z4;n!BguG9^_TLbm|5I^42#rU|Kq!w(3{BYHK=@mJ>~(~Fru;bBV_PVVbD4qdnRLZD zv8{xo>2{i~mUq>yIS%RlZv`y-*({NVZlQK%E)M#{1p*6G5uptCJEE z7@I7?MAH^2q6c=$y-g)yuT@(e`e!KQV9-%hacv&mA%Xx75W zcI}ofetu>`+kDMrK!^ls#GQ-JNaQS0|Cy!hdkgBd`K>3|iURdtJ7Aa~mH zt>>ME!5-zjSogoRo_F#e@R4cs2n-Jadm@#xzq{oZbZ%{tm6JWVH0pVOfoX)CyM@)g ziL+Vpi;KeZ#bE2puWane$pvbKX68Yl_#uuvJxSm5xgLW-a&m4(j&i~1ZwABg@M#s; z7saTksAe~xD4BuHePs+!i=H06$fQ&cCc+h!pfHi!i2s6Bt$&@>JYFm#r-wvAjiZqg zI6{(*3Wi$r>wjpKt;%7s1yna$Jo`{sh{M3a;Aq}wn6*q$yoO#Y>ZRNx01HL`Ju8pL zk0qSa`3uaTS0Im!TU|?5f7Epqde~z*Yk2q&^op)CJ_-*^IRE!7JstxNuX1_J)Nkd% zG}t2{zvfp)-C$w4FN{hwKO20QzlxQnxWvU)ePf>*Bo4=5PC=>JQWo%|nKRlZ_=%-mza$l82I>fDO!enq)05CFg+{q#Km8n>Uo1C{FgF*9uXBwStmpy;Sd`XaQcjN4#ll;S zzc{rFj^1**ZG@O}HFCONMP`#HV`#T<-P3#TU_*dwk*w7xMG2|`v$2H{p45=|b?*or z=C57UlhlA9=@7$<^?7Zmvk=ls=!9PM!BfNp0f{TDh zj1=vJ@6{esN&jYq2zS16z`0=%0cJR&AB|V~EnhNaNl2Gj>7uEjqkSueo->f!(yZOz zH^j#IoVf|)14BdkR8aJWWvP;}Cd7x`*B;Vq>_tt#zzfHo*p4%+>Pz~c$mMJEi0=%Z8Z2g;@dO7Yjg zwqi5i*&lRner8J7pPV^WM)~QOq{m2wuHIn2cY*2I1KxbyM~?=khDm1{LZ;J03tOg7 z17mUB6?DKDi#DKuf^v=C!yB_07DJE=z8ICq-Vtb)%HIftUasfo()Ox<-{?ittKVBF z;oIdCf^A*V69e#sHcZ8#{}HrZy17pYZ5<@V?vv*uMLbx2+w2jzVk~+lh!|PXs_vx0 z+?a5eJ5c_{j0jzFewLY~BqDg(!DkaQ&rnYdXqJ_GvD|L4ix}E${T0aIUUeIgR^{`* z@!-%&3w-~ZCjw0*eqjnWkB>e*h|_X{5~fKm70`AyDg&D>a)QR7gGaX6yGGnWZ~Qd| zXg?nF1|M@~&(?IRpW1%GixQD*{Tk-j;nA!kIEVC;>G6dF+ic zS@5sG&)Z;~E;9|gt$Wfo49~F_1`&BZm?RyvZFvJ2#TO|H06{O9{?_5<5y$)Tx(djlf5CQXG`20fVV zfy{_r1YlWYo(@1}tLojy6+Us~GE7LBoqg%H7|jKjCkTcYB9Cx|XP5BPKw;f%_%fP3 z$ONQj$9uK$k0LQ^&+?Qf+nv{z!zM{X!2uSzhQrK&Nh#FX(Qo1a|BIYT3?gVFIbTYn z&y#I*)C9cQjF@{bnUQnrD?doEPn7Wo9PCFA`&qGcIYLIVwM!n12MC5APn?r|)&q5) z%+O;a#Y5sfz~v?V*aDhW;ADbALGbWUs5;b_$H(W|^zf9%mpu$$9nv_Oem1gk?t5F8JR`=ciyFAn{fFl0{gErCPq#i(}L@H@nvS10C^ zXBU<4-^YvfErxq6^~EP|CQ=f5;$i+gHwnAlmY%SwmEWlS^{dMv+C4Rz$GWww_(Uf3 zuo^;UeVPmpg8sAOh4j%Wo(gF4!rq8S7*w(2ov}}T&M~+(3rg+{SZ5jZHMuy@)JCl++DL zwO=~!&vz5(#croCKPpx@HMd@(CBMasffuyaSNrG!5`1j`bb#nP(n{P`n;dtWjWEPz ziBxNoF4K?zTf**co`&wF*;rQ)j)!h{yF zbEc>4hU>m6Px~da9vpBEL4(wZtM{yJtf-ch?zgQfn3jJ75u^s8( zZE*u#w9C|ayJ3+?GPu#(^8+uBTc=NqPX>>6d3X0jsrLNDmR&_uqpU|Cf?B7{y=&;? z-{dwA-IyUtroJeislD4fib|nOWrz`f+pJBtBW-B>i4*t2Vius$m3{3SY{zYDh4SXY z-k~K2`B%x!5b5iCe5`m`*3WIY%93|<)w7j@Cm*M92-%t=reUuiofy!Pd}oGS$UArL z9Nc5|Fd_iy@O!AC<1dvOK-t2%WpB}?Ddgm=Z#8JZRQ;k?=75Y0^vJa@;8b{75pT!4 zI(XvsAA_MGlW9Y?w|eMXMIE|dKn5NLT%g9ZuX#jX{XhaQmg@Q3 z37i7x$2y?&p8UIe`KRnMo~z9Vd$V=Ek=HQUTrF#fy-;!c*n6}U6P{FDd{F#Ye86Gs z!t#Ji-}Gb-KVBc*?=J}?xORy~;4P81x!GS3!imt44WhN@z9X5vV@C1a$e)gLvE07_HgVW}!1=jMa#4I##(JHI zi!Rh2&kK?b%NGqgcDf}v-j1}rqhB!rPMK>Q_=QWPLa1Oy#I;O?HIL#D@yxS0ne2Ld zavoMM^$gXz^SIDyE|Ws+)Ehq0;X38%Sx4cCH!zeKddjXqS|t${kBu9aD@k+5PoN*; zhc1Zk+z4mW?c+>@H_b_B!-i%SUwR#Tr34}HO2WG_&|_z&r-Xj%r?UZ~!Z+T7@vhT% zoI94PkLNAWnziBoYipVexm8w%+OtfpP8dgJAM$*@daTZK5Yrv+{!3QWhqX&?`UNm( zyC##j`=1-H$fLtnV8GeA++=^%iqc#2jXjH7lOJMd6n*|unT2$M@~eR`7}(Ebd$(%7 zW}dLSZm7-GB00>L$<2)%O|8H@Rek>T{c71)G7F`<#8|&*S+#Y>$Io3q~ zo2=-sx5w+cd=h73Np1Jr9xblj6V88mG=82G{}s-`y$*o}>)i1DyZ%JNKE}uSu%X*< zD9XE~?#&5Yi-I@_FD#Sh2~3mh`1iZq=%T|n=Gy|L3Apt5oq-6BXTFj{#T^!S5vCXT zIcxOus(__{1Mk);Z0Z78P79x#-}U9s&DZTkAQci*XO-H;ym@of0p0PIkB4xP;55=o z4?-4AnDtqlx8XrJAsI*3+bUmC4D*?VZ#Fm9JOl%8WkPY+XEG)fz?xgD;CMPIG5!hy z8t!kb%#ZK&icvt@l~UEf392uK+XQoczP9W45!O9wUZSgAfvB!`@P4RIy^Yrur z?b@?-`HHGmL&tN`bJBvS4>E!9D zgn zrXH?4RS!URfwr%CjF}$C3ZYk^p*KWO_>h~>cA-hVvnv$Gh7M<2l2QTgwnkWf|Q<+{;gyD^|LKe|7{NhJrux!GMz zb}XFlVxWC%YR8F}%!(i4kPC}(TMekx&FmzDi$t-u65uSJeryI406YhZoZerj?igqj zh!i3JTR0N);TAjON^{zUWVP1S@lhtH;?&>ENt979?4G1U4VM-=cX zwEOsH5$e`8sO`uv^yut*5GLr!UArI+`K*2}Ozfkx@t*mZ)KewVjLPd?Be z9QS$_ZH+>0rx{M-p!Cum_y8U7%m^00!(*xMvd}M+qERY4__zMI2tmq-2gxt-J_QL8 za{rU4<0QW;lL+SRo;j@MxV?28BigQl@MRlEb@wz*Tm5f5^I`O!tz1gyb|JX$R+KO= zk9Gl-M$wbrezYIUT4VKUJmJZSsOm5WfBnY~W}IE^?`K%|An znn(DSNb{f_bhu}TdZVG4lllc#+-3UI_?<{kJmE4?Z3Cx`V2dMJqbwKahu<6s2p1p7c}Vz07KkDE6URny@&%U-xaZ)!Fy*;GJaS;&Ge3po2&Q}YBFH$ zHDOi$1j-Zg)Y0=gHaQpb;Y7^(Z$-Q`O8^Nu`qtjbM|6%=`{M_Wj}p2|c+@7laTPaR zyC1fd)4aO~g@0#5tNB};C}p_CGY`TXTP{mIp7q&K-;T1%`C*X;I{_&lGtG1Fr+D!Z zmD;&hTvV(NWN0K5%s2{`*D}fAETv`&arWaygGI@PSpsU_V)hgI1IS**f_G;KJ>feb ze@mb)Yno26Bc~?ll;mW8E{)NBlD%^rd5f@KwkpQ<#M9B~kdV&j;okD?c?&tehs1Gb zPSm`Lqj`&Q9-&B_@p1yp{O?o^It+YrSr_VTx2V9)@2pGPUBgP(xjKk^&{Pi~v!gi1 zrb7UhVu&b;zvj;G!kxL)c5SYVm29wdfksp-v$YNO9yKDX$q}=waf>>eni2tKVF_>g$q8u#*jFt zUE{P)d0W6@D6D9rFn)a8>5Ew;@4}vAGb&c_(}&pLhFB2+v4;hxsVD{us5u^buJ~l^ zwZ;d2_Su|ey_5a!y?>L{g_9ezsUb}AUzROuYua<3)%E0pIaJip7QE+c=}Z}_Kat%i z<-4l}ho($rWu;uvB>_v7vLX>>n_RbmX$mGk)&9<8DlVsu*B#SM8eyx{wk3A^xr3HQ ztCN!wfue{YzjyJ=aTSN%yu9>5I)s9a5Tg&?^2?+F2TP$^OB)MMo=}^^tJpuoNAFd} zE+^iGA;wNjEzYJUf@9mIf|aT5UKE}VaJSreG1D58l6TK}XIY6wF)sHOR7Y$i+C-2! zkWPZscb2_t>=T1A>W4(Gj}jT4ml=9Iw?MLqytCKb5uYb9alM`B4&m}w?`5!6QHYm$<4H!^$v63TaoAw8lp-|}k9=7lo zdUkQq^~Snyj#`!+KKLF@&9+L_f9`3^HIP$vbS!p$cQW5Q5Rv{NRpB!G%ypI7lkSH{ zq*0>gZ=IWaBK@cuRb^y+gwN~*Ygf7Ja2oY0yxEwZJF2Ys0?wf<)heg5^?y|8Hn=={ z*Y4F_2=L)^*kEv);ok;>=Jl=}dua%T$jn6;isP134i6Qp_CpbE9b{XTeS2e%Db@;H~P-hKFxFiy{8gF0IX)#;fO$?vsIA>n!ofi+ip) z>zmz)rbgSBy#p?Pg1quhGjQQ!@}o|a+B95@5-=H1AU9ZKTjsb>lz^H@&oY^pX75^V z`FU{gB0hF*mYn@c6O-O18)U9&#`4n=3gp+FFoY`)?NM?^$ib3cFH=TPjj zDnqF}aB}vS8iIV*kHeIHXFho4y;cB@AD7j0-7jc)a^a|D$Z8dNbW?xNINELR`%59d zv@m8*KlQ2RmkYknq~{MDRz{l4XI?m(4bU@8GT%#v6`_(ZS=xhRzt*pxrRk1G*dA&P z4Fu?v8E+NKp5OigFiU+UHb9gZoq^>44Vci6d13HjJ3XAYuB~q{7AnKBMZ;s4?Q@{r zEvS%g5a3v5-KCUowazQ2Xbppe1N{5qiig6tkyTj;5~5y0!#+tlVX{3CINy|2b?b^s zSO?evJnnqeL1t(3fZ$wb04XA-=Q4!}VKw=zaj3*_wA6yt>=GPNt7FK5dy zz9TUKXzf7IYW+|KgOeoee2;zv$GaVIO6D7`*6JLj4$u?z^HSL52}E@cS{4+*-J~U} zEKrI@rOw+?wLH(>B%W+feCw9rLeQ$0|GM(XJ#jtvInC-lsy9-gbCA>-&rs~!;=#v-TGjB zV`z zK*G21^Q3dCtwVuX^HfuG1hbDZ2?ukNnXuc;nQc1Ju!)HYzQOIvLT|i-%8A;BVIK@4 zvTUH*k>(o3BX{C?@v?qtZ#WGmO;zb)d8lC^;K#UoaI`?EzG>(tV;~n%=={}yUA>N zKZ|-CwDPfIbZw!DTe(X^FJ*87Dd2iQbChe4o>{?8EOZY~Ctv2tqf)ClzZmKTZr#$D z!lTHG+rr~J=0)VG>8~WgRM%J~1y*S{B>p|L1)-K2LLp7`@P@-FFm2sS5_qjOUgI@m zs$%>nt)D^~#rJPJuX%mldYU-vTV&Oha%)kby)+Qkp9)uqvVNMA8CCAqLNd5~;Ns$%dz_|xj+W0&`dX_Hoy6VS6%IY825ZijOxCKG$bd0)|0}p+ z0nEn#g+}GI16xHI*=wh_%vn|>_3rc$T>bGwy@TH!sp-5EncDLVA%IwTL6>e|K2u1R z93$u?r}ah@c1ayHH@qLt;)(6o zOxhSX&OW+oXm~sC9a)-K{hc1`XLs+It{gFU@Lp?y zb7cH_`?UoHdzs~d{LktwqYo?%2AcaD^&ju&8uXNMi8*)m+mb);fAlLDe~v%n(f#NT zEj>+Z>iOlHuL@r8rrcut@FH10JZV4A=nDa_Us5tZ+6TWg5Kc)RzDg9g-I|RF6FhxW z`j!0)-T@M=B6CWQEJcUyY%4eH0FebmSm^)?IPr;^K_$Amnufku_mZ%hK}A0JL%VYK zZJP=NX$0~2dW1DeB%@AX}!K~x4%Ip>^i0AFVpZgQ$GtYiZ+j9S0m8@`9v(oqG|Eb?=8>olAdv0Jzk!KI^K$H9lt(aU?v`o?$mI;Du2Q0Fb_ z>ca41IuV%AM6m*DX;{AcZa}!ybl$JTo-f+{yw8Wh5vIP0+EYZtiND^*C9B*?0{EY^ zaOdzPQp8%toQ030&>fNU$nRs-;~)5qn=`A_(qbsnS+40a*1?M~J_b+sZ}#`t)IPs< z_7ibf?IfKzq++i$lA#}4fnJ{WXMbTq*iy+*kFqZ@RyJf4)*K zpi17qIWpzJPM4*bsU`FK@W{&!QANpSqz@9HXarmlbjrWJt@0YaouZuV)8!uXL67so zXQkAk?S`oHoIx;{+P8;se$?#D?tXq%Vybf+;Z1fMQzjF`>??%Pbt5$%(Hoz4e*U!l zSsB%&k%`{+bnf-urH`;+ERbDdK!-?1&mD@&4(*?ML7|;GdoXW7yZLd1tnOuWV zVI_aZ43p9+h8wlrC5)amE42^oupe|7qo)eE2NapDGw;vtM5L;SYkYf@_@T&O zh^XOi208}OYaN3(zJCkev>mTGP|&Xne0t_>zh&6f+s$3OUoW%pJ3XFE%3uk4^Ddt# zXNl8^&N91n3|q1 zA;)4tyir?hBA~;QOH&qpSfYYg4dwttUtnKg-5UX8F$sb_PWdR$;?*O20mxQj&y`Q>iPB#t%k1`fUpN-|1K`j%F5p~q zzkp5FXSj^m%b{jprl3`Q<_Y-|=MbNpoRms@D{9MR_3=Zr4yNzG>}il4tc8L<~dCl%^Znbp_jU~fMv zF8bC8h19mYof&eErVPFJy;HR8!j-)(3#$(O{mS^px`JE%b?FU*?B*&Z zlP)^GZ$^K;-ep!c9EoOlOOjG&+N;9DrIpk8^qPj4511PBlqRn?*&!GtxLuhRSkEmQ zBv&4?v-?R}Oi+ZtWo7YI*oD~V{xzq2tB;DrJLw(*Ki53cx(Vkfw_tkBU9MIUShRi8 zK_gRFZNx~=ZBwW81nKG16lI(*l2R9X3!F0b3K4hZVUN-fZqX|ZR%DpjThFAU;AhbG zpLpy1ggmy5z4X(Cec|o0r(_t&=~EnbGuZ~fjLrRYd)l7d=CuHywp*@uS#!snetb^u zE|V5;dMN36<@O=z6}00XkcFs*q)A2pFUH<7DylEuA07||!60OimTr*l5E#0qprqF*uRs@@)4OnAFob!DoEgM#;8%y*AON`#KR#8aiyfa)?&%&^Np_Vs0mlc zHk*r20VkctF~z5wrquFKJ9a4%&ztvv>haYHfEEt`ntd3+8~+c@F7oxk9~CqEjeook z0GW~X8*O5-wY7a25&;~~cu`Apd3mW!hQ+CwrZrQde`D{Q;b78s*inqjNWE1n&EUUY z1j+sQJo|H3gms$MU`>rpS4o`)RQ(JsE3NISI&^;ijUacX{c`+s7bES{tSGsv9EfEf za_dZ^W_tkn@)sX0GzQHQDaNye%^b`Zcd*mv+AkDp5W&Y~H9A7ht7uPO3dk|dr8&fZ z8sH&`ju$ZVPMwkC&p^8IWFU9du6LSV;;@<**Zy%3N5OY+u0|bgk{|WL&RI_(MJUd| z=aQ;KEjw^0$J^@R$aO0*CCbGaA2Ba|&%|a8Be~5>VrV@MPO&9>>v3|fkHSm-&)42J z6Nhhg`Eehzk%;~Q@b%k_zk`4aB~UCRX;`Yt8TUCpaVr+Nqdp3^VDSydObs4}FF8$B zcu9t4Yd8F8H(y?{A0JG9NoLeY)i2%TR#Dfca;?`Q^`l%Y z|GL!3kQ6*ju#KdB?ooIjd->CE9j^?YP^p@z#aBx)D8K)b&>(mow^?f6mJg9l!chLi z?bG5K?Ec7d`3#BlNv>E(Om6`=GuqRhU>FCFRMH-1W9}eW@zsmnX@3w_uB)^S9#l_U zx@!nqA2Q5Kj0M=$13hHk!P|pF@}u^8g#xRk!r~1Kb;0vrv#dwGq|e5G;kVN>;fSMb zn8?<2M%VCEgi)Z3oLw{N6uo_uD&&F;V7z+kgVN3+J<Yed3nwpW##(E=gPSx%H6vr8QY_ zXk%iaOtW7MNiM$A`e;sL&4h1v7M*vNu@~071j^;7&7Z%%hucFEFWDK8H_n?*^ZIbQ z(bK46&eWO&B7A3KoQ~J!^#$>G8lJLvS1Pr&bg|k#-2b62&-fVu*=Ezm5fL8G5<1

    Ey%O0pR+Tfw(c>q1=G`2;1{>S`U8AnXtSDt1;HnM z1pS{RB=U+7>)yxm{R4>ZH`*t6>j_SV#H}{Web-HeKeVhFx&#u3q>%~PC%JlvxU8$5 zG!h3!yji$KjOjpptbDv;wC5N5yEpXIF!UO*%iA9xq)(=!^_zt7A7}B(jD0;njV(g3 z=!h=)wkx}3M523VyxA{=w6!_z(%0?JXwxkBZxC$~bE8M=Gx>8#+%7h3(xeJ1?sq1f zfA4q?4jtgIUPN}`=g~G_AKz%Gz3_b;ON4P-n{!qHUCIZp(|zMM+f2UN6H6gUmxM`M z{Yo(DLNTrF`bt-)#ikJ!&W0`Gq!#|1CaUn~&$mEs#dgl(XafJ)Z@VHIiAN}V6n_MT zXQP&9A(+B7XmI7Qu0bTD=26khlA&ca?nq!X8fq$4Z&76Zh&Jh@N(0sY zDFp-*xeNkNHwTYJM+(jFX4C5ADW4CsN*K9qxnM-5Hp*^fXFDO@U|N2fTpE`#_@1Y5 z^nfXYBizs;x_J-xH=lou%DFL$P|*$3t~6*9pS{wD;R{(Y9>S{9KR($~blDaldp>$j z=$F@s0WLK)?xxjSUy)Dc8kk5tneS=H{pLZox;K%JN?I-DZf~~NI=kA{JyGsNlduAe z=n%DnzJKft)u-{Dn0e9b9R~3cp>K_wvr(3@w*u#n%><4z35N?;ljq_oJBRC`xx&@F zw3299yO+B0Zj#GVQEU$J-THoaVui!$>K{a(hXs$C$|fa-Bn)F2caJVLpKolHUCPgB z@VRVp5Wk3MmPufgZh1MaIg`$Icy^%Q6|KL?L>Xs$_(zK8O}J-T!$GNC!;FDLVPW@w zxN7L!3sU3aDjCghV-KWlR9J>P%)uf9CxdRnBOO!&8{?;?>g}PN4#y{SIJkzeoqErO zo?74Uh1EsgW)RSzpRVwsmTkW9{%tb3`{6P}?(p?J9o`UT85_G6-0bENW8j$`%UF`x zLWqaTQ>@d-c35H9f9o(fEhby3QoL7POz^xV1K<-kypR`Y#dK9{RnqvMGpgDBBJ zu?eU5B5{Xt1;wUAFA-QobpCC)PO^u%!NDKtrdOduGeavLT#KxA>JesY`Hqk^t-&oz zSe6Re?fJQ|C4ai_(d->t9ec3=st~aJ1d{$S2~Yl$NhrRq4gwW>H&%0aU8$X7ykiP1 z_k10Jp9@M={H~kJbZPOBn8!W2!mypW^X+Z?s}CbT;-PPLb?PVdqab~0ezQ5DtrsBs z_NjWe=k$iKGWgzA6k+G`ZbL)u?!p)junYoNDMB`>Q2^46*I^>yN5QnASMZ`wb1OWG zSc5_$MsvW7eUI9I-2#J!!&9M^$+e`~X;SBEXN42EKqTfI|8;USF~428W#U$3w5-r$ zNooBmE6&~d)928bNVOba&&TFMiYG!BBI;PJMv+6>&6|k9TB|`%GRjDe?oTX+23sQ) zPdUAt0#w%T4ow^Zj%BmAU2?MN1Z8BW_U3&*3cc1VCebS)GB_ctXZrGtx?0!WPIm2KxW2j(|#iQq~))tbge+A_KNf&%BqGhDeuqPExOMiF!`vNqshrxMo-h~ zCp?GTBf|2$J&u+7jDm4TT^t?Jq0ymv5lI!{F#bk?DIb5<>hS^A>C0AMF%rkxYN+17hIAEG$f8pf!20Nl(g08$qHC*DY&%2R(JX$r)XwIx+C@k1nCt4m zYkxdsL`wOWP}v4VhWi=P$edpCQn(DqWl0BMVjH0wwMeepV_~T+pUhTlXRr9>FW(n< z-XI8s#9CAn<;KkivopKAdpjL+0c=B}Rx&$eF;xO>O71gcgx#4e&_iE0R35aFa$YRf zko&J=>@Bos-jnM|EQZPzhH5AU_ySp(b_yT628d=P(qt0orH{=Or!SWj(*>m25kCrX zXcXz>#Y6))Pc;p*!GntzlohxB^zI9{vdn*GcfC`NI0%9zbzZw!4bh`OL%_(I)eX6 z?v4LR{W4y9lz@s|%LzEFW-w1bYPnDRT41))PCLZKA_EA;vhwOwg!=X4$MuuOz>%nU zbl6E$&rTgZ-*A)*i5IpPIvr6=^HV0Wwd!h>lg83_8;Z0fZ?cDT`RsgJIb)l}7D=L0 zO)XF$V))P)P)&DpGEm83Jf&Bcp7P}WykHt1Ue+70acA~;wp-ZzILm{f{vLLOSTI;| zVay3HebKP(NvY>|sk_>_)H*bRgwc49%L0lpWyX9$AFcoT2D(5PW3ErX>ros{9N|PI zO+=^e>FL&-A#P9K17BZX4*RK)rj5xozXeg!p>&G0nMlxJ^k8vZxALY+{sfFDDzF}f zgHK@cQLn#0A|0(nvN#PfB*L+-JJ-6lxr011poNo3>WSi&xvk>63nza0c=c@tZ;lEvqZ@`^nFrh$8nmwb%%Af#R|lw&l4X z=l5fZMr0hyHe7(E=%k)DZW&UG+nv*;mV5$RFij z$@4V5x+}ljA2qIyxY7m`f>d^=RLmt5I+yvgD6nl6ttQn605*cqHtw~M9<;1r|3r!_ zY8sj_iFm7D`@21V`}2IJe(_ltmJkk@qDDSPUK>j!^F`avIqEYq1FZ^q#z2GD<^@B;lT}XK(2*G) zv&GpO^CcwbJ-rWSY8_{TkQRQ4!L69Bttey*3A6obAjh=Jv>cNj4ve4midXAq>lUg8b^QBg+TxKmALI*8=MPCvrho6Yci) zrymtE1xs!E@--~js6PC3AD!1uCD@(?J`x7ayzgn2GU%ocVHmp6;;CF_W0SsNjL=G} zU#y}d*qv!3ZoRy+uI9g~abtN(n8KxO0nnei3&&IMJ-&aR^lf&%6Ep5stbQL}{FJTt zWN$QzKyX^gwo7+{NvlPTDQ&PJ4dl6A+t>f0yoCkqP?bE8>@Mm$DH-81x$|MI7jtT? zNu5+V=eB_IS8`Mc?dSH`kqWY2QZ>xe;LvJ zp=#llYn6xOX5DGJa?9$>hN*!;ft@HhO6;cO`3h=lGWDd2%U=$7x5jX*j^6}gpMG>x z{@IBm<#GH$<&upm6f(mGF=&u8C(m)la$IHIML;`GAl-0SbnkJq(XSTmEjuJ`yG6{= zvzSdV{J^!OrQFK1PtxYFO(8TbC@5&stY)1liKU-5|gxL4x4btnKe+gXn#`mUGw$7@|s*C?2-vEd4 z{Q|sLWN03$=6a!1oFyq#^W)jo`l##)g1@*e;3Z;L#NH)YB711cwnHe{XhG-`P4ADT zoaz|C%;$m^AbApD3ETdT+=4;f(lyi)4J?eNp5iqM$ryS+`x4xbKR&&=DYk>sOu+40 zuf{gn&HsuyfSzM{fBvbWj4YD7KP)UwVtLG3O&T1$CLQ$aE75O;Wh3MGO#Y6{Z;Kdb z@dwd9-^j9GytmJee!xS^uX zisCArb0&L%LLOizDskCSeYX@YN2Hb~w>efVmFasZtkdQg1u%N(c+BFYOsSRSoXtizXloD~v7B6;r%60A%0yUfQc+V--XMiezJc(qrO zaGSYf$Iu*`+yhTrc;P8GdX}nqd{}QUMrR;(%22wXqz~$oF-Uo0&(4j_QpM9cOx>zJ zllcyXDf83u1(Xpd2nyXUSCd3xUW;OM(cz>y=|IlWY_YZC0;~ld6pblTh)@FV69xas z$Zn(qfGBR>@ss5^q@M-aEWTemBciEQ4La5f`a-nB6B1tlp>z5W(C?fV+@4Zs` z#OSYnO8;Fy!x=_?UoI}Q>2bw5mgeyn9dnZXn|+THk8p4Z6IMU)qK^JUU!^OvFrVh+uW4qd$*|9E)IW*QO_tq+=1{op7vt6Y3lE|FKXltCW0zM} zTy`6N(juLB?YGERwvLGl-c2w0C}QBTs1C3Notx2z{b=EiipzHsH>pfY;|c-k_!b{L zMkbMaRX9tk0$Ml-saPfa40}5s1UM1J6q^!6(hRk-Y6qSnZ=BqM>mCLz-E;-}1yXS0 z^=4-FCoz;>3*r-C=eSDC$mD2tEt8}~`r;V8Z2_dOqc2_N+Zuz#TCwC-H=V_R;m+^6 z_z$rH7*nMFC=1m7Z7=b&MbI#YWp7i7amIU11bdbdy4)2JU2|2=)0ipA!~OhP4Y-Ylqbcu;s-RUOpuvVIocLgL zSuHK}xs_YzYS&_Bg)Wurxy&gmv4FSM>}9~5JQ065iN^)m5WVGIAmrqxTfVx;7r=hd zjAS>ZySC0_=Km7_U+{}oVBMC1>I59ZzX-x+VS+-x-J_alGx+fl1oQwMN2-vLbhqu}(P^1rZlGe02hhJRObweW@TgoY%m5itT&( ze%YxQF*_)&q}o{6x)Z7{Bs3lX+%SJuvru|s9ZW-rX~8zW6ah3Q;_xeFXHg% zHs%N};V7K<%6QBppMK>s!9#+BvG+}~P9b$dJ{TY&|jD{$C@<3EMHm?oa$VSfa! zzc@WeIec`Yi=9QpTx>6^q!K=N$N4CC^peg=_)=^_WLz+qqMU0CNkwK5Nz?;r8TFuhfvIJ0{;VW13S5KVb4{@=Z7peps^0 z=ej2WfEu*{wm4iQXHO@d{qtSOQ$pbGAVnR3bgR2N@8dgtY2FmRKr@tA^Sd+BGOkD^ z7~P5#APJs3d+ZZ?uI1xRa&E5q*$e`~y^*)w{V z-!+sskIrhAhvn;VzGaQZ*5L`81SuA|NTDP~kH{-?faAQkHf3=CmpXP&6^e=mT7FMW zXkrlu{Fs{uv3@QtdT&|P-AM*)4>WvgwWeXRF^kS;dR7x?LZ9%Foa>pPMSU1ilgIa( z`=$h2H8{Iod%K=igGYmRmcoDC6^B|eSNL{*XqJ&Gqk)La-5<`aARcRSC|^z8^uhBr z2EH4Ph~Mi2pOSME;!}kw+lvoC>17t6_FvW%s@{Vb;Ns`$(Vk523gGWre*FT+wFjY| z-ZrXW5NDc zKk5FS9qoH|e(yU?qg#GpC6`l0dv=PhN@2C8P&Y zRyYJL)MZV?5$R@a0N!|Gtyb^HYXfQ1JVaE>WEg&9vbW^$vn%z1$xx}yx;j^z;YA+~ zXA`)_adi|hM|Go3w_t|ip=isx+hd!qw`wB}dn{&9AE?J8C@8|*(nJ8)^?~<2)%`^i zcyvRz(d@TOU&X^kI88DZh@&1k}C57A_1Nz-CBXc7-b2dl*pJ{*x~ z4}*^k{dg{XEAF(;Qd`5BdY@4i86v-zj_Li^&+Gl(W?@nw)WL7le6AQ}T0JOId9a-% z`lea9*RX_;NJ*C>Q{gTG>r?XKxWa5o;jlQsY`C+M!DZRP7jN8imn(FGO2=>H=#QHc ziScd8;)=d?{1=l)vS+)nk~o1v7GNtaby3D+8ROq~Q5}Hadth2N(r?(|CM~49tV1y* ztnpTpMHL#lI3ma2B!-1$i8~e2;cuy|Xyn)X>ql>*pWaO9@^|62= z-Q+T0HUU$YJ@vka2oybeybmWIoU^su%mM`Dq}57i7AF!1zo17czil{{!pvUl?|UzF z?W8M0JG9kxP37oJCT*Tr$dhRI);vZZ@iP?pX{KEkY|VC#$1`3IAlLS;7Mt^2`U|)N z;G58A6DJ8tYvm*NvbX~LjTLY1k5pV)fM#Wj`iE`7>}w6)fYpq{v_q@TzGD}~GZ&(p zwv2RpejOaD6+1VqxO;q?MdrM^lq)l9fW*N~!tRTGQ|FZANn#@MHSUiI`z&K&_V(bY zA3_y@n{5<~q19r1(Z<`)F6kwN=b;>$wKAA9a*D8aT1AAf$;4L95KQVcQCIkE?RbPo zD1LF((nO#moj5(s%x-HPBj2__t^HNQVzIVW2d9r{Vb%Ez33@_5!(}mD6$i<)1ZKv} zvSXg7#PKjCdcj!c#kAt*1B>VDvMe0fqSfaUH0hK2Y!f)IfYdRNj0N`XcQK&UJE1W6 zH4DVsE!nA;L-K#R06yEBUMsk*eLs18Sh&oho=^UiVeZ;1q9-X1Wu)bm8(?W@+MV-2 z1Og7a@b)-G>^amz1t=I}%E%dGGRil4irmpe7we4*_2R5Wlvxs`w*7V-UYXMe@qbL1 z?7eTa7}CHPtb_J7ZEr0aADy)LyEX?XcCZ$AZl|k)$Xm?d4{KFhntes>XFMz~ zRyKwms#xJxoclmR5H)%Bi)(%;oG2@jO8LN})q@c7V(^$K9RRJe3!YnUD0GGujDs0M z>bygDX#l^C{mXsix8-izodeDwv|Z|+wonBP9y1&IRlTX7VQ3{L^GF{659X2wW0Z=) zsQlL-dEbVRdiq;Umr4I91FScz+tzfc2oUFj`0A!?5_2hHQ0`TN#4u;xqTm?HS}3U8 z=#Rru=-=M`Q}n+aj%CNkYDk}114X<=1zh%~((Y}(Hxit65|Wtb9;L>qXu)Y_5}?7- z3op0*5`$lXp?V{u6068|CNJdh=YYi-lg1OQkS+jmGMCSN^-C=wEZ3lheMmxD|>l{h1v%7IdL(tLj#1$_z%mtI&}`S zK+FgGGx?=88gF}O_(keA7nm35*tP<767YLWN6CXNH$`tQ;q7y?1qZF~vja~?mmhA` z@#Nat%Y$yZG!4hY6RbDB)8Q0}ULIK)X3Uty-b|KGPw)Y2K=tn$@CDWY8XlG%eLPdP z?rXCBB)10*&Qv;B!Zc=>eOhN#=W#T?Jj>3FDqVfU!;T%283;hlfq;lJ-!`6>+E55X znf%w6@*~!VasV006b&$g7rZ39rqeBmR8eS*6ZQH1yx>kDJzlK#f{1hHK?wjwAU02kL*JY7iU?qLC+c#z{9JqfSkaLSk6(k5T1Nub?ZtkIHS>FMXTF%C6~0P!+Gtwq z6$;0^H`UhD0J6<=oIO{6dY0l)$dC(asyawJ8M}~Y)8W~hGJNsmPc(l%@_xLj2BngQRiZt@A^qJ%H70_ueIZ^y-+o)8kx10<^>BMQ&!DtJ?{ zS?0|?VBUb}e8OL0Cdl+5i?$9Nu^7JDo7>$yoi8Yy$&~xVQrR>#Q7&HA1)1 zjM(<#zsl#u85`773K7t(A!Zf1Q~*E5-;qnD&(-9Z^5&DDa#Lfwfjp*(L|&b5$yh)O}1q z44psd(p*x4;{mBUo+eL!KYzI2Qa})pXee@i2(mH;7EaXPg_AfxdHb_y0JlF;?L+Ui zmqeP1${yO`F(;pwP&jtn=eiI%M632S5s5^;>x<-e080&9rqGyNsU<#{r(gPguE3FyjP(0cYp+sf z+acU#+S$w(G78cK8oPWdWiwIz$yRE9@!iox1seBb)9+P4NSi3Q;pe&=GI@u|(ku2i z{nnd&znq#tsXl~_koe`15rI{vMG9^C6kOnS_r7t&ICLRVUEWqhI&leit3ey__G>96 z->;w@x2lQ|Yo1~;A0lcgg%+a4`uc{xdt3d=;uXbYu&_4gzpu=K+6}NmRW5nxXO# zNyI2pwz~CMQ%tGbc99h1!|CjRCth-EtMTjTV_r{XEsG-0ND7X&@y6!hqDk6iX+_W= zO&Y5$wt9)u8^L{mf-6eGq{OG$$?&+M+gd72f=9E9Nkn2B>klKQXr3(jmcUHNWR-&h+-kY#8KbY+S!1Uk8-Bg&iYI^x zj$4mheZCnnh^I(I;!FDNFH%G_4NH>vN?{FH?;qqcAM(?3~cLUVrHvmDWp|qp^Qa!EvC<*nfrAK0E-fyuO(;^$8d^p zgzFSGe<|-4U&M{?{0TcWg2%ob|MEAY;L+(e-8I+URodWgl*e3GkJV&ekJU7#>+;@w z9lvajP-&2eDeO<6S(|px%I^jJrx+PL79*^H6gN<4n{S*#dRW$nxiB+(!|A2DGz#Gm z<>KYwE>R4>1y<|e4MJ`R%7)Y-b3czx9y^7|w8u3o!P%SCjby*dLs2SU(inVRHRz8O zFP%D9VxQ}r8IW!U zq?32ym76zUk>i|8#i_%@^ML-SBRfncxbv5$Q1_p|ed5~@lvn^T-S()mZLBsm1&p-Q zY&w*rtL+QI=>h@wjAl>tUE#Gi3plLGg5dEVKg!q7{}xrB`{VX^pR_oLUc8WN?DS$} zpkqL`@O8V4I5!OqeU+|$SjUf%6@kY<@A@M>cUgcGzxX1%F%Y4tQ){W{pyADZ4}&~i zcgs$UNuBld$_SFzH>!*$+`gi2@kZgBV`N1&e>`$uXVSB&QiA$yADa)446-`tmV;7n zro|q$Dkjitym$lZ2=f6j%~PsHpYdd!dK(2>-8!Yx`dcz^t-QSMNVn6|ZYVu4%>1#{ z{eIsKBmw!*vQm(-(fq&O0I=#le~$I>zYd)I!vSVwN>@txOukt9c!nfbC-R=r(DS_o zMH`iIS>$JE)W&wRzin^PSB+b3acDW8W5D%ue=7UCfG(+^fLls%aXlIM<26?BbP^O`42m)2#AP&EF^RWHt+k+NX^0S@@?uh5n(-@ zFpns81Uq*VU5?ckS{6P&d8MRSQ0nieBr`Ev!k3ih37ye9Kx9$dWvriTN@(`7GRj~O zv3a0?*W|gI3ULDCR2L}~#2R64Hd19MXQ~e>gIvgZ{7=myT zi)!FenADH!eYG^~PUHw#U*&(0&;lxZ~Rv*riWnw3;g+HF|8#u z3a_T`g~P2t>$H43j{?beApPc#_~SrD8L7C5UbIKzSb{nX{AOvp)|qvMLUht+gb#tl z3qyoKLb%sm4Yj{nX79)wPyS^f1(=`7btign>bbRJR{QeG#j`MI&t7a1w^TCooUW_C zf&gw!{->GXk7)*Q-8yG95idP?MhGU0l>LF4Al5tnkD_8@u1|wN zI@tGL+Si+ZBIM|Q&Vl(y_sjCqwl|Z7GzxR>Thg>R*5@9!tLx1qL(A^6MvXL64d8TR z<*Qo_^9XL&WR@*7*Yg%Q#Z>lY(QBbhqt674Z;i@b;ke@Bd54q_HS~H!wZL;`RDz7; zBG2&!L=dlP5CY!MZyr5?VY)gP0(wryaUYj`t%ca(0wRl8~80K&!KB-3y0Oy;*A`o=e&|H_)A z_Cgt9JV>JO%s@ z0LTt9orED_&L2~{;h{w-1uRI(}q3}+wWMui=-Ul`cJ+`=v=s^OmV$dcwY=HH~IK%Pf<}QwkepAG`i{i zo7q88E|*oWIK0I&{YE*c#fqCk+SxulQZ4G-tb1SH_=B9Ta>v?n=l$w1|KHW&%O?i9 zk%_}AmMwI1=I+PP(f&fj?0QD4UlMQB12K#Nk8%a|Duxd60G3LpRtHIjij@~QI21V) zi*;LZulG_D;1BNpHiCTmlhHj9BqxfR74{E=aG2c^a@Nq5B3raYled9=74GJZrWw8m z9!GZn+C$zD5^Nql9_FfTc>2sFM?c=y=8Ms$C^SZ!gp|j`y@_83nCb>s*oFprs|bX1 zKL}rqqxI@sfEn(@Zsq080<%=5|r|EW$q9*QCbw-3t9%p_M?v;DOz&Dfv=^Uk-UYOOK^ z{OXL0p69z~_1K6fC4Qb|9a@OMAaSz%6v~Wang6#6(G=8DtUd= zA+-Ev_1!B0F!V}?F%Bw|m*tnCWnBska}-sI2Y-s|pBfr;xh4j%6UoilZ&I-Q4q&}4 z1VrC#APu*XUhCb~H*ThtKCS@)i2ek$5uMnjjc zKFU1e7oSSGiHAwDVqNlX7_6FubtDbj0UIbp)kuXcI2c7W%qUp>U2TimXC7BT^I+C% zqA#`i^V)q$o=N4ftL1xit3RN8#-i6yH0AIymxD#;wQl`!=d$Sl#5u!0!ByVSM_W$H zMd|2T*noC&Z&#to;%4g&LrRlN2BvQD*);Jc_rU{BnRXzX>m8eI6fgl?R#{=NpPNv+ zS;Nw%1|*W)?F&>`+qkt~c4PQDV$3DrC@Qrr6qm9&r2c(-51j9L;C!^6CFFkvvqHGB;J+dCLJHCR!K0feTJA! zyydwM8(o{L8&WNk!$DRy#Rg#U;>teT8yz$%L|gQzhHRh7P@3ox>y!DfSGA0usBg_= zL)|}j1ej4B&VX% zRvNc`7*i<|l<)F5gaONawOAoTh(W`&us5g6e6hu&NTjVc>A093LCeZIn?tPm;lm?U zo)}4ST%$Mrr-b#LS``s!tlV81Q;E}PPtdclAsD)Xnw|;Vovr!}?hxD0ijl1CW|3P+ z3@LL)YZIH}SWOgN5qQeftF;LLIEM8r&J}pis)T1rO*x?C#uX0rli#~d|D>+T?u!FL zu#od6HX>%<_?v8}eVrRRrql^4+zMyv3}j4o$eX#(nF!xpmy(OXEV7Dw!$CT(m1LbM zm2KDLhlQic-Lap2FAiz0)|>YenEFgecMC^TEMx)OSS64}8vXvf07CGVRb$`xL79Zf zl)-n6jA89uPtIWDL4rw_Wz9V&CO#c;Prh8V%(FfIx7!>ttw65b6XUb;2I zebbU+Hk4ACXlpvN3BS1fxQyT}Rc0^(GLGA%bDihgczme=S$x0-OF}3aVnI(H!3BU| zC&W-WA+zMCnWMS=llICsvPF$yooY?cpwAr4?oGKa$28RJYNs(J)!*zFk7Uu?!waBl zK|KD*a(TaWV)t_$jopRw11!!{Cew~<02IhHGiWkFViR@fz#0@e{Uf>JlrX zRh#=->I~lrfx`!Lu-Nf_2x@73;ae6V$ zHI+5`eH>P^7CH{t^<#gre*+lBFsr4sZrW6@^Zi1y@8ja9XTGQ-0RQ*Z=bi~!@x{mz zV|bDExl)*X@tDr}s;2b?9@b!~BwIqD>{|X9leH2vYly4kAai(BgPp3>Q>0p#TAS~6 zR-=&yp1(XWkcNLz+yN4;!_kCgmr$P+h^bNu$cBpYbo$0wfk&TvFgxtG-PEcv>cvEZ zhcW(wx>x%5Y&(#$X24@XBNfY$=Mw6e#>7qxag1n(Uh13Kv(fldcV&`Lc1|;Xg~8?$ z${q4({D-Je7J?(dnoR}sbDX179($TT78XTE71Kj*Un+9};qb$4Pm@__kCCmWm>056 zgA5?Jt?NJ41;{^=GM$77nPr62&V?U`*hTm3z7POas6Isr*a1ec9?{Mmzh|l6VKK^R z#CW8ID80YB41{lMwKMv+Xi!-#&LmVz40f?fC|yw#Mh87A%qHQdGGAlIjC^fwckr!% z<}&pcy#NlLNBv7G66v93ab5#z=tfwNwUWh`{NA9nstxzK=!F-gNln4EI|Q`Ui3EbW zicuF%Co|G~?|ZL0Sux5o?X@xkgB~R80cljQF5MlIV!rRym8WVsL5z|zYojUCLK{@d zZ}&Qc*$^w5UY?$j{P|?Ls;sK9;n_*b@yWUH@5yd;hNQw0b^0Pe&Z;*u3MQ*kpI$9) zsw)-=s4X(~{?tS0U_d%3IY$?R=^^~P*7wv)Pfx(-ZUt=1es78WvrTZ^cY2Wl;SVpg zPdhi@gXOP*579CC*DE6W*ug4`4G!ard(SNK2(U$i(Q)&xFOTUM&OLNFq7!Z8uQxwo z@Lf>usI7#yJj4KJ#mB#Zs10Hz3kX&nJ6|qembfPq*8z4SS%A24T_U(+QWx=VKSB(a zo-{kIm5@JkTdy%aWVg@nS#mM}d2RONLbS{owrUr+-AD->J7uFot>j0_T8R|p-cueO z$Hu~~A_Nq5zI=^=4l;fcM@F)~pG|9A_kK(?rrlssgUgcWv?E0WRc`o?3@(<&_HHC; z4a5Un#gD*oP9DL%P2!^*hfZY&3F6_9o#`C=(B5I`Ez^r7XX(+3Jgs;;Ibf)j6OXTG zt$LcYUk?}}IGt3W%C&+fofeQ}6P5=+$XA*vonMvFgg)Dd@Zj5PKIe>*E6X#w#*k=D8+nTq~u37VnmgBg4YYrN;I! zC$00R?tuRS_s-}jtUX{LkxA^asJF}6Jny(~;#;hgn%BSOKkNtGQ42errK4?`+*~#+ z`#Q+q8@dlr{;eyNU&ak2K2-WkS(yitAJMUDEA6+K1?6!1+JOT~8dyX~wNt1dUD9j8<+d>66>Lo%_xQM2f`rSF|jgLR+TDdkCFH8Eb* zFhBmY^!48S&C};TM>-Mog`neQ^;oG>WY8+G98zA8`t50ui(1dA7pp1Q*y<@48|7N9 z4C~S{PaRQdx9M4yoV~}bTPPT8SCxx2c!f#XIqH&G1R*;YAA@gO9QWtJ7lWEM1_1OK z9oZ!1cY7Lh26pyX@9?hu-_R5Af)hdRTlgr+L;^v5^W12yH8=tPQ+8$_mTTsCA_pjf z0Xt%UVsYa0gSWKF!Ym2cqQ-agSAD|K-Pgkbel;A2Mkbv&P99xG4sFj^eBUOFaaM_G zuLd&!y2*f|bX6oWDLu6xNwHO97SxTK--THP&4|%Q9lk9JD$oCQA+T@7>bm;+v~vz- zuStGdirZ@<mcb&_Ei1qkL6TC{faLY8KTON2P zut>^?V(Y&k-!P7V0T?F|Z~ali6HSzf;LHk<#eibh=aQe>nzo-1rysE|v=LYz<_Ce` z$dBp&ro#pN?@6^(P%0-){fD z&cCAt`Ho~v5atjQgjcK|c_%E#Z+D{p@c0yKPCyva(nVe97n6|{6cV#J^gWm+vxp3a z%v3aSyj9rx`+1nu@btzWv{^=Nt=cGJQZ!iHnJtzF`vjDemFM5TmeLjc|B`)Bsgyh5k;+D0OtL_w|If zt$N~-L5DInbLTLTDWAxN)8|gEBB0QnO2{wp;Nfg4(dq{0BxxCA4%;T)MNen=t_To> zK23wsaCl?^M)gex(~|L`Ut&Nn+?WjM;vx(PqIOg!R)LsQ@%p->JO<{jPRCq75%Rxd zBfi@g=V~*aCqP@3yGI2Lq{tgt*uT`;R#w!Cd_9i(%j+@rDAAjj>+d!W%9!Gv7tWT8 zzAk$d>CNe=HN2xz7h!6Tb^EMB>$&d%=f2{XX{lJ^#6`A{ew=wf--D1d#DP^0^zjT1 z(?YIoJq52yLi^JT@K}ZT4f2RnX;>~Xl&dtPY;0%-R6x6HYw~2-?=&9%VAP0ibcr+S ziYdDEV-hgFs;ZoFef zQm+!l&;QY}ND7I!Fs>!B-`ATsS?e}h)3vHE_uIkL<dD$1isW z6)+yv9M}V{;WjF*PzwNzRp6rk=@|sww_OIIAz=dzo^5abm6HCieHDPF@yyEc;bC3d zEw2pH0GR+2E0x8%lnsjLYZb^QQ)`oZOx3|5nGhY?BBj|G=yRrx?O{4IRCG&f#z{(H9#K&7+ zUr0P!w(e5=%uTv>Hmv2%^l)UJhKEuOMXc7Y2j~pmrpqPy`(LO0?MdU^!W6;q%@^l@ z>Tr^1NOc33GCWU%Y328m>*LQNK8H5N(Q5P&j^osk<{NdPGfWamdmbkWCkRNI+A)%g zANTVp5D};5iW91eWC^!UY*^M^HIw?~U+~;)c?iACpot6&RM9NeZ^x(5=+?GlFUSx# z(WCPhdVgT(DHYnz>#({x*j~Vlzk9`scgg&xR7C&%w#xSy zOcEQJ5~xh|3HsLp`+vq9;Iz>!;lX7}Z*tf5vJZ)Y{!lV0v$ba;CBPO}??mIt|9WdfZcOuV-hv>dcxtVI<|{?M$w>MnHvf=_X4S;0~63>hW(AzGuEd0II@s;%dK}|ndO}aSrtgX3pJ#8rk#Pl21EG*i z_!Va5NjvcTs!7$D3D$*?^5Aak@Yh`MpIiFO~5!bm3ME@OF8GLc~7w+olW!crD} zdlQPOgQu?0g%w+GH)ncU+k(AYmz1fhnFGa+4LaKqq>XHC)|i{q-IPH(f$jRKo?1Ou z5fLeQ>ovZFmk>J<-u|tn&8L7pyVquzGu-XghKyUqC5rK3zeT zYRg%VD5A2fLj8Q_vGwi)WMn!y@j$co$ntmsBtD%m72=n`k33nSOdh29UPA5iajF_U>rjC+?DH1x1(EsCZDwnYf8|#H;#qhz!?(wKdoM~s!SpWB zE4evKNxrMQ?!pzQD<2f5Y9B&BVR1;Xr{I8w`RXy*-c@;BoRgEioBb|1pW3!@8bYhNUo zQ^W|z*`r$-^Zl@s`u&WED}KL^`)N;w5+GzU;Y)wdIB5ywlO-= zXP@g=BGoZCj(=}~x!^+5Wcs>EoX^rl$_B;~aT}D|e_i$|?X&qMoefg*XA`!yC z&XjnG7KWZ%Htx7gGC}RoIX57wXiG-=$c-hw~_TG9$wyl$*{cr@ye5GIXX1*Z7dgX z(9vMg{5`I{1O35(a9nQB_sZXH4X>vX56b4i*wroJ_KF^PqXsb)*TAZa!)*N!qU5u= zW4YCxK*Ug4l+!Tf8ABxa#_PO3%&(5EJCls;8;8g8%YG?EPN6bbR~2IZ5}D73I;rz< z?_!=L$hI`9a@ww-!?jY06D(rC*c4~zFeZ}pg;qz!#pNlJ?q%JZUZ$RL-L5fR*nWYP zZ~1nl>`$O9pMU7@hR34_KnBFDv@`&SSAb4ppY%@{f4`Ud#|>6U3j4G^Ot%}8f)P!w z(un$wwD5rF3;}tMhj_#U6%$ybq_Q`jE`?igKEA%^-!wHQdDKD@c_R%E`D~O7!^60I zT5ULmTYNtgXR&~5(mp2uiwT#9=iwh}^d~EF0NAfV2gHPfOF*okt@$Kpr@6Z(!YMM$ zzwyk7irC|wAk_S@hKEO2W|)6%6PlM7|ALFq#)G}dp{<}mg4s}llan+4 zQ?f-8NT+|=@wQq8Y*-UItAf6KrlK-V%h&+6cSDWV$~y7G7b77_zq zL%@~GO$F@ghd93u{e69k%wz1XCz3a#$or`G1|?$1ix;2#QjxttUhT3(>j{&QphH*B| z-oL%p8_)Z^C3id9+c`iWrIln0U7$T% z2oo$aKL32R#$|&p-kOc>~@<_t^j;TR|YGn#k zEAc0StI}#^K7JHcHm4OW!74!t7KLZ9Di5bL!|%MTO4H)?iuxS$4v-i+yACvk9+Z@n z&k)yAQr?VMDk))&jEpK8h~kaxYkr?scLw_FcYp5gSYqzmR_Uw#F_s`U|@m1z!0aN=RNFU>1`p2-{ZyJL=yS>fL&eN*Y z&hnxVwmGsez2VJHvf=#?3fS2AGMw9+U#I1d74$89qg(%A!5L!_j)QqMQ0fK?PU8ZM z!|!_kF{ZLMPvm1@zO0_JGrXvXsDiZwQae7qP(f}6m!mC?pe+(V%T@r4#-xeyW8Jau z5hbj<4oDTactrZn&+C%3)6L9sqMS9?ykRtGNbmd&7c2u9>aQ^;17an_hMzyJ!FWp2 z!?)sw3=F!LsQkPt8JlsJGLn*CW538KE}Nb{{x)x!$No{;VUCa2A`!So$&3(-ZtJ3|esx^(e3tS+?L_VzYKN%bnsrt}0UNp^uiPz>%a4xOb$H{SKv{JRUz9cIb1Sk2VQQjeFH%Ydkz4E7 z=ot`4RxS?2TdPe6UwQ&c3_X~^mXZCSz>u%MMpbQT2{bQB#mNO(rSk=4NuCuzwQ^B^2^-J$`kV$P*>a z?YLEnfBZU3}bX{;AE9PXk`y{;Bf$0Ol{A@)Srsv|RJfW<*w#KxLV~KPh zm^y5j-5baEFZBNP4$_s^!+gmd&$l?Is;^$&>#lkXq(sVv)8 zl1x?ckA@c_rJV1bh?R$I?}RO|q&Pej4@vq8NTqBt5O7*NwYgnq*7z8NaHHZFaFkO} zOxJ_Nd21>!d~ZF-=-50Op1i!HW^boV`YX@P9GjeZ|Jq|B9z%t3`cq+H;Yb3zbS!rC z;Hj6ha`Lj@t~^{n^8^?qJj>0YUG8>y_KcR5&)ks!&bUPFZq8d{Gdvu_)y{jE$p|GR z*ivefbcVlyUH?2NDUdJVV1w(Ns`C_Bic% z+FYN3Y6Rb}IJOZR@j70kZu#_a1{IY-j_&U6E*QL(D5Npt7k9$?jl8WOw}RMw4MQM^ zruMT{w7S&cp#x>_M4QRk@NQ&ublM|}+3Fyda^%urq6#Wu6BE4rD_h@G4*352*yFc0 z%o+=deZ2i(I=C9-s07}I*;%VSN9e$X?;E8iHsX~MVDaralpSu-{lj&cBHr%RCeWyh zbc1i5JziX)<1PbHRkVG}bDhL;DXOldDc)|^`+eOub~bhDb-mLu{aPp5cEz^1wg)dt z(f%qAzm`?#FMK%T8f%K%wV7V=$na1fR~pYmqx^T%jU)Pv40AV`&R3|uE+(*hZGg~G zUME=yqY>?4mXni!2^8OAo1Tp1)=97<-zvT#EZmBUC%J7BiypS9xVSo%hMJlP`AQUl zdU<#W9MoXNJ@>@U*v*yB&oK4OSZnLy&K?g@jR6O!x$c_~;ptvKPZwc63g53?@-pVo zSon(f{L#RGJ~iq&fUK|H+%DN^l!eMDA`Tqo`UO`I3@ryw%pZ`$bWapeB0@<$g{Ctb zdEvFnU@|M5>YqS<#<&*kR7#6I^DF1eDhO6;X){=ivY%IGe69T2%ztJtHac8nVnc)h zO|MM8^`ifDH$f|>K(B(58!TFK6cEC>RqF~YU^RjJsL)k3zD0UqS{vrgG4-UIzByhl z4u6}IpIK+AxM~uAYQz{3?cXSYCtz$Y8Z$!jdRABu5TE*Fwk0|MmmAJjfsN_+eq+C zI)+O$aYWzyJ3L9NB!9f8*%DF&qdpov9Ttu`pDo{4fKBvxBK54A%Mrq7)o@;-3?j zZP;!_T*{Zbq_`RXU2J#}0s~yyw})_)`xjikz#_5)2$2hSqoIonHliW1jIt=&`QlzX z@81(!AxGkng8J@|@+rOsaAMgVAHh&h)$j_JGWq#x`bYh(8H*~d{F_}9HOUE23R}ir z41|5~KPfBT0}WF1AdX8;J##&`l#x;gscN6Q)WyzIs6}LfJqVcVEeYTa@X1=!LVlgZ znD))}m`BZ^$OcjVy_mmJ8`UL^g`!pN3v~GYM?RvCcT#)%-5Kljh(w99@485F)IvfoxYPC(q9%g zV5_t~7GPEq{>Xnj!FGh9I3^zKo8sDA2gekU%-u^DazYIokaB4^+ix~U^(zN~qmJTW z^v1al6LH$9t}Jb+F@2^ZREl-_87bhh1c4`;_?aK zUV3KDg#j2xQTq9I_hF+p)bIAg_oo(NsDwG{KL6y(NGSMw_e@kog<#MvT-(D(NceEkr&Rhab)dc?j>3w!W&H=Wi; zyTmMJV9BB;?}+&YS(4Zz5*b-p*;2=5m0TB_!3L!F@8O5;In4>t(n=nT){sCe124^B zR>00&uPG#8^;3~kEMPZ1_MfcTwR1d>{!YJC^xB^(@wgNQf7hR>r~dfN=cL(fW8fvy z$(;*6l3`_I>2F1GQJK?XL^Eq|qkbi0o*;^AIK>dV^ck@`h^hFb`djCLNKGA$qi1xv zaPX+1%m|>$sPyp?q6PBo^S;kUPDt@x}W&}7|wcaBt^z0WLYkK9I$f{MeuO@ zLpieFBVZ@l8KB0+#T9O9ww_g9FuOB3ek3;#S5o3GCMx#I(Dgw@l*n&Ai?{1X7A$+Y zZ|wST`&Ua`HsvSEpa;y9>>PtRzo48v>v^p-S+}hjblJ5v<4at-tYZ4B=yIMNQWAqk z?H(b3&Fz_yL8U~byY6y|E5j8V8z#o@{zu1QBeyKx_;k%mrdJ;jcBIx&KZ_9n){XDs zpS|7MUn4KfI_@qDIca82@JM~!LQ?-6W#t~y3CRuKo~*CR&Ck|*VM|tM!V=4X{+OtT z{EtX3`MVMX3qtexGVdVV2U)2<++i?qhy_7KGB&Z^WiVcnt(Vw^p1u(GfJqBUqVdZY z*yuZ?w^1gEJ%Aaz!X~$N0sQ8Nx`KL1FwD>n`Lj>6uVnpafs_&q;~X>cQ|RWfesQQN zJ98EM6SONX5 z9BmNBzaC*#ZuT+8IF))}V5DUu5%MuG?W9u8k|Nxv>XDgbXHr*wyG1oX|2+MmpolC^Uw;wJkHQun+<)EygGW(n7 z5#Y_>Z;T_H0*tm}r5D?5jfD2ES#$x4tCi{N3R3WUKWM<)tL9GDunKZ>)At53O|uG_ zu^-Hr1^vu2cJvI%_>A6#W=-&bqlgR*B3)C)I`Uy~&3iupX_14dm)uyh1HgW;sok)( zp^xHfXZuumTd+~{Z!8IQr=B$b*(B@_g(mDK=%fzhu$b|D{%w^;7>aYR4K=t5++H5W z@oQBn2XQaeU%Okxc^@~uCC}=LG?&5~j3UQO&supytUc}!7>Ks)^waDRhFOwiMrq`6 zM65t?8LG19w}3si5d{?e3&lSo$N7C*9&h}Lk54G5ObsVen+SUh1wSrO z?XasyWT4`G41xC(S3A-ELGwsk<+^9UAoG9CKL1Ji^csTZxOVjDxHtwF{@7A|c28>fqTj|IA zXSE(|WgwbYr}wn$A4L^tz(e8!tK@zuK)wCXt{%c3 zyoLTOSrz(zA3p4A1Q=~`vg}M%e6^4qG^Bx;SPd1ATB%z11h1CfhS?y3!nTk3RMWCO!jFoUpriKF7`$>vGdgB&_DyXfcfMG+)~ zwsXp?O-;O2;QzEUq!V3VFDV^MBPtyF*=m&UAY@K?p_C4-yh4Y62*s;LS^XWTp{*o( z3hpJ{)kDS8GFXCkp#`znI5<+v`zWhgR|uY$rtv50AMlzOd!gJJEAxy+({fwe)5Qe$ zGjrm{QITAd6&W$L<>ghg%nb{r1YX;WI#MWwiR~d{WC!zR+x@#(nOvWK=)l@LJ3pbK zrV4kDj*KiSaTN8hCgdfxi;0X8D0=Y%WL~}z1}-iY#1#!k-DaZGjbd^8*oLw~nZMB&ytq1=6xWDk?Er?kgJ)n3Xz%clgwHI>A@s%e+ zqNdB|KdQP>9u39zy4C^wljx=m5DW zjB4wPUJQug?231tp^frS79g7g0tDUUhR`Uu|6k>XhaZAX>i4}Tl9y3wNqpLoMb93y z^(Zubr!-o%YeYLMBamWIxw@p1A;MSlhaMTr?=ch_GY$UN#r4Ht6HymH&|Exx;f#=V z9Y>E4!^}CuXVdZ0QOi=acD8JyrPXgYT}@dNPu^9G5KFj4T-y^Fd|J=gV;yCE^?QqX z_|0^Untmhn20K*_LRy7;$y5FBV>(A+x46TUn)E(m!_+w~d0) zV9^gwD#o%yL>fkh;}f`Hn*8UBPADRYKKtZzKW;6~DiN<>lp3a=H?o0PGI>Vt24=DH zF-E_fpwei`!=UdjYybF@ScN?D@efl;bu+vOrF0)pPqXJ;7qyg6`<{-~|hW>zL33M0{K>YoC6{P!KRP z#fl6)4b|UeZhw-W9pg7Lmp3OAU%vG!Bx=%Tb11g{Vosh|VXPxL+12~(U`-CIJv41g zyC%y_bjkU6*7so7hz@n$I6q(0vN90tlanEFFa0F)mD{cDUFX(NMAP`L)Vw0zaoRC| zsuT`!ytKAj4Ab5*En3{a*!anE@7$_H0n)a@BKDCM3kt>tM#q`SBF_%JA(Y_ z7fQJ8W^p-?+4(|?Q6Y&~1o)C)Y*5oEvQt?2e7#SXb~LdA*0m?$`jxOK!^nOKQyKBu zJ^)Kop?OE=xVwn+q2;-7ngGNC?C>0J<+)D!FGSUQFIe~I>SgmmB>*x1d?;H}0Kdj4 zK4FQ_Uc=ll4e(%aFb2A9q}i`Nv*$_7@B<$A#qt6v4RmCq@|W z)NM#~OO2KBJ0~-4aOLm47xSalvscz2j3RCjFxzsO(XeB=Qr+O-ar@k9H$TK%dOWAA zsBaO3`dY%7CfM1W?J$X7D{=08TGjsGaua7AMjYyLEW;TJCQJbu%JJT-!h7C_D(1}Vkvj@~Yxl$OkMm4XQpoQ_z4qz{(F z%>z=MdYZ&-sqFKbmQv`KB97nj>WDC>bOGtmd}^cfv>6!ef!)U?nY5X!CChuXRGeWinFp1z?%eEjCFkJ# zdfgIIH_V`KtyQOBi2(KwpPi(cl3`Xy#zHS0X9ESq7k1>jp`m>CU*78U$qj(LoKJ1+ zaekLkVz}}H1l6fMSvm0jgyXf``^$Nm#OBSB@An)ElV(o5y(And3cr2Par@Hy(h5VZ zuj&AE5hj1cW@qO`S(V$I;AGjd*W_s1+|~V*5}w4x@b20Mr@2k3PmJ^1>D0Cy^^|LK zh3x#b=mmtW*H_)rYd`K;@Ia$iYZ7SaD#S@2P`c2!zom+ro`fQ9yfE;Sy!_}fL|ZSP!xeo#q8C)qV>1)6x_3R3yZ3m5M|K@@ zA&3b3J;1KedD%0tLnbB7cX>6}|H^1k1&RT_NKQnuft`ZC$&@RpzdUeENLwJ;X3Nf9 zek^P}-pu@ZqOZ_JE;xIt+dGmc3kBrZQzGc=ql=7b%gxApoUa_qYF59HC>Seq99EgW zx6LW2Z!AbA2q{6?XD1SA11YXZj~*H+lBo#Ai67NP1z}Ple}=qOM->JtzHJ36y4Z{H z94@&Ii65qX^^T?IDNGMK?;A{IXV2c1O8Rjuv&bc`=$ui9g7z3WJY22OM4r^30O1zJ0}prA?}Jvs-}YO|NfN_Y#!eoRmHxJw3< z+Y4F#FhNtj%TV63w`z1s%H`SBFLCyhWBvFAD^0Y3rqi}JVj9J^@b%V3Y9B>fiAHBB z7Z(=ZMy{}Mz4ReJrAyFG70%~i{PINLWw;O~%=CWJNNG9i>gs-h@zTYM{_gtBs zqG6?yJZx6`!yqF{N}pzK<921dD&F6 zJY!qBS;Ka91ZQmI!qp{;Ro7K^{7~1IoaPHu)icq?OqPiQZ}7UJ)35G!I*P$@kKnVK2K~!rK3;U?dch*(8T}_ib(^+028QR zei-SM^#B@Y4lFD`6+l+rAjOa#^f^ER4CC>bvCLcKXc2}*nn!CPnH;vV4EuG?{%AdFtp_=36(p{+_;;o> zjnzJK$pn_#E21czTpaP>{R1P|?eE)i?3zo%ftRJ1eO;(1Ipi;iFVnkT&u&6A#PlJ2 zeWirCe&xJX39U^G1p#gI<{0E{ZM7B%15KJ0PcQVHykVj&!2i^In^*}py)DT*pTpW#s9HaOuaSxUjo z>GFoH2+2%ED=+?46mTNhLzT?kYViywpGs7MH==ch+=orBto3zgnP$sW0lGlYc}b-J z1%Rp?H}QIJ*{n*Z-7eyFL+hh{!3}tegeDDNAK6KECh$)rQZly!DdP z$FC2tOj4hoH5p^5e+W3oyxxkSobM95x~}n_aWR{S&5G7e&Yg%-Aq-yJ#43=RzW^L& zlGG$>W5wKcq~o@ki@;KSjb$1bXFUXVok_xX#l?(;!)S<9&l57_CAqCKa79c#)d{mf zTHc<4)L<3_O79g%=}xfnY<`GD@*T4rpG@sO$i|X5D>XQ`1l`~Ax}`_uo9|RtLuIrx zgiou_d-_O}gib}bAwq8Boa)kX{S^U;jn{j9xDRVf_mAg1N^IL^Yb|g+PE0ftp4&{* zRBz?bfhqoku8Td#Tw3z;(--4T+bS1H7w3>jin3u&FdwM;YK^m2S5E%&eDP7iAbFnW zPLd|=vN9vc%+&qhodmsVuj7(bl*wzO9x`c#KL^l-C$T2mq{(brFlDk*c+j(gYm z2vBHU$nbA3Fn&Dh*E>s6a6ILytZ8!f9Q``#3&|n7G7j=XhuGV{5xMximFzr>23Ic+ z^g|h*J z9p4Ix>TcKah zj=1$bx%^#w2);dHs=0E>Vazj5Zk_iWTfGErcLgfTefiu{h!ZcWQj4RD3rS=>3Q5vK zq|XP@B-`Lta(rH%9W5Rz+g`vqEV!PPICI1xSZCBWEG3P-_SA>97k1z!@_-N|UM?YJ zJX{yMXO-OOv%wK%wd!M(T`(eO)^coQHt{tw8&NvYnawDD^B*L&IS# zSGjos+h%X$%N8Yu6ZIcdcNbR8smLD=LoL+T4tt&Z&0dRZk|GU$+I=@!H? zqS~eO^2l&3v2Pl+@y}P0vw`$uTBk+%FZrpUA0XF}9yvuk_=!*jy_Nu2CYPx?ch+d0 ze7}TZccwxcx>Nldu8zl)Iq`xo@~%xMQE>=S#q}IXQn6do;eluk>{0K0MyZ*6*S%M5 z9@U#|xh5^&1rJ85d%%+Ku@6dd{i@T6t&3G2gYSDY?fPg1s~mNv^II3s>Zp)#=} z7o~IH=a@V=rDOkmnEx#Iq>qK2XUxFnGl;w2lC_Y4 zuJQnW`m2>+@JR3v0X9RTgk|CP>#<_~gcQRW?aem2+dN17Pyii-=l!0Ir6*l#0Luxd z`^uvuY2D=;%s@QzzccNF?R_dH^2ncs^bcp$H!qF(HHBYrLiQ%gRa@c{zT34Yz*P6K zrmH>i$j(W9*6>M)ym_U24F|V_QR!S!#?XhWVtImTb^NUoHUENP=Eb3FXF|XKTBn)u z>V;9T{KRz9fxj6vR;L=)c392@!SgfpHPrbXHB_qPCb8h0YRV6uQR5JVbba8E$$YpeMUIJEVTqxmTQ_er@@1bO zWS~vg{oPNdw5_hW>Mug+OJ*6?dYi-_+3PDhL*SU+`=U*BdzI~HbS`_pi} zPPNEqE(zl?QY&q;_O<9;&kSd*-#Y*K58+PEb5+PmW=|Et%PjsGhjoWeKMhNXiTHzq zR_l8kt?XQtYSQO+Ov!@GnX+GlH68oglk?f^C9%#J^%V}r=tC@%&yLrHk7ryc79V2| zD)p7OkcBTJqRk1<@42sat5;j6W_i3Q<9D?0^3{|60ufwivs7v?wJoea8~8a}JTYIygw| z);BTF^VfAoV;`Z!Q@nJOEZn~;|dx*JZ-YWP<_WnK%}8MEOC6xN@!KI2w5&U$fP zJ;1V8G+_!^%x6+)oxsF`J=iiD?cYUn!rP-h(A(WJbIQFWf@n%|CU0hpTT0rurkxMJ zz`)VvvF`n>%hsZ;K8TE?6EtPFecEhtfTfzH-(_{iRPyZg6ix%!Vqr$VHUX4|t z3P-UdpEfF)G3~WetU)QV-QuqrrGl# zwMMcf3lWVZee9|t2H4x}hI7NUFEc@W7xq*Zv!h4n1I{#xbIG3jSV`@qu6x_p3O=R_ z`5mp?`~zNHADgBz7IE==LYRsNCNmv>BhA#{Qlo|lr&3q+g!&KI-vNr z_5{Yekqnvys`>yUNy0Ck!OI{pNawZXYKQhfzGVB**#Xydb)zPe0d=NeVTmxMMyB^$ z2c%jqihrlmmFr;XX+(8#AwjFpy!1#BaLf|(m==t|&h|Km+8knuXL~;?A{UCP+&4r0 z+QkQexyx#vtFQKcR9`eeDLp#u$+8+cmZfh-;`W7cgHIUP$;TD7B2mkeI)#?>Vr@k$fp(7OKgwYDTLBf&#NV^l&u!N#DQ+7KtC*#Q3Wf+W%Y zFmum2&esw>E!S&i0oVIu+`NyzRM_8p^$c@&|G2@e0+XTPwAWu*U0rsrZkx^Y&m0;5 zb&oEpg*Nl`%QzmrhaRn4?Om!K795tfVSqp9zaDVPE~roPJoL|0Yq9jevmgHqYv0~8 zHn=)%cd(5+$5PO_R-RNJQv+)_9YcrEuecpbTo?LsP|0MMx(h(j0vjcw^48tjv@}Jc zYqBq0e{7i=PWgy9UDJehq!AM^1lE6Ni^JpxlW}nc0vhy(?u_xD9WrbJtb93-o!ys{ z<@$xusLEj3*#C)rtKFS_t$IT>LTu3=~^E6_!V+%yq{C5&QXwnWwJ}W%XhA zNHpMo>hkS8eN58J&RMwm1SRUYZU+^bd~xjjW7jRe45cNNRW)RF`OnI^D&DN7V-w>_ zQh(V>O@!zgg!7+k;Jo3VC2z#R)wf}GtbpMvvf}FTTx1*xy~mWF-gIdsd-ip6San!& zwFr*t0tdG8YhU3x+K84p2B*m>m-`<6$)PTP>LU_QHtzK8hDvH}XeT2~%EhC_-d&6Y- zl6=F<>lzbUQ>z1~^O67SkRTboPsoZr`AYP7dbHJ55nKmK2jCP|Ln?RVlDWJC1Ep8% zsHD|lJlqgr4_3m2SC`h82@=wJQ1wB=y5zPW7Q7*rV^OawBSY~J553a_fZ zk*(DSu%){k&~@k0ekc+xyQc_#2cbr~Y<$5Mz;3W(ARU}gyuYpw+;~rJd|Ic`oGPBa zTqeFI1=1%tC}dYFG$054``dND0t3FR$1GJlRyaX}5}5Mz5Ve#ToGgi0Wd>Vyg^Dnd!5{*iYlWH;m;KD@-)Ng2~7 z1FRyFrW8Vl_G_XJVq9a@N`7fvV3>WIg^aJ-(Mnd>e0o7R6Mwa>A2DETAhJC5R*~pv73{p~crSe)mwuEp9VK)z0q)ESItIvFgtk>8Hf!+vrU?b#WD!-p?v~ zu94?o^{#hHs?*WPbqcN*OjWiKN}Ei$G8A3+~O@ z^yD6Qr#c1tw$A{MC)|{kWa6_w`%`uzd`2qQpGxnuMOoL`OT5ptQ9r=^U?Ad3d?gW=z^nNJ96R%|OQA0D($qds2{ z1KUEAI6SenD}Fubs@}_zZ;R6otnBxmiBR>a{9F@jlvm! zvYVgjR2>%wJ$gX2zPz5THTN_J^p!qrK|a%uAoA58(pWJ6lW}SrG z^XS8V$x(#Yjnp#41T}oWN*(w?jRenlTWB%I`d@1TRu_!4Cgb70{<5~QM`GIwX`a$U z){Eq;K=I2IjbWghU-nr91@e)&cn(ixyXi;hW3SkSEj+BA2vZQ7*gWSuXy~!u@Ff}^ z?w6=rLQVfY7yl!zjFjuV2V?RgSN@?vw*@6yZ<>kxj6|w}UgvL4qf^h$IoEJ}vo%@| zbEY-OKF5RLN111x8fR;%*9xbr${m;^Rc13&g6b3Lo;kNLSe3fua2U65HZr0<$&# z#L%&UpnY)1-zbM?{wG7hIFM*=ka2Gr;N;;0+ea#bAJrD?EXM9m=XWY-I=1khALQJV zqTvnHE~$}O&D{e#9A=cqTACcUKVA$A?4ZJ5#M~f7@*UHQfyvX9&(@yS!qcBG*jd?& z*A?`;u9s&C{qhOC1}i)PZ*}Q3^KQkEf?s5Rf9_)BI}<_N_*bvivck(y$nxW|S{rh5 zo&>|b1R-X%JS_$F4ERA1{ysHe*pzv~9$wI3`e>wN=Xj)oF9pnl#M_EG+8m15G8A96 z#_6s<+!8O{ZqyTI?LC4jgK$ReZ&O%BWo1fU_iLiaq-Y_xBciXzd>5Y(8W_+XAlOW^ zn4P_=etX11Wqs8(#DxF8TOlm$pbl{><HNd`(g29YSKY4=T;mW1 z*Luiq*H44xg3pI+9 zK1WZ_;X)$vPgZ~hLz{Evni`yW5aah?`|Q=szqne9$ zPY2|+1nZX3RQ=;ldJEh?s%Z@R%@|3D{0w$r2+B_aY%4{1(L=uvjGGwK`FjI zm+NA0?6Bre^mj|xwUeg|hsy7jMjwA$Uml7HV`xzAMotkH5?bNIku*BqN)7x|bfTi= zTB4ps*trb)x>o&EaTF}Mos9E6rISHKB!cX{=&tU90LFuV2*g#@zGmA~<+yVta znMDxaU&P<_=n;cK1MO%TcXOOz;4eNy%ZZ<&!cl_dk&<56n9V3Lo_k!{(x4v)6+;lM z(t_MTmw%G!s25Z1lMG_ob;f{p|e4L{0 zU_VKs9X3#8qk5M~JGL5FLZ$qD0echj+sv||$7Bd}w5{rjD6*is8FOXqIlq00rTnF} z1)2c?MoMH+}7t7@7RGhwe4)?uCI2-`R3FfF+5{cdC?g+8v3s0;y_fx zp*?r4^sUXd^4iNHwAPaE8b_^R=S>C7ltOEPT1pD;ouBCq*`omBRcf-cai2YEHyE}U z6kf`kSF&sTdv!8Wd%;(DwJLbMM3I6pD3h6 zkJYdR%?FUc{bu6(g`&-T@MD(1Yk)q-W4`E|_9<5!klT!=pFfeRU1tqgY){_ckX6t& ziyT}`>@ls1^qL6QgqU|Hz3}@chu>vU!IMQ{AgXl}IQXz6KdFSD?*uQ#2|ptKya9I8#$EZXJBv9K)8G~9Y(1m zAv7Y}qVhUv=F$Dg@<)}3zb~);-JI&xw=WHKl#`#092;n@sQAwI6DH*dj_MkIRHcA;X1jv0EboX`X+y!z z3C)9#NUxi;wTZ0te$x>9*ACX_c(qQkU7cb5u+<8Em&1@x7XQ$tj+=`&spW-+R^b%2 zOy(9>THsb3)q%Ge`+DKBY? zaj~RJqg*f%y@yW{8XT;!h(Dp7`#meh)YLRsK7J+y35}W-G@uqtr}P-UwCf+@NlzoE z3({4#e%lPw#R+*!5pL6}ZrgMePNp1uN7yHRkI^AMvN9 zVRrrP+>5RT!U#tBxnBOjK;L1xg@+_A|1GBjD467DJ#eG19KFThynCfm1gDe9G}iKl zf^1xF(h>)bxV!#3J~V&3bgqQKr(AbGb_E5OH{LSQ@5boNs2gH0+%Y_`b9YY_PxpU( zt}fjSo_2~y@QbqrA~5UI0be zHyyG@u?nAVyK`XR-IMQZUjYc>{;TaPvX`(&LO>`Xf|hn;!u81Z46BWdON#mGd3ibA zb?~D@R;U8@ZoeGqFMfD*$Vs18YUbSw{pz=>kZ2(G;?W(Ywc~M@HK_9WZ(RxpyZfz! z|3^*v|6gCY%>ETkPznW^&(X-KV8aG=zgqMB^8JA1P3jK`|D%hJejaV=)91fu$pr;p zi3U&q^94z6zu{PFXPj0N6M0C(Y42RA?C5-GM(D>p8GUSbf zRAE5u-}zAdJ6L2;Je|iJWOLgC>gBb4+ehNz6w=RpchW27e`}yo{#y<7>caARhOdt= z4aduvKUm1{7k&bEN+9%S33De0?_3#ugVT?I8vTDL)hWm+m*3a<1{P~98^jLv2f|W$oi~;-z7?F9Mq?dG4 zw%ra5fr0zqw5<>*LoaZzkYvFFlD`cMje4Ncj{8&h*GBD%BAB=yZ!#~oAA_7u&Pl$_ z4?gTj^hYhKVCl7N8p*L5eBbb}Oi!?d zt|t$nJrVrH2LWRVq#64jb5mpEuVZuSYa^b3kbdULaiMP#78YfRDLb#Q&>|7f-`LT(WeA7r&-O6}}4bzN?b(%Gb*M=P8czZ-Qy z3TAW!@bi4YN4=9^7^G6n=OO$!km2I1-wd!Aqx{zDw}T+O!2U4smxEb|H%zq?TP@nX zh2{I{w`1dg5jCcQGUU>~*Eqkt($ILBe`QGU7#n9j_u+paoqM!^t0|^7n+M^dE=^hn z-Kc9>G787lPl1cyBb);No(LKGM1pu0cM=AJ^aKlhu1cP{`t?pU4E{Pv8?!HzVT1mx z)ZU#Esn-XX>iw&)Z{Gd8X+zLxWPuYjgJ>j&Cp_U%JrqrZxT4mpUeiTJ@%Q|_AQ&rC zxpcBmnBRvG^9#?JPyZh2l~3mRaAp8*ZjCbKpIpH}<;v^R(|>X$gY=}Ggn+#)58^Bh z6MTpkk^KWyJKSi6y#`#{uK(;g6S{yf%!~=-)$`|f&kF;)4;mlX`dVkxDf|!8i_-o3 zF>r(}raby*-~RlMBpSiD1rv%~s@vB_k+@EtZz>cXd7k|8WJzir58$umLNzA5Q=(}( z;M%4z(*KjGa0CYu>Wip3%3n+6)pjOc)A57x?_(+c&&QI4$ULY2_gK>4vC2i->KA5S zDjN4L4rNt-O^Eg=>Zlj`c{|Jnsvu7AOFc;V?I> zZA^xNl}85`iri`Z*E9<>#(3FW*c7E0TsCXM8RtQs^gS%U!}%%uP-(l7DbQ@&EH5P_ zM92{1M%yr0huGTM_9R4eN)40`Ym^x#meJo0D1bhRK6u-8X)|wBBET~Smeh3 zVX3!f5sa#eg2pd9(lEUGlg?`s%t7VboFZT*+Ndho{~&4!yy+`8$^bGyAz-0fr>VeX1{p_8$ z$oUtO>>>(hVt)TYxoz+TF)xx7l`vOx9i~>Dm^sTX}dV5S0PI6X1G_u>P|Uj#$reA;!o2Yw?=}Z47utSHE%cvas(2p;oR@ z>ms#6sUEXog~-2T5exyLIzFa`=r!%MH#iTzYq*p<-cmpKVb)hL z^JQpo(JZU9bQ(Afq<=!i2YlUBdxs(;gBLO9+vmYgMw8_hmj=!l+!zen{~8(4Y)0|i zp~-q}f*}IrRE4G-A?r$YB!&FBlq{A80E}3GK4y&tc3(H@wQw5|T+y`5J zZbY~8BUEl1O=0cT-cioDUJ|B}`k<8Zef`(F1*Rj}k&rraxw>^c$eDL|per??0HoD~ zuOIiXv?2g$El3IA`e!Q%$==Xj^>0C(HKCSL+z`v4HU^D`2G~l&$6eJrw_VA3Bunhh^*#;@_fJC43 z-o1Eq!xgpVGG)ZX&`j1ZqZ9EtPD)88{7WeB7{J{-J4z{{xUXnnz*=|Rfp2PVe$cT+ zezntKBAEGCn`yzrCNzBz`X{hlNNPd+pSB?@#!XbBKwL3DWx?Nx7#Kzdav4^L9<-hV z+&D&^h@W64qZ=niU5tKlDYi{*au2HhLAY}h5GZh{$1^7pFgjinW6lhI9mRP4mKk(K zt(w97$6xcvk#fFBTIx;8n!GffapX#hSl{L27$luX6E`Mfx;v(mr{J>dIhj@--@RaO z2v1PTLw}I< zX;@ey+017Pbb>eR5=H!>ci4CzST75hVw*`tn7TK;RFPrPGDdy6DTVA?#R@2L|H;=q z@WzV}R~Tb7iG-vEL>H*7)6Ep;f+X@r(|eh}f@%ki>ZT)8gzsMHUqv3rf~Zwr|F+;z zyWTl^m~uDG1Km2rix-5|tQApvBPSX8{#!FXKpJ}4VMYMW*LQZyu)mwA*(PN;ednh)hefcz+?!^jFP8O9$K3!Uky|&Vyu|JJ>-H=p zezKQ|=4%7*rEZ1O@&~i!fqt@k-Q`NEs`3Vli}p{Cc`T-i{CktS*yH=Ypy_z7vQ)c| zvW&FKYC3Z9j6v5Z5){-ZM(Gxvnf*WPy?Z#+{nkHDDxHudA?ZjZR8Bc7NhNe7#8k?8 zjN>@Z=zvP76giV5$H6dzF{Y9;W02#RnH&dWjN=T(nBQlrdq4a8T+g$A``P>6&-c2% z*Z$+~y057;pU-=(*LtnBUTeMkOE;|31f@b2gw|^*@Q}VWKZ{RGPd%})Dp-ogX>$g2 zpn&=gvHw5N-b4Fgj#&8hHur?d!R|K8g3OZV$I$4Brj5Wb<7>IeKTfiZ$3i6WP8}*69TNbPa+}{LP=3unNZ<{a>;SU-X(FI?y0!4uqqMONcz%<0`ITT+Xkr){_3cei@W-sQ$ly+qr3uRrci6A6J?z$dgm|0kLCMHt(i-WPL@~PA-g5&`95mg4BBB}QXeiN zV_=J{EE=A3Keq6>^|n3#0+}NSbS=-$ZXRMBJ=*v^GiX=sIpZAr1CL;SjgF=ERJ}5W z2nAU0;iQ8BN0eOgZf25h*xJ&rp!bJDH%Xil+|DnmPYJ0PQcVZR!j?WHkgck|JBtGA z79dvTp^qLtTH?-%Ev(qc8muQx1H02IWws0Yfj1CJHu+5~Y;M|I2@qs;#%Tki!w-Z} zj{xld9h|2RyiDG0E>^z{*p_p8bhT)s9M*)H%D{QxWgm7iFEicpdz7PkEU zKud++aY)352bw(7{43Dx-h3MHazs1R3KRo!i!lHRZ%VgWuDBMO%#+agFW5bQ{vw@Q zy&^25n`-YJce}5;wXWqpu=k<%aMn&)S>yd*zLYvr&IHm@Vp>MrHFxgWa}Kw%Y~Q4* zg-d@4Xlc4OgTxGM_Jk&x?cSQso$ug|e{1ZNu};*rKh=s24%Z@oJ6jLpOv~P=iMDz8 za$l(M6RW!2Df?$qw0Cv9Ji`$(N)bOJ9hp|vB)muGECO40i&!f!##>DA;Ep+PorZmq zp6~Go9}ef${o=pAt0|ul@_!){`+gkxg8|x_d%d|eo%YU@y}%r**q1*7_tHjwM<8>?vLcp@7`qGJ@;Fa) z=DLyI^4*otHSq=D-lgmI_OTB=FI+gGJ4dknj&+sr%`Yi=zBW76e4~4Eom)e%drdo& zDBgq3+nl~tY3H?z&YHYAM{MC58Xg#)o9EKft?z#aR7u54cU3^TAtz6tA?`3Ru0MAb z*cez_d}8w6)y)@^fc2aXL?`%({rjUU?|-s@ki{#E1h;b+%9uNE)&EI*%jxpZkqR+e0zr-UbNZmUwRS2PT1%%|u}_H6c5y?3kG zl*+AUD#_f9x42jrQuu?G{f26I&BbNM;#7MSKBYNxK0xC8$zcevT@6^S^mV%9)s1Tw zX3NRhl^-*;y$@)II17KT&3bU-rWN>hR3p?P-e+{5f?yj}{L1y~Dn_21#^ZDGH@=Q4 zD87joRuZosx&Uy=Q zSDy+jWE@oF);swMuE+!Ivyjht-FS}J`Hs(P*c*=nRx!SmFJeDgzrbHv&WVRUYe`3XXy|L4bo#xDpLP)dk{fvXvSbHU#oUJ(81T>G|f+PC(3#dzOs>h52(I20mEkcOZ3 z;?@uk)~`gM9r@_LL$SeDejrBJMX&KVUtYye$nrcFdK_ObLiSd8fGqMN)qxip9rJ|T z5SW!MfT-=oU68t$*=PscF3{wev8mZ^`st49t0&{ZF6+j>M%I?b)wcB5>Kb=(+Orj$ zYsO?8h!ykQG^ZuP!%Ht$=4gx#4yD3q6nQ9g*O@7`txDOiY6OuDXwx6^!VO8NsSo0L z)#?hpZ!cv{MfHF#8VZV>*yJ_3bQ0PFqmg2qrXQ%ZY)LoT$%g9(oGa-75OJavZ7Nf6 z@L-K|UFk)i#_zK`_wM>Q=S(?w4zrTCSn5aFPk(8f#@v!FZ@wG+qv|=)sw}V|7qsUa zd^t9v3sn@qT+S*?I+9Y``uc;pg3WvrY$K(rI&f|DQmGQ#IyVnt`JQ5~2Qpn;1h4ZJ zeI9w|cE?x&#%Z>`x$J;kTF%jD3rN`za~UyUR12U7Wx5UvCn_Hdt}6pitZetAIRmTK z{Qae`i>BdfSy79Fqb z<;x7i+ma;k*+9J{4`|)brm2FP{1f#atb4Y}xX{2FnyET`Hu;dHnX&P@x*#!)gO ziW5{!q`nGm0Q_21d*6?Z>jKXaw(D!F?+1#Gb$KD~#scG0b|k0O@%=k%M9y5)dYfcy z9G&)Xd!_EJso&-hD!r-Us||N*8rbLbG1qqQJyPX7pG;e$uc2%8^}_&yCv08##lQE> z{4%m1wu`$@{sgH|V7uCSh6W&yWR!_i5p$4=LL+jo3BeA;$e0JG}CPx8t#Lv}tXM9T?(A`vCTk~Ul1jcJ?cK1W}oc2GrIi?nC_4;WwoHJkl_C$F} zWjKsA(kZ7jX1xp$qAUfVn@)#S51FjE&>hOaCVb%AW_c#;{DOi^WnA9{U}o^X8K2_1 zE1tVVgoP~vT0(3VYqef058po?YB$&D1xzvRdWDXwzr`0qGqvm-7d0%se!L2iQAD`1 zWmNfMlP~MBxifWIAY2EKaF~mFoL?_AiyTG@@Rts^yf8T}X3$(?o*5yOE^5dYD_dJp z9zhF?0FySX+x$1J{fD1;VgU8i@3gllCbUZOlZ}Pe;=OjH&Oq)C?!|IPu4sP+qbRUB zIz(;RPYEc4>%zx%e;Ei|v}h-MO55WJiea?+a8ZO?nc8mi>t}KI@$zNl+F%Qi(|3OT zYm8dIgWnJ6ya0y_Wb`d{KQolO2)=-Zbl5_Qw)+W(3uV5(3*@0JpZTwOm-j$SPtD?` zBX`9fXC|01QINuXg=paFs*;i|E2K285g_gtT%7K+y~+8GR7QR-|NJ50Xlxy!Y-{0_ zdOf?!=lG&c%k6@U8*E^B5KZ$r{YtDNl*$TbtKUz=ocZ@j-18*SBFY{{p~noCd(sylQu^0Y97Qeg>}-kP42 znD}Pjf%Zz54PwW)V=vutPpdnC`d^e*pS)$@#548Ql6uR zubDr5X7E&*BIU(~&xoqoy)rt%10H6?rACpxchF-uc4VwDmJ^RCBW`5p0~1HWvgc00 zE*^lc1(M{d$3&3q05KupVsi)lyR)J#mfn02qYJS;+HbXzaohcZmZ)DK5m` zvvkU}@z(BYR|>jxJSC>=`lQOSQ;%Q^y_`4iwj-EPVR+8F#mB6H_tA`j8t=K(iRAmf z7cHlIUl0Bmv|nhFX5>}PwI=edIO+#JCDp#ZY3I#RhhpP+Ig~zZ71ngwJhQSgFmM_N z>FD!b&Q+q@q>**UGuZCeg-M#(UK14M>YS8Qq6TRXjAtb5?9O#LxKFpGp6vT!z?t5$ zE0y6Sn(8VZC3W&$pilGr>yG$i8Q6slo7Y#J`Mg(D^;;XhZQFVR9vS<(a7+4Vmm4P(~`gf~z>%VaRy{{Ys31)DHs z>BnayIS18SH}m@_h}f(fIRT9b8Nv8n2ew9hTrV@AUH`Sk5#;~)T#IY6TNxy|M~0Zl zSNXo=Ic&Z@`z>Y$0iWI7*tzZI)aNClzHW_DvuW-`%ZnQ;v-TpN=!VA8oxuIl#@Hag z>G|PScGVG3j{E()(x|R1Hq6ovJS8TZu9qXea0WIz*u>NJp$@4_Krbe|K)%N6L2h+6tChRhEM?Z#Jl(98# zJ>k{V&~gNbduy~=vvp`hqW@cC_}8jgzO4wgVoWh#|5Bw3;}*EE>hzvO0wH;C4$<$VAIgRcgtE3#i{}wcQIt!V0|wwvOtY`<%GRy3(Wh>xP|&^a%wQ zVM=yzngDc3J45Dc_6DE^Zo_9!z3aE0kRW;V4IU?7TX9NHFZ^C#<*n!AhlN`X>3jMY{=gBNn~rrQ?cAcY>#AM##N!%%gPO7Jt+mQe_1*3nZu}jB zPaOVnXZ7wh3*j905FN2}aAs_ki}aJ7v22C!0hEP7=0+uN--m5~{r-p%l&OC|Jby`g ze_zm(sW(?IKF@!7DT{E;`9cr_yGBjc>cO)7dKgs<2nUW}`;X@{*aO~aRBt$^P!Gq5 zv3$X|ZqvSfTkg-XMP~at)cIco%1pG(bBwjrG$nxF2{owR-Y~|{ztOq6#sxWrl5Ng3 zO1)I}a1d}W@l(H3HeP4GRHG+#LUl;BF;)Mb$1b;X8U`41&qgD9!5OR;8Celk6`MWn z{0L0^7?u(|R7_rDtq7G~jLnvJ3x!I9Ne*(X*=iNN?o6lld(bsaaFyYp$_})P=ljkl z!LQL=aCQ!4G7Vn)oM_qux?7fP6+|+AxzP!oQSOzsg$y5UdRr#Nwm=5@ifmQ837;B3 zc;Z7$Mn%bdDQ;E7Bdc{pPBO43$1iShX5)Ac9A665w^VDK2gW9*{cbbpevaBOX04uN zUAgw9w@S`HZWQU~);A~4{DwqC)TOjf-q)tT5v!t$tca9Q*2Ar55gkryDAI=;*PH-9CC zLW|irj$MrH6l&1qtQJe9i)fakY-ugsG(9=fc`#}+>rY}`(9FH|~x<|*mO+<0NCEV1s6Y%!etKzS$Jz8%=v&i;ezQOgU zVPnAk3s&SAz>2a{;iQCFH=}{hJ${!3Tq&rV;X%{ncu9DxXCa402pCR%BCzRxra`{k z_)NCr7}X={d$)6_S?f{qr`0tfAD#Fctl{|F8&jT3wa|;c%CMYEwRU zbn|f_v2&2vY%2;ZEiCQ8J#0M(ZS(A&5jb`}n8otf8tN75v2!VNrBgZmBN2N;@EAGt z$)#@}qp+UE4%dVsclItUdq^)fuZK*{)~l6z_ooaNL@;9f&pHnG$_Y(X2^U~V&!p0? z=e$MWxP1<-Yea2J2dQ+DLDuupWQXY$=!ecbjBekh%azl!z=D|G&tGatH}`HD+49ie zl%T3Fh|yIw5cHnEzRZz!qU;~vflK!a@>=>IJKW#&(dT?ZgrG&QN`B4kG<^$!Qj^YH zBNc|eA7>H0VpYI#?VZR@8F9Dv_jY@~aXg4o)$R&xQx1tBu?ev#*B*D}v?kd>%kUy40% z+_!<6Izea841ZCdW#vEtn6RoS$x-!rW1=r7=7pDo!3 zz6X^B!R8-_XxuABr%uWyfJ24#A;tHMrb0QcTCIJ?#8(|~ zkv9fDVydleUl{9!2w&&}hhz=@4EX!cr*U+hssW>`d1B*8GHlIXh~Sa?rc=rI{La`5A*_<7CdT1KH>NA zuAjr;xbf_c+A4=J;2z(Ah-=OO9BX*$rDJ2R_c6>^&?|%IdEF9hC1~Zhs#}e;8D0{pvs% z9euIW?ORMH9hI~;9JL%guEFg5G%GqxiUJ;fP!0 zja8EaYNXTiZWi1pxmVN?^#l611+gCUlLK?%_fhweOu=4z4td?+6%DGr$bG7FIS0>z1Pmtg&?olI1VNk6ih@QMvY?eId?kt*)T$;3fS;+#9(w`k9E%L!&SBjO{8So^OH%l zVbrp+I-yBkc-s?EjNe9)C*o}}`Njwdx8ZQpwTZLMz!^@5y4z~olpTAEEiRU7Hh1c8 z&??o{^(mYIpqxtA;MV6_<_)#%sBR`tuyah=-WE>zm}}{u^`PGI3N7@!R9(kZA!)q> zs+s-(Vo$&5iI9aBi9@BvNRq`pg*LLYdmPL3y3CxR$!G*ORC%grbL@d=jpmyb2s?~FGg3o<;+Cp{+0e(fx?CqQ;;BXkF!WeFEg*P>ItT!r& zV;lF0zhB13Eu@uOWqpzFM#Ooy`(%0_m;BfmduSd0ikVDi!0-vgmNp}QTsg59`IHri~OgHjx+$l>7(RX z8Et594<)J;mmFwS?Dh7hr&OLz8uWEV+o0b0n3OvLf?Vx`ykpN+)Bl2Z3Mlc5#!(fE z7_dDLyi=@?+k7mgLc1lit-n0lfR&pOlnueFL&!r>qay3KFL8II^IK!mg89DuO(yx@ zc1@~v~JllNT}@X0v4 zfxZ^xUc4g+EN7nL&S1*y_N==vL|{+ZLnn-0si+wzf9~^elv#6Y@Q_wvqQ?!Pzq1rc zCPsT8d=kFvc*%8hJ+gM{C4o}yB123k{mHOYfFw)AuX`{gd8;qi8}VS|lV?UksJA`f zzpaN;BugNb%u{(ciXUMl=TFYEj&`>>&p;gs(Tg4+hAye{R@mI=*$4`ZE0#2=nou8j z$R!k7uc3>2m=Xk~-MUIF@{FxeaR&w4X*2wN1WGYTi-JUGfeOw4)z>il)EZKSf8(j3 z(N+<+`H%3V*z4d>rD@eBiU;XIMnbN=?lWSMu2Vw~v$_05*=|=I;L41BjLihT0+Nbe z=#T#?)Biip=lXge+3566N++W9T7|Vd;0m_6_j_OEgM1y;Q+27b(sQHeKJw~Rb>%q# zKxUa>o4#kJ(wMw%DmG@SZ32n)<;DO9GJP8TYQ@J<&e2b9e8=JE?5hyy58y7+fY!Fi zUCLYOA|Ovk2X`P{RCD%!qhW#!Y5`y40F-;Fv#q+cGcnCc(X8<{@cN_2fHqJ&mo#d(jD$Fl)CJjvX=nibzb>zqN+}pa6^q2WL%ubL8Skh+rxiQs=7Bo>Un zGWz*gd=GVw8UUn<_^%>W4H`lO5g%ObrTAkxw;o(X*|1WryzI=L|9nusb+a3sLZczE zO`>|CAKveTZ-dQ(uW3F49lJDJ|3iWz_x9jY*8lyFNBnTXoqVK;ufk9t&cPwev%)eN z{8|w|0;~bU;CmRX$a{nApCy!3Nm$}O*q`f=2VO#?(wpNH!D!Mz-=$s3AN{j*O$2=U zFKX`RSqtB~i@-}XyY$9`Pu5_^+#%hkplk1+2+Wu?#4hZEU3|7f__OkU^Nz<$hYw#m z&4+uUb5Ud{{>_m=zSaM=KYRzqY6k4U{cyP{0c?}zAShFgd#iNwl(XmkdOoRiq+tRe z-2Ulh*FrarUx;aOA7w$(RcPY6dvQ*$TEN5cnuziCC8Nmu?$WrH0Hc^XW$Q!U#H9y# zg+NtU`+)>vowB!Gd**E9uEqg%Si=1Cy-}dj3uCC+=48tSr`7jHr_fQLv8wmR!xDXDI3ivFvI!g1tGw{XdvVp|9KctO8F>noZSaN>!FUZ@U@3s2% zk8N*=R$@{KMiZszL)ZVZFRd#{~Kce?vm$k*7?5&u|TY7KN$HNPy+xDa-ySV z`PcvbMcTig8yohItGga3;fvk~whMlr{KLENU1ivS@h zBi0FS{|774fAhQW3S<9vu)k5q|C?{`SGR!2?*HH9F#mS2f11$z+rj>S8fE`>uzyFe zf5t@q?O^}R+xve%f@wV?U)ROROTJq2Ku_z6iTpV7n^@h)0Nh7P^Iu2s<=Zp)wKi{$ z_*F=0c+5*)H2&1&#mBt>cOYylP#Mp&E;}Y(aBsPU*WFUMR$kPn*H1efWnjGlngk|R zle!_jP70QYvct_5{i_>HQbM#lR#a!r;%q3m*+LBx8)&p20J@Sp_6Z;SS&Dfn_%r>n z24q>*ohpFT;oJW}`|#gGdPTunQ@nz`udw!KVck!0%&!*?zI?n+1yDmetE{2AT)Q7k z+#Er%AaT{byXCX_wKiT_Qj$uqQM+aQGfV!#HRO?ey)ht3R@0SApS`}JREGijCy6nG zTaUQ-SPMELDi~%*cwgHL{xb9c6Ifjrotyj&6OUVACJ1KkbxvB_laLVXcRPpQ`W%(<_CJragYRX=K;K zk_VSGk?(p?H6ogyF&}Q`b@z^gU}!bh9%`J)Dy~9UDm`|fsYPAY5gPnDn|k68!+!`E zzEx<`(ccxmU-huxsm;%{{;z&%_+aq1Nu2&BHt`nF3I*3Tsi{N1?z9q`+}i-ogV9_XaDt8W1~)@*hkE&dz~817YOss#3#mXcMr5@fs;?cBOr~q0Z zWhb^!1UcU~sfu5p63d_r7?=w9yvDrj3m*dxY;IxC`Co73;qmPN0XA&?bBh~V@-zfV zvNiu+nAiDvBvj-g6~>R-95|Y*#$2{M*a`ijxx8jdjNEQ^4sge+|N8KxTz>jxCcl*a zO@rq7wc3BOfi(9K6uZ%Ps^Oq;iMT>f@5{jn*G*ljfN%P)1Dit}-X4oX9);skvp7?e zX0cHg0C%d>AR(Zmc1V2ha|;fx5}<8wxQf=UFb$H&+il2bR*{m8Sm!%-Y+Xn zh}{mfAmu^6Fz$*maGE=wyE~bk(y1AACj~k5)(ihpL9zmpX*DjOCo27DET9U@4UMC6 zBLB&z`lv2WEV=*^vG+#vNA4mzN>bk{i2s9VgW)>Ur0+~&92 zh@hE)_dXD6;10-7tTAFd^_OYPMyJ&q{EBUCiGQ+&*K7l$SJE$K%|RXV#K6DtHp}uQ1-I7DCsPzW2S`hrZ+yCP29r%(v_M^UCYHIzlX`}a z0=^a@f2-=;$-FCt`RHnwMJY(!a0v4x5rUJl$nr8u(zA~P_ZBs3?_D!4%Y9ol_T$lp zt^Jc~uHf0%4^ZCJ!kPW#z{c0L1-JW7kyqjrZLk{fg?;FYm_(J~67H>Xr<^cQ&qq_6 zD(Xy(v2t^~vg_gJ67x_tVt?S}B`BbZnO@4hd8}W?7P0t#eoVPk0u-XLswzs$2|V|N z>0ZvNPbt6zSDZqHu!ZZL$`oy?k9A*xfB;QGSjxNwF^DX#K=Lju1%wQBy2^sQzD?CW zUf(8u?x*xsi16oVU*plMN)!I!;zzIb>g_o(fO02&wAFE5KbOwqO;bbO=6-?7Xd8+- z?)4x3^ZBR$D0O8?_!ebO$_(aU$6EY#niH0LL!M}KR`)>C>HQU*cx~!&1*`Wf3p;tZ9ewtCc<%F~i-o{ByjSY=uqt`dIe_h)4jMm7+}mZ4Y!x%^s=4^)BXn+a zePEj?%&mPW3;&{%LVST63uiF9YZ!g$Z4tyzAh~ldJf-o!{wnmM!GlxZV`I?w%#bBqf5m+M6~bdzVwdIZI~%s{oDp%nRcVSj2wORP51tvm zIQ2dnFHH%!oTf=62U9Z%o@mKsRFbyMeu&(JFZ266HYII)|FjHlwz8S0PYk5BRe!G^ zNXW>PEpzEAN-D$-5Os$UnoK~6o*8k!7k^p62W_Jj;gAjc)Uy=@BZU)|9|bPSJNa6x zxca)Nz*TCz>Z4`4*>sq?-}LHJ`$5+6O8!7DpzZ962i-Z$!at>N)NmWPpOq}<&K<;e za|W6rwaLXq*_s^y^=&BNWoLeJIJiK;L_1$p+OhP}0PfH~sRapWZgXArQAz-Emg-k{ z;<|}I*)!t$q1u_m@Bo$&Pf*6f?)6?1xOAA}MlD_jH!p!{jmnj&5f z$DpzZTvwX|e#NhD*j`$e-g2H)_ZMXqtGk9fPMG$|F2=k<(;lxqo?=~uhs#D+q`CB@d$)q_av09)6l#3zjVT@(p5)&L}~z(uzrnN!sEVen&b?m*8#N5TUPZ!RL> zy>~_|5>SC`8u8-!iS(O4+fU*P>&)plW6$q%+|aT3+byDV?WNLNd1A<@dP}>&RB;an zcRMuf@uL4!*h@Qqfdv57>0KK7Pc=K|0Guuc@H(KvT%X+mlVsV9@0o4_GIU@N!**J? zJ~~C4o{`$7-P&$*)*fI@;Azc)zAVcEJA0mvPFR1z0Q0^xfc&l)x8|Ou=KxSfu#T+r8cSwhXm>3^Kh%7RR~@h!B|utU`;DbDqQz9m|;dR5XC|D-pv=faJ-Y zlv`1DIxEL7^;zu4{s@j>1U|=~Cn;GAVzt`YFPha)E?bgOMv?JhczR*7&si~7KL-;C zWi>34z8p^xmJz`@4o0H%OP08|IlnB#^4<6DXevuOu}`yB7AI zz#SI6$a4D_FS6MG>5-+QYbgio0#(wRxxK}qv~Y)t|b zP_MtU*bQ!BqCLALN3M=ZaTxP7yY9U-yxZ|Sb)JPE*O{V;c7M1Vl6O1jeSs~SoEkXo z>xddI7_7lAMz%p5g<|wNY~agLEb#Qea>hw_d$cyPl)Zbg8KFKtk1(v?Q2?+%WxJ9V zJ9?*v>Ojh1puQuDc2HQmHxUpo5*hdxBq}M!tqv6AkZqxB=GNcqe9nC|CFom>z1#SV zXa<#K$?S8Kr3DV(w8#v+3F)yn$KF%0ESLpCio z^G`^l{e-j=e>S8k+eW4J=gCDG;J19Bh5V*ZH|tdmj30jM-J=;;CA2n_^z`6hYiXJY zrw%5irZ-fM8B|{f@|aE_uf58w>-&*Gao9aPeY$c@v>VWtkc&^+%lC(V0X^95*LqW; zFGH{=x|g9Y!PT^fe$#^w{}6EP^W|22Bfik1)=H#;g=jsC(ZE!&4eHL|4*fU}NnmKn zBi)+-hE22E9hvnb6B!w~^+tg5_q@<#05ypE*xaqD6nB;?4AMk%B)b>hg_8?^PbN(i zL{N}`&X@J$fkc}9VvNp!G!?JJsedz}PH#(KvZ})H$NOnjoYjXs#CgC&98CP5i8!=Q zMT0+f0ptKt`oBh>;c*~cBn6$1Y8Y^+Y>TgOG!I#L%z~C(J8W`jn_GWr-@q6ZQq9$@ zDL>a*y7psNYYe(u(R@~2UveQUN`{*RKXOk}Pi5}+M9;ZBei{HHcO)^&^-AHjOjOKdj& z#p(D-QSy2+Ex{68`@9QC%rw3_KHoc~njJGhOimq7eG7n2;gnA*9Y?8Nb3WS)XxTKQ z22_&eSRl9Iy4DO%K2OaPaFJKs`>B9Y!&de2h0L50?7wQ2J$C5Abl}jquL_ zlgcMjBwB=E6*;M=@)D$1PX)DBIP1XrNuU4G8l|HjCo6CEdQcaTwOc*(!HSfyIY~$t z$+VP><40nBG>&JpgRjOXp<03DW-SdS>Pc3#LG||g(ptgW$rav~-%i30UR5d3|5$s} zOu#4adR6N$?3cjs2T~?)PW>DlNSabLz)5HFuZ)Pr6r;dq^X6c8Z)Qyl&WVU-Y@$cn zIsc|I5LOan0X?BYy;YM*>#wDz(dq1|NCchQjyqpJjkk&XwkobH+VhZ6KUJse&cYIY%4&%6C%hYh|I$LhT!KojQU3t?#2l2SO z!*W0KaJv$nd-~G6yxNXe@WPm^X%MvCWPz$<6|@990X(Xf{w?H5MQRgWewKq`2t%`s zB6k&E%eu5-tNcZJZ*ficc@8Qfnu7*rQI}I$0cgSQpaqAGtQ?f zJXuE&mZ9&&N9qP?o`DLOJYs>>+^Ougch0u%Rfm1tSsG8ac};s}JPJF@9(XIlhPy!)0<`ae zpx{ri#=`kAY0Rw%B=NBHF0ES2H#yv=8tECeDm zQ=dyHyVvN+z8gGcUFJ+(EgE5NW2;~e%5zQy6;yZvK5P5sU+%M0Kvo0UZCCE}j2AQT zZUK^@v-M1~n(324Qc!k?);GD!$$O+m76$u)IXDNwDNyHtL#$m}l|z9|s#}!Q_xZZ2 zxjI30U}P_2wq3z?&HI^*&mBb@Bow3GqMwR|c_cXA0h6eyyY7G-JG8j=?fuRYStn5utee^80@xu2ax{4j+- zT?HmWX|uiac#s_Nti74m>~7bdF;&PPyvX9?<)aujO3C8Gg}XKtE@ir$uSs_5JGa<4 ze=kb4{a##vc5Enu6wt}uivg^IZ11|MqF0TUHPY`Ms~TY1(*55Yw;GtnvBz|y8qDOE zO|Xvp^K5npf}eOcnx4&HI#r>5Br=VXm~3RQhAh6<9z9f90Jo>zHO~ zWDDf^)~6C|kG6U`TU7ttRCA$FmvWyk5K-5b;d|Bk19kcp6p_Mg>gD=Vd7K@#_R#NQ zLWF1226)-##+Bw}O9Y4?mbm{PLBxROUtnmK{4+HG3Mi&PcD@3itLTZ1JN@PA`cv{R z3t7Lbn`4tos)-xNw}+v3AQIHQ-XsuJgNJ=BZ#^5Tb*smxs6$sF>H$sL81fF2-J0JM z_jVEnKvCFc=WzfF%)!9ud6?PNoNECX&PTjOxyOFUMyh;TP%BUtns?1NcZTMtbXA6F zK!K{R8&KUfteANV)J^*YSU!u1etud=35nxZK6e*T?!@S>rk(**T3a7!n3B%lsS~gI1QIXY{owKXXU@^ z>>c0~Ch@95$u?6#} zCFd8NAe4gV%gjw5j{L`2KHngr`vTAxzw&P_eU-^{>&m@ZQ;3<|fq13a?deC67l`QV zEduTTad{J1I}?Z9rKyO$kz47gJL#;vnyXm17y15k^d8rJyI;Ox6cu^jUrxL-IZ{L{Z@mF4vUOC zKV|OI7Onm9VTw0X(&BSi%=|kIcm|f}7g`b3qw}*qDaXqq>sKM^z_hFWa*H?0WiBYAshbo{A*j z!g*$zrf4Y!qS3bH9)q_}CKXRg%-4p|Uv%;5&Y~$Pb&Qy==Mz}isfYNG(^CXP`qLT_ zZx{jL_01EW$%e}ooy5JE*YFNb=z`@`f6mX92L_$70-7pH=UTTeAs--x)Aw5YTHDP4hJE2*4!|W$*00<8AE{N*dgsvSCnn!7OKWG_3i3+hen=q|9S*rx)5GyHjCnLXHj-V97ce4+B$7yYok;EH*Wu%Od|49rCg2GS6tABrHCyZm>^M zE#i#{0juSqMElD)oET?j7g`^fd0xG7 zed8@CZ;<0BlQadGwk`Cn;_a$iL9e;Pr3{Huel77t^#XIWwmVJgqz`@oN1t@9 z1duRN+KMib$G?&U!J$)Q^d;l-0L+B8rTE>7yl&ojq7Ix|&A|tqnrh3D0pi$oL^Iq@ zDm~=cK*cH?fy=k3Hy5k>2iOGA`1wWtpLGIT8c5#?Nf_{xPNKTo5(`K;nBU|Z$1>Sn z13kjpBcCtp(;C``TTn(;?!E7NL=-T^+Cgagdqx3=|Q5jCYPvn9U1;vo>AaAmMh>`-i87`%X6bx+3!|JsA-e_ zyX)x&{6KB{Ljee9_xNe7(v43q#TBd%O$#bel=amO;*Z^I0wx#V%weA!CATPFFnywL z4y+T=V5kEdu-a_9S4U#Mno~m{L3gti-1x0Eaf4H+k8d@1nY;|`)9UP*rR+5i z&<#ou-ni{X{uT12c%@N}_E;5s*Lt1i)OXq$F3s1I!tf_OX5!U{vQK8v$KTcn>o&Mo zF})xxX$agY_Tyz%_b@#MpY5&vi~aDHfZUWM5%$>TH%i6D%Ct=_zpqE8=<&0ZKkdp^ zT{K&256w`AeU+Wi)^t3}6CN~({hV@WDlZqe2cF1y=# zK8eNBNm2o>dEA%j&B0lxEjvT|o6_Y6!u9A-3`1C{dfrJNaw{upjFP^c+ zqWc|m8*9N;%>xuBi(ji7>pz!31y6o=zL+AMZ%foFg*X~_>we9(C~&Dwk^R(P9fIMg zz^hw*2e`>6N#Vh>S!m_H##LIcBg24YJoc#j+_RZe=_I$bt7uXX!kXwSPXiy zD>s3iXjy1IT7_`v|Im1y-uW;s0AUFZHM2mfq$J8{EtnABd^KOF4=gz2iaH+^LNC3Z zL_Arq3WY_Q6%cx=eS!Hu%KTVg6?}}ijq2JmGf3$LO2LNY3h-g=>a|f+PcokN#k}($ z(OLZ!f&u9SrT0%^k_8u7pEK(o(R1uN_O>dUTnSDpu!{BU$fAM* zniG5+4J|-+>)D3WJlabJdFM`Im#{(pMPoX!@6dMQnN0kl= z0vw>Hz@~n>dRRUCWX1WVnRm3|6uCC4oqyvlMY|pI{`o16DSiD~ppdM$M{Tvb2MN_F z7-;{GFQ8j#eqS-YbuyvZd-$1w8&}HwjHLxWJNk!i|x937hJNvB! zonUx?VT8so$~KG1)tOed=CTI5TBX$7w)?$+-}&-&19Qq-x$hfAjC;kp(&a0h>~E6A z-=D$>>ZJ-`#|CERadZ7NW@G4?4BP2#BcNcWvlG$Qs@&<7Z{?~B=0}w`z0!3}%(I0A zEItZ3pBD!um08;KoqC{h|GnRFtIF@GLDL(O#s@IB7FjLVvH4%F8XJA9US#ky2_kAL5iX6gfEk zdtD&+O8h{e;*zu9#(!Y>(O*iK@@7Dx${ffqoDUUFsS@KFw-1zi#tL~PrhC&4B`fQZ zYA|E^A6K0r)gaK65z&;(UTyHs`FHT zwtea$Q|-<_`Z8pjm#PNY6DbKM=A8wuj(KCNhj*@x^Qyo^*+xgDZEZ!-K;3rV40k^- z@X2x@=|~KJKbRacSdpE7|JiFvJA?d<;}(kMW$tKbE8#`r{yivr8mfRf)QsrA;)ohJ z7X#$tz=9lGTI+=*r`rp~K-d(A*}VX%P_Yr4#miKKfF&huozz83`saSZ^1KXVT#R0E4<%TkR0aW9 zQtj%5{NAlmTS3o&{Y|b#&1xz10q_0@5tGVk^eCQl1x&QB{sFVyC}5$~SxkkihV;_K zI<9BzCw?t-x7$g_x`q0^^t;AA2npt~SVScSS^|N4sY5*$w8lWEz7 zyWy(zf%|vP(hHK>iQV>9C&PLH{;dQ{mTV4*;dHmn8p)FUj|vAFIIBp z)3kB5KE5vIuT3*g5&3Kh%R*&5b;s+&CcSf`3fEIf{V7LsE{#4XH{@6ZAY!dLf_eE{X=_5S&wQL>!j6g}du{CuXL}oly%esKh2;`D38!d{R)o zPzJ4kOm+RX-K%d+-<{ShjS=Tb&K|BF<{2LDm*K5o81SN9*{M6`hcczpW3)d$>p8vK zy9n6{o_x`DfgbIbB*^uq3o+YPmuH8_FY+Z);r}0d?-|wv)~yYTD2^haGRn|(P#HyJ z6agVZP*g@8zzWh8q$eOP0RjnFKtw=ALBUWgfYMt61c()+_m+@ELfZK?t6;vss ze=N|@lxQiCD^xMv;^;VwrwOqa@%_I6-mpHKA|1c7F1>2EtM+(wrB40Sq$@JEK`(Nw6DGPJIsNn`8nQryf)ZYMjQy`V(3>e58)1>(`KQMeVKTO!?SAgm z2lr6^%e?mLe!K>}$AU(_l~UaUs&e}knj;loY8w&+;pF-0K}6fy z8a+WgpGB0(1^hS$^85Q9yZX5|)N6p?ysSu1+3&Qv5Rk1?&C{8h6PK|j#;zf+bQv~i za;LnVLsrC9&J01(N}5!IdB5MLnWbbVv7Q|~Zc3+pi6WQUWAGfVL~&BNja!70jgV%= zL+a4vowDu?yj$Hv3SJmL11uT93a)UtI#{vcgED~UYBKx5|Etu|oh_-b@R9+zh5f)p*rykM?*SO#L0=e2S0{ zU!C7&UEvxjAsDpw`VH{vFtGR_2=t*I|{;098dY+C*sF|>A1wLq^m-7JMk z$*Yc*vx?f%m@~Yu=7y9Oa_p;xtz(vj%fic{ixMs9gO(<<17|IT_^IFD<`E|y!ZU^^ zJ~}p;-4OgpQqB_5^J}s6P8tWL@BWV2^VS3e_QF;4+n_I*`?TSt6l#9C|7eeRv%%vu zF$-N!Jl&ZSu_Cu>Fvz;x&vN!0*%nFlbSb_A z+lr8HR1O@QxaHk14*-rheh4kv6-FyTCD{7aZXVP|L_p61RucL`?0qD+BDueEAh|vy zFGTO^-6?})mR6E7qGuZd&=-+KO5ATkFT4*Dz8k9|=BQxy9Y?d_l7Mn+W0zn+MBAmw zhJ{H4UAp%%uQ1Pf^xbsK(7_oQ{*YiowTl~#aZ!?j#-AJI)06?t8bNe+HK1CXo!j&# z{(Jw_%K*L0=1Y0nCFh@l8qj)AQBRO9^$x3>;f^!~O~3QvV~Ll}OsBzUrX?cfj$G{~ zqPmhyd6lrg6lcwYOtgd4dTc<%{zeQzO_*?dma->Lzne}sNrGo-Ci%|!p!gxd^d>CZ zhs7Do>-Ck^F^omXrLK8ST>&~R$D`OW(Mwxo4jKu~- zH%+i3jP5zHwDjB_;$Qq>>S93~#a0>xfZvq+&ee3CF zH8J3`JcIfQx~BTqsO-fMru0}9S%j%D-?Q)0$Y;VLa))$mZ|lscv4XGsO-eZ6K?ACB z-u>r!n@HS4&?d%H99(b)D({BBm0jqnNtEk=ppTL`gy^o^m-Lz^T~pXo4$tzhVjfR| zV#1(%ieVl3VfwwJt+&LSIG=7QWBjsFH>=CkjFm6Yl0$YE_V!}S2q87%fX=W7dNhDq zrZ_e~nj3i#j5rW=^Hc_0o?m2vz?$YE{X|*e2aI3&>=D9zUHv;`;3y5P^Hzy5b2OaC z9P9L|VBhb|KBMw(AJQ1aU0b!dcg_{f6s0-K>v&!CRiwXo&G!4z1cu;wn6#Jt%Kg$o=efmdd2S?ll&Ru{3SX$*|ma^^1}V$ zNh+*mO=r`=GtGNl9P&0oV*oOnh~#781m#+`6RRfOo(>d&+Cn zBRi;McNebF%{-6UPxU8GlOWmv-ImsUbz(IGdm>LRNTAe7Ftbn6=4p6UR#$aq*JJjU z6gr)P5Ca3#^yh3?r>n8*^RokTx&mBPdpULPv@6EhJhyyorN`Ctwk!pt0G|NwE$^J; z@O{`VA^5b4)ur;+tNu0+^R2gi{95so+d%p6v`W+ivv6a3xG+o( zHIx+gEz*EL04)z{funJ{9Fti}x8s6PY@^KPtT(b*+V=YAR3DDkx2rC~ZT{awnlEDI=bITrAuSfufR5N?!`uKp%0=9Jb@}f6)JnKR`pm#bw+XsHC&Rr+rfVJ z_?*wzv1n@E(LN2NHeH+1jHw}k=vqjd}Wwr~P`p5hE&3nptKKUzUo&mo04(I(z(MNwfd zm`P#mn`=^vy{dRr+In?>!;0}IQk1Whmix+(H_$5)vzH@C;>}RUn~n<)LKa_vb?=UkLGsqwQ|mWnAGO5=5X#ai7op8?iTxSz951*ncEF7 zMS~32h%ThzuCRPb2_Ir|pq^wb_2#(oVsiMdXxPpSlq3i=;xOWLGZ+Lh1dUkHw;PRw zg*C&iGK+1wRluMJNVGiG=fWw>LfTX3A7VNe4h|;RXLB*qf>o}fE^Ly^Q|CM$BNjS_ z^F*pvW=l~Sj#^JF&+{V4KL!o<(&v+?leg<3yYah?ufICLro$m>g%F6(tYg<$FM=_nQ}aZ&N15JqccGu_1tEIA zdP1zXHekPxW6$W^i>@meIn)JfWv+d7J{QL0R>@Di6J?_4Po^|tdT%6wkwDNZ$`-6) z9kz&1aB~Kr=^VY(61Yoo#(`yDlKv+ z6nW4)BLo}(_J70Nihk3#@FTkFX#S4x{F4)c3kvv}Jy|B|4*}FxaK}?+JdmF3WUM&+ zyOs37K2TiM1{K?;D^P){>5q;VNyr_bp=`UHX6jukXaa*G$!S<^5jyTEcSlP~cgYo*sI3vtv z5sWVlYVx2oq1U?}&&={kilYoRjvK$yRObYY6T8N447_`W;2%pM0aoiH+~mMl2~$~q zG3($2H6)E|FArgM-wG+vHc+091mr@y{apJ$f9M)6%sN6Iwy6bG_4%3DVtPspYy;o7 zdOd+({ZSU?SXu3>S6q~oOPdNKL6tn%pFqg`vf~D(>3jkxSe$D-9?Nx~?PkxOYd+4x zf!Bh~BW&wmPiICtbbbPO_8xJKs{8$cPmzZvdQ`fedq2BHNx|&vNDkq@xD^7XVDM7Z zsD-s~B#t4esL{~U5lk(k_sn$r$9%-hbzVh%9;W}yo|Auhz);7nuO&HP>_iFtG|?s=(#qQ+Y3k#iLP!J@5cCD=c>hm`?}X{-t*&x6%ImN zHnOWW0 zC69{+^@wjdSuNoDx)DFFSUga;t**$g4d=VGjY$~2)K z_z=jahWxC$D{3+O8+vbEw{lK*+m~N(R*L=1l=z!tY z)6XHVAVvMA&Y9x4tj2@&hz&BF5)Ln)SUHFIvi>#DmuIZlk-@?C&K11T_mK!1Pk;Y` z^@Qe)c_QUsWnFXyMwc@n+nEEEc-mDo{9NO$fo9_Ls}SwkDWTeW4*BHxAIb=MpVsPF z-Ba1*e;jHTz&??M{Bmz2!LiYqx8zy*JY^-%Pw`}C{)sphOd<(-2E6IA8_x#^G^+)L_aOG7^>vui~a2@ zDw_?sJ%Cml$95?xbog-FIbbE;vQ&^^1e?EODI4Qd6LUq=5DBAIn|dN_>Jld3s(Fz? z)jGUd$Nh9O3ESJY`$6o2Nij3D_FM)kFN9J)lQsd2wyaA$1F#aS_~q_6rO78>1Y=1? zHLNnC#rr$t#p=Bj_7`z;A-tW*@!E3ww~Xf^R-aWCR~iU`m}i7Q%-p%fFc1wq2z(|{ zA3E{4PBU6CqhnpE=M&uE+)XGagYbXHp|8*MnfQSuZIgpLHP_e&f4v}oaEMmjrXhxL z-*M_eL&L63F_rU)qwuCa3{+vK!js7BKpR6q4)Me?G_Usk=ABAmihW)# zRpSuxnJszFUGRYFGm_HIs7~?%PTb=i?{Ik9^)*)x{zzGYm2t;i?SIR5ja{?90Z^X< z?7$-f$8=$$9>U>CT}Jsfzxw9k)_!Nd_NSlxtA_)_7NCtY_H?Qlcip|a?&@dTrYqVi zXa)GYa187B+a>z%CdNqjvPH^!*VgpR(Vu*^HD%%FNg#`swj+K1P~X5~6tu?jI9Zn? z6#POJFQPD6zO&oRGh32re&t~P5;a*y1)S%5HJ$?F44n&rWKd*V%@mQ`xWh(_jFg&i z0EhC6!3!{Blr_QfGjlZ)HQo*`HNB{~8^69)T74vS?1Hw_!wasb);y57jC-(_N z@#b>G*10`AV0bF{#xfP9jBp^bDG?f)`$}YfTC=GD08xIEUrQPbBCB7AC18>Faf-6& z5oj~1y?MQ)+5Dv;P%+E@b-^ygyY+=d&-g}_&d&37HSTuULr$-Fd?~txm3HfmD{|&$ z(3vY-Ua!kes|#&Y5wQ!sd&|E}W`4cib+qH;{Q&9bB0+PvH*1H?PoHidu1P_A)+bo- z&zas!GM7tr?EI7>2uh3gj?RlzB2qC>0^-x=Gf^gw^%|RWS!QS2D|Dy^Rg<4DsqH0A zT8{v{QHi73!4F-YRjJ;eCu+*7Ia5yy&GZ=tn$4bb4M!XOyzaluXgB5MU{P$#Gp!f3 zHkP~|)Uj(HZ$aAO^;Y{ob+&+oHoZvHpU+eoYtS^s5AJw~@h}+KszMFsHR@;&4O%}# zKht+WRNKuj8M9rlmrWS^&T{2+O!kkQS@RFIb@{_ZHvdr^O8z6M&>xU#Xf*4mpIU{g z{^J+gv@e!U5yiDH0E@ItIqQzpygvr=B~`>+rD*-MdA+j~RECC{ zuzEdTWgcSe0|f8P$UPHrUn<@DO7CHjUAxkpUA>&}w5eMrSZ&Q>JJ4Pun|Wa>YdpLv zm8bG1v|&B3(Y~{X)11;xQk?J<-qoQJ4(5WEo`sgaLUy>!@Vr9DG#xMZ%kv9uE7T`8 zF3<7X2w6oT9{d%0^75&9<)6<&W?zdwm2B~-=8wM<95*?|ZXCa-0)Kxi};}qyF^QbV$dyHbS+Jd zK|j}g$lA?nzw}@e)`f+cJ=5{@F)WnLydT`&D2O2`vl{1TM&SkAxC`>y&)M?ilcLj8 z*HdsfW>fvW*d#$n($qB7{Y zD3({&*y3sKkZJPXLzpLSa8T#ekEvBcdi?KFL1h( z#??)zcp&I+}66Jb+HG?U~@8DDgQw}eP?DA$ig5`;#bZzg+ z1M(102Ui!6yE~v51yTNtw$`dy8j@Y#v-Zpy?@xSgPph$#LL#E3GPd`@%XXtY4C?I} zTyq{mlO@@kU=#Q(5OZ1QaRd_2@W}l|P>)kN9$iqA9GqL%qm02M!to|4EerBqRpgKq z;xE(Xua47SrCXGR9ccKio1U5uCAuA)F3!CsHdO3WxF6)7i|CHkLJ)7!7pc^u0+IPx zI@VD&#m}Kbq-t_x6hXUgjn2|^cfReVRLa^rO3qk-K3H(QVw4G0rxvj+uo9tKlogdV zOaiG33~I%xr6o_E5a_LrQEN2#z=u-wZezIhr{m5y(G= znx0U7mi{5gmscVRCx&p18-oPTV#fxp9dv4$h4oEBkyUZC!v3eyq5DIS-;HlllCFUM*L-I(q8*x-_frW?0eL^?Dv}(->A?_15R^^} zbF1eLqJAxjCSRwlv0BzdbjTi`=}?e!R^pxwl6+Vhcd$@)lgt*IXWw<)<7zz=*-!pzUL^l#qW zS%k6kjpS1E(?GfUtrFTHztIm_#fDX+4^1^0bS9QU4r|yKwB^p#i7kReZPKf(@VYb;cURlBDk%*{wO8SSXQP!T7Dt;DI znUR~R+X0#IGZYdjLtnFddm|q`{Phg-N?vhj(p9!4u}IT2D>!55wnWQe5ABD|UM8Ke z%a;|A1&phNaj%D%{!dI43lF;GkS!OEr@#1|a8I#eGWv4{cI(1_u&~5u2?~9t#te8< zc4874=LT;)m1w>$*Q$h6ah!S?dMERMhWt)&Vg`f0wno8Ibe<(kbz+r{=w!0^yWOxY z2lDRCu?flrA5O)GC-fp&`eW}0VtydnR|Z9QdeeaU-YaRMrmkK>w>dY9e}`VD(Vp&q ziZIefyum!kFqozUu&}?PZhb(C;>3M5>KVz^FYbQA!w5>-DqQlm@szJK z*J)j{SX7Khko)P8e=5fLyV+vPieW5N44Wmz@EqiiHPvgZk11En;Uqn^dpB73P;Edd zAca~90||n5NcElF0)pnen`ufaHj%v_neME1dYSKQ(bal(pt;HAN z?xAeSp@Ik&K3PBL=tdhvrxu&XfgUxevPhSM>uDfjj6 zO)oqx5u?OAb&NXBy)L;>B2n>lQe)*4bhWOwN7IvWpUw79P)(Ky(k^0j;sO`?#H*%s z=fty^gL@89xK9*;&%!x3CXN?h)VS{!%J$J%ADG@|8*Lmb>nLOA_wr$U{0FO&5?Jrs zits|Q=m50sh-P!nx=p044nU+i;ST-l?=Ny|FWKS1eS5vh3 za-&8$q$S92bc=4SUBIvtYUtjOz3DBh)NtCYfS=ivg3${8O{-jY;ehAg)~Z~0w>)po zh3RW%qpCyXH#NOulri z{##NBTrnBvJ#ZYUGgQW&^kDTA%ND(D=gE-S3`O@RY`MhBnub2S9gka?nZEav4QT3_va1I3#P4dt4p1fb5>m$)L`ZS&EMJo1$gFek& zEm+U59j|pg-yW5RAhPwD%&{?E&0|5PMP72{eA@<(zRUvXuIYsl53im|sY5?%sZW|* z8JGrO4Orjo1iKOcZY&y4jkMVV&y#|VZ6J(&CK~5>O+I)zsFj;O{~PY|%!4?yV(0?@ zNoFTNa~$Y+G^&NJ2?{{whJ2zDvXOaqxHmjDt7F$W*jVXW_FHj{3+{CWFZz?&cCHIneo!o>gDjc<$`f(F?i z_-;?&bNucm=Gfz7D82v&o0aInu0k>MtE@Q%daJ(@&#)9bXnb^J^zHU9XqGL$7eV%v z_g~=j2~sQB^GRpg_s>-?WsglO|4tbGXB73X;(B@_J4-^Mg=%{<1v974p$xviG-UZ? zl7A9bzhy^Sk|da7YpB3%qO5O#JbC)`XJo>dc^a#`GJLSGut!Jh_Mz$HpwVuGOc;J~ zDuEn+i}h6{;bl%<`;2bpaI+T<3kq#Tj63;Iph`l0I?WK`SKotZ8*Gw5_NApzyhj@c zwT>P)2rq+dqy;vIfSz^V$68#p$Nq{h_lXwezU~(!urA5yM6Cbd@R`wZ>UuPDHEQCk z1sp(>&rAWQhT)P^1XoOwjtg|315`nKc$MIAN8xZ#TqJl@Ofpc(t3#em_iFZefwoeA zicW7p_j#o`vF_=IC`P%wXYoGAnq#(C zCim`CoJx8&wg63*FR9=RE)ea8_Etpa9ne1~y|9SW8e9MAU*u^2yK?;7Nnb9Q#{`8d z2oD?A&wkAmgI_M>_V6?0t*=MB#*!a*%xt zVl;OlNks}DwRge#VSNKur`eQ8={?cuTL@lUHGevSM)op0v~3VkIY~?tC|#g+7hfN<^IonKn=BWbzzA!%8%tKRVFqb#H5>ih(Nl`q=d)j_ZAKI;K*=C zVEa9&lwmc4syWX`w*E8zn^j$=E0-$WSh4@-$@{;p7+Oov4&x-7-5|zZ&!IH@k<{-1 zSFRA|7b59CKP6AUyMKR_*wCH)qBG0sj*uxmu?ia6G$`hpCp(^wvGXD@%1_m;8Pz&Y z^JR&$tF2k*A2WKYDtX-a!(C}1gxv`*-K*ugZ9?Y0TJ&bRSEzZU1K~KbnK2B?4#>xW z0W)ZcyjS@S=Lcd#uJPJA*5n*~-xXUuWK8nC_k?@U*!_8}eIC~3c``1lU1ZBF41z@x9iS>JvHhN za}Q zo?^gFMin`CZNiMq> z5|z?-H=+qr>%O{%=KkKEc}7J(pwkK0t%N$CZ292y* zg7Nq2kodhm$os4>4Ck}4_n-opz-J4!`7sRjEs*O)Gz|ACFB~xWdx0ERqQ$YstdMRW z)Xw|*X~%?U!?CT$g!(?oqXQC>U0al*mfI~%AuAo$2nd(~hB?o$$6DXT=uQ3#84u;D zX&noyhxL`Vrh`H26wJg62{iL&3ksSvRF<0hTFa2-V623G#3-XP&GGr3FK!_dC@*sh z=D%9lgKg(?4Z*|_*op?Q=PIJ5&`BJ!&|=g;PC&rP=03f}ZgGu|AFTJtoo(cvR;gRng6%{qsK*M^XSS1<$LoEh_&9W>7DP`R@Y7p0! z3y{@6M;4Cwn=CBUzY;Z_YWkEB_8*NN|B?3x(JDFlC1Ab+Nt22tZuQ;x0~md5K3pYO z0Pg3K$fl*{|BA4_&B8JuvP>^@@9y0`$TN&fa4S46KF5kw2bKko6c1~IfKg4|gyC6Q zu&NSr1nJip2`3ff?mO=Qb9uo@`~Az+FXq3laJCoR%R=+{8S`V5NCHTMy1L5n2*D$G z;jX5TM6L^#;CgpNg|={Z!i`k?(%-KO{E~wE_np&dM>%o`m*!+gJC!QVM}H!ML9&Wq zGjal_HYI6?gqvXZcWS5iPstA}oGCJkg)~;OJtnBjRg=Kaat!qEJsLXzNbHZT@`oz``maB*d51wdvtFiX^!KhC% zYg8jGXLp4C=(2I)^QZ0m#EIMQe%^Dv!`nqapuMl& ze{|D+({J8e-e^dgZYml-wQ^U}&wu&l&zFjI^t+F48g_wUMc>oyDKyx1Fe5~6`hk0W zF|Sy$vU4v$KOcX>5_L7v;K-lu9I%+`NZEPo|F$#vUrtK?i*c`nZ&#mqVCCb@pwzaN zh5;0Q*j_#7(PdjFBD8hW!OCDQ%>l!KjCHPo2E@O~X_*RH@dt<4+``}G5Gz}vgvmUiau-mOEZd#OIgYr+(FPE5%P!K? zHgiP&D3dajNpE+7=n_6gg$KzSfBlk zL$LYp?$7@JFSg~MzgSvthJus%CH9xQ_+mxXXhTWy8*-^SWzBDVNy{(ko$^YA;WsEPz>l zwlHTCd9t@LQ<*gIMx)XN>~Va+Hdt~O4s+8Zy^ZWqaOAO`CV=_BQUrMD&4{zrJAY41 z{G50ZELvPtv;D#uo}DS*_fqx$xYPpabW-;_beCi(xYX_ASri;T2jyS1e5tI!r9kH9 zCcW9z5XL7SC-U*^r#KD9bt!19ZfxZ8P1_1@ny&JFZyJRLMRC%;2&o?!vk>KAw<(#u zt&-QkIk&c?U+{%|{xr#N@22q@;`i9@W%(~1w06@Zb77%|mLi87j!;&9i%lI^w@-Re zmSJN;R|S!pGYI{I+B6vbcd1SLrpfROIE+xG5AT2ag5AZncU^N>E=*y=!I8WCu2)Wx z(Q=x#;k@ZnR_udISARtoben6tGLW&Qr()%yy-Fb?bEWmaE*(;2)qV}((3a%n_x0nW zoFpTzHK@1&63ji^X$;hT%@MhRp2{2BPC<+wc^1{Cv z`VnU(kf9GJ2MW?JS z7vv#|`94tN2|L9;+MEfx{0;0UHBtm?=+mkRzXRwfFoGWOq9U-H*U1R486ltA}86f?!0}8}*Y@vj4!nS^kKUYZupdJ9} z)q%K|wP9M8nCkOY_dm(?|3~)_3!mw(c>a=r^3)ln6lEbU0l}xfo;}gtXWNiLy8og+ z%U`3AF=d^zM&9vjAbCXyIW_Ez0@}#8|EEsPf~F-TdDY`yQKjpYBFw9hv= z3AZmN>7~2VqDLNTd5*Xag&TinnI-;dtj%2|gp2TS0e&>qlq+eeo;@-M1p}u;+>c#0TQCstXIaYkX zXa9Bk=f_9#CQecI><|0@z>oJ>=mUmcxnf{Z?KU|bPgkN+egbz&gpp&!#hKfjzXB$k zihF%!da^Bj$BG0Y9^x{4BNx`+v}1u6s>n?;GRmU`vK+b0h>Z{9Bel}dyq^i|+v3^a zm7J`vgS8M@c&FTc66%0Q*ZaMEa#>opo$s`GUWIfJgGbwEtaJs!D778p@uZ+|K)EQ{ zJg|D{c|?NyG~NCq1`Td>V03$Ol)b~VfK#7j%v2{1Eo_qiV7-zUpchH+Pw4rDx@q=9 z`-wwR#P`Q1;$Ledn|=EGe{nYp= z*pFUo7d{VfPmcIce|0?)z#DYBKWZA;6#!b;9l1YwN0P-P?pPU_XxSOVi*M^-A;|n9 zQwSBb^Ui+QsD{;FmarK92IY+=t&Xc+~c)B`?IJa6!ebWE`=k|`5}AyZ;|z^a&c zQvpJnSI`mt8N~6@Yd@rbpl@gv$m#R{n{xWUT)`v-JgHl9kF_1+0~-mNE{)NT5~&HG zvr>7X*%QIEB$kxlyqPA--m}v*(K$*+qhxRHzVdE!O7^j-`z;kFN!q=iWbE+$Dm6E} z0U0DpZJeo1@gn3HnRJ5LU8%e{v7ujAFGUz_dq6xSmM9E>o7Y24Hv9*)5dYhM0Sh3? zuTjCcEh9}eyyuQ=ky^uvW-<&O$|t8Z7v^I1Zb(jEH>)a^g3iAMV?G~iK*{oos)FxD z*ES&|SWAx74Hq?umi~w51AtLmy@9&8aOt@TFul?D1uNeC&E+`%!#@biR6l%yi%wf+ zD0?wTI9$AXqV?g!hadEhl#Gt?Ba#aPr(}+qnAIc!luoV%zJ;sdX z-|Buw`ZJO8!`J7#(rm4>?1>)-0S~<00ODp9bDX`Txp$$9SwP}H_^pd$yUIc6KmYMM ze3YusJCR18kk05)F*_uqrLO1&(1obz*MCiY&xmj_dFiCz_7lXoZG zh`K!zp7^lxW+lNX;o(Et4!tv?)432%QJmSq{l(FM!>u<&O5d?QKJSN0<$&H40OHtW z4WKo)oIHq8dxhYfTq@|5IjAZkOH15)f37fK-NZMuDg*@~GmWul+5;C$kaz7@qDB4C zidx3YI~KoXOUrT4|NNsNW5Y)-7$Q2L6g0j9a+O%g!>7?vN^(*lx+77fW@J3aT#@q zJSdn3Ba$3dA#9z9a2y@}ytueSNOdSdp``L^bZERQ8bp4wAl^k7Lxdd?#yQQV2P6L7 zuW&jG*nVoTo~>6d7Rlb#h00>~OCK7G*vNjX#sU%6z%jsqA z+38*-*a@2T340Y8X7nfS$BxawDhZ-fMrP|H1C1Ge+J;C5sg=*J(KI5=@M2YjB>HUR zzUjVPxSD)^vy!$yX^%YQ@_m3H{Mp^WYcYA7TwG{(h%O8ezu%g@j^zrwa5ZsEiwEdG z*do8K?%$Qwm0dFGRiUy_rDq2#nlVQ-$*SJ8s04gyg#L8GTb9TC2U7^l5n$ciuzJN= z#cr&aI@)?}EmbfybuzjI;H*^5u%2{5|9X#$#2)SVc+!9w(N%h<>C0kMuOoW$sRaMg zD;R(BjFK;1BcH%Rz14>8k*K5#mNM0GkTS7%T+^RY-nu*t_;14x{=}UB+x^sk)kFPn zAoe<848l8kwHX9)Z^oGqDsl)ah?Jb5i}+k@Ht4zZKNj+wqm%;b;`drBC2#3n!5bJq z)8&!H6b`+$EM%-9IzVHUWbAOCqksZ*XIXUTmd*yNxpi$Xmd%R{>EXOHYV2-zX~JoF zbY18>#99n$Cr=C0g6E63{@n_ff5FaTSu>zBag+z6%b}Z>^uFB%=)L};-s2_YenM&u zRGZ<9Q-Tbb`?d6oE+0$_l$09H#b}Bz9J|Gi ze%Bm-S;N6v9KWh=(1}eN%}9McR#9YDK(+Rlvgp7wn?S{H-g7oY&u+VWD0+5coA%|l z4nNp##;9vcYL)FQy(s5G{a~6uEvWmQwio|t%P5$09PP>j6kwRQgBlkVd{f#eD;V(S zhp#)318W%BG(<>_2VK$}?@7soH$T#ASXK`u|)) zvuMvM%g~bg0ilYeH0qg7zXT5wR@cL`q{c`4S%qp7O>DiZM4EUfH8T1Fb!lDb$h1GQ5B!D0>^ie^DjHT z@V5Xe^yTf|r z?et4Plu#8Q+-v?uV0G8C)TL}8g7JU!kM7T0!s(8StUDfQdr&KAyaB2zF4;2>v zeUrayjrcE}&nC{iuqIMu3Z(*MC>+3r@z<_h%iL{M;$A}Gj<VnQsfb z-d14crWl=cpl~#=V(XWDP`pCT7P!FKPv#zW^%5+kAlzwb5NDRB1?tfFp~6Lc(|Uy> z^CdboydY%C$TcWxa0jB5)>I%iGa5mK0@`%2rvMsZ#}yF+TQIESAYWN(%)ejs1rOb36JYS~ka$(52*uTpiQ7 zVoc-NA&Wjw?E{9W8egiVs&xug|44+nmANx5m=h;ty#@<=`V%9QtU0+@I9(ABR!hb* zo0^UK6jOP|AnKtmFz^fpvpo2SYwL`>c8|W)Ava&T`t-ASAOKH_Ua!62>Ty?!&^h2E z&@h1IlBi^rTtGs;gz^WqoKR9MN!n)l=SG^d(8VauYO$nz`}hjD&>V$(Pln!z@d0TY#L= z_Wb#7(}T<($YnI#g|WH#+7tl`g5p*RtSo!e$KM0PNIe3c-rX4_(wVIUN)5#XCZ??` zkG3Hwr3r+SH#7KbS8`y)Y|R9N^A4;+3b%4|vvgJd_VpJw3G4o}?^^f&OG-H$oVQp? zXl}o5j{}q7v6d!Sn|D)yV8>GtQXHjAOF8Jlwm}V-AmQmAw{l1Bd<~#iQ z@IE!S1S}pe9jn_g(v>6ci~bNPEI%dKVe;z4$S|)^c5DWK8(AIj8szUP09<5%s8?;l zQg_CNh!%np>+1Tj$-?Dg@;dQ@9sHuA#aO*l1!Vt&i`oBo>uLU1)AmdROeMW{52dz(K*{``^GlWGHxVCpU;zBb zt zsIUU@eGwA>J;<9LoPXH^rtW!YrwHW=%z6Ki=~}@USc+9-lJs<^_2IByklW>pa%d3u zYJzgGgED5`zvBQH*gqJs1ky1)E_B^J|D<6OmdJUp7t_QO7R{v-ag5fC(fU#sTY|MWwy$b8z3`ap4DlXI-J%}U2!X?ZYWP)a3E_2%1c;#V&>1uKQ}Oa6!D z$F8gPxMnbtFPh^LyH}VJ?N)Q^&=?qd>0 zg&dvoeXxEh1KyCS3qk~~e=<9;x6?87cww{{ssh-E&jn%j)v(x2zyRG&t z7tu$zff9qMoa}hn#b>y-@*DMOuQr1uhcAAD`w7Ey{Rjy z^zx9#u3}Hi&&f$QWTu%L^brf^<@G%abL@(=59z1a1q{S8@XX7VsD1p88B#MckV%=A&X~OVZ=5(Mx?8SlDriQR@szc(!#0qN`5pXoM28DGE$sZ^$eAD+rbaPYx_ zdE@lv738HGR1F*X36qH~JBU6LtGnM!)bF`i-ZJOJB1^fc?<-MPmRSy?Y6{ntdFFac zct%+|eIm}eXW{0lV#RGs$6c{a~3RqmXFz1+kx2gM8U`6AG`k|RRi(o9t&x5gQVGG`qbNjfbsYC zxROvof%3Um3Qfx{Qzt+qqXZ#!RT6G$9|R3wZeYU|xfCt*w2O3g9Z17pAG&+ zUWTbQhKiWXn6d*vURvhKVnY{q|Gtc}wo(^@XM*B@^1}OC#KwxU02brt;sTcOof2>9 z3=jF8%fc!&Ovx$l$%Viat(q%VM=^>ti1@E+7WJcz;hTTue+(~rZLp*}r!7M#jGd&@ zmmTlSx>bsp?NdDC8D`+;5?`K5!NybHv}|oy>VTBLz3=6Pr%H|$Km{lK9z`tb(u$QO zXN7ORc&D5p-qX@yjbzU|IW6}~r{Z(-z0g0wqZ0OZYoA>95p6qLo<4ucD67YHRXmRb z#oua!`7vwjd{;M8S4!k&@KkQ-k&iCfi9m3XwbljOznS~z##=wms-Z zSiP4qsk-ef{QC1{m1L~+7Z-=8=+9f$uyf$Tk=|*d{a2Xufq~fKgf(hQ$4a$Y^%Lg2 zxSHCr#Z#^bJGk;?4D@q|V55ts*8ZqbWv#aj$Cpgq-PLEob;>skPDBO4YQF&b;Ny`_ z->hJ&`C`P~^h&ISnqmtOU;H!()GSF?r(+=-9=Yt|&f`P7S5ZpN5n8aRw7E~>)>S_K z{$BfYMqL)}nVXt_W0#Bu`jxrSSzEZhS9o6=SJuWrU(NGX94^QP*3QKKIXARD>`IMt z+i{zN)-@U<-aC>qMD#3o#s8sV!i)s5J4?<`*?*|23+Erzf=z+)MpWS{%Q8x>Ud1MR zWPsz))i1)lBzP6oxTF|~ef-}dejfdnOAN053DZ%bYyIsSX{+zcV$RR-jMEvV{CmTi zuh~oT{$c0chFO)KMEvtY|Aj&)sVvTBiI&dMdeZWBh%aV%C$mMS4NzmQ)*Pm@P^Y8} zcuk-{?k@j_anRcNiKmOZ&LLA06Aly<3}loOKmQ8Ol>@sq5%JV`%i^03Ygh+#KO1Vj zq!(M2g{OKCWYlgBjM=p8CGL_gt&;i8d0}HP<7+KUftXqI;3Uwd^TijJehDxPH-(15 zE&E_7vo|M>LBn*noTPDCI=FygAGqkBQd({G;6TYc$sWyOidoexb*Bl|a)5icPD~c_ z{ON}!=ljEzj1>d1V}~@xHZNUUiRIST*=L`D6~zH(_lFfVG?e-60RJ@pE*zNufU}M5 zE3mJAs$Yi2H!Tjwy!|NRmqu{>a>7{I6|DBiUp5MAs>?<}R(h!Df(+R|A_w02N{jtj zUfI$uo_}mjwX&?*M(rgRXGj7!_Z<6R^P;N)?fR8rz=?fiK{sWmlU#gx&q$HI-&9O% z=LWBZG*H2gw(oFUdmrf0EjiicILS>IC$-DyhEm}*a99KbMedu68Y9{-q~<(Y*6b@b zpF;VBivVZ?f8RU+?-{q>Uj;2d0E4t=bNaR=*G5=*2kOJ=E1)l3&6ih(7Z#7RKLqw) z?(DgR&;yk}gvo&$+q50{nGIU|m;TSzyX}kqu~`}P5bSBD`ux*HD~qI{^3FoYrTOp6 zc4`0KMc}3DYftB-hVY909e@!$X(HryUs$-rPne@Y<4gZAjI{Oj>@)2r$6`d5w5o3t zaEtvILBShanc6ScN0lFUxR94V8o2rkz-D^%?gv&$#TDpLs?V2iuOIBd7FI8?&`_#( z#3VuZ@Vl!P5YKUEzj>CecePe>$6A}q5$*{Okzs5W`u(hmN8L?D;qEk07*+?OX?y$e z(cn zvRu~N6N`E~D3Qt;B@+A@q&HQ{`?{)4p5*4-{X=cB%gz;kF1-;aKqo5_$NXMb5v-Bm zFcxZK8^;%7Jh4-|4t(qtBhiiB(EIwRJxi|B&{O!gna212*Ta}W=6=bt z#<$pESiaUJK{>c1f9Qz+%4oSRyrU$!TibI_Nk%eCO^waUKKB#m%7@5Hs!KPMxf8h2 z&Q@1qGrWw64?1MakJ?zVcYmV|z?5PI}V-WwThB=zYXrVB)efAIc<@$qI6`6Zj1 zx)XTLjvM>QOMYTS*l%GUCu*L~eeH&7!*1I=9kc@`W-z;V(~<}u|9A@shem8!L8){J z5BGe$XB%$Wn#~E3GYB@a50}6wpTcRQ+t$l#2j9W%|3fq-D+!FA?jX(>jK=$wbez9` z+cR#jSCSp5+JewJXj9L@rBBfkK4`JKy{ne~_`}h)M`NJXcXko^_g;#*=3byr+FD~8Y*3%Dxo4QcDU57Vh#3=zN z(VhqZ#+?&S*e>I+YgyfO!?be}$%jP|LX`WtqhmNT$xtL_g?yU?nl70 zGWn%QxPMbF$*7mwcHA_4l7O zv(|i>uPlZ8+9j|tdS@ZBRSI*46(x33^5 z=WiwgyQ*xm;=NdH@*|1OZ^ zb7u9Hi|Aj%22HaTC6qy;^*qdq0W7vZI4;FN)Ts|4XSTfor3Rvy+YJ@?n_6epBi(EQA{Z7!1l!zyjj!Ju_%adT>X)N5k3*Fq z$Nncpmjiq0Df zmr-1gKV`qKuoc#6A235=Hj!=6?q9X_2m`qZ0BS0&ZEe`v*$2-v_}$Mr2v;0U>;-CN zpDkRLF5b$6%$$v!{{HP>Ko^KNQTBY&R9JQ;lVjvVWIh4*&#Yot{>pjH(vlxqAx)Z`I1)*E@#VTE0`LdLWZmGyBlT4qol$p{0 zB1tFk#9$!_>H0ma5(}5o-=%E*5N>AbEb1G*5yPd7`WteO0SoF+cj(FZdoez00u}@q zU)^@N{p-K~%dq3mLNxf)+<+Ng|1j+o4URm3u4nZ0%F%_REPeW4QtJEM@ngn1Oh(An zv(Eiz7QoB#=d(`#zs_25x`~d3zHk#l>xkMoyVF)~KCgxQGT}ch0K$y+fkmC<`@Xh0 z<$cKfLvxTzz{p=m@Itwh^m#&)a`fx}jF=9vZh-u&!sLG2YT?^%1?n{QWAJbR`a_@V zr4BLv{ zD%Ic{pP%sE;^4z?ekw_2R9lQST;5~qPjE+|!+FFex;08!onD*Ed2%KP6HRddonm2UB+~|9-Im+y0xuVh z+T5=l4c3%2YfYQa3sZr$7< zN@{HlZ%>3+N5uAH_%(3+vm_|maZ1bn@~T_a**;pq(O|9B$4`elxGioyD;_q@9!K)b z_7w+Bz1zHbM5S4lZTEcwNzEqUm8E;$R8DnbuChoE?Y;am&5o|bQVr9Zq>(CQIpc-? zualN#4VGKo7XHpWB=gLm0vBe@7VC6?1>7d-T%X^dMuFG^paDR>|HtOH3qbdfp8Mk- zBDt*zgUx)Hi}rwlq!Zm67c(Xmn)_#upp5tD2CCJ|7@+{t;il7_)$@S-|09C#WWIdq zloxH4{q{cL3q9<=+pOFHxSbR`PIj{C3#L{#wKZ~*6@1UD(6BO{HuBkc<+0_Ms>l{L zgWKg8PPYbV>Gk!pArDuc6Q|PFj_?kxx0Sa~t=mIOH${${2#b~8ZTBYHc}|v&YHOUi z^_nrMh1atyXI9Gv4Nixkm4#X}E100G*h*d2J~( z!Y1j6Hl23QrhAtmG$OWZ{Cn#;m+RjqnRB5D^grrPt|+XA{h_77#}5oq{H%-Cle7D? z;DymaQiHz88kLfo6W%ngcE~0mp6-WuXo9}ab?U-(`EY8WFh^w5hRt!b2J2&G0y$>4 z&{2BH@pxd3DoL_gaRB4o zP2%WaJ6_jONa#M98lV$SHO$xS&Y^)<4*+G@TB9NINP{7)>1MSjNC%Nsi&Z@`@vMoi zr&+_2vq>F^fs+-p_N?BWRY!VDZ==zvkariHW)=C>0rGDRg}MwhRUjdK^EcimgCFJE zP$I^z_SvgGL?Eay2DNBhY_!ib>PXQS$0Z+-9tLwK{4oKx97nZsn{D%80W(^xJ!2&w+5X1IkyHfJ5$2=cmVhjZT1EL$ zYq#@tiGXwU_0eK8AAO>(o@SeKI^*{aQ2T@XcXU!7>fb*l7GkPxzxq54&Cj&Dg_PO5 zwB3T!G1cx#>VY?FK73DyAZKcTiK!rTFI#65hyEOo>tvo?x+NgbGC-6tb65(a2Qp&UoKDkMv{^n8JcI*+7)-4$M%HUpc3#FO2qR)480=v#}smvkWnhXy9|IiJRRygv|4I=u^}- zeDt%>I0xRJH1_N_8?{mAZ+xV1{Jh6Ab$WQdQj1{S?t;IEV4ZwEd%O_VV&PCYKHsuf zW8ukkc?>yBNk0H)RAtX@kBn`*_&cLdloK?AG)I?zH(8rDU0v^#+FfteG8(+FNg82H zV)Tja>VVj7tv^$&kNE4qM^&`n&SW@0jU01`&(8E=Jk~cnwVVYNcHeL6G8NVvlt&)r z-4hP46_7^VQI-460>N17;k8lxaH?Y&O|n%L8Vr&tV67CH0Jmj`WJUMuw+BdGZexR$ zwtexHrF$BJ*2r&}A>Fzvx!}18r_FB7^LC%lCxqE-w~ul?2c%IuGto z(9XYCnZKoQI4`-joCDJDZ7u7O;KE3sBuOil02`*}HD+fJbVqqDVv@E~LectaX zYB;;7I+8z-+VtOiU?%sX9h!F%z3-W@>V&}7CIqw>s~twU2bL8X??xFE`F^hqrwGhG zb45mUD;qaTTRnZQwtejIMN{VYr!5YfeN;|tdOSJ-nU~5T=DSb*?$0caHG_bQiS&Ty zjNBi1j83dv&Yx6-KzZ^b^+3R0cf)G_Nz|pmq~exm8M8uU!NRaSGI$nFyE*%TJfXq6 zfz}0UltaWr7tZ)*yy=tFAF*$A?hxnSM}Qs}MU-GnRSPuDLdW|NFof~}7)J2f2-~ga z@jPYl>3+b(`Q#CEzBl4{4Ax{m0AY`T?+uWTaR6#HKw8CQV)?M%{#c@U_(*%pC}lg} zqc%5hl2KzMiqYzRo=kH%vuJ~SQp5$BYaD&-2}SclRX+xZB&=^>mRbP&^R&6#8NhsIWH#$&lBGCu0Mx^%9tlP={a?N|lv(U5G?)!SYdhewD z+0Cb`J%b3&)g|D%JU3pbrPmbP-p{z%=F&|9URZ`+s6)YRwwkg-2f;&XEUd5daRc+M zyopoljgsBr^JbyVL@)O9!tW z67$BNsQEuJI|SrslX{wB3Y@!^wL;c8e1+~nZR@(8IyKG_>2{-}%kn;)nGJA)MWY|U z*TtKJ@0$seChIbkBR&IFo6>W+a0`geNs_4^dOOhRbARD$X#RD_Da7V9j7Htd;I`nc z?S=CHg0N>)V04AzJQ!3JxPN*|=GJN#;mlNQP(@_RuroE3S z?>&UFz*R#j5`fm<{biTsJfp@B$)>{ROzpT$PZu3i^tQVBxHI(5KFBj(3A;|G;`|T2 zMjatM_TDNkCf5ahgLjkUoLKI^D^@+Qo6vol`kf@14xIRH>_^IVurKpRw53+wl)9ix z6YPti994s9cq&@%P%P%i?#7C5`>;>krkFeC>bM?;X38$we{EH5Vk|ClsJSJM`w$8e zBu5ECejPX7w;SS>jT-^cPSKh(NLUs5IbCx9nEcAel}oo2fBa!7#{&}>5NBaklF>HR zJs|D9k&Em+Il|T4J2{Yj6$Ot%QY_PAx2j2`nn_zMu&YxIiK zUBw)$QwQcbIG5So=clAgO&47kbewX`>Wv^0j|ng2BZ$4UOpWpJ*yCsjk2gkzFFw$^ z2E*L)L*CkWUzhtg9*|i%SK{5T9zs&4G&DI55H)#j9W?n&;;rl>K-ma;a0xHxJ8_y! zRVFEtLLQsDu99A%;x?mlQAu1`rS33VR?JvgNx9UdBb3wL^&$%`?j@wAI=B9mDn#b( zMKRY?>Nu*eJ1B2@2fB*FT=uD1P5$~cl7Ug56UEyVDRB4J#mc0u?Q~-3`m7+cz@Sd0 zoI-oCq}+n#x4G7bS@+^VLj)M4TzR0l+cJQyCHsDZ`5H9X0}jV;<9SzX!_A} z&^tHlP*Ih4F!WR%%jG|yjO_@x;xodm7Uv`VhUJHf!kyK;p~U%~BwgIA)unc$Ke-Dt zQ3iOy0TaADxXtR)bH9BsIm*vfMAVQW{uzQYm;O^!miYnrp#(7781aax`Nh*u zDP7Yp2n@LA7izuZeBvtkg>fyQoKo<3{R*g)9vU|O z@TB?gEd6szA8PPtd$3Im!}!koO*$ zW`gP<(s?`Ag&X*aw~!is{9~xc;kYRE5TF5~(A~Q?csv-Pa_Ys)9`7 zmrY2|`~|;87&ku1TU)SE`Q~!T{Nqbi83hZsey{rRWf8Z5{v^xo8?g2!z^UmVAW>tv zU~4-dp*mg|@jK$1V?DMWqB;hZzv3EPMs~kIcWUKRZ)uU5z05I-qrP7Aa#3xDU>$VK zH!M06@jXNbEXxP9T71+b8Ee*sB0PTx)1;pIp|;{g|CFL4|2na`ZNC*EuDo~Kv8;f4 z6me0QY!#?8r38ToGcG<& z!9Q_SX1&6#@ByS5mjMyHmW!EG;Q0pQ({h{hvPO&kniEjw<rTIH^#~; z#@vb8n|Vw@NLO(U^4-&X3rgqPNT!F4P#ROeEXHFU)A5aCrk=LOmKHvoB=R0jQ$NDv zk8h9Rknz9|CnHAJ&RiY?R1HmmLTro;n{4+-+t$Y;T&r?SaC;il9YGq?=yXibej=5o z^9W>LP0H3bHqZj@oJHQ%`jN4jtkWrnco(SP9v&T$$?b%jzL!P+@@4(>_z}_d;=0XP zd(hF&Dd^H{veLeo==JMRPbwluu|(vF0=WRI)vBst)=oV($-U9|acs{R!}Gf<&6&)B zpGNRzF^wC)lc5!6dAg-^gj6hx|odo|pc z9o!z~s#Oxnuh5>qX0<0PQWAdd#?vDY@22TS?4((YFChyWp9otQ7p)dVMDC3s!N46% zh*QAjv|5e~74pF0K1Io0;<8&Z?ayRp9@C$-i_7oI8&bn@qh%CfavVzHAl%x6G#o8` zMG0wnug_!lVA`KF`^|{5os>7b1Q2bPuShM6u&}2VPJKtHNkqY#A-wj43*Clho48?c zbQLVXBzzcMDCQTRNi<^xLm?UN8%0`YMHQ4X@WcVA`mtDCGjQ9wX6C{X`z__z(lZPH zl8irZJLh?kg?V&8;L7r%V6|GC<`QMMqBUl3>XH`w6r`nCWVs(cZ+myhL(541cbAyp zly>f5(Mg>pf0UWDp}+0;A{OVxyA0xDmrkVRL&SUZS{m-Nkl#7CqQ{zSIDn=;SkdA(%<8Kru8 zd1j(bNwvp9DXcmF0KGFOq@}H`HyU0PJv0=iKuk_fp?5x&3_L&a>tw`zAeGVrqENNBku#tGTI72&mQa%2+wy1Mk38 zg)YG_=*qmBw@(3r-a+!jCi!SCP5zXx#AEC5saetI_aotS(1*@+k0||GTJ7SuwbrVc z+ZBto*j!35*|_;^Cg<_{2ng`qHrzXzKAB19TUdyc+Q4WnR9QSgKObYfC1D)*8$+uB z_|47fSzK!f&R9GvEPJso>iO;n)wUufI|JIX<4WLTa1F61SX`eP}gytHpFu51_ zginr-)TeX$6n>u2C|nqC(7kwpgaj80591GIHE&Q!4ISb-_Mx}pL#4zyTeOgSL?`kv zp+vLMxbgRtUkoQ{V{gjc&pE}tsb8{VzQLMVh76?-p(ZjZ6NZ~!L}{h;;icJm)xa$p z4aG_nJMSKAzv3S@4gcYPIN#xm@=o+Lhelz&t4FR>{=*U!pmYhfH58Xxr0(X?0rO68 zK)X;bJ@wm*9jY+=fQQ=)XkyQt%eaEEHRMQ#gATqII5>tsjE0*YJ?@2Wz%y2Wty+H0 zR_Z~C=CHs!y|@TSeOl2s@^)<;QtprA!)N%+qNdmiyWDHNP^}$P@F7|st1hmDuT;Ga z4}(OoxV%`}L<+a;U7p*2ONf`)^)mO=hPWEGUnrC1bqH?+&mRJZ$23J&o4hOi{4hb|+w#OL&WM zIqb^qaLmu|0r4+#nT3=iZ2dyF<^?rf6tvlr?v`QX=E{P(=;oVD$qkotnJ89Rb4*Qzl7Rh+{`_CG| zgM&iFoGg*1pC?^tbuLl(2e(79Xv-4HP;kd+6LYxd&Y{&c&9 zhZ6M;q0{)pw(HvrY1P53-Q5Z*uVixJN%s=dn65+6XH_kS+g6Xh_MDLSud)2XB(X&z zhHPj)WP^Spjw~1r#VbWOmut0*PUY=&YL*dB=W?d=)hBJ>+?t&TB6Xe!qO>=v+B-WZ z9@_3V*Glp`%$WA^+1`BHxzI}w!3UhSFqtn>?yoDvx!AUDJt!INVxh(z8x(I$Z`jNZ zJYnU^YwzCOb7PsX`ZUPxg&6LbqwUQIs`}$b@|S%@Lnzh-v6uJW_S@(FMs)YVJc#DM zxsJ}MP;o3U9Qe6DS93=DBuQlrMGD+sv$^iEXy&18ugTT=fm}|yrJ_L2r>JmQvrKMe z9wMxlYYCW`<$QCCY#zN4sZU*#CS%*vx!h$ugfk`ddD{l(?{CxI+RSEnm43T!E%ww7 zd2Ig>03!tq_X{R66?6$cA2}wuj5adhLYEE2ll;2C! z)Fi}eg9rBq7q>)m>rt1YylWf8t%Z1IwV-*leu(_)fsNu?RI65ofREq2CQe*6i(=V6 z7mFhZswhb}k~o;-fUB$AismWk0s;aGlf2*eTr!x^8iqE);SOVZ)gs6JlXKdpxW^94)b5)m6kWJ#EOVViC0(#r^j*+0GH>28V9vs- zo6eziO+F}MAym9r|4wWy0iA2D%_~~d8*ww`x72=3a2oKrm;T+Ld@8$+xm?VN$JN&) zX~UiM)Ir_uZ`lEEFEJ(4{cpn(MFG*rZ0%H4Q&|nD>YTk}d<0$k+uHY?4r%`Qi1=m)bZg|C$;l-w4=2j}>l zk7DkkrP@y>kW)CV-x{@@UIz(2B5p!AH!k1RTP?#ZG?+2gQFUFNj&J7H@{1BBd$~KC zq$Zzxk`%ZB+91S$U@(}>2U0N`;si{Pl z`zyHZMduuIo2#X&+;;nz>R~~09))@*K)B0o9RTMpu6)p;);@<-5)v zllNuKfd8B0`*G)RDK%I5h9b*59f1WHUHzTQCSztwu%-2lSP%=xftVCVSK4jO+=Cgx zOOj$8BdV3M-&dc@sWB$0U&VOswaB;knl87qQT#sVo4B}8i)x<&vzpFHBmFvAugZ}U z#!wzn4(761?bJMYdfgbm~%-{)P0{8*QD_(guRAhqm>R zRaCM)!I!#*9>~a29KSVUZ*vexB9GF!xD4%UzpfO*JVukMMk4iwd^SO!z&%17No7y; z%?ju?d}7(<;+tn)sI#W6^9m2v{S9tcl@6~HY3m(XFJZobrB%m%qe;?#&1(EW8M5^L zI^5bc6Syb5mh=_F>o-4Gj}0EK8<;up|oC`DN60r?}c7jS76!9YyCXDQyT;#17_?5346;(&Z}{ z_z5R*J=Rab!kp%Jm@dMdcnL{v9Snp5LFkJVKgrWzrnkfd|$ zrupKIkh0=txj^7j8;)4sqv;}I9wKs-s3c6_uu5h1rkyCs9j=a~avFOOn<*8j4oA@R z*DD~_UPC-PxBO^yW|t1OkPWgN2V#}3k{xz(-fjr7c=Y1D)vC;j7xFn%x;X;JDQVFE zNLrRDv5BGiljU5B`&J0SK`*>hwhDx~ynKbE5eJw48VQsqi|5BVLd5dg`q2e*#wOJ4 z;TyCP1HtxCqVG<`K_%hIijS|*6Avbr&9a2OFA>xG_COo@Brz%u4`qG~Nu^$D*Q*7o zefbZ*7-(qvgF{l0>0NOfV==!D(Nrp}27Y{1_fl#m5U|6bTX{twiaV4L|E-|`(h?=U zv>BdubbO3rB!?f+T!$9ccfe)Soo^L1`FkoEHMaEr>hN2xHRcTXR&I7}aN1{myJYrM zrJaB8WjkdtA^~UGsCH{89ha240OTbRbhFh^(EEs#eWi{m$gP7-f6%XsP$Rhw^76L_ zJH2Imm39E;Zd9r!2YCGzix7SIY;F307#27gnF0uZ*ccci@J&%0NbS~kvh*c4FAw>8 zk1dMAi!1}L_#YnuS1nBr_q=gyWfH>Vut_!R2XNrKZ^&hrhr)*XJWcA}YB7b8-2=T< z({T+Uj3k<*p0BU8EXPMmc*mw*mHHTx#1OK7T|+vsd>Vh?EZ2o6`OPN%NwWqbHP`Tz z6(31oZQS#+KarzES-vefpPB$0dVy$G{mAZurCwOpFQ-pl-$Js?y-brc7~@DI=MB5{ zr?*A2aaG|$^edU})-BhEMiPvv9NQ}F6+f8A%CY-3Rw`S*o#KFSCwRiqHcGfQ1wir-m*1iproTi=zR+3C#5CM&x$$1%$s=& zP(a2fdP(_-8G%6SgRir_y?!9%{GEzJ1Z_3L-RmD6G~_X6@D}TN9QFO!NWT!DE5S2@ zPbKAbGo+Vw8(aD})&rR*ayM>ZXypdCdmkC!>&r`VeL1m4j}wdle#&o0+~z+kJTi1L zx6R2%JKuDFS=d5m{nls?Q=5_5;eM6Z9u@MbpnDD4%iuAR+NIF}pCL#H^1#=7p$L`= zG#BxWgpTX~lk&5|(Aqru^XKEOm;C~Md zjz4eV`&ren!t(SRTg*Vomzru%9OIDdp10P=kYzz=<03VkA1Y>+*3A{NVT8sfreB7B zhe?8hx--h|2D*WC2eY{DN$)LHrEf&Hc((Jm+YNDEI_55gy$cr4)6u=$n)bu${5>&<(Ga9izXVcN$MKu&bK&`*ynMC~y zB5#p_u!BZYt{bS&`DM`GHD8Hh-2I@pE_Qlt653GhT}9 z7~_`L?Ec8R$QNpb#Bsdi`uMF(NRj%FFM5dzB#1BIOov|J!I>t&um?|SQ0{FB`<7qJ z!z&Ax3|c?V4Rox}oeA-voweu7ZX;|;V(9JnihtAzlpSJjOF(F*OBl?eFH0#sF#!bY z#;egMxb0!sv6PKRHT?#?Nb~I9nTHdPD=3-eLo(kae-9?nUKED3HmTb$q#5m1YZlR| zl^ElyUT>YTH9DMN*#zbOKFQK=QeyDh?qzfYU_fO_EPQ1+(sz}7&E1@7wweugG)wIl z!o>!mP};TqYM`nJKVgU4yAIcC?~bV;a>^wT@pSfWnp)W+0+@tfb!uEzUDUV!Qb!8o z_gBfTOG^#D>(~BaN%4UxFuL1**2EEk)FQq!?*2fO2i%MKvwNwg(PM;(CH7YM!SVt% z7lM`xd5=)F=i3t-6FP&$|1sU)m9W+G_M8>R(=Gj1`^4)=Vm<_5`dSz(PG-r5jwwW1 zf1M7LZAui*vSJ=CcsWQmoy90ruHsmrYO9K4PC11#v2|zp?xm*N$GC7A++AH{4bZGA*rM7oC|CM+Q86dLBfyK=DCd#SI-UzNnd6UTqBpg+Zp|}z zpZtU+13LoFr0i z4)>lNyrhYSsV|P=e;m^L{e;}|5m@4D2iwYEf|^|!6p)v@lN8n5LMuv3EXpnrR_6T1 z^d-XRq+J}PZK14{h1`lC7%HiCLI*+vg~_0i_KbYxIzge-Ga5c~8?oJfl+i5jley6W zl~st3yzfel4Oe(7chIuUD_Js$pc>O39edA7*T%0K1}SDeN7t{|SyvAa(>2UjUeWsc zcv=A;Pu-p(%V_pIl#jIEyqIS5022iUKP9YQ>_c9P`clKFWoE3(oxnGtU>mKpJ0QZ? zK1!?~ExJV0CA4fQDrhI|YqfeNGcgROw0txly7;B?r>N=2k~TZQl=QBzg4IM+>t8x| z2_%0BqpKB|govm=_3mBB>)G6JzKu6$^Hj3JXSLRPq*w?M<=TE^wa6^zY%y8bJf;w1 zHMh!YN0g8zPM~&wO+h|x^UxQSDT;ULpTbn8gzWxv!wA&i;$rJ)8~8#CHb$1?QBsXw z1UtLXXfYCH_G~A*aOxn8ZFh7tZSdXPo(t;{^2D8pHDA_qY58-Cpa%Ceg)QTUA6@n> zzf=AH!>!dmZQztav}PO_w&WIJ6glR^E`7OBFuCWUAY%4xM=rX zjZJ)6rX);Gw#-y--{L$71_eAJA|hcr!ll|Sy$ThL%4!sxu=s%K3GSMo#hx$wx|UX2 z^&}clbVQo^J$PXGW4^M?cNXh-QO7`UE`=1{IIn{0klu6sQ5Q4O!_~HN3{Y0N$YC_5 zg0uHRUsYAz7ZTd3)hi)VZn%=!o~6F^qmibWk_+O?qiM0?yVdlT)9zD6hIBS5XZ0$> zY-LG{a%C9aZtBNZsH^6v0z~*^R+lDm z`$X)lisc(jP8+Vm(*Zs+K{%1O+e^mK8+$2DfaLKG-IS4wJXDBcqb#g80}$C(ta zwS9Jo)aGRm7KJ~rc?WpBKxso1Adi*__azh7yoM^35VjX4N)o7PSPzqZOkRbK`Nos| zeRsSLkOpJ%ys^!i+?T;J%?Vi=(rwb$Dgg1nA5lv&;I^`q6yc7|?2d*@pL=7Iu_W!E zPJu2KI7ZF5AZ_MAK3(FCDu!^CRJ_vWLW+P+{3dUj(m+R87BM$mPPP;0d}km)HrR_S zDG6V05|yCZ{fZbVxA+%qQ>=E2JuS&Mw%6}-9t4C=g3*Z@plFZJKcY{^2V)R+#tFlj z?H@b_V=86LEPbow^%;N3?X~mTAwce=f;xgQ>wYdWRK7LAV& zH_cD81fQryS(S%3-jK0C<&UJH&e|*)fv(STX5|gOYqw-1yglu30DXCb zNe*v(8fBZu$ylX#&UH#`!zbOVcRI!Bo$MF_Po!K{LBK<&nx;vFdPWFEEGO3Rz%mKf z>BPOmU8&oR4iCM2Oa?T8`GKbi_o)oLVJY!D{n`zvV2-m`Y8rAFKe#_YoL{%xNNF9U zQtF&7y+w9A17-BlAtvJKsT4|{OTAplj9+*QaW5REt85EVwPMVk11tErZ+Dq5ztd-P zhwNxNFu`ykN`-x^u-nZf;497yQ{W~8l$nLyS_I~3;u^rpL8Q-!87&ar?yaKWOr`i-On01K`kajGpcwDJ zu=RlL*i=02p?+=oy6cToFU!pay=MP)0(S10Ddy<0^V*srs&juAwY`#*>ZUd*-*kT`ep%R-z?< zR}`{dLAm7fp6_xy^w3zbsZl+8@BS-(Hm8wiHSes>2cJnf+RcCK+J-O~r-*C4+5e=( zP&m7Flz1VVYsjYPJG^_4m{hpm;?wf_=d5!qgB0?7t-<|$H2N%8cpF*cxrv98&GS48KcAL3G;in7D>koHV4MOWTAswIj z-!NNgu=^@eq2-2?HarBH+kn|y%w`%nmEUT{CRoi^VMb6kdSWB0N1#}$>Cou}x_EzT^!81a^`G4|;h@K@c?Z|WUPP|&Tyol2L2Zp!0;QO89jD&t zsEMUUJhw zv4p*J*#uLw7oRD!;Y{UDI26j$KrJ48oN+=BK}5u;XhMnMk0tI#Sw1*$(7e=wDIoVWf zphE-qoLkd@F5#|Md`M1u=I*VyvXfKZo%8$CA z^2a8A)tZ3IL51D|MN9<4{kFXUGfT!}x=00(n=rMQ@~xnD<12Hel>V*@&=EhTyWRkB zuZ@RNaA!)@f4og;utk3GK947ldI`X#0V0q0bmuMCd*~H99Wm!S!)c+2Gbn(9#4u%2 zvpL7kRFM+v^l!A^lX6b9iTs%K`gNhL2T4xm=z!pyK*Fu_SFpDiBO*DM24y`j+e zIer0>W|j{?>*Mzczd>*KDWQsIoI#eD2GFsD8Z$jXrI5r72nfbpBSgXUhqHL~;pIB@ zw%xaf_lUOr9)7%gx3?uGy6g%-5}1Uxz~Ab?m9H)T=!Nt8<*>Aby-UqL1P)r` z(fWnib62;CB6?zmRPUgxk^lD~8e-Ce{43fyVc*_Iq%!%4EeI6HjuhNpGL@W|*%EVA z7|K`T3f-T*yHV&5dHrM&cz4D<08-{AKA1w~0KA8}lC-V#YfYcC2oQRL1QUnHDuniG z)ti#IZV%HMtv-P9&`1S7$X*~3$3vR+;WGjm7hSUYCNgttc_`_w?l#sp`&bNbO!GMz zodU7QMdD<0wA`94#sp9I6YQ)kM_tbar_XNq6`V93Cja&TmfXVJfySe77tnZ&iWl{D zmON)W>hS#i8DBO(BNr7ql%Oo9dS#3c6LIW0URYe%aJnL;Kj=-bx_ zDTv6J;1hQ8`zJ+fgA!(JW}^Ii*6Wk0mX6#vyLI7c6!%yy`iiWS*y zd-$E9*%;r}Zgyz5^G4E-@?**AtwdaI?Nh==;hh21g4HuSRu4W%hq`ZAhRB-_Mv9_K+cg z&=AhZpK%GcKVA$`AE;s37Ap2ymJy6zjpG>4be6Ut%+uh!!Y~l=nEINB<(L#7h%C2!r$W>5rypk0}7SFDbyaNLi{HOXra< z#>RR53#p7>EX;7J$^tWgwEv*LV!6dBh#H+p`m?!&S>2DdxsbT=gW&5F@gu?`Qsw=0 z&Pie89Ox;B9Po#lnWJR27iKWyF-lZ&o$<($Ke({WJg$k!R3>5Nir6Bg7iSo=yokC9 zzlRPS@msN{JYzV4%op2np#zo87GRx3YNd<%kptZ0t6upOlq4qInEfFNjX-lA=#==F z-Qn+a93d9g`w_E(un66oGzxjwb`n#)Lyh|v_I2aRR#1s8)0XXJ0gZVoOb|m~asz~l$i6tT208%JHd)f>kLb#z)yy!h2Btv*y<{hUK3h*}q}*DdUrFF? zVpv*-aLA9610P5)ym@lY_RRanYwi36?ozsJ3rITT(!$AJTnSZJsi$2 z$(atOqj((foZtZJ!w_&O|M;IOiIWth&(p02Zyb~CL56Vuvc zJ~C>y3O0z&k(5teqn;8%Z>@b;=Dwg6{6KS4?6<)XA-^1I5wTt0^Kf;ZB(Ep&cj36@MK2cu?xu)^nd>Nxd z0&VbT=5w~IWB}v0S2_%i%G6spG&*0L4qu#~7u}yKQYUB%xdx-^+3`TTU;8H%#y{xP zcx}rXWhu6$lpgMi^+m^9+R|IlLZ@IR4$>g*d zJDiMu2R{6@p=P}#x(OOP-w(anIuq-ho=1i`Q+~P`=#5ZtKmuWs_Q>zw+zjB?AMs|r z`a~aN3sY+Z)+l$hGsP-X^;+w22Tb}VT zR3S0L;PO#@)|(f+b3RmPYs!ZSshE*M9Vr`S6 z!AM3S7%W#eGX0{=Od$oja_4L3({5jHB@$Y^%YBPOO@W3vq)J`Gq0lYL9DhG|9V$7T zfFf+hZl#n$NyFj(?2kqMie+X`+1-Gmtb0UCQ0a<5M=*jD`T^_U?Pf*CmzgE_(vL@U ziSHI24`DKG8H;hJ%KeKX)1a2KbcpwsyKmaFO{kbfcx=QHFc@)zd-n|3L)z`9bMH4 zC7(Z8Z1(KZ|DQw*z#}zPigla?q@Vs4#)D~q>UY6YVcRN z#BA3| zxmz^7lE&ZmZOHw~U^GpF7+7HEJGh%Wio6$D+A&b_*+x~2db>|~5^$zs3YUZ!SQyZ2 z$;>##>>n`QLYw_z>6Ygz+emmf@`%HSaQC}GL@3H)hU%29K6n^DM?RP?Pa?P9U#Mv< zuHjCnDoSaz)TrC91}_EWC}>s@`pJm>`$MQOvJ9BFaj+1!Zbzk5!Z+|xKNn-d8>t?^3xDV9XNUCMaWO=lr_ok^c6$niQ zgTz8dLGqgQ^!sOl3&)g5pw|R;xX%OuqW?G&1kbcFGJZcY;ij&qjy2P`RCbOIX4N z<;|OH7N_f%NGK?Nj%JfkSl?+~JKSL}@G6Y#uH@)`nE<*s4EI+=q~B{m!g^U~pWyab zyYIg|6`kd3a)&3gBPL`5ofWya&_H>n7V<-ovG`wi|1$4(jGl^xc&& z;Y<+%T>tPR2>$RRV5{(;L$I?btd2H0zK{#gmTBSxV=5wb_`?gPH>X3sCcwhNCc|9T zSR`LT>vU6W}WuH z0_u2@t)p41IV9$`5I8*~bJ)|nh}17&oulsP{SlRw;HFsskniee#Rfif)9CoMgn*wf z?K4*)d4F}u)1pj>8~W~07a#ONpZg=RE(|-dzecSoRyYA0LLvhzNd_xe2fHOB1?nhl zUu>J6$h(^c7n(Qwxuy5PQe0O+$mi-XETiF0P%TWBoT`*vLFaN>~QG4!!;x+1Rg zsmGq6q3EBmS$7Sq(gtN3EhN{Z{0w<+TQBIoPHH3s<5}^E3JXI44%j@3_>=LlKbuJ% z<~Thefad=Ji6qJL{;V)e)kip&xYe5^v_Sy%JwFV zmzp^gXex_hro(=`$!%qy1yz3B6LS47V`QK+p4Kg%IM*TM`G9o93%o)z(`m3-$@*AB z!s861C53x%16Oy7R+rwQhxOnw)JYl(p04pwBNHJZ(TRDbFxH-O|9M{ku5LLH46yh9 z@RN)Fu}=?W0H`|%hMhvl#R9RMNwzC|Wy{3f5x{ulFA8-F2t76DD=Y6#$MNyX=E#b8 zKQ-}l^DcDz3Tl%%NGc?@ncgC}UN5Eg(8tq5j}Q`k8}~_Xhq}ikPU14M)6^t-^)8Fg zaB%PEL@u}d;3Uo^neZgC2qK~f5;{jAO?70BZV=iHNwwiN6Xvm69b zIu|a<(q!KJFGuVDX#sc??X)GmReiBgXFj~3)98rq{3Dbd6Tp0k7dicYd_}D^zep;T z=;|R_`Ss%&@eYij0?UqBF9d!;1G=_8-)l@cV*3Md!J>0dpbjEecSF5ff2cBFDM}zE z^)vMU1ACJJu=fVs9#TAFbP45*hZ3e38yOt-yF*=iv?&6@;{`7Hdw#o`5HNu{L$~|1!Ea;6Z`$Mxb&TSSYmnqi?6SYi>eF1of(Gi2I+1@q;qJb zrMr;QSpU1brYL=4BzqyMYdi*{;FC2SWh+?fh`_WhaNTy2IWJ z+RGy`UXzaT?MDDJblDDMX!q#YzJQ0MrpkZkir2xl?T4h%Ln}t4GJv~ewJe+#SJYoE zLO0C5{Z`eBCj`&T&*zlNQgZ1+wQ^-f^pQ@kud+fjK$@OB#@p&59}1aa99}HkGXHrE zgwcY^f}FzQSi#5bba*=+J&MxVu!@~LNrJ3YaS!?Xt_+k7fE_vi!j367WsM3R#EXms znacrW7|naM9>cm+2Bc`+J7Z3#UfzV^9an_;J)!x7sL9}#c#uU4Ns4OjOD-5GxMjUQ z7>~3D0yf)(qqfAHdcO3Kn zshx=3x^3uJh{sCZutBYE(+6VYxnUdDj#aW4?k~H(IrlO7Y1l)N)arJEOjVB)yvSJ1 z?L1#iDV>+a_B6AqjCoGz;F&26mPgyu7zQ~`5)(f9;rIao6cGP3nW#p>@gL9o>Ce5p zn*JgCNgd0kV=nLnxw6~bIQeJvmm}gmUbkR3e z3pSAk?_aQ$TXfQehANPSHMh3P&!)a$44yaV&E4cPxhl~AI5L9XU!W#P9X()hIc`9+ z^i!`WGcMyRcejslhm9+}v>(Q>p=;`l8Gtl>sFAF9!T~aDNY(rqGVbRKoDUAnlt(+? zO>{$2NvmikDhL(=EMAT*PX?dZTozl5XK~7(2)pQLd-!-d{NefL8g@=dUn|!Bh8af5 zmBJuV|M>H!big6mq{|e6%@T$#sk?bO(EKm7aYgQTj+)yWSw7m#(18dYIsR-v-UOO# zYkRhOEaj>{C7F8`t0TqW6`7&{R2^IW^f|C5*f{?;_wqKk=zT~H)1)_C08@AS(lJwi zEi)oy*Ul+tbQzirk1F74fRkJM1qJ+2^vD-ZFvKFj3H>eooD&OWdNkqZ#c(|Ka%O`x6<(wM1QgTBa zUmxif6~mV4rfT)_WK_B3ZES3GFPoS-v@T=jVE|HkG{?&X`_iON`8i^)8E?y8?IWhT zZpZKW`uoCmOsqmsc8whVQp!(nB(P)2xjx0&d{4-<9__f)HKlW!2B;sur!0p$0*<)j zvjrlG;%sH_*T~ZM?C#__sTT-}jIJ9c;8EMU91dZlT*qM3^!Tr(5+(XlUDtTLzeMhJ zHo6_GJ+TCuSN%~Si+|;>t=k@x>v@6vnpJS_qhA#-(rm|>nTS+DkmuBkBm#B$F#v%m zl?eG0sd{~NY4bTt+~qgJZr8~6bgj)&PefvtDvIkhr~+Vm=LC*rDrp+$-17%Yql6`Y zg}o@E>^G90cgT2mU+dR7ZHY|PJWfb4JaLQ_Qo>hteV3twNUbI%zNtj~7;h?(7E&Y) zH5O|7li195fjnB*^%(W3*D_;xM>Fn{97B>AnI4S&Uakx=^6l$Cchrj236CGOx}Mc(FKDC&P;1%e## z5lqd_ulIGTo(ZGBs{!uP#r_l5MqV1@dSnY?8vH(@G-&kIHZ%ZGVdl(ZtY0D6UuG%#cvxM@t!PC&r=+e z*C`F)GCaPB5d9p87WXBtpaAXg_dNZ37Qc)h{H&e&twx=iKf)`cX*5Hr+!!Xc_O=dh zuOx7zUglUoxw4G~X|D2ROei%LelRg$*36X&rlyw(!XQx1;5HYKolq8RN={}W@#(QS z4mEgnM`Xuri<<-1dA&;vWcZZ^nnSHme_8o%+385s9a`$WeHL}qE|CWbT_Uqpg>$lm zMMbH|ceGh*h+l$VH6N@Db@x+3;Xm(1N8eZYo#v`#4mT#1xS5#wnw1VtL@Nn_HaxSCsFO{G3m`FLvGKJ%bK>pj zxeuyFosg^DulLSCqD*@Vy^t4luHDBcZ3~x%VAy zW;D=3UP{m&_rglfG|5YMmOFD1=y7QeoV@J^kXJhGn~k~+Z9y-$t&s2fm`mfCrOysk z*x;+(N|t$wd$t0usnvQUxOvDlsI~8A}QHnYlrVThL zYH8qYW(5Qp(%%`&dl`L2&ZitYaL7B2ciNQ#9Q}l}q4ezheM?-OZCD@-gk2m+H&eY=Hn_Euj zdA2?(@paLW5E1UDG2d|c-pl~ZT2+`7JuMPMl~`(y2oAA6J=zz}w5w}O0cA`38*a=u z3$rX`+?gAd1qIEuVCG2qRhImS+?>4he+Es!QI8@wG@I z1%;D7YDPp4sGj~=tnygPI)0SWlAQ&r;Qyjlwa|uZ(M%m92aJgv?fgt4I6KKNoOr(VnLraaF?559CF^yys>>%V0QlG1@s{lPDH5 z96)P7VxeB%fjW5y=CDKRYNe^slS(SQ?sS)J1hEP3C2SdnX7ib_;V)f$P#5s-cTpZ# z^V=*l`b;a}GwEgSL;Vd6s7&mBt#||OggaBpl|4&3SkCgrhZvahP+wuga9E3W{gU&a zcfuY37rO0vJWsn1mQe-r#+Sf#)vliWQbQLXpykCS=LLOXPxu%X`Ep#y@oz(0UG3Yu zhxiyrJ3K`TXQ!~L4zw{l_3D(5ER{{lX3Z|dzJ;S*wbs9TK6w0CVc>O5z{F{Ao$n&x z+{bZVRn5`<1^~7ycbUCcOc*&}j@QgI<)#hB+}Ec+Nm+W-`<+Vrh+=-Fm%MXk|GE?M ztMys$TE(pJR(~or14O7@RJ6jXf^lK^J6+jF8~P_6FRCI!>i2X{9&4i4xeioJY}Co(;eb^4ov3-pGCsmjXl!X_X5tRM2si(QWs55 zxZ5+e2^>W{bQ81fcD1&2K;B6rb=whQWrA?IUgj~vX2qFaaFRgy7-5diVwiKajNlB& zZ*8h*Io~E)|6;oz&ul`7PEVx*nhqpSJDbr$7yyrKOEuX$6hpRMy))?08S&~=@--RK zit$g==xe>mv2sO#^1X{VdYsDBaZ+jCj*(nEf-%fBO;bSV~HTMz>Q=;Yl{hP;Ft^JQQw<>1JFD5&SVvNmw>n z8Fh(Ccu@Fbrtl$Jgo^skx2ild!eyI#N)DvhBx_6|^nO$#&gI3L+25G7GoFI!hH}Nc zC4d>s7$X~__G2Ql?0=AzDir!^_>6_vZRDK=4x|nPoRI@cLUPfbkElvmQ@^7W4lyyH zWhrGBE1NAFw)3)%z+?Vs$f*b6PT`69{pp3XVBOCjVU=Q6GM>cPJVqX*krZ!>6~wp0 z$m*p9sVJTF&#!tpJXWT-e9sP*;`>uckfpuAHzFT|?I63-{2m^SsixxK;f4AW=5%$0 zbt1WKtmA9A!t`HkO_t&);RZ%13!wdp-Y@<2(=+Xcq@%+nxQ5~20);!fySrm97*zG7 zAY&4H6reeZ{`=c(EV7-4LA|xhZKi5~LMX}es(`13tl2c!2YwHqWKPs9v;{_~p%M}= z0tmlXuK{@?K}ypNXK;`Ne8ZWnF^)s@VWUFwmNW*_-TRz~aelrm$r_3Vnjms$RQI0? zO(~JSU1b;6MaZ;-|6q| z=|KixU&VtooyP*)+V1|59vB`-T-}5lcNzl?latv7Z(R67as9>Q7)?KZG5aYXexxKb z(kTDusemtxK?-k`{dLk)-C&{qcEufd4=*_`sQuY8JFjUAZC&+6i!S=c!rQda_)h~PmlzK!y-I0B4~yTsE=wFYc1g;f zZ9Or5AHb%q_6;E1EbgRl>SjnitNS%&FqS*>UAojKIperMC86jU8Pm~vX>xzwJrk!3 zfJ9oFGxK`)DlE$S>kPhrA=cqldQ{(^PwDq-9OXB^tGv9zQOpn#1@a>Rm&sV0Y&Ua+ zk5`8XjhJ0uV%qg<_xENq>Cz{7{h9!8ek;R2*^v!zRkfA$+tl{m-6g);z->8>1e}K| zBV_Oc$g$!msu{X5*X*gVI`lfv`RhBK3RB^MRKCm~p!hp($LH6Bq+(BgKrjBR=Wd^o zbhfTMhInW8slC;Q2rZSapS;cqECrV5+YMO-=TMvMbto>qlv#~^h^>O|!gN#1Wk5F^0czkt*AyF`ofHGBc&i_* zIMOp6B6QzC@j9hIj7#W_Dk^C)-j%K=jA{3$(r)t!N5FmudJsd-68J|V)w4vZURK61 zV&t$v7)c4pl~5I-Jgc$5!+|Gl5(ClCawv{(-4P2k1%1eWXkEDEJQWaE~NpV|#juG8Zyn$13 z$mkNC68{+Q?P0f0Q3YR0NfL$2U@u@-2P)+4R7->K&AK`Io)b-9a_)lQ6z%H)OgI_R zRwD&p5vtPtGGcUbdRpI_W+`%22y-q??x|2FUWct-vdxxsSYv*d>QS49NKFZ&OvAQd zk$N|9p~1;FCh z#H##Tgggrkzk8>BSBFT4zjgjzX7h_0eBqHbw^k4Y#a_D^fH5QnC;N$+Y=Y3D$QcP(S(WG;Z^~NBfe5`&g1%|K|F+x6YVBB?h{tH@9!bN+SX|`Wx0qx+ zx=__=Rl14FZ+^`g_MZ+Iq=WDPtp>W!*_~MFC=1h~*i~vLBR3)clPl@Njqg@@Pc=rp zmgdqEF=HI1+WgKb3@a_8Fl*eFr7lCrUY61Uy5ak-gQtlU^pYZ$wAkPPxvW}5G zuccn7;E<>B)6{&*;vyyEJ|$ln$jR1@vQX%ir_MXS3d4*IP%FVtOgS08Xa4vy@J@T+ z1!e>;IjsJp8m!W9)#jsitIZdRBKfBwRUL}xJ5HxT!X0;Gd@r~578Y~AIPL{*VUhEs zL`W=r)pa@C4+5q=o(I_}<1K&KJ_Gul9v3I1r&oSMS8jq1p9WO>$dh2By?{i5&Ienp z%K9;c>m$^#FE!9^8VR2M@dxLtr!Fqb^6%`{lPPz0iEUNoAE_f5YKp4Qiwh?&H|zJh z3WWCrNev%rGFp>>-4L}C=$V7yPrTKWXT9bSujZ$#RD0r99RWJk)^eQsB}9_t`A31; z3kSKo$dAFk9zOsv^<9wc^2yG^=nwrzzY=q>=x1<XIa5ABFSfrLT97cQlVh64tMii#w-M5@_yLbBKf;`lX%BMdM#=dx4LMz|VD? zH+4d}U{T%bQi|VC_T3}h%2g2}N154h1EVU-s3>?Djv{_HnkHLI1^uL};@rcaJK)ecD)?n#Bw&=`n*$z`!Jp zrKRQK_V%YAbsTazlI`v7CYBVeEfV51QuajTcM_Wdet#qMu++SV#PTmdHIU6g5ikEcOF#*Z1!hcebVvC_PR$?!q(0a2rG# znjCcqHosNiD~7IxY~!?_6NVBp$n2MkRhd4EBev`B1r!qcryCSnMFy0d_`epMkdPvh z{DvnU6UyCDRJ?UyFlHuTI5_opr-t!6ZGh#WT&C zjF0yyl0QS311GZu%}tC2V6g~&QO0`f10c)P3JtEa7(9mM)|I`{CHAr9ipvATCBbJZ zzkkIn&NV$`sZKETEp7=2S{j3Hlo?g!b6|z#*9OqOuzNaeeB3RRw2zERFoNGPYkeyLK!D^>_p&1voyiz$KL}R;FXW~gkZDf(da!y(8 z+fA##@Jyd<3?nUJRFY94JGhDl-cd`w z!k5oo!TCqr+6bg7OMG>jSL;LzL)F_Cp}f+qpd#Od(QT{=GHhIR5_F^B)5X$lrWt$) z&>g?h36{v}SDo>>vs=WZ&_4(k6?{s5S7V?**Ro&z=(1{|i8{tc_Mp_sa`03`8Sc&a z>OS@JpF66qD{ng!MrNOtWE$gFQK7}*g}|hUQNtk0Q5!q`##@UQ%4Os_Oye~nasF0` z4`>g8XX=ux=-`?j46he`cINR_66hlUkgT>>qAgI@Tu%_3u{(Kiu2$7C0o}0Lh3Wpv z5dIP1FBNczg>fN3OZe@}qpEwTj1Vl;X0L1iok*%cA3B-+xE}uqMp)THl3SWD*KI(T z#zr*}fz8(I7PBg-n$|ecDyP-+c+O}``r(Z71*?#sat}*-Xg{c;_)pD7*tj7B?nQdO zM5moC=H4P6o&O?AyThtGr07>P;qiC;Lcw`MGSdO209i_%L8?`t9-7zVN<(_R6r(jPD7ST zea~KiLAhmICUNHX2=3d_4BX&cncn0_7GE3u_V3Je9Gti$@Kq8#UHjA>J+uFOGmso8 ztyb)!oBqafJisj}0EVXUjlGB%$q`Q^RwnwP3tak;Dir|@SSNvY3R1q{Xj%@8>w z;7;ZFAo7iXR+%loHmxv%lPi*v#~hR)^6mwcmZo@8%ym*1ivatpqsLg>?c-6{H$@Ac z>SN+WfD^&;Jb}??VGTpq*DbtnWvMqZZ*K&KSUcutW+fi<{rHlu`uUObaiH?%$2AOQ z{^Tbw2ebmu4sF!FC<;8pWR}FIm!jgg>fq&qm2C}t5xTpXIZ^hdrS(1YV^XA(j*1HA z#%x)XybVl7+gnP2lW2|49OC#n$B6QQ6W^=7%J1ja`{DN%w-vQ~>@Wn2D@;yU5<{y? zcO9+*1RkvjG(2&7M=%PA2ao{mT9Wy8|IykhgU41(-k`yq;0Xt_{`rprngzj8AJmL1tGb) zosa0A?+~2ZFa}uEggz2?=ztZyVCq%wjxEAPm8naV<^X{+rP1GO2j^&OB6Tx8mWb>5 z(HX;1x%~5reSAX!0eXDQE#YLwjtngP3vCBEN&Rn<{~WAF(0^~)eFU(fNyz>uKEe(|qxZn~4WeixMS}Q(T^jg*c5!)vJq9iB%sn*# ztsjaP#GpzbFGR5XFV@4~z4+|w{o&pN{297y@o)@z#3-8YC2c#EbO-3J<@cI5Senp{ znAOfO5^AY#e!&!=V{CEuLBN9NX7l%jlsl)(g7lOK(g%I9o^P8*6;3MndT=%*8b3w@ z#@_M0S$8->Z|wVJAV$Bg974pF$rchaihtXW+3=MT&%~NC$g%GIY(|Wo zal)kJi_!Y3qRuW#tJ-e;8GDezx%f)WeU|5oERsW0HFnhCjE*WUE&qE?Nq8ezsEtA9 z4Z5!4n5xA~JD)=rxgfq3yC9%qfRy;wAuL(w0t!~kqVmNd>9ER+zu-o2~~WX@5F z4ksh+fmS3?@LLw|wv<*Dye>W(PkpgP7RnWsaD_8$SULHwGF^prFH8Kry2Hw#*IXZ$ zu4$Dtv{d1?r3#?Q;eQcX2hdwFh}Zd~CKBid-C8j)X@YO|Y+Jo>Ua1iR4kQ{#Kfv9X zZEs&0pOs}K0_JLZ2P~#*9Ub}{?{JX?H*L>&Vr>NS-EeXM;;9=TuUF@w-De7A)j|Mw zHzMB7;}=?2W_{X$RaUF|>1#n91>fM)NC2C0@5|zr@Y$VM<#dbIXWhVfj&UF}tn7UC z^05Vr&V#hIFJ(q|ORPFO3U_&{)V+gFmoS^Wev-`UFFR~LnK&TC!wdH+#fv(66$%=IUKkUr4Q(m1OxL2%MJG+^_1}K|rfh$9+ zAF#R$vlibm?_)wSx_}woCFnZ~fUn_;cceTYb*477R_|>1F{m@l+|qK>mQh%BCPn&q zHb(5c@WlH2Og+*mSviqSkG=G+pk=ex8$L102E1Fcj;$XSOF`?u9c#(m5ma*_Tg42x^0>`m8; zV1oo?|cIN3)c};qPSULmGDcCjMfF6IV zR1)34M=0O-yf?=9%{VrS))b(V@%>WQMEss95N!)OpqQz58l04PdQy8;a;iuZ)_SsS zw=i}QR9E?PyePtuFGDU#9=&^*hr<=Sz$jAHYdDBJXs(T%Ui$fs&QOHq_tpm^=m79| zGb{uNVO6~0lCeU(;`E4Y))jLnTZoW!OZ9mF@?k@zXc&HfGR~L?&*> zFW_pGWNgSo;mV;H9?8)tFwyA}SKIR^Xl}BnnDm_&gz_x%9zlDAiijMYJQ1?dMB?oN zY}Dml`g>j}P$)bI^KkYh!Cuh$$Ty_JweQiHaBU#%^)J>S(axojA8ngA9hVI;CP(t8 ztK*{>Kx<;nhTj<*dX@WkK;`8}Jtat8*ke$@>>##UKpF-L<&}oThc0SrXo{ekW4F^NcOyl@^k{HlByEsz3m~CnSJ# z%=aAgL~C~0w4a(BdGFh9r;S%-bioszK?`t(c6zw;X5OV0{i9Dgn7}Mch65WrI0FND znF&nH3Z9G73B8J1Otcm|`e;?{el6z<^jzBp%6-$vi>$|+#$sDoK58MhMBTXeZPn|X zzCtAGT=@)`h(nJpT6$IHf|1B?^r1qC+kO%xL{a{qzzsr=7A&Eep%0L+e=n}(SBN-L zXJNb35s~2?P*!z+u-w-{Q#;L$PUQlFndL;^8Ie8>NK!g@7N}$KWO-70@p7}`QS-kf z{K1P`#uoH1W6P&WhWUeoCqOnQZH_9FOnw+Y+t!mf)$Bh?uZ&9y1sX?r~NFA^X^?!e^MVd-}hK`v}mfQ%QLf@yzz&f@Pi92uFN zMf_LIpw7Ao7oI=5r$YA{E!jI3?zNeaTq<>cQ9>w{!)SJ<}`CMiMl?}6n`Xy6upvV#FE0#!s1F)bF_T}A&uHF-!~z_`~y zMo?|?IvevS%6&^am-ie$6Nr|7+LWZ&Au$eNG2*WVZpgs@!+PqmG2aSx=yY013|LG? zBqa|jtF_*Xe5|pPX)nqq`C$6J!_rc3luLEb#;-&y6q{NKf|Nr`03sAKti$MTR{IF3 zcFdcrgPCEoFfljnthqA^{_T%w7D=C*p7xm2CgQ(v^}tH*o&mCP(mxtF!0_M?fjVVo z>jk7m=r&FrA;;gaM1*Dh@?W?!E*1my1C&@dFua`^$Cxn-pNi&c*ilc+R9s%5Eq3?5 z_1N8T54|YIPa4n!NQ?>5wBqmOloRk4f64)Z_={h+8W%6m@VS{z8Ex1F(?6SQsNXg? zK{sJ<2XdRW&a4->0}lPn@<#}uYlqNKYqr<9p9*1#-#-82I0azrEUE_$@A=<^d`e7h z6pDvI;mp#{evYF%2cKliIb;y>x4wcLt`4WA%L~1*i6t8R`1WaVaPY21lo~eGD_pSY zGj;6PekFvK&fEN?+o%hC9{#OFtkx9J>jLmjuUyyJhKScZMm;)*$~DjH|NNHZ`!Fzf z42X8}>*nYD`%kRo|3M^u%UzUzQC(^&>;RaE*6+ncZc>uGVfnNC7mUIrd2~#WtS9D_ ztQ5`pfjzKLWr$Gm_vubm53DoLXpSY~h{G_{UFRaYTM zK=qq3od`*a^%nkD$_5I#=J;C|WnRNvx0$=x+6n7uQ_-b5pIR3>YALLp({Ikh8CbET zHw-FF$yHa=k3F~z%LlMf0JPz;)PqhX>`cZYuQv!(e{>pp)mT7379$)Uq|4yIQgFxs8f zmA_+zWrn>eVfptGF)x55Tugo42>|=)p>S>e58{Au&_uZjDG*Kz{kHmrqaHmePcJ4g z_%Net2y_<(1r+sf&mS;=z;?5nHm(q%;0+Oi&(=Gy2+W@vAU?5W$eAWcsfH>ulWuah zJYa-l*ti&tEX4wz#rjY3 z6_B8azBM5)7ecvaT#|?!=DGJBp`VvM5&niV9C__z4YSO%k7K48riIr&rK17Y1v&W3 z)}_gZiWG`mtc}pTk@VpQt{;!}dz&TgFEYFHH(X4>Nvsb&0;ui3^WlS&LSG<9J{Na<#j87nkJh>;I zE=$B~*#(KYV4`kwR2X=)RIbkV>+Bzi@+QC_hf6Ff*4J0L-E{3Ci9MitJAKDC-S8sL zQIx9S&ft0=WV+yAs0+iK#o>HZ0}wslx9o9<~F1>V7>$H;z4weswS`qfK$O zqoX5{OF_a=lL)yAkNI031GpXet?$q71nQ{g0K={|xH}YG0066>d8lp8$AoKOHk7yp z^a2H=O>ZRrE^z10sffc7I#@!kI!5{SlVFV2N>JUIGX-Xts4RNYu@+oG)f^puR8Uvr z36lJ%pD3ZtcA9Umu9|yK^c_q^O%3%M{>7v5USj^`yfosgzjE(e5QDd9O))k2Y)e^Z z0*xHW($g(D#ek7L`xp)+IW@K%K#q9(TU`?WFp5agUqMvUABd^6Gf#xQvfrR(jgMbp z#f(rL%T1g!?OQsz_kH|``8h{=80tKf!i7dpPhYO4Z%+mUM>4nX9TDfEzjX>#iB;1G z+8+)d8%2Wx*W>Tfn$uz}$(24)oC&^1R9#B?|Jm7vejcM7Ed-aTxWumahwoOqFIcKZ zUSwG*f2&A!4bp(t%y5)3|Hd zCSbre835Fe*xWjxvH8ZsLM)iEDmOqKLIuh7mbmZlYEi|9WGgJOO@FoKn@6Q zkqO?4)!xd%LH;>XR3kvt9R`tA{5wxK=6ZT@%c{#szumFRA4g`-dUB~d^51Gj-lg}I z8C`~M$ON7Vpi!5p92Hbp>R$sov^{`5bbTMud}Mx~Bp3g?-JQ(6AQP_Q-iLA$tgK`P z#hE>g3qiwg^O|O6W_kcTA{|J}!_at^4+^1251i&j6M|27!S5aR?Ey>5=w`IM_2>u~ zW6TX|>G;#t`0-^PCU_>x-vVea9d3-V06y;~Ku(nE0mN`x-R_w zeM6@hblID35lM^=KC8WuBv1b9uCCqxncA^^jERdqrOHf%T*zh!3h78u?Ohl!rzA%r zw3mqQ&s%d;WYK@}@N_=LkdGO*AiIStdv`x7dQnKsnDr$Oz-2a$xh28_ORYNp_nBtL zSuVg134)X!|MQtQyCfs~S1IEWpp?M@1IC0RiIF4O^;sZI*Ee~1qB~6{FY(|XUtZ$) zA8%ub8c|lOgbH$q>RHr{JeU+099LSemf|MF#qAAVD#k{Q^{qWDP`M8P=`ha%I&V5N z-|H)B`_Wf127iK?VCzGx=nMLltly90DCch)Pr9Zz1>fyViyzBPF*@E_2jIr0(2b73 zbNOru??kvn;i!z=VFBI;KZ z5pQEau5lk+e4-vN?QX`F>HOCbzX?r=eg7>#3g%toC+Wn#}+5PqFG!pdU*MLy}+3Sy`&%H7#$yC7- zQc@&9?~?#Hv5)*Nlw=ymR1qD%d&~pasG5jA$uM%`o92~2>rM47#%Nk0K6DB zb|VUObLMZVqfx?J=1aQCE%QZN=iXFrZ?6lv1F+!E6Vb#-S65fNIu??B_fEQ~Y{|y3 z+T;RYng~Pae&Qe&D*oWp_}HXmI6o~AHd$PeCI_iHrLP`N8^7QtM&7mRz#}LTaCO_= z+XGkKegA&*CZ~4(KRGq~-{4;W1b^UThxzl02p`r_{_k`p{dR)p6*2NBqB&V|>g^Cz zOMD16!;Ig>rxyfM$ChOzZ*I`m2DS&h4Lp)WNzn-Mv#GVt#{g6%gQQUzkT=q zK3cy$4ypU53lz+UiW(x$yq5mgt4Lhk7`qj&FivL8?W&~wLu2dE{X?&(JxC)?G3|;GX45AlH|<6BLlYe`kblGJ%O< znf~w&5=JNRVF(LX-Kz8ZJ9YQQYY!|oHipsB(ccI;k@!CL%T8HVFHIk0Qr?lhtfR6D z6n>F^ACpBaI@@z4!!ED30{M=D2xeA1CcZvR=d&WdjD^C&0=)b;>w!cjHR}=YqbaXk zZRsPjpvxm8HpJw&_|?-X@uH%lyuhtgZZjzAv)79G-_P9)MKscSJo@;X=Uf4bVn&FZ zo4h{z`@YsWFojy#I#A2k6o+bP#KQ^4SWvb+F>?K@C3FL^OBLQh0@ zU|!?FA2~H*)vE;SA?$*h@LEvDHD?v0D`o2F>HU3aBAD#Gi#sH+Mt#V}M4N_G%jW&r zC?zOr?RrcV_umg@{9Agp_Y^~O7)4+9w%dai4x=O8O-1{>?Rq+NMFbYoW>+KmcT#j3p?5Ma zZOCA0(8#2dykjUTgm@3jb%K7W;*6u}L z$2lSv9e-I??XxV($^XfFOQ9zyP1edcTNC8Ur|cZWPH*-nrUIWB*7`vg2lwW@hr@mm zp^l@lkUZ;VY9g`Y;%TpHh;qX2`Gn`MZy0CXU79A<8j9w8+?A^L%yzRvzpV17G~$eZ z2=h_fQ`+-MMN}nuoqk-au-8XV`PW5G{?Fg3`$@QXIiRyy{oRak1R)mu=5Vc9V@88! zXkn#%(C~lzF(C^9w&~htrN;~8W-G(eif zm{}yaNIez!d|ibdzbr=8Q@fSttKEG@4GyF!v`Pd!_~Wx=EUW29q2V#ZDitPyY94RgvEA z^++B*5x7nqp=Q4#?+X9I$rHlUL4Q5tAQ#GnrRt~Qh~P2+h?v54#09NKiL0krd?^!wpGM^ z$wyYxfDu>DY27==E9&^qfHO$o@Z%^7SYy_EJc?Kler!vYj|=|GQUB;{Ea4Ap?`d&! zdozz&mpp?NU!95zb&x|s7XGEp-?(^E`{A^CkP$Vw(H^3^9+K~rBjqiOld_nQXk+RTV& zBgRkvek;=LpKYAR0j44QKTSj7)-+ImO~c}x0O|Cl*cqkFbk9*N*OMODlz8d_W|-#+ zn9d@->In`ucK813@a|I7PX2^$iQ;%m{5@ST!{Zvk*3BuW{v81O=9Zuro%52!AfQ5i zZnm)d0sk7z1U>{9OLU4;Ez))-GLx6NVoxC1vyBF6mui4|BR!FZ{2t?vLAiQzBVi4{ zJ!bIgnRJk_O#s)O3B3HTSKNNy76OSm2~fJJy{(?;9m6Q(ylv9t4$rY&A+ps zG8v9}d@8w72w8aZa*{lQ$+(i(?tHOLeV~^*Y8JRPV<>BVTf=iz1o?#4kg1@~l z=-qYX8&sIzs~C`My7Naxv|!^f=xN=`Yx2X32eqKHnmD%xT%_Iu&}Coji3@%#XvVWz z_n-f7Q@-{8l{ijZzw{o48@AUznN}DfdaWM|n+*@K1HoILJTx#9?(F}uu1lsDVGT7# zSgqys#U{iN>%4*axuA@H8fcoAD1Y5)SIan22MaBPe(KcU?_-^%g!ZZYz#SToBJ$9@ z{f%cMZ;PA3B;c0flESQiXB5oj(Le;)S2M>?9`LJ&pzlB}e}~W%7by<$vSyTQr`3bQ zIStE=U!E-Z!`sqd_gd(NVU+`hT?L_$QgcHLcFXl|p>b zxm#z)hj3GZY`p67$aj#l#8E=z>;wUke^EfO?oRB+F(ngkGmX4$M$$qr#hyvC_^CsI%Z2%5%3|OSmP73@DvI;Y-C#J zma#vT(B0~lii`YNIKH9{f$s(DpS@WLWgsGAh+&X|Qp<-i zB7XtSJ=1><2s|IPo&Uzbn{afLh`>UQNDEnEC)Rszr_97DyvF$_cY#Tls2{d3r54|aK@P31&wvDtfPld8a&zy=1NtZ#(U*6Hg~`{w zT&nJrse`>>jM%vfN~hbW`dh~u;+e6kSg!TKR9nwrU5Ah?Ob(m4WfQAZ*d;6Z?{?ji`aUzaBS(?VKq>40;YZ;?$X%m~8pCpSk zE&s+GYjn551lLjA=K&wqj@r^FAs&IfG)aM4;W5|?q!d7avkb?6b&-T9O3WG}BQ||? z^Tl08f8&$o-}poWuA5?bbRD63Im5{K%*a*ewMYbP1nb7zaUvR0ln|efI3ZqKq0Gr+ zhdJ674Pl%j!yKhn0TX$pr!QzT%xzABj9&^Tm zptx3fk=sIccpvhEWv>>KxmW!0zX(NN3Yf=U^2~q5OgK!Ml@X|N2uF+{h3}v!Q+Rnc zygzz~7W{l=AgO6R$3LZZYUF z1uQMqH1RfF2p%XtEZzHvk0K-yERuCmrIl#Md&ED#^jJ4Aj{~VwqUJ z!(hkMnA;rr+z`Zf95oG8&kI0g{JoFv@KXUx>^4KQ00n*!G!E@?N~){Z09_&-AsY|L zz!^}Kv-)!qZmuQI2lPq-mJ#KyUmgZzgpVruO^CR%?G*GuHdK@sG>MV3OjD+ckPSSk z+7$z{9cIMwm|mjW-?{u;x+|93L>lmfQJIVce;xDfI3qI^L-0UbqY>6>>`IqE9foqh5CBk@gC*s z@$JX{eE3UHyXU$V8$juMVOL(>*%Axlo2@iBR=kk3YM?#XS!XFAg*f8ggym2ByRUDc zg9U8lhbw{eD*4UxSBNQ#jzYdb><|oE@C+wHD-R2WtAT|~=7b12C6u!@4~VzmI5q^u z{79DMe9o-mfBgNV{YnaOXdg~=p>PVACv@Y>>9F>7y~S}7aKkP_hMUaqm2v%N2kOD{T&Qu1&-%zW#(Vd`xq-rHQ3P)%Mro2B0+Djj8!~gv z1lf2uw%@}&8=2vvZS2(j8ofx4qOWnNcglCusV(uq|of4{X5iAH_*xd<4`}qMfz+{ zN4;Z)J>I*wK+aGLdOlTc({wWLPfSZ&&R&+KgnCUZ5Sx1jf%a3~WiIQD6~kPKZ%gyj z+Z1U=bb-q@_{}9H)6rHaupQoV7H2LcHzj%=3#{>t7)_DQgTtwcfg@v3b~rnWm7=k^ z*@_O0V^FSg&-$;4V)u?^p7T%dL1#;GI|?U{ei6HH_2=E^@(uc6*6>4y1SWg55f~l! z;$dLW-iU_F{E)f%Ti{NgW)R|~B~>jqMHzXL*<7)o0-uXD zU+wK)HkP&(@fh08=dTicTUEru3i)4r{qtX+VgCn=SF5Eh+s5*;ZEM-fb}iesU8|Pu z<(6BvZS!6C*{x}@1jK~b|ga?F&~ z`A_y0{=d9M-(odmlP7-e85T>nH$n zTIa*TR_7)C??r6)|8Wrm6Xd@0gM`c$tbo>E5+gc=xks+2S`2}8#|hs0+4O?yd8%Z# zIp#)V+U*rgy=l+^*TB~&u9(f1{p@lTu!`dgEGKU5``$Z4D z+v9G^*jljOjL%M-_{GC^Oac{|MieCt4SWFoK~*&TwI^vb%5yIRAKX_M_V>$zf{~gY zQU>Wi6qCK>zz4=+CSl0^i*GSUXdY82pD7Alw5{0GA8U$if7f#0Um9a{CVpRx54?wf z%tp8#?Ko=Ty`Mua7fZa%Y77+8mARwBshevMKXsoDWKAd|D?(})-JFi>pcNDohCAQu!fC*ke4-*=Yz;Gdn#Z(0_13A!F<(%>c>aj)hXUoxjI`t;R1ehhri6Y zdqgwS@gxLxI&mlNro_UfXN(%4cAGZF<%9!m`u0r~`MF`CG0cp$6*ph2kCc%Ni&LCA zwiAS<^zFpOT4l*{*slr3ZCVbsZA4366hPXl??@XOf;4gMr(%vc@|yS8?n`a3ilJJi zP*FhyxT3PO`8(ANuqQz$%Q-*DN%GVtOIVY$RNH6z`n`FV`!X+l@TZx>Ph{j2`n|;! z4<-Y6DPDjo@czru$O3C!TM7N70?0KvD3f>M!l(jzi^q7%=51AV&f^)kphnm7^=rZlwm5hnTqjQ(aJQmWBcNvA@)zi5+9 z&{?3~IJ|zsM0CmY=gGziC?k-o3j*x4}Zrhy+K5|p<%i6C*Z24QfC%<>i&p3p@gG*F3(KKw0BFeYi=v$^7D zv3)gKGSRaHm(o0*LTCJ!<6+S%WHVXsvWIb5g-jh^{G7_WW}VA8w@A4!aNykk`Q=6T z6?_2TRiNyb|H3N(>fEONBWk<=QR^9b(HS%^AC9eNRIm8v(4%Og;ef$X2bQMH#5w*E zk>D2~bpzFhvNCoZ-H7C<(?cHmpFv|s3(4J8cZE7`jcev-(Rd=XJ>IX6`$=G2931LN zyPm7iO{LHK5uUc0wEgv}+6e%|=z-;F* zy(u;Fa3thZ4jK9Q;xfBB;4?AU&8g)z%lf^jV?se%Tqsu%<^4XPK7OtPA+OgkiFw;8?*=fm#kbypedA^8 zSaRS!C-jq3er};1gl}PMXCyRrY2(y5sBL)4SiFlT2(`cnX|K1!OKmCoX49A9lD?qR za1~mpNUY%ZF6JX)iH(N{h&19vJ@~y54FVJ`rlR{23bAw>&iBXw;InUxcZdfA$hp!H zm*eR%7t8kH3S)-WmU;4L67acQ>3s0Y^n@|`nk;W;;(CVbufph0Ri$8DEG&>wC|lj< zrsLmS9 z6sANUlGDUhpWPKb5jPGYGeI?PLGZ_QEBL>U?UD{CN~OAzl4BU9j(TBz6}}KK)kHea z{h7~>d@+%c3b(X7;@nx;emy-TAtWczk@;VB+MN1!qzC_kb{9znFypJ_Qs(b-fX8Da z`Wrrs<7cmJ^mz9S{0SSrPjk6qiIR4Cc5rKUAc6E00Pf7sqG0&Q63EG6$Dz^k1?GoE z1aP@@QsFZ3#v&BETQ8+~2kweI{zLV77h^X)UXyK4Wt(dd`bBT;=zE%W-}UIdd_Lxl zagtde6v{ZKK`bqFCY#OoDrK(dg(lT~t+r)8^-sl>mJL?GZB*e?E_5vOSx>p;oy&Cl z_L*`W8aWrV_?Bnhkg)*YG31JjraOMuw#jfba>QHa&J*0ph|N@i%eiyiyYzGhck=3x zW#mn6+C4KkiCIEaYAT&V9$m2#5w$}}J$yB`#gP(l5iokzlv5>UZ!w~nsqRz#O^jtD z4c3gcjOI$-#ON&1mFG;@lZ>DsAzbLU+&{d~NP2kycq0S`2~z)~cwQ9m6iZ| z`cwXntnMo6LdZ4^`{n7I0Qv&_rsn6fHglzcz52~o1R;}eY>I!ak1WL$Yb%Xt2L}hf zdXE2T`Gp~HzT6})>N^KokZSYZb?NmFK*B|pT^@)-oxFXCI3CX4LGj<9%HUW|I2z!x z_d-Eh<@}iU=VY-^;1eZ$Tpc%VTE^GN{uMqpfCHA*7NxQ^!6T4~Ymsa%Q4#|y5;-Am z%7B-d%|1BO_}>**4_GUxX3wN>y?>A2@H=r)(|BebyH5fkqsS=+4t-2> z`$N`#(Qe(dZ-ptq|GHC<%4$jhD{n@OEz3A(apm|-S}RH0x@wYP=CFq(;Q}p>V9(WQ zQKcEUt3BYhcAA`b@Z%aONmXiKHEp#NZIU>p#rNasq)L8d-TpZWV z>NS82f!;-5Sx;WbU+5yl9Xo{8`d(n~zDgR9z+0uHo07Ibb{!;B= zCXbH3T|X9Oz4K}S8a=RW7B;unJnyy7p448q>I{ZLFIp}nhM+g|QQCfE5;<#k?m5&T zz`i^7mCU=CD#e&OAaHg>t+M~f8CSzph1mUTatUFZ-eb<|d6Mg7r!~zd96JKd2D4&M zU0SKNmt}+(Mh`z7ybA6PlOwXs`8wRrEGA6azxeK(NKR(!ABpQ9a)SCi*QYxlkz2@k zT$0jRt$#H;7jkhW#ZJ1OKIzqLl;kKXY-oO3FSL&@n{P4V){%YOYP4Avz5TYaQ|gqo z9+!Qb#ja<~V8o-|?u3p(|EOVn`0NA9lD8w4B`94w`&F{JcCv?RMzu}YX(1J zL9B=QFf(sKO3^%yCM3Mwv;;*kd>q{92>!OHe7*#0p^3{GTXFL|U5a#sL*HtSrT)Ob zRaLY-uY~O7+rzreUBqv#5VB8As-kYX`!jo_RDWoM3}Y~0LgvY4H>6)3cqs`ZXaS@Tl zk}##(W5&xf(?doLvev=pWVu%(aapg~qnZ9-Gq6Mxm`K0i3OD1X&r1JfCXP@yV(!lY zBaU(YyVYlOE(LFGw$a*nDiV)g#i0knl7>^mGCtDULrYyb;Wf&bwlI~U;uJBeMwk%m^XmlSEt2=t#`wzHbb(I1m7#~_0T zS#PT~B3D18iB9qXb~fm;{=EA9H!;s$NSjLE_W!X$(w|abW60^Y9h*|*>bp|3kmIAn z6vXzHSKv_oq@TM$uPk`nXKVC`1q@t-1>y@BhW0y#7^sd;hZtk&KWi%1A8Rspm6Q8drK+%8b` z;zbxNe8@E`%Rq40Pv~S-DfA{FQ9ge!c8KH#2idnWzz`W3GZaNrCLu{TGGH05+SMAo zHaaMlh|7OzABu!5{##YH&!^5s_QXA%T1BC)eN7ji-|HYkTC?nnZ7==J>%BKxv8@)m z$=BL7xJtk}x*h0l4BEQEZ{LbpU-&QuDIQ1#ykY6^>Fa$~-&mVXujQ+K?_H|A}Fz*!()ukdx_w?f-L10N3H&DX{W;P4yj3k#f<&r%Jbop`D%YPRDbyvh4?+`>u2%b3Nbpj|Uv-66c&F z=N}eYK4*h1RU3S`GNX}Q^RBD?G2qf;-ZsOLKDwzQ@}wnwdK80%H9l1YQyVt3bu^b0 zp5t6c>o50sRL$pn-0=mRh23d0WB$vawyq||o~+mW8k_C>+-B|dWV0SFnc@wYbeyO) zL)U3Qj;fQOM|W+2*lN080gHpkKy{$Rl3|5!BL=sxj^3{iw({qh>N7JAeVk>dFVmbH z9Hul%$-o}3ob}>xo0ogfr1{ssYj;%ft#$_Xm;Cu zQf2Ozezp`*t60fsfXTi=`%jP7Km!B`2y;2QKvQsP(DtH_;nl9P9UFk5Gnnuvc%Bnm z*A3G_bxV8MGw#;yGtkeyvtHK_r4c2o(Ew38dVVV5=5tn+*}d$WZ?-*ykcYsC&8prR zpNRGOQX=&DDjzL=%(SYiQm~lPSxSNLOq}gz#oLM-|6HHXw;k7c%^_#Q^^4?-{ft=_ zz+Ja{nyS=FXonG^VMIM@l{xZJY>j?c&GLm~)MrA3CF3R+@OMHPMCDiSmpdQ*C@BR^ zzPv;a>+T*%XXriu5&Tv0Y~f|k&Vsw*H!!1lo8Wwbb|<$U+6&)wOmgR%-F{*xO33QH zwv=qWI|?eP-e3N_p~K5@Y1sHGuV)y8)$bmZ_87jnrNy_WoWy~GR;S+<{kUKFedFNo z>cZ_KP6KKveaX6|Makh+c6-F?E-Y&)DdY<2d)NZw<5cH1oRWmLI9beVW+&!B7s&E0 zpdA#kc(_3zz)v&A7YCj-F}NeBM$E+X@lE%Fz3_W7h_CTNX#eWGbP2B&L%`?t77=*& zJnH~xM^+Vu4&YheH#G4N*rS{ssU(3tmHk1TY`SkjL&llN#cT+jKx7NrWH%eAX-&1}tP)4qUuW$!%URajUIxl>2z%fyM@i1+b9)+NM%zf==5pw(Rha{aVN~~XiSvJRQS)Xz zr$g7br>O@pIB(VFWeAF;Z_T4w@dqg`XDI}EB{_S{hd`ftcxk?V5iGOzxZwc{|Bl`Bh zLuEe+5yKh+Eh<45E?5zGQY8HvsAgE0+}cF9`m-1X)&9<3=QVqMbw`DEj`7<*JQb!9k`^fNs~ma zqs?cB_*~<~IzMN_+hc&$F&K}gxc*!R9det6P%Y7oq`HaIpC-V-eeNlx6OU`WM7jf2 zFXmOS?U)|gufwQ1j~m;Td2F?0is@u*ej2;QBf4Z=kC4lLP;IVkb5v;G#(Ji~$(hH2 z-De@!>XI14JbiIueemXVZoBnNpFfJ4tQ}g)9Q2M)G;UK#wC3C2iS`LTubQ6yFzG}@ zSDEk9!VtZ%dRt6vk-~h3KbCbBU15Nz*Dt!2f?Eeo0KG~WxLdu%Y(dKmg#7unsmK`1D|7LWR0Aa_3YrBjf5LD z8H?l`=KQOH7let1T}ZOsf+H<^we>`nJEf4}Sl)VdST0BGsQehH;kzzTMf(zO9|J8NkDa zM;_+8R#BR&G4J3>4*DPSGwM1#rv}L;^DLXLoenDj(l3ywgnG9|$`10yQUE3ILPk?P z(3-2lv4sA?;Ayl@6U=KdQF5WfH08&~pvUiCGqvDKgeQngf&>6{jh z#$o*|dpoRUygt!|_zjfv?Et zC{fV)Do1h!`At532Oh2o|gtGme3n3ZNbY+M9b;@qE?RfTp}*B!EYI+ZDLi!7#?R|S#X!8vQ2p=wVG=y z2A0>kC@~@?vR)d8<&IY2Fxxqj{PUN*(XdWie+87(>{L$ZQ&SO^aJ!^CcAaGcLlS|G zng)`GbaLYaaR3cV>J7O8bWh*79}s%Ph^+yQxp{M>rcd`PEp(1~sX>p1iv&SU*AD)v z{xm?fZEt&UY<-DqcW46elf(f>rR%|jg3Y#pZleWMTs{dSx(^fFE|+zk z-h*Rm-6eXc{Ne=(r0o1o6JuXuyRR8Kib#|k zGd?`u4!r9rj@Wr?W`(}1K^!#S{lU7O8Vesh zD)CY1jNQA@;%~GjQD+&0_`XeYI{Z7!5k%zFwGH8%<~k&$Q@3tB#et$CPNp17^n+vI zYnJ5i+znLE=FEi#d<-p%P6o3J(ny1)!Nu-{rJC z;$i>1>Ju`}4%`|VA+OIe(UC>E;1H4+#X}ZUgga<%MMFo9#!8>r5b^Ug$89{aNbMp( z>z_j9u`QvP%5gr<7W1nFsEk}A^7)E@;Vx1G6t6h%&dhOl+yO@m;#i($bvB+htwJ~v z@z?#jp%5rxc-to=D6&dm+o-tU_rd9~&(JlSk1c4^QNS^4YF+DV*;3H+4PMTpFY}X1wFvM-}*7cOGHA)L&1#FtP3Ny5jmfe1l3NALP2; zY@u9awaTM;y$tqi$>%Y6|4g$LW&=MYq2K85BTKvCR4$w0G)6xh3}2;~*z0C%ZV%9)1dvaNj`WThawYv{i5r%43 zA=MZS!IKoLdFD@}?yGFuIa1?C8?rmIFvm*5pZN-og1S@#+}d`3A#*Fxv^Q9ZH*02L!y-SDJ9~Uhy^648*-ISs!nK&z+m}T`V8)fzH zimfdee^Lz6UlH(=Ru^CFaC00d@ikXh%!hdpv8j?AIj%{hAIL^N;RN^sV-Yp zVQWqswm_8vQn+$G{lFo_G^ClG~@%R{THN8OF2efKswW8fg zrK7ihA9CI$EBfPgW7@XbGG?qY)nSq2)4?*lql83fCgd)wY&Jl-E^ZP>Zq@XHvsWh+ z%MMU01GCn|XZTSRn5YLgS_~bby7bJQQ#gz^A-d?QixWfTk<}OLs+BeSMY6B(AZQ zzOr^I?q5BT*1tRlnC-V+-plf4X6SxH^SkTn=4Bz|aUU;t;^>4ovNCtPCw|s!H;OOF zkL@(;s(gfNik4fyo@W;pa;~1=lFM5vQLZ+zG-mqvnRnhQ6%^}Qn6iDgpsqISwH8}k z5rhrz_sS5fU~&)F3rA(CGp|S>c}V`5+a7@vy3{~tU|D0x@BJMA8)%aPFz+5{z+Dko zSn(T@3A}INN3SOtjPQ}bu_V|C4KN)UF4 zw2jo`^a5bkf`rpw{l1knscsS3Sgx*{ZV$;fhKit?^7>9LT)^dT#r|X@e=wN3PM%Ns zNw+-9F{FsIN&+5adUY~|#+gIPaCLWyr(=fSi({F95}q6qKl{<7_DrD zzz)RVcY|~oFKiQ3IHMPawCe1+_CJRIuzQC3($k~uU{gc1Z1v?2P;b!)Rs!<;e&O%Y zxAKKr56;edemB$E$&0JBdc-vlOr6R2K-cRn!~Mt8lA;{9Em)aM7VxH3=LoMrQ7D$f zgAX4H`4$LWsEnac8BU|F2?#32BZc(#9iG~+S<%uC&Nhz{gF4gd`z>Tq8Md~VtAxZX=c=Bm5!`pl@_rVx3xXc^2uU>$FP~mctUWil`nCm zc2L1Y(Zk$F)88X+)DhsRnRfE{A9=Nq%OzeS43`stIn1^0nibySBC>zbLW|?aH*NHZ z$n?54pv%ol8gBHh;v8$G{=*k@Fa&vX%ms&egB7w+4b$GXVUEY|*vCdh1M;S$d$Vn0 z5IY3!JrDve7Z~b*ZXx6lL&sfqI3FOo{`mW#$l+thuY$hXqFCVe@)+Y5R;@{!uc26KZC0$354q2L;%) zS$O;-*G>i9@k<#smvi0@JLo<9&SBkB-+X>xK>0oGz1acd-DlCA<26+n)QQ+nKEmh;pup7;b-HZd%};?6%-Ix{cY^Q|6X(-%^|MM%@3+R=Jn! zwqK=4xb|zHdiQgB%9Bfh7Z0t_-q1q(g7^JAfKk#OxB1-{3(6wb1f|s`X)U&L3^s3z zuHSNj3Y}g9W*3h+JW-#uXe`Xr)`X36cThXA?;cyfcn=yGEcnEKIAZqYbb|<3h2+qC z_V>TTN&nw)DtI4G;y6P550ckqC=of+%ynO^lFZwrI>F)Cf1`e+^>0)+TV~;6qu`r2 z=Fp2s(Ahn1ZH=tKR~u~Q(c7kz*MJ;5A9&3?zPz)Jl6V;UH*fMT4l9gpOdNE{&y|=fEi<%4Ys{VOQntj zJt$Uf+K~mU;6rEup#z^dLMr>Mj)ya!zTh1cgS@J{7?4PeYTtSGNTTvskJPJq?21su zj^-KD8o&N#(|(%49?y~1E~vQlj;GSzbI#+ZtsZBV&!nlJVu}6|*;}kv@>1wHa1!{O z*k^JocNNt34-S@_%`xwf=l%?2Lk=<6zEV`q<`dL2Coov7S;W-h@-~2gwrnEKXh-aBzt-HlbXhb8zz^% zs}<|H^KEu5$-aCkih=%j_aa(Y8Zdtx3lCU*9;bA(5pT!{#4Gj=W-|wTToFm)^A%-~ zlQUg^=@Wm&ZrjLW!dScT3!pQppHdM{YFDA~ouh5Wk^h3DT-QwocQPepJl66;hfeng zm3wTVxNXqTwMANH7#{o{hDGIBSP`y}YSNfwf3k4RjAaK(T?#JN)sxo&@h#H7e%*jv zk>xby6hp;@by8k0iN~J%pw(D*VLkKugXC{~^d#TpvDN~uknV%OwUqg0mQfQvPuvLE zRLkgoYC0O6Pj$A+#t;VrD4~EfKc>%g6s_ZNIki8n2*9G~j4H7b1nW!CD3p3#=ZnX@ z8|BJcSGJeTV?eggAszWoHeFY~PO}H3NPN~$T8(GF>uvG6GO|W+CdMNB>3u1>Z{rfT z2TW$|ogof}NxrtB2snP9+<$w*di*n->4E;kadd-f1utq@{k&i8EhM2t8@>eJa(SEw z$mnmDLQS68O>NsOkzuDq=Fy!WI`(^uWPKg~ZrHtrzOX|g)I?8u4x9tGly~S850(yl z^&%Y_KJ%$B#HHup8zC_Z;~bf`sb%k?p`DFxN>yd1V@KIU#4inXryYz;>ZJlW4CNbB z!WRBL2y&IR`8agg^e;C}-Y`tBHZ%v+w9m*mYahacP=CsRRlEb1UPpNz=zjBU_-lJW?h2v5 z^>^8RNf8ETmj{X`|I%rn{?jh~fQE?hfefM^dZsY^|2GX3s{ZAFx33$3X@D#C>XXi| zR2rJkU1DmYhQz*HncP)Nq!AHcjzVndS4Us2WmmcFSvhj(YQ*jNYvPfs>C|&P0Vit9 z5J^fgpL2@dma33bK(FYj8mdDP%*($|xE~EXwn+y*8b&oWlN27O39LNaXen6u;W5ru zC9XJNsr+EkwniwAkNuMAPtxnKN5&4}z>Ntl_nGEL9`?9dm&Hi`zTSHgdZ=8~6kQea8wx zz~x4z$L5BGMkFXa@HL(?S!n_1r^3a-32!`IG8}JDL(>^&dla`EP>`9*@k)B10N=aU z*I#(Y&1a3K<67^0FKb7(_x4?THhgr8E3LgeI9+^z_$#McS^4(fd=FfX@mwqHKpmBNHSzRJSq3LBB0XjO5cIdN@D zj-E68STx}Nwmpt1*N-npgDPN&fe@sVN!#`YpShL}A%Dt(Df=yh+(oS+w9prcQ8t%& znQ#Y``&I|D6dXq?IC%dC?{BoM#PZ^V68U|SZJ}kyG#6cFK;@h6{I+YBs$Hm*$AGS74RwAMTsrbMjsIA!ZC=);YSh4}IRE@o2*by7JiB+uP1wt}5ui{l;^7 z(lw$9MxVimBmD8MUn$(1$9D6pN9QFGknWM^aX?(~xlP&EEpSI*KoZA+_pPy!oczZ&|`R3N!cCi7-bfIz^dx!bY3i%CRDsg~rPdc<1v&+>mV~ux#HE{+#&HKrp zK>%!Q78Y=p=}#r+&b)7bIr0&M*?q>~Ne-6W+y>x)=x3=L<&p?wJRJ@jcJ=r zHd&u#O(K5;x#$@gHHV83DyjiWNyHb6a_BL2Ga{`UQkmSVwRyYCBG!FOAo5wm9@)eo(*|95tZTk9#ChpId zkQK0HcuztwyECrw^Mp2-ZEku#OLVMq80-3mY2Ikc(bKA)_llVtCfw|7B4ye~FisFn zW!N!9Pdf*a1t-1GwtV>hMztiig}Pw)Yb8A(d9}0R*v1W*KOE1$$Bfh?=q#3*Py52p zCE}3znH5RW$K2K_^RJroV4GkyZ$T6D7-xJm)Vxn_Nd8*Xl*ingBLV`$${AAW zPYP7$mDp(D-ww_~vq~}M4Mse*xzTUN&0pR;+d;5Hoo*IMs%52;M%Q?DUT42kg8$@D zbe;s83;lNOz*0izTtSYZ*?ebRbj$q5#b|k4nY-d|aCtLOB|^8`iATCX@e8){p$fDL zgiMUc6S!@FgxyhVYN%?cnpRBw~E}Pc-s#_7kwOsPXvyA+{OK?Qneo&L$ zH{)?68W(tC`$sX+y``HluLW$6Ue9y3HHKN6O?5bIqTY8!mw7gGcS=cM>C$#+Yn%Is zB7i2_`D%j!n_E>y!@dGWbB}%`XzM5heL-*p3XY=}9J53w+fIATk35#I}iXb)XY3hV%ZR|82vw z!2CPbslc)BBQ>e8p#m*ZUQsb5h)lMiVF!!$zYHoSH83tp5r2--5~XCGbf?Ob`?5hzwp@3`;(|$SVY*j$Cn;qs{F1a4DV$cw?iUE9vHuF z$Qcm}duPi)is?ct^wNXx#7do9+M;2@45}2qCX`sVQ~ier@mcE6O&Uk3L1HQ6UPywQ z#1E%qMGMza+l89yLTGTz!}v0^JY46SQx>zJOqw;9=DlI?nbW!JsoUc2qddCiGp`2G z^rKYWllg-M4X`m|w>BmWdh0hcbhqWZK*w~$b64D&-3D^cMW@>2#2!r`XgEz&1P+Y1 zFYhs(N}*mGlbJLS5XeOMOkzfGR}jM!t!2|bJI4KUd5h5Nidffk7wVa4;gyQ`(lM>n zaH8ro;7Q-d?BhU%q8c9;KII(#WJ;MA;nmBo8C!k97eHkksop=nMR4vxA+euoV<)PW z{Ds2js6ryAQ;F~Ec#cy^a%Y##^dp|BHohb-ycrS5OR2oRq!j1F(yej5j_|!)_1&)o z@&*lvQe85Mf8FYfIHnl$k~qz`*T1t}xY>g6(CB2_U_dpS()f7lT?3!?ELUc^wC8}4 z=GtOIG~VHe6>bI{yO`2ZntCwcPioGN^fg-=Znz+4$(rfOuFbOK(8cnJ-bGDTQj(K+ zgVQhA#%EzD4jDzFCQ0LyPO{JzH%aYuQm6(0RI)Jt;UP`OihRD$7I(WcEFZ&2-Lneb zu!^@%lA5tKgc*S>BW$WLRZIbY$dr%k2-IYe)JtZqBfX1tj^E7$Ot2!3Be=1!$x`=B&lk_?pAc zFJNF0C)^MltIy;4cFN)M0%dTKVSmM<>pf;-icQnn>I1ku$O6~< zrz@3NlkM)xwCe3W-V;AESH}-SGpaKDM}JwpT=%m(H@+uX6e0i=J%t1{8JX0z9Yta` zew=Uv(@L?@7jjE+I`jaUA=hC=$gnKciNWulh=yz~On6j3 z9TGPG=h6Qge_TgYWs_U0GiW8>ZT-um-OOz(Z6kYi}r!+PJTM<57~Q*?qPNxHgTo)ExtN?Fim|lhJVd<<6`hdjQU&x_2yc( zZ}HufFf{{ui_{)96%7+Y?mx7FlF=snW4-mfU)MGH|04D8(YW`*y10%S1Q`J<_omQ6 zQ2!*?WpX~yV;L%uM51Gv+cKpSm@~fRPMJ2=NIanpbg3NNGBL`oskE7X)PXN^?ijjY z6cHCAVM(N596^c5j&Mg%Fnze-^%eLS#H2W(ETIj96JzuF$IRsQ&jXYO;)q3ekC(eYM)d zA;h~3E14l{hiU&yUTJw$O6v!t4@=#@ioWM-sw=TVI!u0G^^^YYWSeS z{81#LKf)32cfM`IHuU09ySi1M*8C#nF~{G8qMwko-UK&Il4dJSpP9J)bKY*El-|;6 zre|_j+>qNwKC3IKz_>{WoFIN^2D>7L{D}MYVE?-v8A&>VfVzWxU|*BCor*GKuvk)9 zrnwr;mHS1X-mc+(Zf&jhkfKOMfkYdMOdXAwxZj=xun`A=YE;l%?o0UeJu&4idnR8i z0(t)r9xbH~3)iXqGCa@7^4@vsDPUP3`Gf-#&)s&UIhi+n%t;U&DD8lzHzP z&PV*e*4(;5LBWPQp?S@*eZwauhJH>z2CzLk$`C%@ok#si81Q%HdA_K#H6M%?K6*|# zcCuRk$gV76z9xH8S7oAq-009YK3&s{0){)t{w|98L;mTC-FOOFj5tYg@}WI3@oREC zS}EnV>AI9EYz)W${C~RulxDWnJ}E|!lJwZG4U<;eQ$EtA;X)#$Kz z!VE;V3&3XTJ)F0>5IX`DhqI3Bk1W*X>_B{HN0A6pZq(xleS50znUlkNi|kbz!rTG5 zbf#YND{O&n!L`!M_PXuDa-9y;mo^_SpEEu!oe6w;!SCn1uY(>)gqQ*7UB3oT-1!eT ziD_xk=H;>=qbWK~KvfUkCXe}FJ%~Bq)wARGVW$8!`6+RgAg_KT!2Xq-?-%oUSQiGq zVbukfqb*xA!?DK+&o$II+F2v}$TfrL_mvsH=MT62Z+QmhOw2hx>@T8OQPIlO{+A%k z((A08s_r#g_Oh(>cduuUdtpOHqZ8Ni^{SvFy8JzEx9zW1sRCc@ZaNxpZRL#uPiM8a zetp8QvHr|cRhPKu;Wj8IH_(5GcVPlZc0=s?;P(^V)*Se$qVUyvwO(p-jbQ1|j;09V zK||Y}oyw0X>KmhNfyO6Ne_~$9UC!T;pqrl|` z<9qu-0q`0BYhworbo^^S#8lBkN&MKsGpAZ0658^_z%iYMRMyocfRp$%)?-G;H+SoK zJHBO_oeEb18zF(h>o{Xd7dmG|MO>w2zt|T!etpQz9O;lLa$En_%m*8KhG&E+RCmE? z>dN+&eUSp3*SZNvG)9DqdpSjfvkXDxq5C{&I`>Y&a43Pciok{Np4|DOn0-V#nV^7Ls=mYWFX?C|p30`49j? zmiZ{5@W@5sjL9^`)NJ4gIU>X2Z%Lf$W>(jN*576?C$Hj5q(^Ls_09wTzu{rV#bbfm2&zbk*=9_B~n=GTg{ zK3@*(Z5^A#bQOQ299&efBwN~q8R8M_FD2r|965Uy5{=q()Pu>@0GmI*v^Qfu(>{yG zNI)mzr-PoVK$VEWglr7LSifU}t+RH~lTe`wj-$g^FO}4I6e6$O{=+RNo^sl=)HSX$ z_+ps(dmFe6V%nYQD6=O|o)@tC{R>2l2_?k=v6_{7cwR$)4AqUx9Y`WRv3g;)l@}KR zD_t%!eHRGFPlmvINDjbI=;upRq#)EV_~*k;evj;8>?EgSq@k$7f9rNz|5E31~UZo(q7#$v|;D2z>_c~0B z!~VSS>b72C_Ll>;zn`2V-T`mftX0TLTyB+#Xs>Oj5dm00WOAo<{p zWlt7rBRatodggciu=c=AAqhBvOaH<$w7zqRvvP=Jfo#RGzp?5gaiS^WK(R=3=u^aW zNI2?`=Q>6@wuC^-G*&s&Ke7j(Bd!Tt+%ZKt7hC*IoC!AP_%Eots|e)v+W(;a1yun0 zugJ;;d!=YW<(O6fANlTxeD_T@N{s8;^*}GoS@JcV@cv#}IG3b_uIjtRGz;i2+qZy{ zD%b|gtBNske37$+9qu4!!^=@20}r|}S*{s= zH{rrDUON$A`oHaNM3BRPO52(lL@EACB(P;)=Mm&Z+r1-ECSMx(65KBBrXzxHw}*yC zAQD&bf~l_xsB|uBuin7}(1n`-N3@g#=>*S_pHjl}r zVXGMhZ_KEPslo8cJD3Sbho&O2NUhhbAHHz-x;?wBrFQ~;FVZ5*H|v&x<>b?c@2u9i zE+I!F0R3mc!dJ`C1HnFbt``nxcu^N2CKdh0;QV8y^-qQ+-uMTO_FYza?=hbP3Iw62 zTuozL=a5<=y0@<|(xGc7??rV)yj%$CyOs&ttIbc;(6T}>q_SRlMPZ|}&hv`*c@~|< zKL<=&d{=AG4?n&PB#=jXeeFU=Z}gl!t%YelCFhNmK#q44`W2f`nw1ZwXJz~Si~;la zg9z|uCZN4F8C$afSv&Ks=m~c}Y;pa)Fs^7TYnfpTQV;4h5^Pbn8rje~yC3H_vKyg_ zJQ}5_^66g-l6%_}mL=k(f6;u`L zN(Fpe+}VzZRaJcA7JA5bVS$sFVUEA&u54n7Na;Q!*Y?K7UYS)aN+*Z8A29f63VIbe zcDIpL4=Rfx4kS=!`JN{6L-V0dftbXK9mnaF^WnqP!D=0DSnMHZA~^={M0OM8Ga|v9 zhD}FIyB*ay;Y!R?Bc1owFm0vo-8Bw+R9fdp8Z!9-r8F>gc3oTuGn)*kKY-&KNRLLn zlp0-Byg9fCpVYjVS{1{Ye_eQ4pu%F6H8_>!L#cS}-%s-!IU`FMU~DoiRy@FiCZ+WF z9Bz=d35;3Fs`uxx^72rVJQ&gGUXOthaSKC@+%Wq!q27QY`*1esE(JN}{=QG;r`LbB zFhsHXv|Y{!Rwp2}-sJ?g5J*Wpj5;!YecK`!90ooPE+V&0n;iz9;=U%r+}-sH2BEE2 z#=e%>rsHSS2%9!-eu>kgzOGHqOF4yh%enLON(FH1%nT*IFs+cka+&x@^TcT<>tH*D znSx6L!VjPR3u--boP15T*JbdtQ{3`0mn&%8%WiF~uiK73lHh`58{u{xOKW-qW-fSm zUU5yzW6~pKD0~r_Zp%zAT-c(Vs<#u!FdCV?LdEH1(fSK_@!1x$ubF>rXQ{pj$u2eQ zXqkC0=J08-VmBndx7IrUm6c9FPZ^-@kK#mLK_BD6^PMD|&eZOpm+`*)s{eVYuAQ5S z>7>B%2W`H%@56psGxjH?*e^0EGm{)Q*3PQK%CN>JXS_==9g2%yurbUCBV|)dSP%!muyD|W`-WT zhTkHks{V`@V$;Atsu>3d$Nwf$hWs1bGM6~936qtR3flN20wK@<{*qDI>SAd`J9~S0 z=!}s@NwEOgMJbo9^gp(SfPJzr2yGs>s?3Y z0xtkah7A>Eoytvjw4k)jJDn)W0WQ#gE%4|Ux6Yt_T{jHk*i877=M5eoi5K{UHxKh7 zqa3X(isRxjH@T#s@rW(1Qt39UCvYi7P4U_lCu*4bQB6DkkLKwzwE~WK3>7O2NeTIrO z*{Bmz#yhdMblCF?4q1y1fN%{b~)(_hu2S7cKjd{J*N+h84-b2JQ4Yq{N<0 zN%#ESJyql_2)sr(qMwhp2m5w&%)+v<7rxN|bnV#TU|HL^qhbpe22!*oNcuD*04&w}@QD)*qCo~2P?{fU$NtyNLH|!u0DV#-7#3pdjS*bF z?1>dv9Q1Iz9oIce`k&L?5;6xI0Utm^>zkC)^O0HPYfFMC~rd2?4PLh?3&>%Faq3J$P2iD$u&Ybz? z`_9aD&X4)AuWM~+>F2Gd!d+E&)e9>K_ixbR5 z_58`OM`kCPOr?+ZVRTzeeBQs#vv}I&HgQDe$m(9aSH{0(dW4>}Lt>Vj@{*Rx_E7JZ z9+?Fkj>Dn`N5a7V6p;n?+*g5OBw$J4`H-PEe|Il`qMJE@YQ_BgLA4|}{KtqWqta5a zaqod?W?I z!UlvOtcO_!O2oAvtp5V3Yq~*!^0_9M148$Vjs#=fRl?^l0WhqR*O{atIF(r;mPMv} zSEa;DK@P!^p%p8MR0kVwkO)_E+r4m{26eu}GXTevk^g(4#_1}pdq7DJ;Wp4O19E>d z*|(^Fe(a}G8RY8YzT;${J$|W%PX8-z?N!x1%x;SXn&TE;c~p_WesF*cJwrSj*!#xh z)sam3hX`1#ue|=zDN%%#FbrD(VxyJVr^DY4@C^M>sXdOC?zpDhk?ho|bc;x`z~17` zi|l`I%^kt5qP&Av1=(>r&NNxs^qsPIFALIMGl9AZSa=LrVM0<5Fn2wNzU!@u=xBL9 z@z}eTJ1Ud}&77?J!CT2{k*9*XB#F7{`s@Je=Ud1&)O{b@T#GqM(07`1Ofb1bhnr1x zp~tTTv`4=ef3LU-@>WLQ?Bx`asGe=u!DKmeYJlvO34xVtguj!2mrFP?QODn{oQKojpd(fE(K6D| zNBcxkb%x-~mq8MO7iWIAI5M{WrKYB;L-_51jrGe~(>fKPsEA<9?!GN$%vmAmv!cQ- zb&<4fKIhUj*c{Fz1!wKoRQi7H)RkHXuGo2m#FxUfS(}j+XE>-Y5$jzBp%{IQPFC_}q zWtD~eENW1yy8<5km7E_N#({4v+g!UUE>2>K`g0LV_vGey(ntvl;i{6h+zrxf6-s7G z<=c6$oh@vZezza4cXFvs6le(KnqRB5@tk_p5!hNJ+o5L+E)s z%yXJjQXaR^$K_I>)eX}M{Gtq=q{s9zEMO!a5A3P?&dJt(Dv~}EAb^$)L@3%#8|R}Q zAms68(8LSZ8S}OvHlct&onrjSMnY~^k21z@8z281E-ibyBI8qsu2neB&92O+@NgD* z%c9CJ%l4U=JG6LGs@&&D71dBYcQ;Zd-T$mLr)KuYkF9#GziO>x*$D^78r$019*P

    wfkLaqgC;r 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 z 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 literal 758319 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�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

    X9~jHlzW$NY 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

    EauDCxuZ&zU0M#QOVog@5`#0s%k1qVzu4 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%0Dsm5YB#wGPTpPL!XeN zd^+or5?%EENvS2zUsGa@0Zd`Y@L|ZN>WmyQ>EE*+muW zpINEM=UvNwx^-iAsA1W&_-Vh4D-klPZw%LUR#<*U`Mqfl*!Q_tI_qTg$R!#uRkpq? z@aue;{tKX-vc5G|j(4x3jgtR+Dge8YSS~3b*q+OAKG*v>SYl1<^iQ7 z9*YppL1bfG6d-#$ORWXzl7+Kn=kyPRLLuirT(v#IxR)I@k1$Y)b-a?d{4S+NBVq-b z^vg-UF645NO}Qh!M1d0 zE%{xc@$iK0d29gkd*0WtXZ_sbF-l=@Hv>?3p@)zf3x4&u$;V)i4KWVpJkvof)nRC=!1U%p_B3x}rg!+vE&g zmMAbmh<`VyP%{SOeys)=V2sAfD6Z@|2eU{aLGGyhBje$L%E!dQqj{z9xTxQBG*VL9QOQ@@ zmzOildXL~S4t!p-uj(>l#ep#D-HjMTEIGgT{y_IP;{qe|{L(TIt2wBdT8JZ!l$Tw! zdKD0TWN7WZoYfoO#Rf!rXNtRAvHowwG;3~|RXN<%0u6_Ln(Oix5%f$P#`C=C)N9T>{HPg zu{29SJ;&d6pL~_n#i+QHdmMqQ#y&68eHUP)y6+bhX9{~0C+i>FH0EU~+suGw+{8gt zBFeDY;n)A87WA1vwt8*hl%&n=pz4decPCn;{auP2r*aCy)p_(An6 z+YC*(e#yTliuE>qHOI%;g@?87iuq~0K5z89TIkC0)s~n^oZ*1;yCCQfO$DOqCY7Gc zItOUCU=SGz>AX*-DIbBe&h%8qqQ94P%83f<=RTkM3qS=nJ8<>5(MJoB{M9$UY`;6- z+;&nlFUbO;HlFpVq1rXN>BonT#`!(9amp|5R!@h=7npPo9@>eknze#HA_9W30|8qa zdpGy4RPOf{OiVSXWmJFXOJrf``D{Zg<=o{IV=v2bsuNY3ewVjn8B-hnw>O`&R%h!AXR=wUeD| zCOU2&OxwCVkFbQJ?92a^h3OtXAS!O0u(nlOvu6&2*Oz-#Jb4)>ws5WSHk+FgfKE9-)eMEI{EhG|>u#2Qct4^e1(ppSN0EC0PYS_a3YVjC-=*E;NBY#nOk$bsHVtLeSn~4@ZE}OQ4iP^1)L%@mquPG!DSqmN(-~w+Mk3Pd> zKO$H7vRG_U!&9dP`<`y49Bk)iK>Sh`@huFc z`C?$5IX`-dnd1UKKV4sYM|8@_n`2-8<=uk0+3dB4mf{aaQw&7p3krw$a8=~wi&8cU z5tsYK)zNqYnZv?A-xsDN#2|0j=qkjb_x z^bTJC_+jq-igC}cs4%2dZJSG0aozi;6_6HZJ8l+v1>HG%yaf!cDEif)>Cb4}nm-D- zAh%BzvI1z3HfU^>+l`k-8`^s>!*9N}bQzysph8dDj}1R}lYI1?#m0Qx?F)G>);Ajk z#{b&OoDC@pl#t%RS#e->H+HoRwFPvT_IN&T4L1$xkzVjJRMc6v-``v|Ax(R;wzk+T z?YvHRK0WYEc-fUq_glI>FwlTT!bvE`p#pc4K@4sFq7~opw&@V5VIkj)Az0LSe5u%h#a__h7 zzvtC9Ud3g-!w{79)30XHoT8<*>B$fs{)Mmz(3tf+d4P%35{~4w>@1}@t67_6S-gv% zr69#7EYMS`+rC%iuubUYR-4)EQ$^WEYWMb&Y%WO^1w>qQXgHNKBi5TO>0tJ{&2T1G z%)y2{?Ps~~Xm8(7YZhB+ePII}ffEe~a~A?Xgj{j2_)Sur3lv+omOpY6oPSibT>Hm^ zhbJ=P4>fxme5h8prbKevD00(4?^hWO^sO?_FEIz?KU`VtTQb8BBAp5x;qX()s*UU=72&@C45sb z+w7amo$|8p`T4nk)%nT7k--zz^|m)1Y5s-ts8h#rh6PFcODCGHb!LW;wD$VD;K$b%_GVYG4S?NbGIcD z5?YptyI1{5Qn6-dSE7-L{K}N-JQ>{#5rNs{C5%H~RI{wjPZ%_H8 z9+)Un9~h_p5q4l!DoA%=ZEeOqAW#1wB6MXp$;OayV`*I}?Y1aFx&=Hoa?4)> z(nCjz&UQ)qBAgf!mysK-YW2j@aFs@XZWb@@5swSaML&jA5~bw|B^if0PM%+)j(fiz zqS7|cas=hJot_y^uUsJwnpc%Na#b27YJ)4X5VovS70fO*ixz7 zdRi(gpd9RYoawX$$@I!D!BEhE$+=fVhn+2fPwPx4qA_@)6&%}wh!96;zk_|h2kn0@ zRmUv3ey)e^tmeFj2~w@e9BwZ^HAZjeJ60oW;JWKw5i} z;J~}xhfZ71V{!$B9qPa0Z~goHGIA7@s(3X=!CZ*_i1opEKI+F2+P&wol6a|@?$5!p z^Cl>LRidYoYHF3Tszrcm+mIgIYa`gX<8<`fmNY_ZbL_j3<7z6Iln)ogs@Bd2XqKCd zr8(r0I{uKps4uC{oU=81=!WFIe7v|p(&R<{tcBL&v@H{hL^T_~EQ{iIP49(EY}U&Y zE%g|uEZ*n=afMOOcVp$&cjCn1B+8J`y_7psWvLpc_KPlwqFoRuZWuX~eV&QGl;qR53vf2W1 zoiX8Pk_=1GCE!i0u9c*6)X1)Sbgy=JOBGURoU8d5_uq?>TBqmol>U~lfK@N;+c+90 zd{7Qt%{=r7oP9|rst;_ItM1f1(UV0pThAq3CWWPITP3B zBwO#_{zZ4U7i!A}k5SRYm`#g{B8t;6MVXubUSXi}5{R-I$%D8ll&?ICeuC}x>6XUI zh}Yz881DhonUrL%p*yCz0aCcafXLdEPSN7xCQ)pDZpg(_Q-n$X zL?Amp<`d)T6P_Su>|l2=2tO=UvHnIsCMtR%phSWj!XXkvRIhgy*Y@}By>y&1a8+9U ze`cn-8-B&*UsWax%=p4i4YX!!C~8lZIAI*$C=nNG@+<1ioGZ)B?P;JX?S&2AHwb_H zhB?W{a+Ou=5jRi%I~M?s%ZH-qj$Bx_3*Fg^MP@g*#k^yKBT{rkquVe9Ri)sLm~Kq0 zbt&m;OtRfT=*B|4TElVYw?xbxyL#dm=!b9dDp`0ZOS|7-Z_bDmvGE!b;jgdTB^PPvxY###njRkSY`gL4`tEjIB!r9 zf|cy46PODQYOW(V*$av5$oCo!x!XLI+~~_ZF(db_cg3QmEW$<>(O+uCa(%?T+7-oK zVv=yVFI5uC!jo`TEPuZt^`kPf4%t(m&kR>oG`oEa&wu}>Fmw{w+0XQ@hXj0Hz5Xb+ zvz_tgQ~BoI#{H}FLy)WURS=%39#RAGON~hQLnF#^_Ch z?eUkdC$yQSe+$d!rq~d z`VSLTrg>#08&4f%|2lZrE+4si(IP0mL{YzkcJAgCwK)rQla&$`{H3f#3ouhSHxPE& zEm$RXQcq8rc-6H}hr8WdH~z+d&HtbG7^qNjX!(SvAs9-s%T)l+rN3tuTA?A`OWS+9 zY|LUIIHZ%0x7E9LuqsbQlJpC>bq|@?;3Z4o*8C|?WiR#ibC9}^o^!TYI5BY}YYb%N**p(cr?NHf>Z(ER9V*<5&pUZb<# z0Bp+M#zAh!IYgU-+@?(LXmqze^3fM)ovSF3Dp z)%wEH+97Y}d|#<-k8&sC^~#LlO!%4W(eT~umP^+gvj1J_)OGadSpmb+0-KATFUHGq zoBl6j`a&T)uYMbnt6{%JS9QKZb4T8vXYaM!ePTU%-yvvYs*`EIKqq5oLOEl+rMF?d z*BWhAk^hVyx3yQ6ld;ka`8;0bma$V~pt$#5WKW(s#L?pjS8Ow*lqS31ALHs}>7D5K&a{6tAwm8|o_c9&KGyoBR(aDD)5q|- zzx%w;>_fUrTQxuTP2SM9ZB6Um*;)zT25ueV`NX}@!B+n?PBDW3#k}I96(VU?Bf;IP zlg7W#v>qj0Fj+TQ(fDc1F4wlDdLME8*;1%N?yQL&QA)*6if<5%}?gAHoj=G%G*w8u`s=gA z0@LveIhg$Q9u{tg0D2+86#k`IuOOJa(Z<4hoPw+zRa2#O?(rv3SI`|HskV;Cphgk2 z7964o?C!^%6}yR&)b^_urjNJ=BDR~%=Pey}>FwGHZI^`p>#8jU0Yh}qySU7qiPPin ziREr zUST0a9#F(lVYi$?A^+$79HyterTuIu+D9YN!rjn}Qm}Srq-vWXt;ski0@weXh=&i7&;I|@;{V#D2U%0CqQx%LSRSlh5FG$KxPkfx$G0rV=XXJS zsfAH{vE{e+B5qlGagBB?d9TFUvBs~aSaa5t6n{?e^V?dS$vPrdOYYIu3SL0(F0Ur| z-#P7R#NJ9?g*q0|2_ap>%h(7G?-gRo%`PRJcc5N+Cm9SaQsY0!HU^+(;v9BhcqRvcSI!m-Yf<}bJx8m(^!+8};bLo?H&psuWvcs_3t-7iwE`7HCH}p~;1eG-!X(G6$R=63x|?z!D4)?cnl;OUPr zl>VXCaUvt4)@eqsg>g*HJHh_2G9C;*99sF)9m{ppB+*7A-8@m(z*K2YOi|zvO zF!*WM0sZ~#*YH63F570qHD%~CpY(_Wxvk2Nq1iI~e|kAs7+neS}H3%gu1r0+*@?fZI_ z|F}A5jJ$G8C|5fXY-jfr?YY(!W0+1eD1XF-y1Xt&;c5Q&caG4ctb6ZQXXR1^Gp8?U z=4(p9e+KrCAZ|K+< z8fA+G|Bg~Jz6KJRJ?lIgQk=DKy{rm0yJ1%hJW0{AjE(d|A};l|1_v88mGSEdUjq${ zY3fYnaJJfXP7Cql%jRdV*hbL@Ciu2$WE z2T@7Xqdb}UL*4phcue6xT>qJMk1}5?@U{A;MB*Rbe*HOB%MdtJia+A>Kt>EK{CX9c z0b-BgqxO7w*H-h@At-PXUYYJTdvluQDqpH+^<|g(kHvsqt+KsF&cN)uCj+;ryvz1b z67c3p0PdxCfyKcGAk6#xL!92w}Oo#VIur$7sE=@T4cRQ$Hp-nH5$;bqDyQ z%yz9kSrQdovo@p?A+>dl>gfZt&-76dY>*$o1j`CaD36c665RTLkDZS%^?B}T_FE4D zRhRq6G0eixK3b0TIecBaMxHpFnGLUTF6=?ZX(>1{aolKtk0azUyr50Kx&N4@xfrQ?nC#)pk2 z>+{S-n$LqofckxR&dOuBNZF{-*#cNv={yI1Pb!Rud(?RjV+)4q1}v%`CGD(XWXTis z?cEkt&6?fKBdMXi$DzP0WC-_x%#gYNtq1_w3mJiK^G{y(zhXgUgz>qZ)>H)#zpM>- zBmEZdf`266CGeQyfPSKa?_rJGsYb%dsqePSW>lipy43F|e%c zhwC`W?l#wcij+2`lbb$-ZyC}DtH1^*b*;ND*20!j-wo*Y1>IqjCb=L~1pT z@jm1>WEJV+2ky|an=34tY1~827~s>}lV@VUB4g+VF{hJx9FWHVoT26$+1=uvIw2vj z1Sc~HVUrC$eNk$qtD9kGxeF-`&uz;otH~>e8WWb29Kx8|$zr?HgITd=qZl&?@(fGq zXrf&TZ!nvL5_t8>=;iJ5gyyd=>CeM(75DTDZL8c*Is$=Nxogw=mtgh$>M0=V_W-fO z3=vy!*|ll*6lmBM~`Hj1yyfx9ZF=^s>0r;K6)N-RQ+{VgwNVc*oe7LpJf3GoGR$@ z&!be^#dJv~qW3nNPjaN(T88h|%++ov1>Gr^?i@om`V~X7Rd`Q149>K_l+(OaAFI_$ z_81lhOxdKiM2G<(i}MeK%JA{=d5U{@ue^V0-5m3IXE%fDR%f0PCOb`~%LAw6e(zObphWBIPy9!rXJ0rFRw^ zFQaq6MDFa!0B`UsWH-wn?~JIP4y{lWkw;5*H`jN4WPOc*j+7a@-VMS42py?DWT#~8 zMvoxQrJ_;p4d8`V>h+5PYa!$-4<@30CYd_eqmC-e)!9p2eY)V?zeUFoe(NmUc_zoD z3rtvlQHNJ5B8PWjF-x_GJ^}r<*cTk;TKOB67sG+!<4|&6inxalFNR}g819lm8u}+| z-kW+3+@7KX1hR#Qz)_!T`E!!ub~VumCitqR>yyN%PD!7b96FMy9$_EI+~9~=$^DH{ z`+A(pdsJvY;_u@Bq|Km0sn~AU+->!|c{bI?@h<07eX03VH28*Y*FC`jmivtg7)D*B zMuPl6)*L`zoLz%Q961haoj8AdSAC?eRicHX;X-PY;O&#Z=G(31g&VwOOp1MtHR9Ka+g--(P2Y}_ojuN$ z+e&N?pqx3t8Vh7=B{^3M1D$*^Dhru}-F15FyVQKuhZRjJjs@yJI=Kyn=8leNV2q;) z1YUwh7~j{xeWi7WhITv;HChD8@R%EXv^HpEU>6^?xMb66GhDGg=k1RrQha3rYug$q z-`7k!SHp>1g1Q}jFj+qc+(|RvcWLITAdYIiaS4LOm+S)?xX(S+R#kFG`_LxFm07zh zBXmw)8#1(LInTWDVI>lK8>}rhq`=kIl>tN$u(yX_10kW<&&lNdP)Is`5 zyG29*jUrX^39O2gm_*Hm=HIc30y%g2`Xcam$Q_iA1)^LbAnzUmyU|tUO+Su6W?;450=g>>xWlkku zG{~;h0Z~xK`D>ysb=ey`=bBB}H})Z@uA_`pC*3a$aU~{9jiHOwwR8;WY(E4)$?%wg zdaooaEI<>sZ6{iCSMz4egU)}=ld^Zx{Q6A_VzYR;7yb*Qwy>#0;4yq@f9x!L=;^7y zSb)L@rXv%2oguzhf6+t-eVpazzU*}Ht4@7)q|i1lDIdr&x=`lr37L*x15*kzH@7rB zZO2p20YL?)8HjpDiYO<^{6Sz8IKyeQC09>jRf@1nFdh9%D4~&StiJjm#mTSbshJP1 z-KOGpc5>&e$b-4g5jeldi#ODbOP_v>6{jw$w+;o%2gZiL^F1M}xaV&C4rsIytXQ z$g?Ygm=>@YZ#G`<*m=ya?Y)#q=_ike(IekBJF$DkVaBMpdkbh0642QY=!UYk!Gy06 z#kx~u*`R84Js?QWI>V|_pgDIz_Xc<7Gu#jn zYjSeQE3fa9IN7H?=MfP|>9;q2u`5&-;0zrl@JfL**WUwvt?-=XDs9fhNgT zVAQ4tLI7xuz~r(WX|P!+q^(tl0A_Wj2?uT>Onruw}aCR|4>o!z%^9ivHMlNrHxsaEP$kAjUI zeYf5v0)gqRZpnv{?6Aju5!K(4X9oGZ_`Mq5Uij9))jPyuL@N!O{rah$4k>`Dbi@}w zBLP*aMX~2%nv=3M`7-ofbiAN}qWchBVyynF^CrCIMPqA%Fnua4Q_^YBTFY)~eDL=| zWK}NkQI17kIr@*IFv0OAr{z;3rluwgI8OnQ_VX_Y;YjvRxbBXzXWF{D{rHEiq?^{Z zwyN9kpxf@~?(&b$r$mKJ`S3>go_r`FM4&ZcpY72X8deFXzUXo5sUfSW-zZ`LiVrxk zN*+|mz~MMr6DMV*Zf)m^=013V45v2K!s<6#=9<7=fEX^?U%8*@OrFcDe5#q0GWoS~ z);<0BkVv$0V7b}~s=6B+SqtIh9K1puu*tm46cNyjQ0hsl@8)v(P0jnA%&-&dEE z(*s_j4#!Sk4LUvr0ERS z8nCIMi$_+%SV4Djwfjwiu*s~Y{Xl-WEG}{_9uCxYIQ;w5;?N8Y5-uHyk#rp7dF~=!K6F2xjo-&y|b}yy*k_9Q>kMItiQje01Y^>Q=MvF__g(8 zbMlVK6Y3cWg0cc;c+UmAW_#R_hJ8TEL8yR4l(|jaoi32R)7}t4Y-#W4PJIvoiuR9< zAFCYlbi&HRPC%Kb93NB3Ss{*n{yOnz34z4$N4f%D`shD6i!kdv(w_h0QH=R zAD94|-`E1o){irpfVM9?QccIZc4~FU5X)64PrjTM{b)BpTDsA1WJ_V!o6=zh?5i`I zuSCjmb;@j4t8eYN85KSbx@F&UA5MVTNo{5@W@seioXmJF1!{i)@aoMGe~Z^D%}P0o zmf?BiA?F7Fz03R?zhDj`WqWh)^9IS6Z@FXRW8;&NpE~%O6$qaf>5f4WNl<%q-&`Gt z8CN-TxQ4GNfB0FI?wcIv2D!~-+)~f?{CJ+Mn?3Kv!CU==%YO`FN`j2&y)@i&@UR(mZDPxti1 zD@pn7Nqb=*I?qXc{(q#s2Rzm9`#&Dh5)~PRD5A{B2pL5vvuwx8%9e4CmDNIK2-zXB zM>seRQuf~C7|C`VvNyl`95g|@R@E_z1FWv?v&2{zlZ!Qi6f0V&2!Z7&On}ts*Mf%msQk|!V z-M!d-L=g7V+%BF=)z@8&Z_>%Ij+zW-ZNk0bmelHn&#G(@9c#vXeb;=$If$vwlatqN zZxAJrEKRh8ZxB(`0{pWc2k7Uc-mx-2>yW8tpZ*bc75#Gmc|Yv&R4iar$CC`agi#W>(p7cKaXwkw zOrAxBTLis$lKn0!+$vwly@ew+Xho!4>FS)pAiO$0rj(b-U(TRYJw^}ET2(!$x&EMj zA*rQ2M~D_~j*00ddfP$s!k;0`!r6{48Xj7%W`jaMG$cP|K=`_Bp)K<^&Ib{x<$UyL$H0;J)QFON8h|T<@96# z@#viWS7q6=rR3Wg8lQ1D?J5dLEx>?aWJsJ5y}7u!I0g_!-$u{U0B>zF0KRV1G+1)K z`DFJpz=nG(Pb*aCeeNsc&6^$C*ZKL?NCXT+0lwayu@=U`X+5zu@jn z@!I}DE68t|?HQ%&Lx(Y<=#!JM6sQNRIG1DmvV+NG&;dg?beD8RN)%_lzuNb4q! z0gl4lE#Bks8&1qDCJ3JTFE&{#`PylYrU+#XY!>_wS+6ojUSXqI83A;ANbj9%4r9mM zwrf3qreV1PqTv!5To%XGmmdPhat=y;=zW9bAdAj3ywm|RjZPE?b{gPhPda%OBtBpE zT;y(RZg<-$;API_PPZ7*LM*|b-PYkAa(c+E>n?cMGdETy^yOD%A59uBBGd(nUfsX( zQ2PYvRfws&fMvL}C|!%+m4{dZlYq@LEtabLG}ga`i$Q~kkvgqs(a9<5$b5#CNZUAz zWq@xzOzu`r;IQitxzRN%4Hzx4oi(Y^93k^ZMydqoIaa-Sx7e4&neHzqWK+IakH&fm zK*?;BmUG=J+w~DIfNXFH%TwjKLt(y?TD~w}riS6Gq@1G8(RErO?o-ac4;y%V+$E~t zMhosVebv(vK$psvMJ>A4reRM9QMnivfR^*tu34nR4OIXmDW9rb!lG-QMc!HNMvaaE zR}6^;=g>`EcVP{;jd6a{?u_@*4s#l-sQMZ|5ovjm4GG|s9tA;0U4>XSnXg0MyUjxL z_26=EmlIuVgmIhanVi_sqHQe>_%1fD%{{cn^}pSfTU=!(>)e`Ho&->z}xNk z!er8Vl$C5jjZuL^l?^64UIp{>RL=yaO9*pqlhj?5(UK%I6PWUk{0e;~5)?tbcPweE z3ng{KJ=O3x7CFX%UbD;gZELm%GoKNT84*X+S6C@$p$8ohvJ4k|-jyH-G=dRaKA6De z!J~#?xv96m4)Lud<)IFX8)kyw&BsGuz;>olUAJ?tetYls#YFP-!3`9P%*RCV_Ejm? zIuwUhscnmF82!4#C zxWpc7qlu(jNZI#`NH+DNoPOeLt%3(SZsWWgz~)OzN|FGM5e999eb{(Icmtr3;RN^q zg*(YpX8dQ3Jj+J5fE^i5NJPJ z2ErN5nyV@j>Yz$!u^(++XI;L>0g|7euCW&e4Iy119d7UWtz&PmEZZ&i=*nE_?ijtX zJ9x&hsh>Ca-Mgz`mx2pbNh$k1il@yOz9gh$ytm*rHa1ZU;;v+_tQ+{~qG#K6PqS*!k!O7 z7Wi)I_u|j2JmB}qc0{iGo~kN0h1#CR>W!*}ewB%~Ua(wt_X4m>cvUi4!MTzI;$fzD z@0Xkkf`=1kg!zUlQ?&(jq8}Wktx(e#HKfXaf!&f!{VtlPT_Wn|$Q8BC*S;cWijauJ zDw+=)J%^MXXom#dUtHT__=J~SXYXU{_4{H1_$jLaT&-CTK+t*CnYPJihEd+GcoA4D zenu3a!PvzO;%$TgaKB(uG?Q^>ff+|9+_8Ll(cE@Yd#xUTo3O79t;G*G?1?XaIZl?j zRbcc`ZFOrW!TOEcNR?W~%3O%lCD*&4*b&bO;HixTicUyqOQAo#fcXWejwA+(=GyH| zL|Kbd^f(9)dIRK-Y-V?cmhzu@1JE^Bn480ZQ{Zi@aRJwAS#00}9v4WrR~CZ;xXhQ& zh%QF(x@J#Nw-FH$C1xeQD&G^4yX3ZRQ@m1$nB4(!Du^#;1ccZNmO30~pXUT#P`%x6 zx;KZI50}ccn*g{FWWpTIO8gmV!s#_q!sVcF#6@J=V0Bh>b_cmQV?N@G#Un2Kf_1n9 zR;theyZIg4y`yIuUi#1h-*}+9Cy4%n8)QCdD>_KWfP!<^?z2+|tXK}~0q&dKQ~ZS8 zW4>v6U|yYQg`Irbxwd;B#AcAT!{dBtopWp2%UXIk3*!^=h-J8kiYtnKMO$I*0fCRWnHkC1cb` zG(Yf#lmwEqs=X;|L-MVp9)N&}6PO@6;W!Dc2R*|rJuu}SrN|O0rOeL z>Geshku5fQ66kvrJNPK)!4@ax3^;qe=9h0@H1x+EdB4AjIiC!|<_zo~g@=FtGs^;8 zu(1NVcnxSU05x^KP0)Lo#`OECe|P}wfLr*6f1o9TRQTVxn52Nc{=i8J8ppliA0EK< z>n}2TPfY;afaq3M#sRNM^WpvYo1Yuo(*Kq?5^oG*0X?|8CT{A%oj2hZj@v<3{jh!WE67ZVWWxv=T@#`$8r9)$xB?p;D1Z5 z4utT#FF`EWZoFf-7k%*dAV2(Xf4Gwldi76I{ME{R>?WTia+_ek-UjldOAv*8ANN)c#7RFD7JRsSgnnOE}1g^GrG?{Te3D z{q5|I2lkSSdrKWt&}qzTL+{Id0YnS?`xMYLe@a*GeCpuKudB(78xACVRtB%1n7AkD ztHW2~K78;rs7tiC0F*=eu4i5z@L^0sBJNXNIZQ(ldrlY)d){FsZFo!mw7jg3-z!%J z#mpl_xP60^<$FF^G)(-;3mg5X`VS1*W~mRBTCmdofF&fS!DvHk)gS2(6YL9D?Bc0g z7=o0+pw|RkGVe)-xe^V<_xr|^bp#?suR#F7b1{nC+$InD&;AnqOAnmf&yoL7{|;I_ zU!(mQWb25<>)>OFpBE_iMYwxT8Pf(PCe`fZL1`~IAjI~&B4(;D5I^K0hJoKS!=&KUtJrbBk2F3p6_s<_N*qCp6Zr)@L+Za4Zi`+d9se%KC$1P6GZa? zp`6e>zjmMbnE!pRqT>}L`_FwUKVn{ezrvIOO!qAe-;7l>6%P|_f@%V`P#gPfyXO8s zCG>A`naBz8EEJSa~X@d9?d;hx^)*}FJgUX(VHB`?DAEjVOX?QyhS_75t z`P%I(wILvV1&C<#gd=N*p*bR{goCzBY3Bs#F9d_L%ywfjgfM3#O#q@cKFG-2J?B zu)NtgDLev!5Y0=l;QfFSsFV&)#RTVhKlbbx5jy=+99uLKmU*2Fr=;VQnceS1eTmha7l~2l&=mJ zG)kcK=a)s%DN{kkfQ1~)%j0f?8%~UmcbNkJ+mQ%nlBs=#6(BnOGVc2c0#ASx1;*y9K@gl>tZg>U29oA zSP=9Ag!#1b7(7c#lP&sN4-D?2&Zsn8bgz$Sbv3uZc}V%)2xbp8F8HAs3a|fCE101( z&kcB(@^{Xb`b{?hbH-&!vJVpDRHW0m4L@@D7JNcRa_&#yWHO zd=Jc%3K@LouN>>uF@;3=u6nX6E|=RjE-I1xRwr}K$VvLg6v`w7l58my9l^uyeWpzD zJ?{M+rm)ugp!5_p;d!0{M6oN6bN1b3zO=7dKj?#itMJwho*9m*pM#%DEok;X*-1%% zl)#MiMzyqtMk;Vs_FoL|Q~CV)^YpT%%+LK3#>0UyItnK5l?oys^{Zm3RAf_nF@Am2 zz>jkwkcbQ9@h`i*8@<$=2lrA-vFp1UW(0{@NZA<^Jok$1w!Wiu6M_ z=+6W&OdbJWVuCS8ooRdSWTTy3dx(%a^D8CUJ?=65OnH{^<8|CrWETz?+HoAJS%OI& zTuf@aqW*RsxUUMCNe`VGXe+uzXLv<0yT=7NhhEX0^!Kr#HgU>3T`f_af~6Mstxm;e z%A}L{+nwGRK9&`I^zh5ym1GJEAb7ISE85vh&d45gna&<`D5AE|GmN=GPuB1mE)HrE zjg0^m&$RYtS;XyOY)PITe07e~d~(%B2B716pvW>bR404Qd9Vjv-b_u_$Jc86`ZY)h zM?7}R__b#w6?kyH^|yC5Fn&BDh>e6~XhTdKb~#vC$>LhVyHyzj!2*^BLB89Z@jW)k zSTwQF?{>$)z{tSBh{3>8fg>5@g8*jPtVp}ODuvqz`#PY`1>ITE!buceijyeh22-9K zkS8CIX9@`GVq+L!IA+at6ru}`iXNf3MRxI?SoWy1aL=E@B>DgM#?!=<-Vm?(*IxA$ z2kRJYticZ}B3i3UxICT8hdHaN?j;a!fk;6e2rC(ZY}C_K`?7W1run{yMmlA7po?@` zR!XvZ9FWcCh;LL3)l@P0#|_ewG0z#dZzQuw8u(F{gP;y}f+rd`W}BAYkJj6a(|iYC zKX(Q8r3lr|o_CJvG4|n7>2Z6aQ&V@F%3$E9A6LHi`uz3Xs7O0{(`LM^l%euiTfb2U zKafk@61jBIyczG{%ky>IQ5`cx5x@2$!{;Q!*KOl(Q!q^*TnB+e%`esY`=`_kWD)$; zQyD^lGxT^!^$osbM-6V=`2CHkn0UaqnD?=)N=A3a&J)@A#@N(N>Hh0rb@DRZu=YFY z(?=zaB0T#0t>YsF`2Q!16AIB-06Xm_s29>^#jKON@_2-Jt z_Sg4F=c1x|;d%ItO!URi*FIcKrPqum{C)fe{~jFPnV6#^#AF7tjt_%d)LuQ2HJq)c zYF0aa>-gc@B?Tw>K)e#j0asF3;i7xrr2vn(n4Sv6SKVN!qRqvePQDBrHJy8F% zm-YM{vev2{nZv!0-owMMV-eHBZe7uYehbYjLsau)q>~*UgZpP+5I26cN;R(&=b{MJ!)?5&!sbtw43syfH@FU0^V^26Y}f7k;B-t&pc20gegMBYw$Lx8Dcm=}?k9g|v>%p3;STe|Z~y5!yK)|6@(7Qp6CZ5( zxZ#mruE5p-{rRW=;GXzeg2f8w(CobT_Y=~W@UHxq?g{Tnp=Wmcn7qHYhX3$Nko5mY z_vp0=LE>4Kl!)*Wllfo&!FK5PEqC9-w(2`tEIo0P{+%8MfcfB0PXhxH%Dcqnbg-@ebFGJL~;!@nQw_5bWw z`di}`$be>TXY`Tn8$}=R8~>isy_O;EBa${Lt~7g1)t=wavnw7wrEKZ~#XALca9CUG zAL<(1$(oy+JM}JIO#7N@d~4VbjyBiH_e~bC5IOHG*|OqohZ;b9eiP{wu`^Hbr@HM= z*NMM9POZ|w{l`xl)P=RR4Nv48-pPKir+;~1UtD58|5z|4-k@lKI-y!{Uzw8RJ%kSm z#(xXwuLpiL{`{9SuTulKm7&S{cMcaU{UCw&p9Qe{fB*f!FPQ^R*|UA+H3MZb4j7Tf zKU9SNCV@9Lx9is%aXH$@kAD4Myux5KPr-~F-#*gAE*$o69;*N8r5>mMTt@WXVCNwD z@$f1$!9|9Ol7H>VFM<8loxhtF)5D(k5#sl+fTzVeh;r`zJ$lgj|5Y)#Az)75yKZ}5 z!imn)@MI3%|FISNqu9M1pjjT2aRVjoJe6};M*4eJ|5IPM?_s-Po8U2K*Mb38+!4I1C1HwE;Y%V`&SxB06X@gBO`SDllHAiNWVbb?6W?) zJ%1bA6@mvNAckqrkByFV{C%t7nHOj!H4DEe^5DV7n4!bEyi+B?Zxw7U#RoNoENpDc zf{t)Yl5(!U;=-~&9I`-HhvQR67Rug?ILs?tzW7Ed< ziq+-AqQ<2$!P8Rj)^RGOS>iFOh{#{I^VkMC-KO}nz$G6kR$=o=JJRET0thHbFaZs7 zQGrbG3F=a6u%AQ(kW+J39NP8tCis9W@gbmCQ&v>`{!vv`H90t#G*hd%-5ezAk`e!5 z)HVto-!?DS?!jzYQ92`rP|)G5Jw6>fnPCA61h#jfpm$S~4aJd8lPooU2Gs%;xG%j) z4|jGrxzBWT?NNM3j!ZnhUHXN+>^coii+RQZ{YAV{Qs(-2eEZ&XG19{aT~lE9 z@dXhFE5Y*^k@}!MyJ7)R+y&nCXTZ0NdsDl1#SDe{omB1iK_Na7kR57vV?Q`RflmP3 z3h%E5#l$e6Z@i0%!9ZsV&pgW1@Ql-VfA%mG)+tqCHMS8`mPz8>c~oGfPvSvXlPUd) zltW)YGVH#OkkCE)w?{g_>pTrlDIyq^qFfISHZcRjPudq*Ye5;27#nUY`a)UT*?+Yo z;52R7O^o+B&izf49Uz-@XjQ}p^nDO_5eOi|%*sj4^N5$)(02!Z0JgbRv2nm9(h+%@y8^aFa@8uZ5I+6&o07Rzk z_dV3X8mPd3uZl4I@c|qdOqY1|f90*Wi_z1Nq-!H!HZjO3ezwBHBYv9Y`yTX6jZNuh z#mq~4Ff|FV`|!lO2N!EbQj=ZNPL3w)#zUJZewqL*kmg`^oDh;ij^q-k(36>k%N77v zVe%z`AHUxC=$amF@+l(JH6bCCZ{;bNwFf0ZFffbuCr-X%2G6A(-gR7+SsfX~aYvJl zBBaWgOCw`d{?Oqc#;Uh+q(J5vjr-lhxSfJWf0e=aL+~z;b2wBW^Lp&v%ne|L%`jB# z9-bARr_bj!KLU~1)hnFWuP+QaVeRurIGc>#m0-K1Vum1{vi&NzZ&V3J-$TYTV=Sg&eeb8@JgXs z=%Gsqk{DO+Hguar&O#n|%_q0%v;ID$@|X<^&ARGCa`2HwMZMG$`{MxA-1INc6ZI-_ zXKGNXa;gvNeNDBXcu}R#rHF{YKWzLNUOFVBuc(VimB05XOH`F!uKMXtj$|>cut-nc zIOj=mT@UKZD>F1hm`-hR>s^z6jyl^hGfJiS18w!-#QvWe?)+uu7Nv zoc`&-abfbwgZ%pkMQK7p!Xc)qSq#_DLp9^VUmc0{*F@?;Uv!<}i`{0L_cg=za4QAI zMR{tc{-ZwKqoLyYNEenv#9wr2MN6J)=AZf*J)peOMB_359Mr+5g?niL;cnu^w* z0|U3MY4@TchE8xE%1i8(N7spNi_UB?9F?ZPFM-!pY;uOr6Xm$sdm{Y{)0%@g1(!HQlO8enG7k+5zNVDRlpUcotbOXZ9 z-*;D8W#GVF&WhnZx_bmvn2b$KI1+`0hr7&|{<4Hr2)6~lWK*X#D@+t&+vHwrDg$dy zn9v&wdhm(md(TO?K}Dz=cg+sfc0_Qo_39yD%=^o@{{_{5!v5#c1)?p<__QOVxUo(j z{O{63BjfY->&=a$lAQ-a0H>aXu&3B9n$_fqF$uwETf>#hOpAxpa^l;Gb?9?l{&lEC zbdPg8?IwG_Ul?(4Vf8#s`V&o1 zZuJxGZJ7KW*TD7nTsfRT#POH#*+87_`uW2ToPQmfi%91jp&B=OUADo?BrN2lm%|B1T&^6S@|xtFke zrI-vk{k-x?MSdQgSdw9XenX;zPkM;?l0K!WY3SLbNan93!e_tdv0r>O!wBRWK$c29 zlmF-@``E3wK)R8p{1%6m9^C2`*<>`#kNA_g$!mPReXj|vSJzxFyMJJ~@lb%l)%bK0 zr=ISzxx%&1_3j!POv(%p^dQCEX0akJ1P{D8##?C!~H~yhk{j%Er$qY|= z0Sxe{wQD(8Q{``y`#;%ue|%Q@J!nBmvLyf#d*s6Z`5uB(Vn#Kv?CVyHu`?hh;i2~b zp)1nQK`%l)8aeiR_DRme>2Q*MU5XCxEq`<#Y@WZb6-`&c&3hu)2yyr%;BZkt`d^9h zmx&*#42B|CUxz&$51%w)!TST5@X&btLP`I(9|ik)oXlGtvF6QC5c{tcj_XhpYeo0r zNpjfqKV4|R3%*dA=)DG%=JYh_e_wY&P~a5a>aV!^uNVANXY_#$PMdx%`Z4#vxsm=5 z+M%p~lnHeIz7`$9Ya59QIpSGC6h!|I7q@@?FqrkfuV<}~Ko15V1>SaI@DOV_Pyg@E zrTz$wMC`#`Vm2u6W@bEd-%_@lY|sY6nd88`kLUc zv?$zb{VDX0{xOmJYVi-tMOp!9X3C^ZUFRq7!{mbBivCag%ddrT_%Tl&tgr7P?diLB z=+*HJ53j3dZ`Y5=6pzeb)sdxuNL#sHl}g`zeDYvoPULy09Cf;!3RP9d40KOV7Xm!AGn?0xk}BtyF@@A6;XWkuNN;SQDnz45JJg=#37dHkb$^y?&s( zNj_rNl7>}lOAwio{@>4k5iIgmD8A0 ze&H~wh+VqkVOUQcO3-ogRwhz@m`~0&R75m@S}u$d5>sba zbIzE@cg<v1X?%MHF2Mbk{2Uss_m}&(OhW=zHr7T&-;qOylvm(45%4M)a5$QhtaoOIRfwx})uqzaz7=MDgiHexAP1SoyEX$XJ3` z%}5ytsB?sc?9T@7WQy>Be14gim!xRalQR4Kc6NwE%1V#w<6*0M^niRH;l?SW;)ajc zb`({^C|^`PnyT(>(}y6_h1j#Xukd>*hEXR*DUD0K#&*n)j9w4e*~Xp#BKN(+w~0Rv zHIq<}5ccu>clv_TlxsrbpW)9QbmwZC?iz4uW>DDiC^u9!)HSgS=6)n0V4Z&~?lqH4 zZS7r13+ok8KN(DnU8of-gm>##1#N`5Xp@dl#)2BDxo~KPYUG}}A4PiAtk+CY@tEMN zQ^m#Czq)s8*%2cb7kven{5qC@il3Q^e?ijt(~p~ZTf}u!!kjTZJV0o!xAA1GH0Yw| z5u&kMk5ECOp7zM%PDgJ54Xgk`xf}N(jcBb2MzWIP?YJau+%oE0!nDKD8d?sWI+j z`s1jTyY?OG$6?P;Ra{4I^*M~fdN+b%S-3GKOrxCQbCs2V#1#j-dK{fScMjEuV#YOpnnW>=q(GkT($g zQBHbsiz4$KUAKWNDD{(`;9t5>fCms`b`D|XhV0cT-r zO`_B^(qXtgCC;yVsYN*bX3Oows%^sHFIKdAD;~rBMSRmw{k(ChHS|q{v-tBnQA6zd z1B!NwOPy|F*5vk>sQ{zy>?(^~2+7;p!Du%A1}^T)u-s|!i|%J&mxUEW7c z>?wGX#(lu1ZK+i?XUV#JXSLvqV1eh+!ild$GarwYBTtKWb_ovC(wr5iF-J4m;utHVkF zs|Z?Gz6iV-`xLs1bzNK+CYU`)J~9JN{Vd7Km#5Fu8)DZh);!M>Q)R8I3*PBf%AK^d z52?51-fJ1qBnk5!H!OA%(98mkg6V5HUsqA+Rg{%aq3c?o5bal4-w4=6fjmu`%WJz^ z0YW6%d@(1%Op6HSL3SLScR7SP!j$22)t#xY^fK6W~-SS?xEsUv86P;p9w_zf1$0 z`ckq`jjp1MM}Moj3&JC8czJi?CGnWgKPpOq<)-LUW_5{w$f$iH&6^d9ck`}>Mjq%a zQIBoDmgOyS|Ng7wGqd}Se@_)`dRdnw8*q7ExGI)|Q*KYvoPZ&XjkeIR(`7toV~{&9 zGdkeoV}T8}1<{FQkq&xw?H?nBU92h#ZH;UOn!`CDu}=jc?&EJ7_vmkNXh>eX8WbL$ z0&0{vM)*jf1PVp;WZ1p=H2Krek3lTv;r@0lL=sP|RkqbrtQ%7GI~%%e>{K7PT@hmE zJkz6|s2)R#0{qceSc|iPbGT%+1kL-b=B*$)!;S|!qwK&^ej-Ct@0&L*8AoTKCADR4 z)x^n3u5)1KrPVyyr0TP$ZWwXt^jkir7j%JebYr`2__do&t)cIA$RG!DOy3fY>9#=> z2u^e;?4?Lua*_p;6|}pyL8)2v^x*(E#IpF+CCBd~(76EtD?x_+<(^OD86lf#b@EjL zndTbiqIdI9+WJW&qtt?^kZrn#F5A_b5RjuDEMWoLciRBHVPXB?obfGT|9QigNA6tl z5St)UKR)$_?afxq2Xf2f%6^2CP2eO-xKK4l6Vokw^o;Ow&T6k+_Dc+4HTFiK69aEY z0?F#qJUpEFrq*hg7XJMKt69q4i56Wd_~cs# z$#4EQu{W0_gqYhk8sdeWJCW&w%Nc(lW0u z=$Np78Yo@Uv_^jEf9!?feL4s=a+kc({Slxynd!Fm7noBDv5q{Imk&5bLh}ijEoOnj zupUtJlm#kl8MV5Z1Ovzh-R``TZ(Ly{~{ri}R$jP(mo3lQuvsk>(jv$&BM zsqMaFo`6)#!Zl1aO-tJBTs7E$y5nlT_1d80VGcr{6G%V74EKqKC z(ePI@4;v60Th^og9^BP!o{* zIm)m|w;b9Dx1OIW1SNYauAq>wZ2=397iMRVfAsn}Jy0(N@KCqh(WP(pT6CC2GsFeA zHQ?kopI*nF`mO9w8U|m7w9RU6x=%)v!P9NZ1A5*+iOmFss0>ym{-N*QO;13qx-#K| zj}zPYY{#V6E_U(@#+t;J6?l~sBVc{dZtFr?_t>iPFUQd4Q?0a}iBe5#3a18LPE%VJ zeZT@D&g-;RQ(Mn=(_yxoc%}x;5_!AT#ZlJq7>B@AaP}5h)y!NFJ?;XJ&{zA^;0l5r zhHDmu{bn-rZefGInq50#y{_wDDYi7tGsg$F`d}!_QWu4QQEyyG*R%TME%_v0CD@(V zQzd*mquBq6b=HUM<-~Vrg_$N>TJu6 zw51G+w3Zzj_nqXTaKjZDr50{ZvgEs zg=I+{Q-Q^0?gkMp#8|NJN_Uj?)b7??TS1T3N3TmIy7T30S@NPgJlUgg=#0}OhJOss z9QW*Yp6zqBt)GiYWD2cltJ7zM9peD==qc@=^Gi@vCjWF5Wo!o^gdT@Vrj?j^ka6<=AD;Vi*80czK)CG$gwCD51bPl1)@ z+|!scP%=7`&e2oOxgIVTU{0JVlwlBzX|O&c^3-|&wsQ_$3n*Q!C9~1l$W7bIfWCmy zBHpjQZR4@76Q%<4&!iaAQvv{WEON8H!Fl=Zap(@TXKHv)u*JoFY~=V#8Uhm{FPPgc z-v}xkKMnb$)@j16*thh$W}?=HU8LYe1tb3aTFmJ6@kzyS2eiowc-K9+C3K(!odvN} z*?K+#Ok{MoGMyuD+dax%$X@ZNDm>s>llGci%=9J5R!(968{&u?wqvzL1(Jc6GTW?{ zm_c@at>DLvQQ$2Qt0z1WPvJQbp>X2Nl%jG&@Rta3ta3HQ#JJ*>DW#CK4Zi#uU{y3C z3Cy3{g6wS-SoYC1Yg3n^NeYNXtjWW9!NDMxOS{$0!fSg2=EmbYpR*$wrfkWW*N{`O!9IFQNtVEP)qwAUUY@m}YuFGx5 zoi{#CLYL(DYv-QyAwNBw%YPE*)Q;u}GbzvQU@P>x^h_*K()APIQ}0Bq*?nEF@z`PYQ;!c0wstW3mT!1NN?Qf&TkCZP{lC;M@?tN&lnz)ztXZgc-zV!iwQSCyD6x zjX|d#_kyl4$hC^bxtT^mkJ3=q8XrQ_ojbE~2+n>tUxvc6STU35i;ZyO2# zygC5OXa+zwskUTfW`j$B0%tEXsF>Q$=tFNU314>cSEtdw7%)uyJNc2Ro zSQr_I%VP2$#bsze57n&HVv}mU-h2p3k2@Bc@SDGT0B7xppy4$Y=p@gM#{o221knJ};j$1MYE< zaN3U?+Ja6UX=V0voe!mGog9wSHQ!eH|bw*qjk2>z2Zx;2mF%)6%E2tLeI~oF$wP zIP?Wfl@MPz@#^ly+|htG6%3Ij8MA!*lQ`Gp_Vx!oZ-xB5Ilf{qmqE?Io*Nr}XPH;o zpNP?&rZEfoRw#uk?=1Ndm+m$vmp7tfVdzC$7znA%su`_O@Qw;I`IgnEaCXAf3#(iGXG}M6YwUZm_B|uei)3YBC#+eH)}+n1nPH0t0r& zr-p86_eZp73@&F01WaGD?(Xr2l0VX!gh3(KUxeq;(DJLvd}$ec9fjzFa>3~2v=KZ# z$P+@syF2slPI0U%nU?`GFnjv_EZDq?p^?h@m$~;#zBWBnDvnaop1aB`C1)C znxp8#-;BC_dIqpkP4;%ye50%wy6;SdMOiD>1a!rQ^%YUt{$~vh``>M0RFxTHD(E^wRj z6$}ajSap48P2+a+BZoK<%cR*yVRB1qyhw-nE+cm?CQ;EINGI`qH7%QWA{%2$)&uUj znok1<9af}Nl$8_Ch^$KkklmMM>p#+qoEyxfTsBSYM~=n5ZW4iFHjAID1f{*;t@!7}t;3E1` z^r9=g{FZ)9r$ITvUROk}^R`dQG8WBuE^vbgMcJN(SiM+as)Q6rl%Jl*T`ao@@7k97 z2%IcCJJxjKyNuPnEVsEj>0ANxaQwBKz7r*sHa~oronw$qwIV{-uU{|tQe>=KDma}) zHk#ZgZP%p?Ee;0|>F>tx;ezcalEtn?nDXkX;>uh1gQN8K@#T}0*{9W!OAmstNN-vt z6swNKE+4sA^wnyxWZLhhLLdYs(kVC*FB& zev@;V8j<3y^xpwQj9qt*(a@g`2yb+783% zN(w^a$7vjMf zjjm-zVh6tR6G^X*+@V+0#gls5|Ito$e2CohFA()1jx9oYdB(AJk-S zul9xr&TqTBtW@RJ#C+0q+xS@6Rq6yt8QLx3Lusp+e&^9u{p$I$wOC@ws4f}AY@VI{ zv#R!2n>e~cOQkVRWS+<>_zVTx zE;rNvx_Z79;C&f<1=&1e^f82Y$zziFIIi8Fyb;C2C#oj8#x&?iOpR{;Xg3f&oUA-A zK?4^PmW)gQhnf%~47JQZ=BQMG9D*71t8D`q-axTg$FL$;Usztr^;c5#5nA3IL{;3 z3Z9N!v6cbc^5Ni&C*pBg)dI)D^swk|G(5!x08BZNZ8h-^ce}0)W|On3uBR8FA~N^3 zCX3&=Ms8Xm=C0iI<_OjM-m^evzkQOqgic2!3*cp|cBHffK|A@v34D75O}_;Q)yGQA zaPpXSnz*+Loe|kx@0fA~UXlDhul?^)! za})stTO&)9FmFlj0&=$+GDKNDE2FE5l8xe%69uS4a1F!+-@U-IY@HNlsM_l7ibCB~Y}3RHysZATKS1Xnscpgn^QE(+s?o0WntEipozd2cW3 zU^tNj&J9iA(1F6o+&&R#HO|GuV%iBsFKZpbGoI{AFb zZpF^}xm=h ziDV}(2a4{DxjGG%<-?i^dg?BnIE(lJ7%md;!YTY>RH2S4Yr+6H{1Z4o8_m}ST*|Y` zCN#14(31DXc9YJ$aw~US4EVQS-`ri~IbW z?yI>vd~qO|)AX{~SyT428~l2z=+gXvyz4L08+n6Wl&pl>3QtAl!meMtrf4_h8!_(2 z0qyRaG@0$q)!9+h(cwtH%2D)Pe{IRsnh6FDPPHb$rYSd*4g->xa{ z(EdVpf{^nnH#SiH=&+0|QYN0Ue6j9DQ$e78pH=dN=E}*}@Ie>?z^7~ZLqVNq$#^$p zH2Dmj$ZbIp$Deuy*25fvRtlk|01$pK%4TGW$Gt)@M09g%bl0SEEwiwnJBwknChl1R zV3%PZ$phTNvIEP&t6A;O4>PQM>7(N{lZFBoL7P;fWR={d)^go}^&A!jZuhAXuhEGu z20&Ka1`xi#2d2f->q0Eboa}G6RmkxVUfFtjv#oSfp87&ZZr$$o0&|=y>}R2+|D~N= zmRQzs#=8<5*L@-Hlzt>y9hT*5$<-C?P`%=mL5pSbbuKq{BkL~;p zIHR=^QfEleN!z1mL?zd_99!uHeC<_boEYY0(A}9` z4*tA@A8O~-3|Qi5%9{8f4Pk+eZy|JYUBEuT1Xd$Ow`T1kZ#;fvuPHBI2#7aOQ;rFq zz+Y9r^+PwoiC3vRRpj}9pmA%yrvUM^A zk?Z9eQmzgQ&U;n`<6&kU$xwS_;9yC0S?82O4hckbhf08guW8pzrmNi0paVO-VuGiZ zYc<{mJm!^=t!pkYOVN`t>(7te6O3reHaAb}XK35ac(G!hjf^!3Gt;56?Sd)_f5iMkaq3zp-p%NIIWr3O9#Z7<1wSN{1)i%&qlnM!;U*+5{f;QW2KymLYV z--R8UZP(zbV^lcv?vo0ADD|Gvq$Z_RXJcn}^sH7CIC$n<&aLLqZY8L8B^sYO63J7% zSSG2eDs7&v?KJ-Z95*V1GG@(@X=z9IvrxZaQJbCyTz!v=j3)UW0qHJcA*Vto3N70) zAD61Rxq6;I$6wJws?nHR(we3r8FM4uaVC7W!7*~gD(Nk--A#@v|9BWl#`6&$XH<=V{;A61nqA%6$3xZ4 z+=L>Z*&f*v!rRlrMZx+K8+VcKBaPGKy!Y68M2tTI6Px{JnOCc%BePub-(u5>pi2eG zw?0N087CHW`5R&djhRevjvA$%kiYr#d!5%LV~-A6BqrY&qgUR_@A?H{37rDn9qqLi zxMc}QpeI`+D?d9~Rwhto84cmY<%-6V3Q!n1{mA^>7lMB_`DF~g4p;_m-c`ilfg^R( zGb!~VNsRdcjVQzQy$y4J{v^=IXr6r+Ka{yD?UnPu#M{Tc2cJ_*zq`3XE|nFWz~6jc z;G;7giZmMQjWG$4Dp+?ZG_3_r(IWCZxzSi~v z`6rN&6Zf#7{G;;d(R{^pc^oh?%D%1JCZ?y6e8cPUsJF4krQ*k-vts4ciZ0ziN?*9E zTREY(hr7TUoy)4Y<$j6rB5ydPjoWm!Iv`qQ<3Xgt8UIhANX@Dt?8rQ@J}9i7wD1*% zo;sx;uKNJ1MH_gZ7s_{Hs!K5h_h|XbPp+R@Bo~A4R_^_zkH*#0U6bT!etEOzH}lt@ z3|>0=LjcH5b~it{uQDFTw??dfaNbf?9MoC>Lm^~o(( zeqR>*7CmH27tGb3wfJ_ZfRi>F?*%YY=F=MuS)T5YcSR+(1pgtjmmz7{3`*pwjh<|S zE#BoD^v{^sAeSuiEt8a>QH{}4I&T8j-MuFozs^WW*LK=^6d`tpgwTS_M5>-2Rn+9b zwl=|w0U=wBda?^y%+(E7DRO~`P~y<((8I4tLcw$6HLOP;-eyUlMy)vTKETGcFiaYu zt`(sV+_r+Ir=~98_i)B(IJ=-$P1-dvw}DT8RVu9I@uh`!TJKR8o$1-OpymB##+;%e z9&iJ6b8fQ!8!I{Hq{S8X6%>AJx_uxz`l)_Bj7ug{%;9a_rFBQ(xszYumlyO($w4{< z1bM?9pS^VeK`mUv%KE`;o8;U#KfBPYRXQs1P1X0Gp2@QiK>*T;j!?*2Xf?=3&|lmO z76zmzpGg1O5s*E_j2lzmgsVX5gc`#>a+Q^;C?r2I#6mz_`I=R9>iNE-OI#onqA8_W z!|hDf;8HLFHo{Y!AZh(1PUh*iPjj}tKXB!zCtKP4OjEa-FuT&wedw+ zRAv02?ETSD7WG|<<;b-nPz48WV_=0t3fR+E{CF6qPqEf8HOhsTf2d_n?|&=Gm9FOO zTmZ5V$`O{7Ye{vk>To{O*gD#@dJ#_xkZ~j$*1Qhlc-Iumt`zFcxec_l1Q~mlK)XUe zT6yy=#ikXIDGUL)>i|Kz9?9$9ZO$fDYa5P5IOW?sa4mcpSO(bsgO<-u9@DJjkjZs>eu+r!Y>NF+ zpFZ9_G#NXOtxjQmFr#jNog-m1MinD?C0AN!dsFBbmK1r#vQ6mz8mZB?@x=i9m9eT3 z8(;!+48pdh9hyuFnw&B2?jG|PsK>dBM-&EMb#omO35StFdQF_MNYLahuta$bG5QLP z!wQjwhuC(N@ca;#pRvgGpJP#Ktp{Wri261*C7kYt%T@nx4?X?kbYA+?8Pb0D?HeRO z6%*4#Q5Z4DKYYIGj{N<|Yv1Fjm_oh7wq`k@Q?vB}E*~&5~f0K9hBz{=xSUqFzX2 z^`L35&>04+4RzBUje@+i5)5+$XGurXL%(&#w~*?G6Xo13g7jE| zH-pV6_F${+Jkf{1;!?oq9xmt)V{)>6Xp|9jOvl_Xr={c0F-~F?!K10$RL%UNse5?G z7jEZWoEK@Mhd`*-D`s|jx<*LdguY3Z8muO}h+S@HYG9ZF%fb*0JYx$jPirg&XIvpw zOD8n^5`4Xo?larc#^}b4&CNTe7nG|oh9|w2f%?7$G)_w>!}MZ!PFDgs$uT1`;<{X3 zp~7&SREpAEtFL`$54ZE&w-4Qr#~Yp*`*&6^ZIfBR3G)0rvgIOSyeCdL0lZWrFY>gK zoZ{xt`%Z^&H|0B+z*Pg5Up)M8hp*r}?m304mH-@a^N#FxsTfWQrSd8v%A3LIpU`u2 z*6Q!(c)c&9eklm(_pp6~&I8~e9sqV>xx!I5?lr%R{vjp<51V}YAC-+{i*`g3KeM@MP9#OcU+(IZZL(J6ACTAPdp zJyjJU_q_DLd%k_SB`O~UN}4~72KY=SRMcH$knRkP4+otD$Ct%uov{W$dl7|k6Rilz z*J))BKmRq{7kGrAQV3cI0Ef|JaiH1sCFC#`Xfp4f+mA)#sNM4jT5w zA3r>7*zS&r(^D8iX#1@+yk{(lmpTKbY=f31#-2qEP4V%YU##zbjm#03M6ryEIn9{; zh8dRA*WZIZA%i;YD%KUbGjwCy9S7kjc*Kq)pQkua=N?9B$YIxd}q&VAGPDvz9W7^IeK};~;O#NEJsc932R#BPZ$oHle}gX}2iH>@;nhm^q6gVJe$lU7qEhkx2!vuGSi zxe;9Rbq#R%ee?CNi5$t5#a?7Q_-$J%V~v$@^+9%Y~;)6|c%=ekq^%`)?2DQK9ETz)zD*oo$_vX2$0Rgo(A=K)* znj>zQA>Inzu^lpws)Jiv8fbG0S;L9Y&W;Y`T^BcOp9o`K3%J~2u%LJNqKja7U8<2{ zKz!N^wNawi`+x?YfyHt8?)1#l@*k4aN$~CGH4+(KtXmBL;^FAR1FRz^GKr%vvwLI7tc@<<}K-m7!kMvud zJ+rCen!tfm#mcs~SVh{2njxzoW?eqRtufpE{@QKE1+A2aLibxkPm@979uJkN2nb~X z^3_E8)sZ|sAY*(lpIpB51lU>*F=8VF5k3KZ5F0U1wFL1$t zsqz}AUtvXLP12j4`fra7h{m8)7rs-hHQ`XY%=%H`n8jp8JRR1xaw@fzgHi(vKYFm$_^aXBJX{vkAgaxlnPo z@S*;ku8#u{krSo^cO5yGS3>_;>K~c{VKar+{ZyM5M+FCyJA0#l_9MS@OsW0b-T`Hb z%)1BPUIF(4yrY26AMDtPn`H~%K43~P41V|8Xu;ZzCtw1Ow;(kg%!0p@>*m ztuJRP?;L)BWRpEC<+Muavz8z8&DvnnrGog8jR(+DzC}TeEj0Z#kTbno>oN{e-7LH9 zI}V5qz$;iES5j2VJghzks@efRf(iCE68I@J;PUIH$fe@j_g=gAx_pR~8@-zRoY;#8 zOu+oozv4Ck~(_sofVP$@xdZ0aR3U_HX1C|b`e7vao$s3B4vfD$sI^;QDRzv_J zk@%74CwimyiAR&IE$zbBB@Ln7-BX(@ZMQR0t@dNjpP#i~{gPI3`oNXFqnE1rDShqf zq>g+WH3al~eY?8l7XXER5syHP<{yzWlk!Ni^h8?&MaifX6DzCYf!-UI1CE;?3RTU` zj{>Va_BZ1dLf4| zV?bQ0@jGq%TIuyobH{W^)-xRM;cy7iyURUt`C z>(dY%MAPd5e=kr?sD^1xX?TDes#}YgTa_pEA64Bv1<{lF0s1&Waj-FWKH^h$b>M1z zqVM{2q7j+muGiTB+^{hY0vpmEqoozpH8R20u$D#J4pdOyXm8$_Yd-4xdG9Qm`PV&J z7%3QD?n3tq=FEc3`6?kzZK1V*z6G@g!LV+jQ@ozP#YF;sPN{@Rf@P?7D*cS9&KDoz zkX^|Iep+ooe>htk%9iEcE8=lOygF7$BL z@T`0Hx+eV6GBU(n%Xtt3E1>ES3-X3ieBo=L`sy!l6D$Q4jM?(6)QU(D9YERx?x<~z zytL4l%&-*s@`OZCaHoZ~p59oW_43l5p0al(?qUzs8n)HUH?rl79n+vupgX}UPgF0S zT-|;2rqgpRPtLhr(zta=es-xQ1V+Z{04O*2iV*zeI?0bk4J1=hY_0C420*24g;lcm=cFu_%y&* z`YvNu`o+D_H(14$RUlap7%0vfQJCGVw1~vzF&FSqTv|1t;Iu*$SkTQqoX%~siqcls zOH!+g|7nHC{-de-SsHDTI63LSmARS`VU1RpV022yey+$955e?#`{A&1TR4J8S6Qp_ zNw3zaGU)LV#pZ@$->t^29DtLm`B94$$4X{(puJfONK;ubqIDQ0cSD%gF^$ya6#7=M zXCQfY$m(N|SV9YU*V2e6oXihkOFB1XYFp}zln(*c$cki&Pu0WET%av21?*lc0v`jo z$}6Sp%m&j|V`Su9e0YwwWUW!$CEeGSxeM*?sId>A9W3rq!G_j7x{XQ<@j@^cFdvrz zhBem;M*@n;z?=++Ai}|o<^Ubc(fIFx88Q5%?V25~Iaz#t) zmkOg)7&kDh4D{=e&bUVO#Kdt7i^fs}edyJuLsA=YJPib%3t+_1aZvji7eFGjXc8+($9lx#_np%e- zxK$@KyE9Z(6)_9IyZmM@Je?&KvfK@$?Ta`>JZeRZ`)b{;Xb!k)b+@~jpg<{|JB4GW z!ANoDCd9a;6nfY`NHHLvl`K#$35^xpYs={qf?LgoT(PM)18pPg(Iwv(uO}Y@;=V9hGG`j8-N}m&wuh=$Nsj@eHtdtq==4%d|6h6c!*`KYo2#INpf>>UYUrcEU z>@3KePq6gFy%RM&E@@vqKt*kvilqB{V-&STM$J@2EZPb>;>0HbkFO8#^F&$V!pH(Z z32!FffC2J)NBXfRtM7G~DUpQ4bzq-zAnj?B*2Z$LD%-p$SO^gK0vVLk);$gRPi)O1 zbj?~m<@YT@`w}cYJ~TBo85g&>fzl$gk88d>3`@+}C7iumGO;JvK#}DP!-%Up z{4Q1bF1)T(gz6g@ED(@fMZDIpPCN4crsX}PiimjKy-P>$C(D>?obh@`!5bU4d3N=d zDA`7yF0zYK@QY9Tiy9c}%|l!+3&G{F*9PVQEFQ|k-kYf#)+rg%wBoyDv_8ristRZ`q|Ke+-pwim2W4LlOzlX^GwXE44aOEp9A zwQ&HhEr}LtA9)BR7@OK=EpJ1^fbED7QwB!J54qOcP~*sS=T_R(99l`Vax?##FL>`c z)29C@MUG$kX-Hbx_M^I~sY+=lnltx%_R zL7E?_g`6G2P?+t+e+Y*Z#3)feYD=N50AVseVE2KUD^@j{jXFsmbF?QjY6kQ4=ruWx z-RURg1(hB{z94v3I6NSbV1v!)`?^PIdrWbnJ*&F;8>D)B*FKQwkOm8H23Lu=02Ibi zakXlodRY?foZ^leh!XbeM-tqng6iTMdx5Ra6&J^sAg6qxT7+j6l{WCAC{);H9$tFu z1z71qMOW#ME8Q!p+e)S!?1wSxD&*eS{Gb<=+jAejwVo(9_Lw}^K)L+{jy@8A%5ygN z2t|X=`a*RQNYJkHN4QTmZey-{u-#FFa~@m8=1}-~$I+LkIC>D$cRndPM{hPN4`Kb3 zW%a0Ng$0Gn*^u7$)dYxNV96QO%qyMiB4d464HFO7FC(=s=wu%BKl1e?T?LYyTZW}j zOi{&SPj3s5gm+1K;le@I*LZ6&^vCCLFG4Mt%bG;m!C!qT(F;Wb_-S$mC)aNT4W~|C zKs{NsD`SE#{^v^~ZW?C-jI4BVgX5yfykwtVmD1bXDosTqx`1y}n$>?mBzxy~ObwH8fahy!-+KQ-=_%Hk%)`DTCG zP@h0?95xOWId*FwB>4T-dharEH7a&UJzUVQhJ%1uOh$WLd6KyhfE>aSIvdJ(D>V_% zLAbE98U;yY8s$*r);$w}jdcPGoIsPk6Pz-l-71Xor*qn)eq&E9zMB`RO!z@hbVidU zU6|^X?8{*HuhO-{tuHDBcyz^L@tTSY3u}H=tnF7KBr*2b?f#Rcny6q&DgZFQ-MzJD z4!pGlz38VY7-mBSnVOSmJr4a1PAM0`NEO;X9d9AAUxJu#*{GLcllP7qXv0p|AkqV@ zLf7NHaEJ}%0KB3GF<{mj@6J?#ehS+c#Js#k&zPMDTzM~gJmqYWLjy~4>(E%aR+`t0 zxfcuRT1E^iZ?r(>S=v!5$bux5RB*wqnqg-?h?msgW8{<$yRS7L!O$0h<62ieY}6~8 z`{vYBh!5oe36svFr)aLa`6COpUfH|eSaXBA^+rCcvkP?ZCraR{fVJ0Gl+&Zg%23>T z5hvre7KP_HWJ2i?-6`^=ofdC)C`T78&x$B%q;TWaj@o!tmfU37D%#^PGQnN$vX9AB z-zl4Yb1&gG+2N&i#!8;(=M{g(%Uc5mF?6&cd~U1Dv%j`2tq=ozQmAr7D}pC7hXE-s zlDs*6p9pW!!TZchmVosHaU@F>(Qt5y4Ad`Jt%y=sb&{EuB)RpZ*kA#*_W8?zrU zaqtEd_qp}i^hhKarW>s31YFW%@}7Wf;Wa56$w6_LVQC@H6uc&~6^hZ5hrc^^8nYNL9BXhZNg2Q?QKfAXsRVI!h4p6+oShj0wtZn!^Q zr{b%>IcWWzeyLb#p#k?&LZJ&GQhXf=HLBq5f}_jj-LwnLi+~%|K(5Y!<2EY;6m3_E z1`K!(1aV|2Kn8%cykD$jR5vGD(EG5UEbATNo~}t0?p=yhwTB3lBH7LA+A9W4VUc@G zLj{ao5tK`B(81`Qeiuwmvt&Hurbee%UTx9daU4x}c$EPNam$L&#=uws$(Fn^m!-eD z5vy-}2pwuEGM!s9s}ChqM-rg8hW(ykzcU+qF+B@%2qbhtx_9ef%Jg-IP9va|SRq*? z<9`}mDh=jBf!{_C8aMF$NUb;?NihosRm{eGUWS9-Z!nQOTH;Uj)jNADDl4kHkhh^j zBijbOCB#7_Q~=;Ebr~%CS_#X5+5l2qqY`W`U-WvYX~2!8&w9FkQIbm2+rI4{K?T}v zx-N#_?kOlJfJW_-MTrtX#9g7}(H1}{6x|1z?>1En1;<`ed@l3+mLL7q=8xuRlC7mP zWma=lVQ+D$OH^{<&1+>lfD*9Uc+sz<{8795H{ce(YftrYo{Rrt0Xvzhw0UNgRoyCN z9*+~I=Av@S4aKh~%V^h8G40Cmq?Wre>uiEHOlUf^WZ0zByJ%)Y8b%cDU+>jIkI_PV z)@*cwDgegnv3HXx&kN=fN~A!Gg; zT3y{np?Ed9L`ef?L?iiB=b7IX`H4n8klMwoD;3s1QPvQgd#BXO<^+yZ_d#5~n%!XfJ~tK4FM=!1v2bNKU|RP4l#KyIcNS8=48HZRa4C9hD6 zu5&B3lFO(!qGlwlGDU2H^c}52VtVRl9;>WOTu1K35I*dJ^9GjRcO@%(z^d=;hiM* zz+`3))!Vhw4My0h;quy5zM-`VUwsIp-pt!yG+&0u7f^msp}&pESSqYX6$`_(^oQ9` z^%pSu2?q~~d+zm{7cemK8zwwcDR$Y=JE@0%SMU5ku{-GTvOEvEPwrrOQT<1|d9L{w z?HsgTLPN;ijroxIc!3-^dOK=+R<8dsGxzoJ&0;G_HeF{vZCkU~cAiwM@C~!RRMnKz zLTVb1QptW0CI9u%&t>nId8HOX&}=_2|894b(XG(1L{{qFWoQRPelC4h5GOww+K+48 z%n!E-RM)V1ny?ixU~Ey>gwPwkxa{o%9j38F#otXwX;sel4xBc%&dwtR-&NI1&J+^a zEYz?Gu-R@{<%f~1Jd;362ZHI{b?|R7dW-*c|No@5_|K_1^zBzR*$Idxza?>+4oSif z^+J(RW7y87s8r3yOH#W8uD~v&%*v^m!ozkuP+>tG%I_MXdRkk<3E1aGnMb>bHa7* zJFh7AfRcXYX0b4{R4Bf1@Zc%fpY$W*Qn4ceQNJIF@cj+dGY;RJ^Z06=yUc&Cnl{C4 zw8=P=ig?{CTK!PHmX}TCl|8xae>>CQ*}0z|YI5$a;br%VIP_b~XtPD>ao71ck(`R@ zSiop@y&JO_(0DhuR$FAVdNr$yPkY(1Q`E<^wdRo0U8Ksw$;7{Ge?7rYnQD0qNL63v zYJIi#J#CqdqTW^ZnitLS4@S;L8D;sEH#1io@CatUW{`DIe{YwQ)LjM?mtJIkoOrCV zxDiny5}b&xjzHKU>g%m0^X_9s>>6X;30O;XFaN?&HTuXCHDS)2J11JS@8NX)n)J`B z|NKV3`Lp3;`!hcwT@{vu>dKnf!HcSN?JjY_Kx@kk z19G~DrS$?Tt%|s{^g8vaS@I^rsILB|rTu?KPiJ)>#)XkP;1i4r(Dmza6cVLuNqKzO zBm5j|F0VLrv+)#bfZ4ZLxLYWA>s3Oj)#RX^~^^p5Yb@lC-=EWW4(6TAzpxMcI5J5#Lvq<@`?OEO+DrHoTs)WVf8(IQ zpt-9V4hemMB!upxVtN}C>Gkk{0gXt0M2>c%TuaIDFRL5pi^n<-x>6C9Rr3wCUWjcI zg$iyWFXb=QP9uX8$XgB$N(-`AEwTEeihg{4&=Zo0yqhPnUv0aL>hD*q2712FNe$Kr zK%7~f6N=?oGQqu*BK{>J-7fw!FhGw#Jhw-AR~tsZqAn=zi&woq>PAd%Wb|Piv)WF6 zeu*y!-4HLhX1!9O?a2+{5kgSNxPx387cG2L4Ve$<~ia7x6X1#aMaWf9+LsUWTIM2o8tV*6MZ{9 zu%9n)?}cFl;)77(ni3LGzPSr;1+WUu*&yTn?GIN9wvi*GppJv{OiyiDNA;uxbQfOQ z)jd6D(MM1Hl1x<(qs}d9YHeOD%FKPlT=n z61>T8y|OxuY-YG?cs4v9Log5o=5CY{uem24mSZ6&U#ws_%GH{NFF|Mhb|ilpdFFl-dh8w|D%maa!9QkP#Mo z$)?QSKpNS{OvH)_-MD*c`CqTW{W6-F9zYgJ&bl|=?EiRPfGhGIT`c|9joDy5`#St) z@nx@-7}m&SbB0zlTW=#ST-*51YaEZsLE~rB$J8Fib2;QZiVXQ+L?5k^E&>0z!6m9IkmT(XCV2&SKAv>{Q7<-2^M@O?zFiIyqAS}`1&QFZP0S= zA196X;j3IE2uRhCp8C#^jRF7vG+_C~zLU;5&lMJjt1TZWbNIC$4tKAyr+75T16eg< zVPIlrVRT+a#$;o*sQ>R$tvE+h$+ly^GJ-+dXR^l+y^Ft*yyTG75L$4dL}%-x5#yaF z98o*aXGRJ{%q!zlYR#aij9)5S6hiEyugenO?DYqT`4Yh(+CN-FQC6P_g2kV zF-hJ0+w!~r?f+#mt0(p+YF)pi+0rE}K7)$I5_CHy|9K<7QeA9japUgB%1P(>rgoD* z%?-BUHO=6vFynWQ#IUc&&syy1zx8l)aO~rwso5E4wXy1~$?79-w%s55`T>!Vja3_A zMM0(SH=^VO>ciX!a>T8BgqnhQGG69iRphhZPK7SVg4y9R zu3q*i>^N)9Jtq_*JX!zW=AJ)a=B;H0-?S=uYUZtKIQTuS!an4~z1P{c8u4OQlJr^n z*u84Ebo5&#WKY6~nA5B#&9lz{#?I(`cS-d>L(rtlWshIUWPKDi)J?Biyjsw<5zAAc za)M{d4o4ckYw=TFH(6F{tg$dSz>DnReW5!dvp~aG+8c1RD|{Q5V#F(JWAvP zu=NVbH{4(UFZDb7?F83{+~NI%pC!Xt1+E|@T+ z(3~*ZQ&r|oQe9eh)8^EdW}9E7#&2QCdoG1q%$$^n3Q8;;!;X+1=ZH6N*rh5F1>$fc zK_uTIx9p(}h0c=vM_cJ;B@-uO=1)c}y;Muy|I@Tht#$vqE3u@YJL46v8~OX8N9MCr za&)*8>O9XwiE0a&oT}BB{zax{8t#6oMTuqRiiO64yb*s{Ru$2!|Bpnm(cHB93~v-N z=|_%|*@9f?zc^^v#v!vjYIMWeSIcWB4mu-9A<&)}5trtz=YyComkMrzD`Np+jXYgA zz^$OZcikgoLQ=)?b1;Uv-bQG)P$loLW49Ik<}B^{jnqQ zklKiZzgL+ryyJPp<5TGE>0FXb#|>Ca-gETxop?Miu4WH54v8yAJiFI6ez|Mb17aXK zJ#~*QAE&!r>f0CB|F>Q(-9u@f*SSqN`!Bgy%c7LCX@2OHQjzRsp*YcI4@Ks2lyzZB58B8P z0{!cyXKmzCamixBJHfztXPx&ODe?)4DMbi5l96euR|&f3V%>VZwr_{%EawWpBbV^_ zc@73E(Ht?GpDo2;;h1<(B>*w4vOS!*#L+h_vifW9zk3dZSWTa>nf;y&gZaZupN^xg zTH@N-S5V%xZx$ALMKYP;gL###(>biuxm2|Bl|=I^fBcIDAf6_Q`nbK>VQ6tWpcnKW zGCUnD%7-P?#r(`oc(H?}T@&e}5Xr>Q?GN|wc8T#8`U`ApX;oGFw_G6oT!5zQuD`Sm z!*bx-u+&Q-?5O&`gvCLrt-nwkH5g>=Tum}a;r94Ji;PQFR0$ya#wz;7Db~o_TA<>X z64mFKzjwogY6z-C%(^s=_mKk*Kb5RZ<3p1}*vm)7L`C&YOcE5U-1Ba#1Qx)U=`Oaz*c4=iQ_f95 z4z`B&x?9wLMc92g%DI+mxA&NVjQRMX7svIUi2aKCoc!uDIL6~I^(NdD!2+~anaU}8Z( zCB}iuQj?4Qe4ADbAfk zI!y84uwldY8cT}3+}Z^lN8siMN*nv9#`0V?zN*Tu_MYAdSlXk)VvrSQ>$I!wN0#PH zs0BoL&xR!*$?G`>>cFt(o#?N|8n;)&b8D%%u}kyuN5_T=Ol>lY=oo9Cncg@A5AnC% zzi#ih2fMHloVlLEzd!%?j)QB?Yi1&;vXNymV7*qNAquw@nRlHt z(9L+ZpEHV(joIeGem?pFx=QGGVpeuGnrI?}yDjaw!502Co0=s2z(hR%OypCMz^-)M@j*BUcxhswW1Ge~cG1zvW5)s&MZe2rxVEL zo`*5jqug-`(ZwC&TnF~N=j2#ms}c7W4=_KrM69kK9h+NH^2CaoT4zp5shEn``Ze^_ zG7N~zl&lT+4H^1@@8y=&+@snFl6}!}t>lex+Mu(kZ8ndjlAeflV0upt<1uk-jh%ee z{dIzbt*#^8?8Yyevsz{ca1kQfzjOPak2?@KE56NGGH~|r%9ao{OjC4Dd?5^Jc0@e2 zhoBMNR`X6#1m5_X4CA`x0TtK;XV+TP|MuH{`)6u>6=lUIrH*zfKEugQ#eQrLtVRe( z!dw%?y8bSBv~cgM_ph7xz%)!6)Zl$?&hv+zI|el^XSfM6DSYU({*(PnjmJ?Z;pmpG z^NU7wv#T8Hzb@C6oxD>&6ClD}5hgD46%G~^zF-i*vM@(Hp(wv*m`%x_Nx6i56zrf6 zl<7*XdKCkL$nj|ThYK}u-k%Q^Sm%N`kk#IJT^^jde%`r(p!N5k*VX?ioBlsd z>$931FCvYU^;8CH{so^2ozp0YOdWW8{b1g z*8$TIC{HeDF-J~bmJ)ZJD?E*|0slG4t@~+ruHS*RU6)h<1mVPiAXdhO{W%G1*wp?q zur|#cwVuvKgIZQLP3dHOBAlb{Q(HMiQThL+K<8*7}K~ zV^9~zs=4mW^#Q$yK-i80G@cLAJ3&mejT}l<@R9MO;9fnszGF86Hckwg+4N&dQ3CSf zZ!ylS`J2>y>(~#e8zE-he^O&NCcjMx|MpwhvqLY$CC7MPTj+*+a)#dR&pdWXw7;Ae zDl{lrp!)kAa0euAoi(U`Cn4@~pd(PhWQM9AO4ENygF zUfvYQg2iA&?u~=)E0%p!x!7wmR7WP|=cq39*nV*X^j8U11Gn}*yFYeT`s6M(_C9rr z-sQsUk~oE~)BpvP`PqMbI#15uSfRd7@DcjdJJhR^)E1Awn1t^bK+m1+Fzx- zOT?fq-+%r!Z(MywQAUt74;XjI^;=?sPYm{9yjS45^IENriIS<7CxM(-&jRbGin%dQF9!cZIHc z`}$O$$f_l1#^M1Dvb4Y7;K+!-9ikeWd<5?b&i@StH4C(jEy9ID^BDwBPxrd{OBU|c zk}h-6?ml2%ZD5Orj8d7=g!q3C#rqKugJ5LKLVl#gTFJfa^9J50+8R2jAMU*N!Kg^In_0VyF`$E{)oikq7LOtD6cT&oNzu5IN9K4aLo=LB5o z7{)uu?I58V+A|mO7u~XTC2Ca`jKZz3_8W7Jnh7+u+9YFVnmM*k68f1}&JtCkHt~UA)s$@KiRY`L#gWCb&GZl05-lXdq zSsEJYxea7VrGm`NOdB*ZYGfazCIkF=YVIHaE(}$MZy+k8{Lb7oYJ&t-$!)hiS;ePI zxWT1=eA>+z@<7vyp`-3#Xx+sEO!8K*npg%vvQfk57v&I!%N-&RsV=*3nYR{52(%o* z_a6oU=2_b81?Irrm%TUwOtN4e9!eY30zAh|kpS&ni%{0Em+R`%_<4YzHQyPGlj2u7Ct#&e6 zNu5Qh%mV_X?c~jdbk_=&2f95~f>v{KG$vg|m;gjgDj9em`N%WZtakrioK<3tb|FGp zfJeyCe4o|QfU`jdEz6UfgsWW%x|pC++6<~7N_pbJknh))qg?Y>)Z8T0Gp%B{#}arbRge3OuC8y<~|mjO31V(9vyWXFb76dR;7$M(MN60Z#OxMee~sTR)BsZ%kZH$XoC zUl+)Y$P=`1YjAE<9(>Uy3~6u|5ucH)LaCvK&)E6sne-1za=tn?N+ZEXaX_>EL!Mp< z>Octk*u#`xNyS^uPnZBxo2l-n3A!fX&U*gMw}Q)o4z!fKl%qV%^FpnZU27-;$W;~S zq{!hNX8%~luLHj6M?ed7!WIL5PmZZ?7Xmg{f~Lo-?ERQsb?0`tM;;iC!Fr~ksl`Cw zw$tNE!^%<-Nsf-8-vSbTP9t)#;n1LwxNJLl7rii&BVENltwohh@lpBly}52N*K&1b zpx1fHv#|i^x>o2;)z;RQ7u^kK4*Qsbm~vlb?ORqIZ6jrMOo`rC<25;biC!$cLSj+QwRy?7tT+)vdf9dB2}&z~o$tCh(ZU(nJMQN}a>`nDfRG|0B31#v zyLOR?Akb^HJ?qzzGuY3UIVxM(p1Ii?FyQdcZR3ygCt zhcvH;m310ZTB`Cl<#i;3NCHtI2Rh59pD0+|j7cr9{@S#~r9Rd$DEVYu-i6PFZ`kP{19{N75vQtT99d7L!Zb{ zsuzAMwu?bf<{E!GCE%JP{<`Whc5`M#i{EX?yYh_036AKgUzXnozk>KU%?o z6E?*;@78B190lk9EP=|o9K^HiYI*1nK2I$6EoL4D9*mYU8ShiG24Zjg*bwk^o$icZ z7;A(#iCBmnbO0knHX_97u0(R}tZn~`13W-SEc@?6eDi>jJz(kCFj+F=gtCS$DegxL z7j06<8Z&-B!avorw0TI%b#v_ii4$i)Hq#d_6vaT6&tDP#n*{*{<@F+OxUo610k!2IXC)HQs(6urdtvWxQXlrP0o&>w%W^UQritzC- zP$ITciLHqEL=BH9!b&n848>#tISA+0H>U$vt8ub`j_WA|-&X0040+eU+6tNm(h0L^ ze)nq*1TD1>^eUH*!82%(eM+bXAS=T3*Ii1m1xoZ7*me%QF_e@E#oCrV{2*^-U@#%6 zdJ9lpUp73&Nw^KPru1-{25+Oda>hIH)3X!k>ipoxiZ4g<-vf>G?lDcbo~T z>WH>G)IX^cY5R9DR?*{T=CnJ^U=~GL=kmfa$kEPcK%{+r{mTqRPkTm*b0$6Rm8bn{ z4mWt~?2PDG*H&^-|H*jfqlGfRLf!&gC@=|-s57|V)90*pCKGJ0S1QDO>&LREID_8? z!r&wutf@5pnW`+D{d9i++03U&CkA%a{g~~FH?FvG^(v5tKcUmUqi!Cn`Vf*r?dU_! z{vrGlCQ{&?iAau8WEeI$x?QM^1aZ3SY z)?(y$Ku#}h6NDSkG20&~&LpIohewGbY$3nD|M*B8!rj8HGHOf+zLX^25j`UCDqtPD zdFSuu#omny-2wRKdLGKCjr*1AW=U@#Aey8-<0Ke=45Bp|F z;O600P7NV*e1FmXX^Yd5bA$;2qcb+gA-yZRfceGJa+#HcBV73;opWTA&sxu5CCkls z>@+XvWqxJP(mUV7Rc*FlK@y_9dN#jx*8|~v?lOrNtcIMSzygh^nqRnTro(}%DYveKF7g_c|Asc)Fps`<`X5~Y{1Uv&Q%48S za|{7AU2I#~iZ+~CBg%onAWDOFQ&fHVAAV%P`FF~WJ*mSTUd`CkBbR*Xq;8VQNS&#h z4>-PLC0T$M=hFH{^&=z(;ZrqvBUuS%Q>{zbQr|oUpvJALVJ48rYKu}2Pn3Z6-iBQf zk;jD~wk$JNH*fg(c*{C{Q#&H4oNr<2UOiNw20ok^gyMtyV<}&*;ia+WqxVgU%^qb% zx&ZfD3xxIsZi2_h$dR}vJ_(EBRLU9X{AexyeC3mEYxiUwvpTmVjHtXwZxGWK$g(?n zK3(pX9{^KXx$sRp9w@B$bXx%_Y1Hy9C{)$X9@%@ZN&JM#)S)X8O@=GRi+983R@~Dt z5`0}9!xBJf^`#+rfC`1cRjwV<9~B*xl;mohmr{GN|AP6$fTXO7*HL#G5x%~(3?f(G zJb@##pAZ*g5tUGMB(F{%ZKTS@*#|?t2X_kTS9_bLr@h5o5@X}~cnZJ4P_gpb zt>9-tc^ZNxTl6Inuw!;i>-c;i!9;oj<}r0iXiTxmBY7AtSiqfuEwIxt&!dCpcOhUF zw6fRRoT^_hpY{9P-@i26H}_O09kBc&Y~XAiz}&Z0sbhXC`*0h&qOUOrRIK}cj5EHh zBm3NUNLSgFYFfh$!xJ`R#Iv*U+u7SE(-3#3d5Gm-H>-yw_H|v1y=4}2M%Zrt$35zC z_z9Of?1r{JT60ixYvdD{umNwccx-7wYu|RH!@6!Oda1*7F5lbaD~Ua6XveSv#wQ68 z?rq>?cE4fGU#-0vlj%3!puKte^C=L^AE4EyO7+!g=yz8vKV0P5elY*Kv$4j6g`bzl zJw~0mlBnrBKKIfn=(xuYpcKy}&OR^&013|cHE3Fb7`*dhAaYDH z?p{I-D|+-(W!_^Hduc!PJ>!LvL}jQ1$Lr;vJG2>lpp71Lz0;Vex7bdZnXzw-U?&yWpD2JSVAg-S7K>~_tM-uYPaT($8d{p zmrx!9ouuQ)%}r$o$Ju-iij}C5j!%2~`AO=WDiNQ46$sh&is}c=B+YVC#`((LhJVy6 zoMPDWXR9OSU-ft{gk97YW>xkqet6Km?Yk1qnz$GCGe_a*01Ea8l$P+~RBB zDMTD9F)qc@_wmMI;MG*u`eq#;)Va)29i&hwFFvzneRAb7+KKIP4VV})sUlWa~8GfP8iK7ZKc6so$j|z7OUZJl6d=6Uy z$9~ce6U>M;fd;MJ;<4(9toWSf!uILu8qOS*YVn_a`&VC@B`PFi>*icxSMnOvqD|-K zOnS@9>!K=9p#aQxKVq#@BG?KfM@6saWV>qR6#m@Y81o`|*qdO~qk}RiliKD?d#F&( z-Cqx^BEtd$<3X#BRM0`7w=YcCrLuB=$HB}Vir-f=LNNvIq}N2+nyOfj1fFmzm4Gfb zqSICLWs?zGjV+^FQtNj#XIBAl2Cei`aE1iFtKs!E4}+$8H^jVp{hHr0<8%5hRSCoH#Gb@aQ6oB~N5h1a3=9ByF}m$CBoP>b|gIN1VQ z=yt1ozFCR}gtUbv+6hbdeKB-#h^mrQP7f-IWcPoke^7WOJ#hCjFC!-pZ=*bK-zz>- z{6h6DnaoE93H`tr-a|tGM*R-fs}Y8XX6gDBVS(aCdP8L46o2&6MF!tC3rL2NJ^Lg^wseg3>np(&~* z$?5qNh$#Cx+2GY%W@C1dsx<0BT#JkT6i`sAoOb0wC@x51%6i!fViwYjK>|2sPfIu$-hB^=HBtJHuCwI$LZTy^n^}OtXY+l%c-sGKt{Q-M*~{ z^LZvOpALlHW;Kpy2m=Ld84j#a&klChqlz51=Hlr5_?}|YSi0iiY*b7yH3$gFgz?FR zoKzkxG2|7@_q93J`_>hJT4~7%`A-YerFKCv>Px$oPH<*k-u{^KmR+;TqduXXmqV}9 z+Iy>9s*0yU5uD7jl_{ys&2=&IJ^7Wft}&OY3QKV37efu>i!%n+SNqLO%!WV?=u8FD zm8kbcMBLUrJ*P;QpA;2zFQqCV3c@CyI|O(O+(%Wq=1(c zd0H4{2Z`z$Um+2S{h4byLIr3e%4X74d%Q4-ffLFRoK9CDr7-OokRsFK)1dQKcT>kw zcU!<^IR7W6@+{U&TX>pWyl{rO-C{k+BI-n#2H;Tri20>F>3&fDDzT10SkWNL?&~hG z(Sd?XR@J(`&v3FpU9{^_TOQ}D{m;`wuRubKi7M257$jAT7V?8D!0C>@@knZn%W-h! z(TZRJXnw;KWm~?RZ?s71+&G_vuqK3z(%R2Y_iycvyFfESmjX_XRxOU!>SREzfuAf) zF%v==j-5i*y#bG@GeN1OpNnlrRh`29ZQ<+YmGA`$L`q^s$BMp@44<&}iIZi=paED# ze`tvlNU!Sc4(D068T5gHf^EgnDMhNcO>U}Amg0&==eB@t&EAkSffw+ttM)LTqVndx z=EHminQl#ol{g|_;l{jz4p@xKx;w}X+SoENtGQ4);G-kxTnPVosm==YRxtu*b5Jsd z$_lhUFy9kh+-fb>GP#6^KJqt*?BuV0S>q;gCrhn&D)RlwBW0*mhUnkfprUvw zO{$gt&FfHAKc)Bj@*sW!h#aQ1#Gq_qh^x?5hv(t(7>V7v8&76ebKeXc6}^N{&3n*! zHG{juTQl9Xjno1DsASNP8A_=B{`;j-O)?h|iAE8QGts9jrF&exrT)jOHDZN~0`95f3= z&WIu~9vvUSQtQ`#ClhuU3`bDagunszdYE3>8++nPcJ zj{7)HyGOhBOY2D^zovWp9Ct?vZo^@Iz~o|SweV98VX2Et_ivO5izU;t7X{hgi9-S@ zVQV{rs|&!E)9ZcJ1yrl)AV(&s&T*7Ihqth0m2BQiBUMUqK-)u@wSeHcG@8BAQ&!Zc z>0n~Rm(HT_eJ;+ErUzi@GZP`uv#x5rko1OnEC^rUUhaV|5^I^%pc8>=qoCG(Ca4w0 z!po_QhKVl=lE=$o8#SKsw@X7f(dY-%GXeppRPDTbP(ITUm6n-i)vF(Y|D%z@BmwA| zh=gK$P^gfIdQ+9R1yO2=b{V~PLr`%zFfT*FO3v1;JDz0t{4-Y{$h2ksW|iMe)#RG+d^NFEpma>v)~aCP&Hy>2(N2&3SIaP zMA%bQ`YuvDl7Z9G^2}7`h=V=Q3L@jDGy^UX9?nL*nIvmN`1^hkYVKI>s876#R9O7Q zft$D^Azn27Tw@f;#Td|wuWfB!$pSrbTZ!;I|K+|PXbfnB#v4tpk9QlSyt&wtxQTZFj*vZ60&RtNNkK5Gx zVSk>_Ku_ZdXg7zb?r#Om-?sasmYXJ};(Ep*=nU0s0r&;R0XO^4C!S#0r+S-llt+-wX|lL-t99y=~Fw2 zcNn#pnNeHury?s$QF|$8_S4tT&X?+-fLC+-B``dW9Y@>kl%(d}2FX;N6O9q3y+^yk z3B#r*e#e{RW!ozbtE~d%%4%+iK8V0CB~hLE(Ap=Q3+DH1Mr!%(djyn~_Gxf%5tWKS z=x_UVk>$%TOy-UPJu(d(rYl=7u2fuKDH|veK?VaPmjQ92J~i&n6L16-2rtBdoqtfH zG(e|#gw5uMr{Bb%HH>Hxr=5II6Ffuxxnj(-*BX7%ncVur#5#)kB^lGYx*P0`cJluK%_F zbSkk|0Y;2^7ysV$0$p|PKThRuaU!RNhTmh0D1eQWrHBrKf{|zEF9O3Dfc*aJKSN^= zq6d1CN?iwgVSJ%?mIiV6EM4!|MD+j5IsXPDb`=n1 z!M-;UC;(xXa&`RYLQW6tZ-f7NA+d>|u2xwhmH7q|A#S4nj&uG^9e+invje96J+g=w zAwX|0zBc+#XS=IAhK_wNWL!sINJ*5Bph&Nm>khSBs- z5 zFer`}vWs-4bV1Oc0GHST%S1o6^QdfRZ-k|}@CD)TjH7%MXKQy8!P>KWr^TDV&4Tzw zv9Y%D(knMe0-`IR-UnALrah~NtnYVp*K{Rb-dLhIL)mVH>MWwe(rZHTZQjX`7h}uLQZ!^Ppqxugx(!z`o#0ff^OqE5&8?bSte6-U-S4$g}Q^7E+G&l zhZgi8oR{TIc!)RelJN2T@SeJs))15TgNgWr`^0E-P!vva2P<1dTs)z!=!CruB}wA- z*+F)RpjJt*EqYuq{VuMw30D64iw~UQ7qYe&05V8{L!5?xOTyum!!Y@)xaY-v-EiD) zJ8UkZSD8L}Y3q#V{4~Ye-RV5H#vbSNm<)o#FOg7H-h%O6VgM(UjS`1=;yw{G2gi;) zjyp4h5Y~B^cr2j3ji7;0!Is};Oc6GDE z(*M2`@FH?4HyDkO2jUMwwMNp8EGBA|7&vEv^xErpfL332;R@q#8fa(pFHs}#tW(X= zaSs&%$qJ_!i6qkr+^Lxv`}azmDx(uV32O~H*(x{CUy~`sB2kE5*|j1OanYC3TtkK_ zf~~u$06)T+XUFm~Eh(@b()*hhNPfF=%a9yEWB%2pvn(!f?LI(-ntyZ9Dl`t~H6E|e zpYd7ieuLU~dO^|BLabpOtBTA0xFKI*ihY-OqP=JMf)BQIb4nXjxpzA6ogFmo5yltI zvY!to`F?T~tlh*tLwt4A*JNaFXDN%^_g$|Dxml)al)FOK9(b;zP(G6X&CtKF%c`of zR>6YCQ`iQ%vW3y#v5IH{_=+&%?pe9@Vk>bbNOF(@#bkYtYY5q~4)LmLp{o{|N|g5Y zgVI+jH-MoA27OhRuZ``G?0FADC`i^8A!$VEn#rs1_JVRC0T1pRT`>tekL_kxtIonr zm(I42OMHF%<(TE3sf5&Nv?Jo=^9jMxA3&N;(e ztb_m&fqo9ddc{@Qxit;5TuU`K+jEBIHU(OlIzlr5Pv)kwHyEOQ+5*tzLLPz)Zzd>HIMYx|RyWiHg^BAtJOE=;y)1 z^jM%dD~b)};~fJVM9;kCEkt}6s0F}y4aeH;oSbR3d6#s|MxJYEZ@U4M!%gw+F=y4y z0TY)szsfN%UjFi0ap!brA|5yc+c8574+*GWoRU%(1S2;$_tA1Ugy1gA=|}!?knlI- z3=a+CU-bMEl&C?>gY4c7@aM}lkPRdu@%fI+vEyz<{qRd^Y5b^4A?!1rgq7*)($jI$ zm6MQ=@Qr#wEIj|*7Qh?=dnBNeq`Tw$aQTZb)IE%xsd@-`fN7+$*3SzrNuCQpa4gxf zgwC8NNl!i^g;^9gOOmFaLkt>1MqXa{;|23Kk)>5p+_bU$F(6VL6MP_tgOX_@VHF70 zhJ(2;$0|WTZ6U560k=V-s*LKQnRbL_6p1F>($$%;zNJ#rej6hm(@z82;|nMb_Jshz zSUkd1Ut#som%uGRTGsG*SqBGX%44~rumF;BckN~AOV(f&u|2=l@=3Ex8-PPfm4@-% zL)s{G?)^;C zYNDt#rH0A6NUYy3;MSvxi-yOCdHTb>Oqsn{e5WjPczcv%%etayu~Os2WW+qR{{oMY z24F6Jod_ovnO6@Ya7EcD+&c1O=!w}c$_eC8@?A{TLU#>l#-P<`=Bjm6(PD+h?lRmA z=BrS_lRZD*O_^lx2n=Z2B`T4Ke$6GSu)U(C&1hKX`YdvQrV)$ZhgH@wyginAV0~0% z4o%Ud7}&Bj^i>eLhwOTPLmJTtSv|wNLw|+8H3v3ej-SxOFLEQ&uUQy#Nx-x{bJ5zV zXt7*lb-C26--W^^a-qOYD(Q|ikWhR!bxqEt3qbRH(%aWZqr*yG{m=mo6C^>X!iIoL zXi!jcd3m|0TH?zM^s~<8R2X33ev7gf2K_c?Yb(SCD37cLQ-A9d{Z# z@y==12o+Rr*&g}xUfcwwx4%|@Pg1jpTrgJ!j!F;~@*Fsrrz1_*iI90AAp4NhKLP!8 ztq3?~ZX)66KEc;(1c{I~Do2RjW=*8Oc^E1C1mAi?DeO^W9ik1R`ZcyC;1Ny&9wQ@Q zLc9%-qkD^TqDtoY<`O4!%OOD99fX#%Q$rsT$vSHMsR+?}1B`o}u;+ zt?fynD@@UO;?;q5WK%JWkB8jE7iLTIQ~-a~_q`iTdxGx@AN~d3Ky4O47SB;ZQ}loFJ++|3qr^mm)>NC{d~^D% zxbXV{+)|igMWM67_qY@e8%jDu9_v%IFJIj0)lc)GA~RHRsdfIv?ZJI}6vvPp|~f`@OaG|IHxv zwnR8Uc*5oyB!;jnxz?YGwjVFOp=5#+QGov}>C zYV&s%6*iF*Q(xkeh|aH#C5Ug}ms(=y3|3;Z}?CD6osFSsOpWHg~+3X764H)12%L%@E*ePC}KO}ASp0<~5 zJ{p&*vgZiv63ywF!`VcpP9>1DI|zB>Iimi>=y0m#o@<;UpAq(;Nwn&fb1l;?lVXy=L^!7Z|Y!K}Nuzc7u@d{)PTaP779XAvQ;X6=Q(+zj@(b zD4kX$KyB7YQ~_N8x@BBHo^So^-u@RaAlLP0-5teE6~IJ;jo>s0fLqj+?;JM&{V2&C zU@HrZPtWg*Hd0#qzn(1^3#$_4>hEOc^Yi(Ays-$dk`R{v)>pC6K_Tz|Wkafk;95}I zS!Z(i)6}ZIDB=Hp(o?vf?eiUH7vxq#oel2YIi#Nb2L$siQ8)fO^tzA8t80J!h5vki zzj5zBo3wsE=Klj>ZJeunyw*&lE%SdHB^<$6+XVF=0rfqF^juB&V>^gwf&W0Hh_wJC z9$1DynrIku3G*x>ivROkKsdYSs^vX_`g1KPoL=O&1^@Sk|KnQxt-&&+%N{-u`D6BQ zPLT_L{B`!*e;8%{8d$~_AO53r$shU3eG*#EKcUGfp8Y!vl@Gf{RjKf?GxKkhp&EiR z_+KHH+jmlc7YbfH&JM!{ zQ1v*;tOLI7S=KuCQa3a`Yv=Q zdMT-y+#x@cRap2i_fE7jg?)q&Vm^?@5fZL>F0-*Q~WoYl$gMBRb%L;3x~XMxtQPtAMm04p{Jf*Il`|EEPP!%q&DqZ+3p|3;|1 z&9tasBh9gOqRFQ?l5dL&#Wr33vVs|kKR)mL;Uj@t5LULr=^>Ldc72zk0G?EFkfAts z0hC)&l$ZYoI)3eH6X0V zn5}j8wh5B)Gg98_Kt=wzffGC~_=^q#^r_BzePozqgBj31oGYzzUR*t{5K`g$0+6b@TvM(4b;aYM}D%NRrRT`H&4&i&xN=6d;M>bFg?>+fc6>LcNg$6 zQ)=ZxM4%1&W7nsE-+)-?fj}-n>!oB6VrVC+Cbvqq-_X#IYi>05^xRfS>-?Th``i`) zLuf<@wa}-C!r7Xx^K#B&RWGU%!GJB}ZLeOP!U1;8*7l8DkjPPdC*twL*aj?rX22r| zX@L%=mWR-FQZyizZ^X~c11LBuqdGoA46c~GR0`J_&tL&8I9>&@AS`X_$-)BQy{x=~ zr^-9%$?}of?Ga>f5L9XXbLtRlfDdm zRnNN-xo~H^Im9*8M~Eu#q36z9N~WQ~2;VX4i=1cZg@sz?W+2m+zgPw1%S9N7ETzVD z@~%*M0{e&GC37TsCq#+FLcUpJ|NKRN#&sZ^VEVm>Pv0RJmH;*(F2sklDSs&O2X>M+ z8rVCkK-q6i>>Vv3zGp8;3MlRvyWiwRNq)Ur0696kM)k=eHPFhof%R}+Ux!PsEMZvg z8ujV2L5{+5x2#RyxdB8GVWoKx<#c*$bbY}f4|QM!r`>wf$_QAEtUv+l^9?ttpf28g zrZOOgIBR^RYzMUS+BG6xB-!@W(OV{nDS^Qf*W=XX9@y}D^}J5us}hJ3foxg+2ux;1 zinf{&d5B+FMV7xPnp&S<$UekRW``03QW7nOM zZgYl`$*k43twd+m&L?E3UJW|Awuk@9)Ok(g_6<_6=E-&4{1*uP@Xv(Q13N_XrSq3N zG?gpJ5brbmYg6eMsdRf@k4rruX|g(hH$nfCw0uiknTvtu~kQZ zF>I$#*UT=h@nA??YDZYGQGQ#nXsLhBpNjDb7~UV>=gKLXKS6}% zZ}F2pIxjnsM%t7<^s;yVwEPHyeW=k!y$+>)0?-BPaR4QPlhES$69Gp}21rMVCW|BcTDh%R>5n}P8~t1n}Pf*hy}Gdw$|A`y0qOA zGUpJkDdYpS|9Aj|awB~|&Qt+yb4N~a;5K5obzui-awEh-{qhR+{QDmed9w}T`L)rh zgi~BW2p3p|B1%e1*+leZc$aAv5nRK~lI)3R=`|{yC%dpmj%Ujtymb26$5#nGY&mE0 z7AP`!>Z^OibJ98Hgu*A6ZjN#y)AG!BOfcE<4o`JrBP1Qa_C6zUkLwY<42D1n%jx6mV zI-e=u@$LtrO22V`hgihNZgZEl&A|Weq6f+A<1VU&>AP_fBfkMJRLfM8Gciw7@$O}? zuBXe7T}cmQu+~1G*KlTd|7wxd;!E+D7(^N z7FWpmC&*t#ws5mO|MJP{bdRb~9G)QdnTx^qOE7m_SWM=Rmu2N4ckxfp;V;Ae;H;*W z|H~)HkqM6=OV=>2%esOktx4%N{bf3ld7QPmzkKr71^jI|u--=!1pL1Q<;PeW#s63m z0w%7IU(D5ENbvmit&h&AJK&(tL2>q_Y$_yjP2>9EU9A6gD}R~7?F-q&ht)53r?2`dyACV-X_T{HPl5cGlR>_6 zjuXt}h&7QvUUC03AR6eZEB-CU{F}ih_|W-&9q_Fcv;6gZ+`bS`Fz?wg1sa=q|()CaTv?UnO&{AGrqiwKxe ztln}sqqHV**X{qyScDCL)TkQFILgF+ZwiO8y6=A;OC%rrO|4CSMf?)MpMn4Rf$PEF zs2j1N|AgS)IACwSpNj&b{&?}FiU_K;=Q}#mH;gD;pKx-fYw5&qTn?<)@8^0D{A>4< zhTkjH3#Ygu$`Y%c*HCTh=h-7CorLqzTnW!>%2KgwJ?NHh;FX#h+`WfqJ9T~6{vFEU zi_RB0{mVNgL1Fr)cyL?Tk^s-AOO$03wl2j&r#qpY#0Yx#wo#;ksWwD~dM805J2Z=u zS{!%rmB5P02MwFsUL_%rqI+~)Lmy%t2 zkFkG&p7E2E&TU;Ej38gC!#MCPVK~J5D}`U2d)foYAdYHmPh2e)to1qVi?mx7mY}w7O&>*BqURk<)B7 zevMt^v&N3u{TT2l8|7gVV!G!L>oWdkHAdUv$?buLl&rD=sxCCN5AA;HHb1xqEsZb7 z*QZVrp;9>v)HjKoBRiH6s+!7U=)`qJ*B8I}joTziHWb2zjl&&49xlusS1L_GAYI9K z(O}dGrQ(7abib}IMB8P$CF8=GY4zauoyA$3s@m*d8Yq>sA2@9PAF(etF4UCyiLaLQgNK4+q| zr5H;)wtSH!v_vTx(Tohib^A^Zx=mfs_3eJx+U!#Ep3UGmf0D~dW4DWe?!1eO_I#Cv z|!3C`UEb8PokND>DBh?G`Hhd;G?7fumGdV7Y^E z9%+(hCH3}@$$j_IgNdh4b_!VLy(!gn{8bPjW^|EESGs|p)XfFyW?J(+$BJZPfE7vc zluLztS|^ub6kh|&%Oc@-RBt`G|Cn+;NuuqwLBvxe$bXD(%5%_;SHoOF9Yd+vx_wop;Tu1$}*!WC1Z zj|I)+?K}?J7!5{Z(3qc1N{~&sV%%NT{8zqS91ET=IPtjvEi)+T9Y3K-;FN&+KPS24 zwYO)xwb)OlQEKVoeF>*02gE*4q^4y)@*(fV&EqdZke3KxDosh*0EmVMxe{G=3}BeD>K4g+K}wCrBJsEqv*YAovvkDDisrdjx>^ zs8LHAr@fWoVj=IgdnOO@EGu0y_?w4Qar+aW9*3wf=(CAMNYyL_j;8+lat?@BmtZ^L2fsYRWJDF}1{p20s%xe5IOyh|jiefg zbxkzzz-wgVB!KGr-Sal9+9&7Y;=&kt*vvEg14)&%8|ZDD<#~?P1Jl1eS852xT|B%v z7YHKaav7#}bmzRN>?smQ>;;pgxz`0rT0-!Wuh_<#$t`GAU#xRI4p#%?e+l!d_C2y)x91nkB7SFB-ZXX;_eZ6Buo*nIe zh<*E27j5VPTQtBk~Sk$G_S6E+^gFu;NE>sN#U=DqSZ=J&YMe# zWKO!DLp9s(6$&2H5t|b1UtL_YfA-6`gaiRt*rjZ$&c>0Dv%^NkA(nTIkc$<8yfy2* zl(Z%FcvXKRVX4E0MkJmiqMYQ?7Au$JQa2{H8cX$3gp>qB%vm8`^`c7si| zz<8eGePkk(Zu&4YsR{1IQ7KER|Hbpt*6R3pTWE0T#QHmRqb9Rd)q+&Nln478s2!6l zYR!1aJDoVqHFxlZOqVX1lPP;2T5w~BRZN0eH?*72am_B5_9PQj_gWnDj8w}4VHS;F z5`XN=3+N|FM>*<#_N5XGk|!P{i0D^gs^3mcuFwqD@VtYNmn3AWmFzud0{$#I(n9Q* zJS%CEv&_RUvhm*TI__I$*0PCt?psgxNdr#n6tI_Q*8R9S)H3y(nWBbOFG+T{MdwA) z4Ap`Sl16bU=?xR6;TZb`mda&rZtgb=EJ^6;RST(XPK%o@>fg-XXik$U&vrzaPc>Z{ z*XO=A;sS~d8NmCVhfnYvFJ~OK^NzcMj&;QGVwK+5FqisPPCt=Qj;IWcsbah_n`GE* zzBy?8?!+N3KD~vJ-BAql9kw_{OAmZ1h$o$k%&kC*h7g|{M!l)w%X_08{7|y0e8Zo~ za?vK4eXEHlj|z+_rev=XZA@P|PFctHv3S+~8bQmy=q9qE4_Q{H;y+KTelzKL@kD}; z%Mo%zn;xLRefaeV)y zlq84~s&kg56+j>GdP9;ec-iXJSdQc{Pts(dAM~5(rhX~@OqdwUs({`xb7C93O{e<7 zzJx$huD%fkwV?LEn>oUpR^9SZAror>cvrG(ZZ6Fvys2~iStM1|Gu+~w%M&Uu(qeo` zCG=`&{qg!^-D^(kJhE#$mlAg@9>5xHccXG_=M!gtl-bBArpROSR7nR(J{2jmPJ;dN zq`o=a+wyCut<-9gApqi;P6oE*Bd`)57G4Mqm!uZ{d`gMoKR4z?DptHb?oG<=js z-r?c`*Fl{fiOSmw{7&!XqHi;}DDBz8!URlIt2u_E%mp?aTk^&p__E8~?s`6MwpQuL z_W7o6(eN9kB>XG)mPGNW;7==c*ynx)%g>FbDHpbr|IG4~m1*hd%O)ggkGRvo&O5ID zk=@HW5M-;7yz;#BTJdq&tznW^6g&t62q8Yi+JQ1?!}$jzS0$?Sy>%8~-KxEo5Bq!{ zK>_!geG~k;m77ELSzB@>4R`2@bRF(e<5Ap$q$y`LR61eaoLRQXc0TeL;rY~LB@ukc z$8tUH%54PGzfPJRp{2O#t1*=VisGzuf8mb7$_V22n~C~(QK(T)|J{o@t-3b0=?n!4 z&Nvsnl)w&D56D(lxG|0?S{Rou$Gw9sWk+~3eOn|K!A<4b!yKOXnSt&8`|&~VfaNn@qY*&8MEk4FMY6s<5&rPile7Zw@Ylc1lb?1qBS*d! zw0t8QvBDj|V;dIZAM1jPL8ZtP4fIdO4{Z(3&@d&Taa_B0{8b2(g(W5I<~rFSXpmlV zXI9`;8Wd5%9+a@9I?^L-lGN>KSs5MF#JK0x;CjJ{S=|O{>Z+}QGN$f}m=^_B>SQ8z zDDJ}bGYjIwt}t~Nhwh?}DM<5Ukg(D}j|gu~QAi4Jh1rQqNkLae9h?kLj^CrM@2{3A zcdpo;ROCE)@?ctCjW>v>~bMbzgdE)g2EE(qV_4m27kx~OQ?W}o(kkREWT+X{b z8`FUhUu~(_Le@m%BZcuc1LNhmx=Mt%?7KljS!I64g|Qf|$Z zx=~QSL}7i%^x=4&2d_f9pEYsIs4uIY4q)cC`E=i`FCIcBmIhs5 z6}$JUC$2qQpNY`DY1mDyr>7@160&$5l%mS5^zc8*$_CZCLg)HVuB$t>7wmz=O571Y zkTNy_I$eqFQdg`2u+uV#R`FttN&YaE{pzqe=cRny@AbB|Ons#rFBpn69HN#{u`(`} zO6I>0bLw^S-Eq!!31E{Y%~Td$DXVK@5pjD((iN(7z0?RV`nT94OZypPsUy9kfKM20 zdU2&S_2ZYwEpfQM6||~TNyG4lS@8=()gn_XbehuDV#-rVFGFh8) z_j?r%`_^%*Oz@2_^MmmeQ)1auUINYa^Vi>$!MisnJTy+|_Sasxx2px_yj0`f zq1h3+S{fCAI=30~c(qBFTH&p0z5X05?3qN?Plq1`U)CAwZd%5Co&4pwy52i@2wzIO z(fHJldQ>h;lWP2uynN5voUY7-8zxPy!>Wrb=_{;O+{AJWv1WaPw_;W_DjB}_)|(GyFRS4C?ruU z>f`4&f21E?=mSKLF)+sRrq64Rz(K|vorld!?Rw3FIC=VeKWG}90r<*==A@tnNm388+Zdcpr|fZM+0Zk@^8wuge*O3jKB&SIYdZ97A7spbjb zJ!!lBUA+=4x9}77!hq*i_*)OD^Lc{rW8TC6NNn{O3`m)Adl{M{p zS--aS3>V%B?emgnoru(`bhI;iRvEg!zK(j}zb>sw(Vr|wWe{n8p+orOZsceI+v`58 zqyE;7A(nvUU(WSOHqRT#gH&m@^s@$+3I58+= zr^M%?Ue!eko<~4gqJ@Rlju`oGP8%jgf40~b^4aVVA~PAv|1mp=)A!3leTFo2)D+5+ z6zOd`+Hrq*XuqtG-pTYwIe!QLtTDKtFN?$BGQOCdFWi^nX<>ep)-0&_W-+1sc7uR!wE`OeF!BmzgCRT<2#DV_~Yw zBK*m;7RQ1kualgtX)5Wq^JZC-BWTpSYGr!{# zn$6XCmvJX7hTwHUU+-(aHcL9o(xzRb){E?6H;*4Xt{n^79`DE5POd-ZdOg*;w=$fy z4vHV&XEat@-YheAnF-(9@RC`t+Z~_iRTk5pN~2rrRgQt>b>8D*5}MAB*&TDD2y~8` zlLV13_^;qYM)8h|2^tlpR%m?(WFGf!(Z^d(cTqwf`!O`a_+d%)3 zHu6&AYS+hPJyvfQb4wm@ZfA|y<%>s2l5J((4(%1VYR|?@F~X6gnE>G-qcp{!d&uNT z)xpOkznes7XCt5!wf=?$b423B?hia~I~%Th2RfI&OAV*k;4mkm%q`=Y$+xJ52%sN5 zamg$ZNb@^(B6zJj)i6}>8e?g5{Nxyy8Ix>=Q$^dE|1g6~_nP71-ny&=e8%K?ihQE$ z=H9_-#iE9sYd=VbXVazuY7!GPL(ppBBk%YX9~zfE)OanLPf5{^5FkR_bv|4dtniCz zUl(y^l+$=qv%j|&Pq4nNtQ7`JLFj6o_*Cy~8Y|s_PTX~HM6)o%?QFOA3v+v&5iakE zzkH48GqvM{^WnzkBgagryo}H`x|koe`zIo2ZWvC|r*WWs^yxN3Ez^nCIs|psM)Er6 zHsZ%}CPHI=^~l_7L~%M2Pf6cZ9U~6E%b+XBR&g?>lF|{PXUsR>ALDcn<^o6MPPtJW zCyyh1NV^)#bKn%ao3wQ&iv3PJB_PS^JYE@TQWMjQy{D z19Q+*b-I|~`8A>xn&OjtPa_1b0Byt$tk`!DD~eEN?|9 zbeq*kc!QzAVe5)z?H*10arxGy#ojoP-~C3O9+wz>U-u2}oSg;+1Rdpa(1vQXl%k%w z4COegSL9qF0W7gg9#@O$@RR#Zy~6!w$mZj>p21&jYiuM&!MEn!$13be1ias461*5I z-$xy84ZMcNdWciA7{aOb3B<1*6flo19UmP4Ds$uQoMQa;6fQ7Ex4SYbs7=QG%V9QC zLnY^JaMtmXMF+=D($$fZYNur7tmxIShA4y>zPC=~9LdZzD_nH$9G%eOe@@a z8>;yhyRmYU2N+>5B-I@Z?)Wj@yN7QO)%&CT8k3CBu9k9`qnuA5j)k!)!ub)Kj>8;L zw`4Cb&#!K4zM`cRh~4AgJQUs>Sb9)^hRz?a=F=#yG;mt$$MC{>bD@Gv=XKDP5E<-`IGQZ{k26)I$B2bGmo!*>j#KlxdX!?(*&*6r~~Sbd3PjJ=`MPFLzYDzHwBWF2-_ z8sHZxoFaZ^jmx_D20FfE>-pYpsMM$4Vh+yUbmmBloX7a%+fUe)sTjDV)vzBYar>{s zklv$4h#dEPiEOQ0_pW##Bc|m^x^xtzjTAsTHH)=wx^e4jkJGelIB2>};3vF; z#rmw}9uMDgzQS7L+>g25G=pTRb^$x`;>f(0>X(UNw-*n!DDf%mcb0q!#$3p1c5@Gh z_h*CU;gly>rPlnCF|h4{L6?{K`?f;P_Nx^(Zw6n6R-5*t=~r1xC!rl3>^79GmIp3| zPWu`hx?Ml!U#}-x|5Z%zruUihhw=_ar=Xm!qutSXsJBe@e4D9O{WWtN`QC zGK=vhoy+wf;ruzEysJqV&6c}cb>9uZF^I8fP}OFz%U?HG{~}W4daSeEyWqe@!!fnu zWxsTpg2Jm`i^3fUS(ub&K*Rx+-mb~Z%cCu1RUHeczg=%YwTi>pAZD?HBo=hsYzu#_ z^rI-~XnQGqyPkFY^X0at7*^-Cngi`9zv(WE?S0TsSr|IS(vxjAj+(+9_;d@P9~mvL zPW$Hv;ZDch436$CYa`z8)p1a{ zV75|!V$9oy0UrZZ>91YWyg%5ZJs<=h&mzgOnZ4F_?8E?%)ROenpL1H!YYL#BA9bLI zR7jk((3^=1P^>xZ430I|D~+Qmkt+NGRfMnyEc!E})(3R`s$JyGMBd+IQ3vIpi)R+t z@tN8;qN{LLq&MUtsEA!?VB08Nd8-l%N!vz^6*CC z-nYcnz@(?xH(&S6+-|z#=GxL$8@@a=&!ycLRLE~JGtm?fA8wS#3HmkoNphAn71jE$ zr)EvH^HK8PT|K<52gxmBTr4n$iOrB5v<6FV0oqi`dhYe|9Aa==N;g z*;@lE9{bpn00{waz}?n#r1+}yLtBd@46;bzQLA`0gS%Gy9YK68K_Y#FIZv%3q7VY_ zS^NQ(4QgW0Rh?k5L9>A{Hs1q=Lu>8rXDnvpl5Dj=wbkC3O8?aNwoZ!U-Jr4i!E9aI z^F06P=!@|KhfUNLu~&(sk68GJ0@vLOk_~T}JgtI6uc|9)RXB0BIFadT z1$w<%dOMs^6suVwP+8adXf-X1`r|PgN8{-3h*xw4e4-)LNv23*zmwWv#G>T;NGh1fy-3hFR(RQS} zV-CV&j+^Xw)OXQmwYqq<)31<`z1I}7aDJdv-SL1}!Xc9QI=vEL6>?0~`0kfwTO5w> z!Mu59&`nNwB<5X;=W*yP@U8SOaeq=R-0U0PvZl5*zABJ-z1NDkY8%_S->bSH;Tr9ffUSyT* ztrjJ3Z1g`dEuC+49X;Cbrvw&+3+i1qC>?@ToTgPr9Bpuzj21;wPr$O|o7qSU>q2a4 zEyw*k9Fh^=vbG--ZBR1pj2MV1)haT&)r}gA`4j-E(E5!sX8s|;2b)g)0LCb}i zy`@OgQS;^M`=~CWQoIkVDxD-v-d0FyJ$BGN4?St6Nust9Wj*b#2~2 z>q&AYy%x^g@^1gmOvlB@pwUz-HZ3(a3;Sg3@uV2jj2(8hBAk&v7w(d*OScfDQL9L+ z$|ywUQFQxY#gec6Q#*GFe^yYx7AeTtXFEPHbN3U;44m4^jsnH*;X~s3x#L1?ESO2Y zRKpR^#vKoYR>~KtBb}sqEy}O!64aS(6iJQ8+OD}Bv={byMdkrVk9d=9V`{`L1CA*; zR79wBqY*T}5Ut<+qK|zXU2cnoLy~4`jz>wc%kP!-GKR zmfDt0zhakmZ|?ho9|Wxw-!GN|1so41P%S zqwU-laQ}U}j#~(@+te)$T0jZ|J_(_cly;Tm?TV`j7#$zyP0=(3#pT0g^K6 zooB2D8vZyc0i6%l=vU@%>B9?0^6hT%7!ORb*(?oQ8xD+dWWx;?7Z2bi*+ZxFP$D8Cp@=j?Bho$O&{6_QON)p| zgD`Y=cSt*Q4P7%Z@5Xb^^SFvJnz4vupzfwj4hcy4BMD;wa04fQ(5A*k* z5n8^kaZ_tgy+-+iqv1(YAccnaRL2CU&c2LzZWX!_JY^r%%Uji^GZtY3tAQOa! z?Va^gP*2}sBdlIV-|VsX;!98Z^U$@*VkN*AOLeMds>Q6J7B65#z*LQ4-`^A@Ro_3m z~ zAjJ!L zftQZgiHWKEy6mHmb?2w=EGNsRb35DH>t`L7|8zi7Nz3&H3JuPnZBKSh&fL*eebqD3 zNlE0v<~?6Z;R~PI?obDJ6RglC467lnb(6bJkRGqETUXBqLRG;K%zj2bNC51qKx*ag zQ>2g1GJI|IZX_i7#jHsbpaZNI4JXEn>`}3v4w}U2u61z_jNalx7BFC=w}3tHNo^s^ z*g$TbmW%!RsI6#n?dF4_pK7B+4U1P$e0aKR2^TlfQ-5!XF}bHnE!T`$4|VfjU63N$ zl}|wfx;TNksMUXo6adwT+v8ESa-IxSwp}ZA(td5&951KJag{+O_KB_Tw&39RZ-WhfBm|UdMPTe=FHH)F zC{L@L&5i{>bxhlT>QztY=Qr){FPMR44f!|#uv(j?aSRNo3^v5j$A|BRj*yEToAv`e z>Y8B*z_W5KG{I>g7nYH)e zf)PKgP(}`jpHA}5-&tC@z`8&6(8=YtJYjzbfUv!oGk%!IPA1|Sm`-1ei^3Td8ixEn z#7BMd9XkVX55ODWN|nC6MD~NFp%I{J9&!rLgXA!WGg-zbY);P}O_W{K+c@csr`E_UWtlOhD?u*!ohjrp z6GiT3e660_0ynv}u0&A2#5M9nEAde8N4!2|u5mMOwSG>PW<8x7EbgWje8#0$+?=#; zrD%D@N&l9gSGy{d#ke1C@IqWq3Vy_O`P-PsMZcj0LNW!R%tBM$z( zq9UbVyY63I3=Qwy7JP4+9~D=zx76Vq{C7Ca0*IhPUKk3#^a;^-z=%Q}PVg0?WcG=nqoo-1IBcpg5RFx?xf5c|xgWG0AT^(%G zS;~m}_m8j)l!-P}T?g@K3>vY0@r{~~F(Yo7ay-)KKYjMlrw+SATy z{ewhb6#jtrZu=-Y8RGFl8y3f<9Z1#cx#FI+=}aF;ev7<9dLgIVY^ksA+!q?q@O~!O zoc~RM-Za}6%s%4xFP&|S=PA1O;9+ubXatq8@ele$JPLc({fz+vLoMN)8P2gFI+P6z-V-RzLrz)D?gf9!@9( z+qkUCY+$!a+B>3hA<`Qf^#t zQfYAAmQ1Jp8tt&}`7I#qaa?FD^IbNyIOXa?irW~))=&2G-x230kU84|&=MBZ?(&@; zY=&MS*uVR{DfV7n&a!(g(P%<_u|BU@RRGAc;8D^~5HUZ3|{^i;;H%dLkfqM1fn#*{FJM~sM3cAl|OMI?d#%Lk9QLpF% z3lu>VG?XZJ*AKIb@i@LS^R%SZL*O7u1DTY)@7@w1&WmrL>m;w(geUv*iq;4?^Uc65 zL}%#s_@AvWt{@+w0uyJN0Xtef{P+g`hM1hCUWEmA z_gMi)GA!ZOPysFgzIhsA<=NLfXF7m;+;yPdDG zB_6)uHx!;MM)0%qVNCCFHLxkhvm-njKxBqd=Rs1n4-DTeF88F`n7qo@xwke}fM!pf zDa+%Qgdz8A+)r0E*R>woP@e48jlh{89@;lXKP&wGGFkBOPSzoNOD4%<#>K@iwGJg6 zL3w=^8V@yjFD3G3J~b03^~m^x*76R#@WF}}D0PzNEZC^KJ&BS(9ojQd##olse{#rp z_HqBF2#!mqoM$;kBv&)COK?};7jTeH%c6H;5#+KW=i7|mA`_^Up}hKCQ?1dvW6FAN z=H)goMNGRV@g|G^>54V+eayb*x-Egd;z3q;_kYcDke<&)#b?rWzUNe^w5bJONhk4G z#F{SjE%$sm_)t)xm**e-Q*oE_7)=6y~PrJ z8Uc-Yb^fAVQE1jz!n3!@k4oJ4XomU2$sX;!`%N*NwE!E}U*VT29-%dpjbV!+aOPHi z$lWdQiA@^y6F`-O8$#uU21bC_X{Tw6(XA?JWouY}t@_$G$DY%yd`hFv%QJ;_I7-4{ z(hjUXu$~*PpS9hZs=&kS;>bL#_#qxynI?0oh}cHN^<9>&-Q z|Hd}0KA?IO5-w<+Z6ap_u;0}6ZkbrcuG%d#@TN`Fgo9aNXPLfbDjxLwE;;qZj zj1q}Ah?V!8&aHC+IQ$D?DrhrzgBc2lDBM?xW}QE0zZTfm`aFD+1qLj~w0kkI#5RF% zPSS{v`NgvW-{xu=`i}3z8kPpz5ghk>c0*);|E=oMq-OB#NA9EFT1x*V@19WWv;T8* zNJU?1C!BAPNogoD(iH0I-5jE?aU)VP>{Uhr0_DyAmyfVoG`dxeMa4^e<$0Q#Pq<&O zKDM%dT|aP$o@7?(wMkb>{{3$Hr-{^FkxgB|EF$p>Cy+7^jrD%Fc}m+lj`Y*v0~dP( z8F%fC{y#n>TXHpS2l#6t8HMnU>y{J6JyWGGwqX6u)FXKXD`2mw3!77 zc0E%d#IK2GKkdQF93V^Hfzi3Iwk&V2b5q+nkL62q?y8fw*}Xo$XZCjyOys0+dm1jI z-svz^)oHl-%Fz$CDz+52Ev=2|7~e^21|QeGQPhMw@jQyzrpZVd7RH{x>Wdeb9GJMZ z;rj|b6~vA3z*nZIxm|PWDCMC;o>U|VK6~;Q_U5_godzCfs|>?=uZaAd5(^$pN6^aY zhG3XCf~&UBfnrQ6fnsP$2!C>3+{|P9{g2}%4*X1RD}2L0VlS6dJNi2xD{0pb#Ti?w zL^3@Wt>tE0^}8`q03A3fs51qmrkS>j0hnG5NI&7GXgfdiQEu28&PLfG8h+l9CW$aR z+?ddf?D4c>kEX)jo64WAK%0%_*B`WraqSU(j_9^#oK#b%daB2I%w4=tx;`ht5YezU zVzG}9lJodr8RMFl4cr5MsO1D|)-9wyj64Z1Z~Jc+kY$vwQG_oS!Nk9=^~=(yTo@g< zo@Zs;vb)H>Un*fk&&q$%Or%M1;hT74Hb*=-V7kC2S~{AJ1F_iAo< zt;fOI$iTw4T!;+rd=f1pQ89`9)Jup9pwgw;rmvpCaeIR;Kp@zi5gFZ8dS_yo$C#Y0 z0-HHJ?8pFx^Nh7Nc*=8RwKXMZ6CN$XTbUE8IQH*l>r{AK9j&;l;?Z2lG{9q|6IurR z4x#`1OrTbZ%(_H>@f$%m@e=m=J(`2Ox5zzBd3&jok9`*KA1xKZ86FvVHI;!iP6#f!_ zUlH4&+U|U2|s|bs=b*V*MtSbxaz~-^djGptzi@zE-Na%LJModd8oQ| z%M(#2{4r*U&jRTXZPfK2<3&a!V0LA#10QIi!}PjqR39_9E4IzabTvD={zhUm!{?k_ zW15_jqSdF;M@zylmgv`&cxqMhgrs{N1ab3?%{yd822Eg8XRN$2<8&FM9NhNo-3&1( z&<%bOgW8^VN1%EqXB%VG!|NC0YJGhOX6uKPJwKk1#i53W=+obReDOmY!qiu5OY|jK zgI*bnz8>bfDU^$~5t_lRF#WPpr*}WfG{7qF?W}cC^I%(2d0uAG!mxNvu+uB|^=_jT zQV}8)ou7gx9Af8Jin=?Vh`vdD;UmWwkUr(zeK6`Y6F{~U0VSI1_MZ)fo?)_5TTzE% zTjavaqREti5%RSepOUF>_@^$(i(tcsC&KU*m3m?@NhbxJ9_SZtsW=thz^!RZ-D!Iz z3}>;mj7LhR4cwI^IC+f%0Wlr}zur%DcBgu|X*;lT?=8EIDNF_=D5IT4H-s0XqfAQA z8A>0=?Ow+=+h!Ym{b%SN9qk?FZra;kNitlm>F_3BX9DVx6|Naomua{g&05^fKa!&@ zG$!cemtV!OQ?+&7LwuzNIYU`KgF;w6-#s7mn{mgT=|pJv$Jp8NUiRX1-j=XmS9ldJ z=?i{lZ_DAdUtXMs(RcrQYPWL%4bp_7#{ZSAg=l$WGNhWxUZy~aq9Do?D{^(U%Oufz zZ0)Ln-<4D6EglIai#l(33tB13R5TO9&XPnBacio9*5w9~+&4RNwMvO6%Un}ma4!0O z1N6X~-(01Dwm}vY;RI_T#XR=I7UR_>IW}=IY-*r|&%$)J!~j$uHt+1-J$*5w1WJ-8 zb+xqdCa#|#rZl74WoG}bOHlp7lQ7-Gtw~7Y>0l!f8Q@vMmf|JOkE6Vu&S92&n-BOM z{#=0=FFoN_5>B_P4*^LNgwbSL&$sEdiEJ#UpHk#gseuSDNb5&Tf0D;&jhyn7EsFDa zzHR5Zy!?RxsBQ8q*IvLx>Jn_3Ad5&UOF5sb__<%Do|3|G0XOL?(?bK>hzSH4exm_` z++FV(LFp}5u|3?xJinV$^>z6qYkpG*(PDBYXV`6lKov+H87{6F=jz4zAZ})%+R%Ul zim7cAP^W0>qmG?hktX0weA5&_o8rGICNy`{!Om+u9$?%2{ZCFGu91e8vT2A47h;Fz zYL#O?^HY}43yF}xk}xBFz0At2-EWX%-yV?b0@^kOTVWBR!ixDF<9bxM&%Ba<7i!RM zt$03A#76f>+J&T&f9dNtJwro7l`3Z|SZALI987sM$}Badf&c&+PL2Qerkw$-A0`~d z9R%oN8TE1#RYJBpF=Gc5C-=&6(ubQ=Q!@zNZwp5><9D`is}wd&RqT1_+T?;jqn(|1 z02V8-p242fRzn>d*nU|J-E>+Xm2Dx_RMt%u;?Bt%3IC^hPm_`-eK|O0m5X9Ek=mk> z*F3Kb=6JaIyOc~JjyOE@o5UMY=~Q}|5p5?(5}k00D10uhl+^ub^I-Ae{pBev=zY02 zIs|1CcGp6~2(S^$2#V|?DD#-&?HIIMW(J#}GmJXxHMJ+G)!x7+V> z2J7Fy>fRCXn;?IL!kZK&>o#O)ckb zhaK%^ACzBzdQB~dpwpG+aEqc^1f+M)sq*D*CM!Wer({M$_RFzq`f7$jQy>aNR#S|Z zX%2mll$XPcskqVTnG~(CqH`gs0!RJ8;BcTw$ykQ-G^ud9IV1MCN0J3r#Nd{SxSis$ z!5`-C&P&N$++ZX|EQ5DS>l{Oz$>(^NVs(q$ay-%}D}^p%?Adup^shJLP|7e*jE#=? z55}KwBifc>-K{~(=k-3~g5{R0qN|9k-|0tY^`>J;z8Hh0kKLKYnGN29ti*u^AKKdM z8~kn^pCLyygc0wAG|r>bB>0zd^2MNh`7ol>EoLyEkl4ifh#D_BHr?jY>xU)2gzt`kd@7 zqr7LoS=>@>7hc^TDq(uTZ?b0NmK!IK(#}~n1V+i_<>irz3tBY4>Zb$ zcMl(;2b!qFSLoGe+`4-1Y88dx&vVp|v#8kPr{hw8Erj>o|F0DJr!&2F&vs*+7XXhB z0IgYC23G#=+9A5n&Hf2c3(ZSrYo^>h8G|8c9Fc9)wII5%9Cwb{?)N()*-!v!RA8P) zG`xtMo8_KZ0_DhKh zPDfofe@`4mv%2!F?cd_}SpQ2)0Z+sbAtl|$g*X!so9h?>AfKR;#K}VB-S&m03t{8- zJa@t>h^L~Q==~X;WmF5;@qkhMHpa%ag(fb;6XRT4YadOr-v&p zjDh{`-I+SJJKRFEAkFcbhB=7e##_&81T#U~{T1Gv%bAuZwO82bWgCU%{}^A~A1ZH& zE*OP)okVf$jEI*w60;*HkzgVg#z{`nqQ6t1M@7Lk3DZ$~!G4`tySV!bwRXXC#A#`U9qpXgj{ctq z<}0VDq!p!NFEx)SP<#+-1!-#d^a{@1G?8%-#Jf9Ac$;PQobv7?nvv;0#R5K zfs=cwn*S?4qX`#u7I5Ba&YQhbfXsM}mKGKIt}~jo)Kv1wn5A1Lu>V=3rI+dyLd9H872>$!7s)gC{Y zEg#%uov^DyaCBeD*@dlr3}>Vd5o)x1coqMYM*y(+i(TBYCyM=N5UR043E!9fGV9e< zX%3-9cLK7;rp+ibVvS5HyVm}dDd5f#RusL@%qgfPJ(_V4dPdG1c!jzZwcEvYML4O= zNPnf@jEp8?DtCP(N3Q<-dtdx56-u?pMC%V!%m;a&v)q!WDoYD=7!vv&9{yth5TciM$0!a!L>`#wquM)$hDl4p=|B&N zr;M`v)^?!*3;{CLuL{d0-8Z0j+mO_C-5n5Qx54mU>7 zlyK~y#$NHNfpR-5hH-a7CZtcNKqo4Pd%4j{)ihDqv$y&n)*60x;6ryh6#!pLAmiOF zm4=^{((|UxcCaurXY_drLeKYOe!OW34j>y{wa5SYmNNnoXH%bFb1Le+d6_(sB!;bd zzIU<`l_zA~NN+P0IAAlC7Kfbc5h7V#RD|zQBqNOO%((3lhq)bCM{~z{FBlWBzqNY$ z(&HWjFR8hChYFuubH8{;5}^fMWkh8bO9OL)H&|&&LWZ62Nt+h-f-rArGSFoY=$IiV zdmIjuU8ch0^xOt=OY}_p5xkavS!?!D>ipvf`1E*BEm8Aq9Ni;r%%r5c=sQmg^s56tbfF#{q$^2*8*EzIMV zN*O75Ysli2--{eDuNiEvTaNtRh(87{UC1KXJu%oWWTF(=+$xScnCMzUypQuc8C$(7#lj}!cWkWp{llXSugo1o-etoBcnHu~~S>0_oly0|M z<$0KF4La!%(uO^Wlb?7S!7M4E&B)H8@{DNQ3RHZTiAedJU6+$xK(GC1c7XlO^Tr>a zxKT)RRUYdpOuVoiwDuTFon-&Q0+u*(O1uDS02KR&&hDfG2+%8acR+FOe|WLr$fOfk zqq$(P+6v=y4}h4+=k4)#hP~{6M$x;0*&?L|C(INBGy~ghxvLjK0lS_N^)JdHI!J37 zDKT8*r~7hqI6}?}-easo-`sLA^&KI_RCi|<@E4JJ4(+@JT4kU7I|$wfpIhZ?mG~~Y z&O1MeZbWaT`liDu=-dqAqcSo_eWGtrL7x%-`GYEQG2{C=64vq)7yd`(1>3^Fv~%K< zJySK_mDaA;AI<>vxRF(s=i8Q2el?LoqhZ(u#_6ciF*y>30;ly@ zx|6lb;!5%U*{Y9FrLPM9bUSM*=O_)NegH|Xg8GRQCCl|VZjX-6z20@dqgnb;c>un_ z5D7uxLMJWv`ka#DV-_fpGpn9Z#I60*nvY!O$bWhc2s$Ymd zR@@t0@shDlgT~!SBJ63sY~4Ku#fJcf$bD41Snaw8%B${b*9pi6Oo3T#GZ9=0d|dv7 zl#kS!(|2Qf7DC31B6PynU*zhSMICN6f6I-{Cx4T48e=p4Jy3CO<+r3o4XoGe@RFr@ zfAd&b(hQ|_9E{8~jvE#ZO4TKpaUKza_`Lf9i^KO0eR^Cqt!>Nc7BM=k+`o6 z2ykMioginK=(m~H5u$UwVm56qvtD^^ev*j_tBFGi2Q9%JQ4k}*&nFVU@z-99g&)6+ zZ%EZS`Y&tme`UAN;I+t(N@Xf0U!%6yq%`%#2wY44Ra%R129XeOnBIJ!DqAt|=OJzm zL@G8jBM6nMx!QT%4oH)}aYmKziP^0mt@7hjj%2tCc}9uZK5>)syT{V5Di4G2WZoNB zJ$C_+FCpF11AMgLE@6SML{U@KL)c%HTGb_tOEo^xttucwo!fHXYN*3;Q3>Zx!2u}C z3RqnXD%??7=qfaxIG5;66=t1d^$3KXTL(H@zk$M0)A}VP^G*m8RX|EoM&iP;`&>O9 zbh};#k2=JczRUHf!Yq|agmTYDY^`+cuF#9K^`CFD2`kKhXUGW+7pRXR*Xn)z%F*W- zUW-xY+RAFaPl8IFIg&aTR!nzxiH!ezlEY!TiRn&fQ+CmhWsY9Ns;Dq!u4gh3AU{zi zT9=ulyvE-^Hv;7#5T*B8csq+a@j?j3GW7Nxk)B}KBhDx90|^${MQsOKtn8G=Ox+}z z!sreePpK?F#^APE(+RSLoge5jw_M4Die_eLl|E>Ow9Z9H3eCl+O9Bd*XSjS_e!XwN zWYN1FB@Ufxn!UJ<#;E`?UWZY(>SOHk@#>`HPJ4zrstl9`ShC;g9szVxA1KZ;(g;T7 zSqU<&0s}s53BXZ|WkPo8wMbkP&H<0EENwLIXeGu5q?M1P^nwdOT&VTwjDj z8D67bC;u^7WJGISc`_QQJkPMR%YOU{&8|?dKS8(|R9~WzW z7n>-QmE~Sg5@o&Zp886)rq-qPE(z4CxKNej1qC0(^n`JtR}0pA@cZ>q@5^zg0wv7> zb>1(x4!E^X0Qp60!h_T7Y=>k)0b3yu%N;9zcuYNBZf8_xx+H?xatAbWA8#iBb@YFA z#`SGrv!wRRHs~z=~!Bkd4QQ zSi4kf(WCh}Z}U3JG+RPwibp(8CuresVO5=FzBCt9N|rh5$Q*`R{J*?PmaFOb}yb8LT)jOaey&IM5yB=DSl$7MF zm?&s)?kjt|f>O4dSXBRWIEilFnZnwOCa;WcCV3ZT^~GOP>CNM@nSr)P73B)r53G0d zPinRpYWK$T-k*#@hHUD)wM~{;HG!ybr(O&@b$yLU?O%C&6@HI)+gBqbA$Yr592EPs?2l2bjr33{{Ku9E0b|pUv>Pl)|vFMCFnhlv#(W<-bwwkVwYOf~P@uu%`$RGm4CFKN!f82M6@l5#PJ_@D^6 z!U3!0)7QC2PZ#L>lH&{1l`X&Guo7QUC1Tj_^M2yrB5;_LWqoyQ#>_(ok1xfWgM!}B z2xXwkYnz#wuJuuPV+T7{v>5V+f5W zRvY|2Y)>r14CkEu_JvJ@-^i+Im2JSLk@VX;ZKt z=)2ndB~Mz-ckd9DM4s?*e}FiLu745miON~(TOO+6pZIGcrt%KY1g^3Z3gU~<*%}mw zTXCnIpNkHv$=%uB#^fekuVWyZ=;c^A$_)FJ$Y5xQ)CrBmkPtmQ-foJp1&UIGv%vZ* z(|pzmfVnv3xW^g!VQ=BrY-U&Ne5JJCc1KpKOm9ZRCe%$%;au})!L8|!S*c9q5n1ro zSaY{2&rl{mPoAv|%Q0hcfstm{ZI+4Mft|}yN&;#``~20D{Mam~S^IS>IO-!WnB-fO zZH6-`w0@OU;DK+eOfU5qI`lZ}zx|7eso-h*xAqkNXN%J=?L7k8idZRBr>>pX(6UE1 zti(V#b4j++r`Gic>8#3pQwY`MA_Ii-` zWigvDK!C(rhbv2*Jl4l7ry}l70!VFvt|43dD5V@5lGAhLtx;<=h3l?#8DqeY%QHya z&Z4Pl1XB(EANKa4#>Lhdk!d$VOG)>`q^qy|^GU-MJJYpI3u3Z7F!TYH<}9h#aDqU< z!#Wv`odis8q~&^Eh}c$j*H|AKaap`!6X2|v-|cn~CG5oSq`yP)SCIZ%3w*B1Vx6~@ z-=XivocuS;LRF1;=XM{IY<6U|o&07Y8qQzlSwA~++EH7yJvopspHB%XUq;02v^%Kv zXR70GP}ca^tZ(;450A_CF2g(z1oF#w*~sZ^d96o;2AN#Sydvd54x{@A*b9L@eMDBznk>ov~ zZhIn-BIc5EvRJz1#$i9ygZu-k4Y|5=+W9q${D1?qKxX)My7zc2#|dOOpT}W|gAt`D zI-2s`XXsotFg#%!FE(NSITrF^-VQZxFx|T8+ZN>0?T{ekLVdG$ z+GmOLr+&AXkp67?yMfG*Ez&E(b86?}4% zXeHaW6%P($e32>Vee^8jheNb%pauW48avu&)%Ie6b#DBv)tEaeUZ$7$UPD)AYC@Uz z9Hrj75$D$}IgvB&f<37?FlG()-U>aJ9gTQ-Y3x9g=HVBI3Z2NJ7H=|cKy=m(U53H0 z*nGT2<{B~&W~EIEP0!*{A07I{nD5Jl`@USdLX+k((0!Y#{dMbuhRv;tqgro=nk444 zNpfb1d-`V!tg2Xbl7&Sw6J>F6x*AN<2a9}0e-b7SI^?uhRv9`Nu-C8mNgP3+C9At*WUsS(!CUaTUC?G<9CtZcz|H z`Ho$g{b)7^9+VuzHHx~8J2>g-D)0UMfdgHI^I;H*Iobr8=YAv%As$|RebD8WcBjVn z6z~Pmb(!{C9Wq-eufdTf%sp%?87wqtIs*?&q9?>s|0Ewn_*frsR=_(YeK>b&!*%;? zFV1Fi)3d-Ygxf6EqymNY0UQk_ja|r87ZC8=8{A2P#I3B8jmo-x`yVghL_XG@^L~L+ z*0*oQ7T4EOWXhh2yukwFk@B^l7Tp${z;8}0pHcX-J>#E&Hm0_<5g(X8X=!MU`;qh( zOt&9dC!$n=*}`nk$waK!^{K549x$}Kj^m^S8!#;G@h!g(b9;3?mMugAheNx>(A8uW zwGIOcW_!^Wv(%h0n!=K8@o_^hxdS z80w-!``TzaRU*bUiYJT5f)kdOf?`RBPfPNem~8T0?i0~d_VTa)VW3gT!gjDMzk8og z<|UFjS`p;(mS>VlelonKgUm0n@Fn;wFL();i0o->MSaGF6S>v$-?zEaLhf?S#9E1c zm>8YZ+pQ%gRiRv*{D3<*mb?;7D!*v;<870VSKPyN^*Z}G_NiKkMV~A|;|zH67@T8I#%tVN@Q{?2T!>^@@`dl&(7P`T zsVp0=g9#roKDiHm04>kPc71F`4atiNeLCy<`%a|cbhMR+?}A|vE^jgMo5-07dR4?3 zqmmj^pf~|n1fyKkbopMH&~`WO(Omm{#t+RBJ|)p~zAeu=!?4>9%+8y$5jot<0h;_} z>4qj$ASN@=?ch)PKCh+iB|#aq0wj^l+QcuNeE27QXjb4%5UpPAl~SkLCo$x2e#CqK z95EWmQ0IgSRSV59?-7JE6dE)tJM@=oL&go0GUXQ_bF zrQhfud<>|M-C1ru+OW3X;v1*V<1I0KAOk{?=uj-x&UZl2Ozj@Xe(k zd2?$NUfpeRPasd-^nRr^5ByV1x^6z7HL+whYQVmXk9bY#9D4C#JSA)P6u51du)OKF z$R?HSo;ks+`C@_tt`jt}*$ss~A)T`C>cKl;%{D(?9D@O`71c-!PCf%yplXP;dntW% z7e#$53$Xkz?W%lHOcat?BdttDS#cXR0og(#f=D*Sjms$5cT2VGO4d$WZ?agA9r{9F zxf-S8!uBq;6YlPu3JjT0`1YmW!>9`}|NB0@@l9lt{EiOioX3w58hG_yFaUZcwFz6bknwiZO{ z>2r`1Vc6kY^KP=1x6E=TB9rVeUAtg(#YvAH4kgit>$ovo zBZ!*}Y--avHg9~bV>ba=aX+W4hI(*~T0w)p9BdxX4lScr@2bzA+|Ah8qz#=bTQ#aQ zO1qj9kxXpTb?MD*okL^n!LsO->-vZCgTOvJ+;r+(t-C}MqY&bwb^-1ha(e%ob=8i8 zr5@sPR_f@r7`BIoO}~?cv*j5*&Q9K7k;d$6qj@BBf^dW*BDyV60G8)gQcwHe2JQUe z-LrMc5asaFI#FEtR^RBsJDxoVtm?os-?zqDrhV|IrJxaXYEn=`maEjeX4={OVgkGp2|~Z&^$IT?)KvEd!s1=KG;-7 zm^M&ENx?~Z{_&{=mcOo2!vjq-9rC+Rx43GkRniUTxlozk=`{GbX-do<8Flu_?KG?q z#Eai2;)*l49j#D&w}`>aBazPIukk7{QkBJ99Ic79``}`EN!UP@l0&bYNEv!~JH`Ff z9ecXxG3BTYBS*~ZZcKSyijd&FN+mJC7#!?I-$XPH-5#e|$U)2LIOk5(lG)T^$hcM| zZzJ^%C}O#Phbx(lwvnKi8mesi8vS8$(i7q;ZrVfyOfFF9vwI62GgZ#tP<;tvyn7L) z@#k%9-SHJyhRiHm_BAcGF=%&QR6z@1^IVM{l8U-nTI7zVOqwYpx-AgiRC9DB8#+qk zh*(gUW|cZDh{o$!CrIl)D{T62ml#uPjFd{gtr6pI`;}*~Qn!D*`u?N~I!#BbSTp%% zT+pU+9hK$_S<5xvAL!Xn98syjInYeMb>IBhb_xTeef0ZuJ==LeIw&@Sz!AU_{$&ST zA}S^uFIIQ8IDYZJWBr0gd(HON>aop{@_5{a=VxDNc9qPTbWq7yPf6%%il0WAd-X)` zcSDt|Cl(Kc=@U%W7l(h-)|-d&hE7s)x6VWdn5O*AJh&(A%?sMpc}Qf+QiFd%#68Xt zBVzTsPt;j1As?VSlesK&p$2sQb+x|`1!RFPW04(;=H^6GcN71!dcG=)?+nCWmx%V{ zmZnx5xAjSXjy`Y9HhbLUBQDpUsc>J%!yE#Iw~1*Wogu{2!@wuTjm|G0N+iHWXKTtL zOkP7(O4VswpON%@Z=A<$%WH~f#j{${`q9s^ys&FFdLL<186vDEshW(K_=y8KX_yxA z$szg*ALQCl0~j7CZ>6m0obcs{8Ki--Pnh{7v4zz?B!^~qc#B9sM^P9Xmk*?Q(FjM= zzi4>bkMXf4bI5kg#5)HUE?FV^?~7CUg`d)dQ9=A^t4(Hl`FwYgUJ-j4{KV75)SmWu zuRx^yJdpm==g*(rW&S$;fa^Ni4o~|QTCyrt60huE8WOl}uW_Z#9hURD_Sn{R_j|s2 z_qLQ?DR)qA_R_C)``$Y1J_&4z(Y?Xxw(e&m)Jjq#{-&VXF|-mG&_TCZhsNBC-NLr$ z?EcG1z3PKcE)qsax#3{Yko36y+oLSibeS>2;oMCQTYo-z=%d!aa=6XUvHsxRY3jLt zOtfdgIXC02)g~JfJ{C^7D<;*Pa9#yJwincP^$@zpN&2 zSSeWqmu;@i?GMqf4U-2i8rs<+h+{c5Bd8PGP%8s(>Vsq}UQl{YLmuUDi<-fqZqSD? zFMh}1y1y?dlC_?QsPmUM)U)dM3}ZWMOT~i3>+_(gIxE5!M6pEEq0GySA;MgVGH<(>t56J)#y=BiK`NgycfO`1tL(K=X0p2 z77Opc{cqc;2oi?nT7S_b=!^~gMp|D_FFL;&kuP;dOtW)dMP1}@WUw!c6rVZSmge|U z!lVw{7xcn9;|;1N3uj@j(Cy7UjNiv>(g~d2b6kB*Brk7Xn5|KNlYokC{^P4C+kF+{ z{M+NiL*H{-KV`7GCF7G!y1&w3OtNZg(9%l_b$GaIo zLp`3Tl5Q^o#cc@xS|2A@`}wAE7Qy*6%GBu<7w@$f=-#zRY)q6lsRdEoe~0GrmFODF zvxz8`6Q6UD?`w%;3(OD2X#@}+l4+hj%rgXoC(Fb5Dtu&!zU0tw#=gdhWydB!a%`Ks z+c($7j2Ilt4(q;oq7BqgLhy|ph==*f?&8U0WZu6;!!<5_Flf0Y@fWa<{(dRq!npg+ z6A=6ol{Hfm7Uz0kN#h-ZIOzKZiE1zSo8 z++Bu6*zSFg!!=Zp(8DqYE&ry~#2)DXs*^M+1ET$YB0D#D5h9ho?(7SBT$gvx_x>^& z=$fGI8g%ZH>)c5>t!W7XsI?bATLyhpjr3H|$z~-sRaB6EQ7jko@@<%`%jSAHfA`W z+-UBd$N4VLNeMcd!6fI`%IxmV8gx4LmH!LI*QIoO0oZ3_dt6x99b2C(IZhd5c z32!=m5t=@>j-n?fk5GtE8;ne!(kQf)^g4AVc%-Bmp8CDF=@{G_UTZqlJH3Qcc4s6k zsc%TAuxJlUt;DbnN$y4(^~1nvgO%}V9*Em|5|-_u=gy;l3EH3_0luuX<0S(6aqs)e zyzQUT&~g03p76#u;Jl-5-6$$Wd_m8<=vSnSFY~-0^+$SBP`X#w&M&u)HaYB|w}Q9n zxP-0jgsTRoe=v-_h~vN1{!zN-@@Wsxp~1mS-KQ^h<2tHU9u{xHB=L$4ZwnW_aH&bv zDDhg&Pd(s${r`DKH*O^H3L1Z-*ASJY5i6^_+Z4S^W4SURbZzGfX?Awtn?={4{l^58 zWk9)MMJ$-#S08T0^)1t_+f&EG>3V)m>AfVSm}Rf=i^uhTSPvYcu3F*Sb2ev)nXFt3 zVxn#zD!Z1k=e$DeK>nGopunB3Ui?Vck7y4kt95#Je6#4C(~E~;OzzZr@Dn#|i7mf% z#g^5S+mJ>1Uhja$x2|coWN%8dkq?UKn=jB(6+7s`k;1#z1lAuJ9Btijz;%9)D2T|3 zmMc)Tb%!1wPKq2aMBO@e9lQs?JVWfyxF|2p51u5O@Z(^Mos}WaLZ>D@C~jC-$I+bR z@w+7bK#L&^Fi>0P2a((4_X{`vQ~X`b-!CqWJ5`q~{`mz+O_~?O&QL$Q5S#zgO5W4G zlMANfR`p4osVMz5Xa3&KodY}5nj8b9NbxlJV|wFS2F1yc>9*1M%;xycA5p`%W3GR> zC%>F-!}`6F(r7iG*+A-1xS!;ITVG|aoG|)j*r2kT5L_oCPh##hMfrVl(->b#78S&5T*8XM4p8x|%{f5uF!tn6`whdg#Q;QI|-xCuR6AQIl(ue23SGy1h^yb?zLVl|-p&bk~cFeHCVuAwl?9N2GmEm@iu_;C@OR|(fROSVXIr&Z>YWy+aj4EnbCf<(q{l;vo8iU2e4jLt$yr*KjYzk^I5F~85MM&SC3Id7U?9#N<=>;yqBx>Zv2Pfc}fk_2spJD z-|yIF!uQ<>m>#kc@NDo*?WhF$?vB68cqR+VWV+Csy%#ndAr2V9r>NGLt0>3%d=fsv zilOX%(@4}f=r`RiTHhS$j(Ipy|CkwyZQNT!?j^i5fBni#|-)*@PBf&(1&lw>7-j z;5Rh9=@(?~aE|!hii$A6=|xP4);Yv=K4jJLR3Mr?kztHr$-9NS`E)Zu6B81Fw(QGe51(uN6d&)8Fbp|mu6H2I;){^NbG_B$oXzards z!gVG)UmVr#d2E`{k0JIlzx=E1zgVUU?^>Dm9@WSR=TyK@yUy6;B&0vfwj zKd-_PXDk!&LR9V7T?uLF6#s-2Q~lM(#~z2h(#GGqRK>47k|g*0_e=2EzQz;ze@J@^ zs4Barf0%A*2}$WjP#O`X+~HQo6evB!&MzhtT_e z;=P~mgSA+!bFOR0?AbH3XV1*!j02Ckb; ze_X0ECz{(qoIfPO0O1i^cXu!ye>-w45?f?2D0~O7sY()Yv=P^WmDA*@Np)HHG~Yh+SnErs@1I;p6G7`ZB+bhaa61;`Q>r@9hp_Z1;h?m z32D8SdK``u=1c4+_iB#aRxL_xN^x4>y$fW-?rwGHR_k81<)~t*&k#?_nr*v z!Iq1+vQ$|@aLhPWcaR}(J~Soezb<5l{$m+r_VQ!{TI$9?^R4L7ZW zC+3>)^cH_KT(hkva?p5 z#Pm}E+fcVS+R@Ob=Y`*{spJ(HqMo0Qh*?s_rG23J_v5=k^~Lv}7|Bb7>9vdAIK(u~ zbVsC&z)IzC^iz@S2&@ z!@ysA2E|(FHa!v6QzhoQHJ}Py&`e9w)H>8~J-Gzr#-o})v}ll7>-bg`P(QKYTTweO zqFA%8T$J=A6Kij5YD~XrIdgA0w$yei({w69s%2v&s&e8zGy1q$?j>D!9;*1#Ldl5F z8`ng+MjqWP?y^NtAah|=TvLOXZeKakP00nMLnNyFHFPF&{}2TPSF31&#YBtvNGV3@ zLV3Vw3kqz|R&o7F&~wXz3^7KDbBMgzb7&TdC@}61-RvhYE&8Az??c8rjdsMle|y;3 zl$3!+=#^uGe0}+@s}F@0wJ*imF)_XL$qQr|+^J*c=TotMc;kahC0F^T5LSy9%xOno z;@$d6@S37lzu8;J$#9RMY<)8`RhedQJ7B@4K2l<>f^*{4J)b)qdV+`%Xu-f%F>+hb znYEf&FV z+;k=o+h69Fe`j~=qoN1K_fMn2*%c+2iYL|xCGVUGCkaK>OLs6PNLL#@%Jgkv>fUmcaQPLROf%EEcITXsQGd(mM~bWa^&uk zsKM+T3~Ye^*zQVk3Z!>>8pTkAPXF4NAXn#+d~n5$%4y|6@!F_JSB{~t=<{cbX`iAk zJ667nbQD?uM8kODLYer%0)Pc@*oYO^rILt`H0+I3#~Bh@m|l!Wz<;PHJESq011LB- zt?w)zq+PvfsjmcVDQ_%`v67p#c0dlLWI|GiE%;-F(lnV=B~AdcP;R$#DiS@BT^z@|7c&x+rmd2l&BHpMw^;J5szz!prAt zUy*ZhE{}kUYKEZH4k$=_JGBRntBjwCBsIuw9@_P0dPk~c%w{yE=VAI9BLRB@7vp=a zgN6_u>;|rs6R~SZKrjxX;^cX?Jj~*c5-JDP3e&?kXCpSb5GlfQB^DT*$*>@c49*to z^9SX=&?22!-}EezOKvXlKI)&4@B@l;H9XC&R}p;a5s|q)u!C>&by#H>%>^)@ZMhmLZ(>knIbH{qf_v<_9rSPw`^*C$+&U1HV$P zBUt5`cs)wuMrBX-q}z!M)^Xmk4>5nn8%EhY-wI%+4$}5-hHE}p|9J?$l|$Iwh4zf_uRD1a3=WIzu2q`kA`NFCRnJEa|3k>ZvS9Zkl-6zRnw zQI~5mQ0cT=ZmVA5Ds@IgP$LGjxJ?Z`n2RsUc!DuKd$c0TC?UXoStYbG5V!p zR9Sd249lfz1Cz{W_vog_agrw$Ys6vlCYi zYCMc1W-tiS#!9Lygo&nVIRLL)v-C^v23*?Vw<86<1`7#Y(x#}hrodEmLj zvRBPxnUv2norNQQ(MLV;-PgN2VVt?Ac(*gmZ+k#=X~mfZ|x;Fe`g!CSH9-Z_@- zmCIcOVfx=&!G6JJ+^f!!!!+0eVgY7Q*(0U!EC^}g%cZXw8!QuYS@TZ8J_mw+S~YRG z^<5J)M(poE@FR>b_cpM}tk%L}w9={~op=0CJX2gzVD;jwzZ`JwheE=b6koQ?bPGHj z8uuo;Lb~|Hp_B^58i@C0nNEP}e)Wt|TCZRrDWGPqguaJS0&~Lfm8eCx5vLma;-gJD zaLLB}BTbdLPg^Zj3Gq{$9q+-e2#pt-wiory5>OpD44;C6!VY-w<6gVFbw~gQdD{;V z4y$FmZ%p=Vgb$$X`>ryAJpji`~aYv;o+41WYc=y7BTOt#{47m5xB(KbwAE@ z_|_r~YFr;M^>$Z+1Ti!Li2#zeHg}D+G>(*n(4)g2ym=$C%<<8dG%5r%G`=PP`N=W+ zU9o#-!F>8XfHL$lIhjEtp0nvWQ-j%XDgh-f`e31@7dHB~Z<%kdMOT?dq2&>~kz0b; z&9>du&+Oda*T#fEd5}mCBDkZbiuJIjK`xBQcMJ{B4En)e!rteW&)tDoz?7jupC(LF}rPqQDSBPS6L7J{u-)6Pe8N92)mcDE`;r46wa3iDw(zIAQEyrfNT%7|1 zBIAxOMKH*1k<9dDr+-o!Y1#mJzeZUKL=s5@m-BH^BOLv?TD*z`jprK5`L=*@l@XCm zY2Lf`{Eh5>i=~>>q`P-EU~nD*Msxf9O&|^PnqfUh-pu~o&TUuMvY3vw0QuI6$xS(6 zW_B*G?M#Qv!PJLEg#(oVT+6}O+{@^nzAp@AskOb0 z`SsbN_d%x00Ee6|`+XMc-X^&=&4Sj0#h%ZyJhZZ{_C3qZniv8Eu=duSjU+ z#(frDM1W8A{g()G-=(rELgjPgFcfR(HT-p_Tq{wlf%vWDv}+gzckirUtOF*T{hWLZ zqg;;~s+oW`R>qR-sQ~aLpxD2?_*l4#$$$VBG8Xb4TB4oMovAe^Y+GjpO^fn@*6f{P<={PL`%^{=F@QQeeq zE*I5x+XxjC`jj#`5I39@&RcZ2{XLu49O0zmkS#!{2F7)irNmnvM#JEMjlY8=%_{GL zOZuaGUIg}q4G>)?cvXTBSx?^-@qVoSYJOg{KLO+lQE{r`-|OaAPsCUGXk2>6CF}u% zr(B31Ftsj9QBQh2dV~ss(dhwZsP9($%7aA1T~JT=$_+D5kjFGpy5>=vPOsbW$guv- zJES-7xoaJkdM|^pb(VfHZb4EY;JmfekB)s4THS)&=G=~s4{;jBI)n}_KoPlLj%lO2@?03Fk8G=qG)sb9_L zx=DL=OLky2D5KoQrUB9D22nX}CBr(PK#xt`Ow`*1KTwWz;(JF$)jC1;q?av?{_604 z$R|f#mnNwY<_OqL3W9&jV>7e}1wC@7DFLO**2_jI1fi zW*?P|HGm=TIwQ)chgIVC0Kj@B0@uMf?nhRahf}>fZfRmlkbn91{v>A3Tg5ZC^t}aS zZbc~sWh{7EmG!bxB&Y^1tU;p{DV#zau9Ay2C3ZyIEyL<0+C7&%-h5=4TuUr4C~^t)ysai^Wo zKdpKyecZu`c2J z9Bps;_?Q=%n3<=RtScHo<-9kMkv=exmae3_y_q>#m+LRF+t-j|Xfv>#k3pqq6u_=G z4EJY;XujCZusu!SP1|4ly0t!JeZAE!&enzE>Em)On{UoG!iLvO+qI5Bgg=Oa#M9y; z<+m7q1>z!`;zD%tOz!1dd-xQ{R@v=ljgZ|sHqDD4rj2asBVsxZ1ga@o@n#gWJGw=P z2Ftv|=CkGgX!WC?hd5MAqLhL*Rm)?bV%B<3-x%FZ`jNO{jlh2tP7RlVdHx%-~J=&)7MzRul80}9Q&Lc<`xibIZ7ZqrFrCBl5M`|EX( zvjuK}3&%fg5PfmpBH1DXOxB&F*f7Z`hfhlC`}A-d=PON(;dlUd#9-y}^?QcIKm4${Snc6f{FhoD8ht1^n&(iQAT>+C+*-yL|U z@q#=^J88QFJG(S|+(Sx~7zEEnq6R+OpHv$lWLXh=3fnLz9=2txliA-yVG5v|0Jtl= zZFi|6E@HF5r*Wt_c;n5k%|-bKbFq-dy9yx|_ZeVN>5G8?638M#&XAQTcBZMzZds?i zsfg*I0kPZ@rJT<=5s=ip=-q$NHnNr-fGW!n2TpIZ)rY zt?Z;_vQBP&gE>LJ`NtTo;#QRJ#_FcYGr~Bf9OySc`u| z`pz%?nryULl)22I!WjDq_6NLC-?%}3$ilO?xV&l4kB?Bll~x1OA;-2xT02`Q&m{6; z=3v40YwK7cXHBM_B{alJ04czeQ1)w|RQDUvB$K1~lq<=TzO=`MabkufckbcuDwGK* z<*D7Himec`E^K!h$bTFlboFL>ee6*FCgbg{fu(=ah!m z;K569Q#CvY;IT#pi3CHSN=WcCGfZ63dV7jmG*4}e=8BXNsjn+%rbcfAw`~e{H}gW_ zw(C4r*~c?PS2LLju-YYa}R=V?~_=LZ)U_bTW>zM&28S^YdzG$*ZX3TJ_7h>4%P3 z$?QBC6*Q`R|MRLMR#X#$f-h0eXSKFoqdu!&G?s;$Ev+cuDqQ~-=tB8E&tPD&kA0R1Yf_i;Bw<~jBciV?< zS06lpEbNtasq60j)cq9R-Jom|q0-#Sp3*7?DqGY5o`9_N&+MIKavTbe*5=4L+=lUG z({Y;KCDf!lp7AVbh>A~maf)_Jqey zPmX;tiQMZ!9-?xon&q>#-b;OWS6;z9NH<*?iRM}ke}01@twU`{Y+{H$l@W#EQvbrk zet6TLzRA2sXj;oKtUm>>oAfcu$t^Ab1YVrnNConke*%veaRNPX#@u;x2&mWm*>i|d zw|OT>8c~G+)lz7hwPn` z;5d?n)x2gou2Sc%1E~|2trCoQRmhWRmk`8#WdQZ(TA0k8!4gs6zP}k^0%$&3h*svd z9a%jQVHj2Acw0;a$_HiCaYS?)VO+lsOKDIlL=7aq>CiQI(x}2Bo?l{ZLWBK9)>dGq zpHV5=kaYAq){*2FSnN#VG>QeIBMbG#4cHw_8+t4y@iBZ9t+a#s#9e9{fL84hnB{#b z?}}txP%Q^obOtB4k@g{h;P7hZCX_KiS*TV%OmhR>AhsZM-&-b_k}sWzh^WmtHL6x} zZF-U3x7<>qU?W@P*?fqGJQfe@kQTwD)Ny{|edb8H5UECDQc`T+8qA`h*V9I8s-+VA z9QBZ;h2Bl?Chm%(EAP8OvZEKww)Qv%knT+&}6sa20QTJbf7jNi{NYVtWd*jgin zcN@6A()h!};fP~Bg&dkfJia?~mw|FzBvD$z_*3<6Pl8ORkGPw#s+!qT62mtOa(b7r zoOZ(zCC2>j7vAWPkeSo|l1A(lqR;q zY{aP5*llIf>e;A^?jsGOhTV$6ZOSVg#F{A|5shH&?LAsvIxg|>5@2917$O$3{rm_H zS3Egmt3XB7V7viKkAjsBn4Fh0kvlJZ;W%##?k<8${v?!UyDtX^RJ#|?J(Io4}V+b=9X*^fCk3VBq}Kepf^un?){!L+x^MuMQU|j*b}Q{t zAXkHv!tVfo(6%tLh@;Ecb#0c=v6Uf5y`Rfp_l^PpK4|}Lj(HzfI6(Xa2W~Zn!#M?* zSR*d-)Gr>lqj|}ZX_z_kQ*4&25_@P@A?I_o11k?CgD~%M@-}0!VsD9!y4|vh=o(T3 z*ZxyLI}Zhm2oJ=jzPV5y)+4LWE#sYUjzKQeIJj#cb|csgkc^lCu2pGjG5EN$%+9aECGXT_Q9s zr^^f`y5)flFAj_{v3(gExazjJY?ecBJq*&`oU2s>>YWU`SbLrFyCG>g&J+ta@!R)@ zbZ#$nNX%*opS0%4ZHPYwPxqNomrg5s!Xr$bPz5K3mZ~29_SQf#@UMxAOY@F5hdgo~ z^~764iF79oX!2654b8q18&-*DnVB@S5bHO}#CZJnO&o&XZ6;?qdBWIQmK;q0@SY58 zf%GiT7Q)A3hO-<`yKM_TKj>VE%eor;mHw%nL%{64_utKW!tM28n?`v zT&=W?ejTtU^-hN?tepLRs%IQiev4`b1>X~loIG6Xy5Ypz$lAK!KL6x2zH+vM8dVg5!vw}x<-Cvgb`GbiKr-i5MGm|HmV^j}PecHc z`F5rzU!G--$B8?KR(@?pww5eYbgagyCGZ?b2KpL%Vk^bZ+`WdZ6ghU^m!b=%c{#@R za)tH}?`~>7wJXk6#x&Jhr4J!93N5N-$dL^sOuy{EefxmUEqAfnwkb!htCAgDAn^kx z%Etx*18P9Pk`v$TJQ`t3M(yao77YsL)&V%A;Ga|_Q#l|xq;$=_+N0&+Warh9_9>`* zSz)M5)J>m>%)At2{;1L5{4VU`3FVS@cMK(m{?^A6otBKoR$*T=t!ZM6=V_M6az&li zL&&{qH~S5}+WHx!{T>MLdBD_{L~ui^|24OX{*?JKvLNj{v3ARZgD(pJUm0POQQxcx zksVvm=+mYvknvgdlK&Yg_VOu>pabiHBXF^I0%79qpl|sD`->NGqiR*8DK`I^QyG5q zDISek{M~cg2-&LAZ;Z?Bru7hAETB+FSH!iMn8CgME+RR`rW{7Jm}yQPSqqZ)wHEbR zhk89Px4Ksxroc&W;-^QFWM^10F!El53&IcXzYgYmGubT)GdxUc>*^*#1JG&f$-QO{ zeAaUe8#a4JBG~)JtDwlK5AsM{b{26*q)G3gjk}L#S0-WE`;I-(DO*2EE+zX}R>6eMe2$u6Akk%WdS^ z+FJDbuBg2DL|B|oZZaV}x3AtUd=kOXUga>L1Hff3o}S0ePl4a?QP zsO;q4+c>jTXW(?4J-w5qldW1&=s7uYMWI&gMW~ulsBd?>-r6*_^>El%LoTao4V#-K z;)Z!s#5vDtR1iM(S$ZW#Gyg5}0eQWg0FWJ+94NNz;dmPjP!BZCliCiyrN zzcv?A(RcT+J1lrTAZ>4X5v&c&lUr-d4O{~eK!sXWUjauB7ZlO7CL5aXhEahTOI&Zd zMS_C{0=0Lq5*p0*r#Ou=f(ew`Er*VH1N&55g9u|}EF*^OeP7;LAOTEyfk16mTE%*Y z1#`#84LFV7PaJ*TTT5QKmOFbK=`u_h&|nx%^qo=qx*Anpt zn>@GJ@d|zHhd^vOjl?*WTN0e`pCI@-#ALg8-2AB{nI-a-dX@EK9*~5I#qw~pz;zPaCCke z3lp*Jc@PDR@RET+)Q1+MWvE2V#|COG3|pnEWtU*6cbo!adV|f=8v{>g^)?LFz8AIm zymWnoUAKAMGz+TJSMBua2EeXn6cgTow67&wP@h<@W7KUAH~}74hsPrHfy*Np$)lcq zRSkJ(i@{Y?L9ihE{bX#po7EMKd$U%)#^zh5VHjC?&c}JO5&g$+Rh1}9rx{fDVEhOi zeP_%04BQ%0SUu$B?Z%s*QU0~IaQ`M#2(yE4M?Y%Fk~r6O{-Px_lZ+-|1)%>9ZZz+B zaXXJNZf2KG??@kJ&h^*fd1(L+5=I@iB4ceB7qdfn7ye=0Xnu)nla}JEG7;C!-W)Pv zCck?I;p&Vg^Zhl9wMVtzmbmtn+0-d?9Gh0_z)6Xy7bd>&!5u!yOWx>y;|ooR&xdp% z_F>3aoXNwK0ePVTCzhs|~OSFn1Km0KrCit1@8tbO!C zivfS&CQLGJiA+^3C7Cu@2)-56w{+Y}5)HuK`o>&?0UBqzwchj2M0dA1r%69yYdwG< zwx>7T&|hfzyl`dOE&AHVLrOs>1YBR_OB6S*G1r-zlO^3@Qa@RrLdnp{L*vQe0ihn` z(`nNbJBPe0MGMhyTA~o|EOYgJcHSZ#Z^^Fs21;Nle{i{!FY#Xl`Kw9s<&IC4D$tNbp)_BhWN>5N!;xaBqL#!XrSY1BI03`j*+|^^kUx+ znAk@wmoqK_DN%kQC9a_IHgIJb74zc8hJC)?y}M*An2c;9&&v~UNUGzAd7K?=7^O$x zX&AN4)OEiGrn_U1c+-S|NAhSz$e}+DVO6Y*M*ocwZ%L3WlQV^|w445|>+_9|)=PkL zHU;Nk*ukh26P{dPQ!Q`{`NA@Woeye|49A>lxXT2G%vrNA7N^p@j;$&uAgbs~pCVRiJY__mw$GBeRM{$B0xA<$_-#ao7^IgZKBE5u!CP5;KD=arx`(IcxOyoSimNfm$9n-ECktKdK{qj0Xfh9Hh!VJQMJZ#ZNSU0 zA!tG6*u(h6I&chZRo-ST2ya^IuH4?9T5H6@KMk(a z?v!W`Q2Qk=gw`nmVT4Z7^*lwpguWsLPT^M`*aL7?310-IBP3Cz(`EsG|8BL5yNden zG25UY{9j1R04)eV1}ScxDrSx11Gw;jdx&5!i$BI(FaD#A^M55P5uV@u-R1en#J91( z_!2OHRU+6n;ko~}kxwvInO(H}yAuH4`7`9tfu42(?IvM4#vDr-k)Q@;0e(;8?AuAw zae{x^7(@z$hRD4vU#1SfdA5>pv-Y1-`C_6F1z1DvZ)HGy6B4TWd6d&1Wd1)_?6fTw z6QGm0O!QV^0XE>$fxe3WU#18y>;DUt&mSlD1jE=vvu2__QAPv*}&yCr*0$y@+bsv8FmxW^?N2ESWG5&LO(0Nilyo+Rk zi}4b}_~HvbXh|F6hSgcB>~A(mVXZPePe=WuwKH!1(+cCr;&LBsDI#QT(k$@m**Vw2kZaAV6Ut|LqV&%QRN@bw?!qA zMU*vS&9&A-htiRY>~JtQ6m0b=6!T&HvI>S4H5@g0MrR9ZSOpOfgr($pRTCpmt1hu{*@mn6Hu#P*FLblc!?JTG-N_r#_VEEcf2-YgycsqQCE8~eI#fe{5X+tL9 zErIim3x3lJ;~Wr-K5@+o!5 zBQh~`Kw=WJC@S)Z1hwB3F4I`fX85vS>W!sAonGC2Bazvlb8^4Bf@mJ6_nHEdX9%NC z3b`D)2!E;EDQCSRJNxpw4Lch9$L_$F4d)Z26-7NI%?u0u!8(|Imo<&oZ+XSY4M5DT zsDGGDDRq0ps+cSJp!7cgHgY9Wui&>U0@IGAlV+x{!B7Hw`FumYvN#`%!0BMHgYQ9e z0ms8O4~F&mU^M^JU@$sZ=;_(oyIB`^{SMDr0|Z5Lg+xZ0{8XxV$=dWA%&Hfqe@qKC zg9of{V}UJCcD_MKG{fbsiQ39IE2JZSPOM`gkGwMlx@YE**pea11v(JRv7=LF*dotn^ z5gD2om(fn4wi@*KL z7)3d9?o+sZ4q$Dv)^Mf(Pbb~;`~}Y(*Z^qFx->ylA||slvC*NeNEahu*+R0LXn%X( z@--=nR9c3uceorKYlOW#I|+HwT{gd|Eiz*@Pb&C2Loo=)`x#%1a`;?S+YofXOvgj? zIxAeFM2iQtxl%e!@T4|l7ASt_bTStB_#}f7p5K8slG=RL`T`QC!%FBXA1;IJ%~MI# zz^?Zi+bE89>gCjkuCgUJIOycwVwY}$<5;oiAg;y(UT{P-*P@+5A?Nm%D8})1!FwQngWyQy0L(1!kw?{@=ew;@3Y-kIY>Hu7CgOsa*GRCGs)#Y>astTpyeoi^ z^{%iztL6!NBizSR1xi!|iX))}H`K_ENo||h2%Jhr=-ta9*p8cw*T_j5_o^ysAgDn! zM}3zab<(N~)tyUGUN93grv4sZW9eudZW^*)NnU%UJv?BBSg}HpH zrHh?tg-DLx=p+uPB(}bmsRErsKe4Zif5^7p5BI=ATI<|gSI=x6{8c1lKC$1=J1W83 z585vSmZOL@{h!w2I+0Sd2*N|i?c?QkP+QV1tODH55C9ix-&=5mP7FaB4usK05~C4S z|Ff}cs@O~i&))hzJhBJ8+p5YmH0zT4sO3kT=c6$c_(<6!wVzke0ny`ZeU0yd<<0#W zlvhdo>ONvU?8>r=9ULM0pxNgNP0~j^IY^sMLf{%iVGnov)i5FbA5xPg@qVu)7YJEC z7zIc;unj7GHLPOBFNPOW{@orYva9SY1nv)p$$cd!sLG&9`&8(38P}YntV*N}xa65a zaCRwFff}M{(BR6ZRTVR+`DqwL?Fl*%fHMnRn*v1SMnNeM1lqOrE*IR?!-7u`M6^Dl z7!A{bBQNhxVIDlV1RPslT@JAgNWM!|D#=lX8%I>ZhvdNulK7WlF@7-0Frb8E#R)Pt zh=P3rD;63aZp3;AZJ!qkVR|VWDmyOkmxy?2k9^$JGXc>Zjc(;S?VPQwolewNY25sb zEBBn6(21Nz+Oi>X8eUZL{hxabz(KbyH5pzZOOuivTK&t-!1d^a&>iifi8~%>)1q9m z?Mrs*td|6 zaMrI^b%+=LZw;svS8@jipNxI$K)7gPzQZ%Ffw9S1yM4{>UDQ^2-0sW~w{c2t@TKH; z3wxj%z~SCeG3=-WwIS7Wh0)jlfq2@o*E45>+4mB@u$v$NnAaG06#wQ8VsL|MMvl$g zId>2zfVO8`xk#6%kGSTXg~nQ(b%Q?N|H%XW;rmF1?Ri``ItZ7MJzxUY=8%LMPWO5V zs1^!boFJecp#a*?C+XDu-FfoX3O2-7r zt*Hw+?SW)RjjyRUb?ys@+WH#TH*+z9pNao@1jiVDzWQgzB}7}ieacQOYO5q}Y(|uO z?zzyKoDIa7hUo6i?;F@Q)w>%Mc6g^#g<=rsMH917Bc>psFF~AJeDrDg_)vMji~+WH zSQ~v!CE{?c3(hsCYY)XZ!fABYYM(pho;hQq_u(&8Ah{+gZ0y!*-V*^T8a!+%t{ZX* z$*{P~^z9f!(x4I8yR^KwkX^_2DmGxuCzQ}~wr=`!pFoef9Z ziQ?o5^9JA)_#?k9L{Sk&sLYBazn`<4bmmfdWA&_ImImTz7xfs z!mRLz`)U~_X2&4Q_BuAfdeVKpGC&eYn&*6k3T0{M1sP~_Zy_6R|Ju6so;|`|tY|S} zvsYurMwjg}SvIU6Hri(?#J936EK-DM(Wfnjfh_ zP`$IlC+8y2&US{f8(J}qdn9E2`nboPhipr(Rz2)9nR(4xB=Ioy7|*zSZh-)SQRb<_ z77JDJKPkp~ikz}X%?h6l@ul!2D3~Ifqt|#?xe8k`n?W0>FQi} zUFJfhm~WF2T!F`LZ57-m6HsAuIUuZW#R16|aEbaE z2_n_8uah>vAeZLO;$(9sG0Cu5F5jGco|5#5TmR^dzS$WMt6Wy{pF0e7LB`^lC{4aI zWqYpXL0fd%;%OPsa+Oy0KS=XNuZk=Jkm&s-I=8@3)g#Eu)ohiFhku{8KZjRb`>!`T z+4qgg@gO`pfKgz?5J0Z~a7y9{L;MB9@VLo`Y_5S31{{Ad)amyx1sWHII}Si%yZ2g> z0OzCUM%L$w9X3sv>;?w)fAVF_|NV#y{Q^rq{^Dj%MutkK=t=ND9A*D@mh_GSyyV+= z_zmt`kqkgMJlD>@hn4sb4uC+JV*qoBtPB&B%Y?56{s_|Yspa*@krDj+w*j1g`TOV{ z9tnmN6)75gcIE*DYED8p{9PFIoLv9cxWZFm4Y3H|{Sg=rD6Nj9^*^4yNh)C*u97GC zY@L2D*;i~E&Wq*y{qcX8qtaa{#@lu6Mryn3r+oYejRAw+^?d(N2SzLjTuImh1+SemD2eIY|^|5h~KbY_w`^&y9cP$$+!#-zMoz0$8$>D+3niCJt>R*86d~DNkAZ zj5dF`41QA!Sb{Lm-}&Qvm^Rf#XYsVKsY!+*9R7;~=Wp+va}n(E3%6I?dRxbDlKi!k zfBVAu2;g6yj)~<1%!MR9=Hzf%)BlXt#t%Gyogcjak^e4{V<&{DqNTgE4PIIQ&&hjM zBK(fF`Q6y>dHgx7S582nwr_D7A^#f=x^V3Nh35a(5B!D|xT4&+twr!VBtX)UDqF!J^%Oj-ah~2bR+$RgMe`c7|6!Mm+aJKDER`x5X52sow@&k zi_|*>CevnysuRy&ex-#dt?*Z(zzF>pw)>a3O&*s_Ef#P(NY#RjP6Hw?qNLMUCq@= zj~do?ca0tz85kIdS<70zCL-XAfP_Ko`IkQo6$pHi2#6^7;(z>s){-Xr{PE-sC<1at zEJBPb>}5X8FL-}@9ub95*YgV9Ut6a26raRak~nXfRuc(lF9?)eKYdKe12O2&F5xZy zz2DQZhU_8zz(4)|71p(Jk)${ypYu6LLOfmnGIZE;v>T|YSO4QouW(m+uGLe7BLDG3 z*JWDA^MPK_;jSyTl^A%St1|^1xADZZzAzwlNmB_a^BM{XpRKw8FxW6 zNiw)ELcu9Uzv7IyK1OgtGeJF0Z5H%gJYniUv~R9NZ0t1;p8(3FO*T)y_S>n^$+)9i zub+Fue`&AmB3P2Hrkf2vycf?rHzhU;-UV+9fsdmipJwi_y)|#USq1+M!Ppg-Gb_C@ zW1e*o7l1gn(?!R5F*or{B%SPsxp{djh@&8&Iy683nJffCXh>+Sr=Cg109%42cJWn= z8!?_d_3rPMo@yto4aR)xc<#0;pm8FT#EYw` zMNZGm$hx?cxOH!C+OcwSModl`h!B&IU?C!}BA)$1&4!V?+P*tS!bf(H*f&=$w!5>R zJ+wiVzpRO#84#(v^wIv=VoUjzkwYw9*RSZs@ZThRJi!h-x2&Zt?S!p^vc9+zK7|YfkcAa+>_n*3oebpB#ym7*EKEg(|XJ`xW{d1lfI;|^(QA2&41A0n@hLPH6=EHC|35IbXI z+EtWop{&~pO9z2{xN<9v-~H#ebcYZJsXJGkFf`RT^CGod((S*yJnj@;EJPb2je_2x zhm*Cl8ujc&*H0_m)z%oFgHJmR#5OCHk|-bI;?d+j&^FkvR^mA2bvlN`6_QJSU}5p) z!i;J>*O>HY830F%FJmgv!S;~~lB{e~67ok-Vs;riazOXMi+`Qo9(VKh=^lah6LkiO znsycyBC`!4H|0F+OeAFNa=;|izutwKN(19T@f5(X5Ogtu)4fhBhGJG)+hFgXqM|}_ zI*7Nbv^qmvZI63Ho?ag>z50X_a1`uC1570flq(#Gc{lQ{;@RuTPV}tNTm+)SkWZU> zC4#t8^_~3s&c1aZfhDQgA*~vFlJR%mD-uJDYS{!ccMzbdSRq14oI0L`asid72xkMx zf(@W&Cg}@CZ76~cD_TDDd?3J)&6t ziACebC~kSmE2+Moh3L;dT3gbXiQFE--Vqf2EL*^#$;27^?rzIxIixcokgtVkiPz~c z;Pgx5Op1xOVs|?D?aN6bo)Oax%EY11QKbDgYiVtB9>b!~weWH;suSxwWutecZF+d|Z z$MdoC;}ch2MrIPk49eJ5IT}GEFQ|in#KW0*-N?kqsNeVpnv1NgUwJz^oOuEW5|c3Q zvnS>mJ?TUl)ai8a$`UZ`7a~yPF+EyL94FBq0>%?u5bb6 z;xlAx^crdTOszsCi96AX8>ZfDZ$B$_!TDK8zIQsmL{w~VHErG1#~JVete}rr1tre) zf>CZC{W(e~Qoc44pSlcu(`nf@8J$0%tvgmiV#EC~kXM39q1OTW5`je`8gB8u39YE(&rg z;PHKt2BkX_r5p#rthK(edZ~V#Wka8nI^X!jo%}D*IOD%tb?z`-LS%m0JRZ)fN1A@l zx1O-ZRRlrf%s1pc5yvh)onnFQ1SlGo4H?)0mEsUcuC|}QKi2am_=>@qfnz+MD9%A* z{rKas186XfwWIATzF8B}4=ON`R{(x0emtMzZQim1c^ogFsfM7y8H3k;^!%=1GkB>@ z1M&$+A?9r!M_j2hiXi*x*9Dk@D=42vlpeYKe8>$}XVJ3%RKx(#@yoQkf<){4t`2@- zVeIIxB4gG0^!sPrhlqlN66f&ZyOqr#0itYD#bVrd7#UI%qKV+!2nGAgYp{{vjgRNk zzs((Q7mDW|Yr}QA?eSmXoenzAK~gnxROpi`+9&yY8ffi69q=%VLtzy8f}|kw z?XiI1%BwGaei_PuSbUpbh|c5;kiqIzOFL*XQhKo*r<-1!mH^e@{Rlp`@!eW;x%kr$ z&7#FEXf9)~_^7i;Sm-iB&JDdFagKZngZDT==yGuKs}m-2V0dG7T4C^|S>qsAEU`1piP6M{q>oQ%wYv< z7MNxsaKn`Kbs7hZO*rI!bhKff4L0#MYV*oP~2TOT_Lww+GU;SU!<=MOu5M{th2B845-xWoC;(bQ0 z|Jv){ng;ruY<;BK8Ue1y^NA4`{r=}xIAQ$6x$#-m^pqHyg$MF!{1j|}mQSk%!g0DgUi)`Y;|GGy1!RQY0 zT3+H*plE46+iy(-6LZ6XMm$Of1A{{I&SGmr%9%42tx1r4t546u~g z|1l-cx!p_w7^niD#OBVZ2aRM9*Zv;|^HvLtuok9T!3pAz zSD@=iwZGZzTnhYooVtD&r5-LjPI_0S{vNGQ*`?|nGu$-%I z+@1TFydXo1=WKjt3rNzg?}#^?^J=5Q=_{st)y!1o%s&58gBeBq>49|8d*@q@^HJ5J z!<%rUH?7a;Gjl~lhnnxk#`R;s?W=n&sm7KA4+93_XM);F1U|DePl8}(sWMse(C}eM zsH*0p_xA$5dmUo(Ei|Ryk4arLy949PUuAb;qP;c?fl&fbK=Z9gxAoAx- zL0z2kk-Qdz2-%j8UKQmOEo^F9a-~{7NKZE%3AbKZgjZSEqX4Ho$&9FAgF0FH^5N@h zwq*uUZEPQIl8tDpMXK%*u_J{epT5C_zwYw-W@D*6JG}D!JhZ6xk%=V4U z$;}{Fi|ZjZjJPq)O>i!t#6vup&0_DJk^3$J;%86sB<$#IqppE6ds_Rlo(C-!Q6rxv z$|B-7&sa~q2E}z02YkN*{c))!X+LN)x!<@?_=fIP!RtsE_nE~-!S2Jq1P#1FFQj3B zw;3dT+|{az?qNPqfZHXC=X`oD1IH;0r}Bl+@Hj*8h*g@ain21-%#5)^YHI2ig}J;t zH7ASX)|{oi?S z3f}wYtXhptmVHxQQ}pq~F1Y1QrbT`ynGb$5F|J;xoHA~)L?ovqMqCsEN=hz!fGzu@y262x`FSIu52c*`CQU6%oJ}pD_ z$YY;NKT8(p!Sv4|s|b-bGIL*$WRarGxYYH*H$FIQtcm#~TY2C18d#9dO_W95sbmKF zffzd3(fT$Ojg#v#YZ#dU+RW)zT_V^*=gaaGgDi|80y+6Zr_98bth4ji4DCD>60W!O z0i?g!*#Xk*ixDBeBOnmdZeg06}NfX>aZyN9HGxE`SvuR@!fL1s1G*D7W zFv=e#E$1{)=gz(RwbEI6vikb7P0-F{f0JC)qn)L`)T70x>s+PF7GpAl(#Hqs9Vr8N&rFP+#rxx#kpUgjEYXlYoyEHKAf9w=pJ zYp&5;a<0yz;f#NZ^BpFU%G`jmygx4j)prRmB{=_o-q~7sPWQ27l`Wsp{q&M?2 zB3psY?t+%Vj~mj>E}9egTD`+j|2|MtnwaN`-EFYs?7+DRiob3|v* z&V2!mSbJp$FX(f*spub7*Uy?H=LWrQW43Ep%l{r^H*EW1g};r&O(1HtT!4V;=zErS zX=A*1oThgbD{}&T345`YRE8=_bfT{5RsK3^Sjqu8KA&6kli_}k2ej8m7^d~C2liyp z-OQ;3toRq`ipOR?##)6a#0&SN;l%C?wC>0cSe05XJ=3CNw0oES|CoCBaHjt^e!R0% z(OGh;gyd9I&ZI~P<$PA5IVT`lcd?m7BWcK^GJ;DVN!d5*P+6GPf&ezM}>!QB22uw`~u z+4H=5?=FK!boK0!I<%H?+L40M_$ap?1>Fj)y#|3jQK(gqe*LMd zYm_@-L?v8d>9~(;vs5k5;|RNvhmvbEK*|sUHa@oS_--xqHzxg^E_$++&ShinTCE*D`(fIM|7KaxewsTm7;w>^C0^OXZR+=HBBkHH^O0Ykd7p<{-X@ zIYi)4;L;HpFQTxi3ztmdPUFGDHv|Q9Ykq#-Z^ZwaT;=V45>@Hir)6fC5!dX%RgNmZ z5lSHz{61ApuW@LZwmS$le~vjNA6UWg9DnQA-@$wz@4wl1`Y^o^p`u zVJP8TzkNx1{ns?#yhTw}tdwyr0B2q@dB z_l)5Lr~ij!pda}2uUu`s_FuKS8~F~yn>^I+IezbX2Z#HWTGZs6Q<|aPj`di{MS9Vz z7G^<_lMLOD(E9`tZN=@3t;JH~prtOQ|2};q>D~Gl?}2kUCgpl6ggg%vpK+O2c2-tr z1C@B5boYvsu-yN6 z+qLIvHQo13J3<7K&cxQ8mml2NV2&4`<$`%rSG;Bkh3MG5y;xM9mn~k4yNaRE-(-*C za{Sk4>hYf8>2F;MTJs*{H8Dc8_^n`LM`R<9>gbgj+`4t^dK|ik2;L%Q;}Y-W3ztx5 zQwjro9L&pm&I&z~7q1~PP?1p5Y?fPzfF^GC zb=JN#RN-W5D92IE`#{lT+3ckHe(}4j{KH2z`fkRr|3J_)riWsVfrtG$?VZ3dN6WaC z1Yr)f39^u^hXR>)e}0Z+>X`If724nJ1$f)`|_Fqr^ zgO7PfE)u$Une|igvw3;)xURT(GmgAC2q2MVcGj3;%hpTJnj6KAU${`Tymz4>AQ75a(u?M%OGM<%=jtOysK7I^wCRJ2AJ zY)t19L+|AYt?<|Tb{azvf4*4pdLCI&4MjL8sqO#qpTH3RfAQo4hh852tb8@?5a`G4 zq)Yu|Jv|Y~8d+R%(GW|=MWKz^VMEL4J8dafb+a4hZy6L?$j{6$XuTH=Ct9--9j{~K z-KPT6tyk;GQQhDKw|-xWGUUL60zGB}N7xLtM~d6_J)rXC_NYHwImqEvWgGmk z`kv=TDA0ydokgiDm4%L_-S?xSqf6IwYDBj7pp>mhD0xg3+^0+gPU3WFX=y=Ko|~T> z5f;AK%Q<%}MnqbA4ECxJBZPCV4OAK9Y8o2R6JGcU z=SSPiW4iBgH?%ylbA6t;GhKzc*;-oeL2*mDP8XaYPUZTF9TixW)1B=yPd0T-1%~3_ zcUp&!4NiYOQ4gVRjXect)fthxu?j4Af+_wKpV?2_)ffvuwMVE_58H?IOdU``8HXt7 z=AlcY?)@?j6Nyx2-+Jz9VvPfzgoH$z3gEq>Kt4?exPh(Lrj$lXkrYV1JMPO@p z;luI|7}bHDJerP1Sguai^A(|ASzWp(x;0kcJz|P;iU7MXuq)rV<$Z^|pF+Lj;^I21 z*3ZuX!~PqtJSQ$g%#` z@o}?Sw8KpMS&|Mek;Jl3`vmfzzdgdJ9k`(b>+I~z`0*lsrqJjHA0J17BSGOfPTg!3 z&ByV@=A#G7MuW|f)6C*|wwxS=V1JI{GAhG0{!ZC~VE#*m&0;}jBSI0<=`(MB_2ebt zH!Xz6ps5}AAj`Y<){_ZYil?|_^p-X_Jz4r7`3;u+^axEP`AN;n^2y5I6_krxV>2HT z1|T-o_-X z<^G1t(6+no?Ptc^2Q>*3L}s|l8#5@i|9u36W4~4U;d6AH_f$fqaMC`K``@K>_3e=> z=I5iAo!q(C6O@E8^%)t;DDTGsQ_H)7dddaunP$;f5;bTkrBVrexbTF0XIY)mlRf;IDS@i7@k-wQ(H`!*rdG zP`stfj~1Lq_=Q_D)qg)FM<0Wv#O1DPtusOGa{nxs_C}E>6K`qDOItYC&+_~16$j5E zDh0ZL8JxHL^qT=C-E4&Km!|;)O`o~N6RtQX$*!NQ6E28pr+kzZtql)jKn=z(z!tFO z8ZY{1qBKM|RtLq24OC}RC?4m6)|{;DB#oxCb^-VGO;v864+N=+%i`8Wb(E#9js9Ss z_75kt+Zi;xzUw@qvMbT0?ln)okDjEI<3isx)Mm0LHa8&?nkEUI|_^9=1?q~;8wGOw>jMDB}5P9}senZ_}sUQHe120{l+SG$S&;F=4 zX4ySgP^;kJiHCZ@j2m`I9J|2qZSyCsg$nPg9kYh{AfxmxZhGOW|IB zYuy*GW6YqjbxyPCy(12cReQ#!cjrupD@gvp1yv_)HFdplO0IC)oM~cOg_H3q{N!}AA*iU+i`C7F-cEoe+BU_Rf zkJ0?l{Vx@zt@7*NXQf;0SuOZYvJ%2sD_vIWNhK&1{lukAHL)*uhS7T?V%>JQ&J)^- z_Y}-3#D{#@xvH!vTZ`fo%vxsl_9Y7%hLA+QL&tZH8inWv&SXf5cpv$~CFHR>P#taN zx~_6IC$fDm(M5DR+1o4&wio%-|BrDs*o<00YW7I$r7ZHmY-x$K6a7khf3!w&byYE? z+o{3aMbV4!vepQ{hh^G-QL=5=U3v1d?ueUz$-)a^+2^Nu5VBrzLWNc1T8y3Ph*75q z@bhoy;HSRpK0d@T$jpx*mV$L@i$|oFUbMYUF_bsgapITbqqa{i)ysZg(alOVNW|E! zE(|Q<+3(qB)NKuf8lZ;>p0&jA;>r#oG4xF_IY!dLkBtLS--c&qtfeQG1QIAj97#S6 z`pD4Sr+Q*_d$P=H1}TX@<3zP*JZo=K-fx1=URv|Mj#M+(0;F{ z7)u6hW6w>ytBnVG6I=mGN#ac0m~Y!p$m#boPH~>c9J;`L@W`tNSNA@Dy?pbs%KybF zZO0DrcPyQ@Pd!p>;g!-WP&w(ENLX5U@oMF`yNU^i%*kd=$;qoSji!)8m1z&@AYQ~+ zv~EhSdNaJ3bYTA55f0vPE_oAf@2Pbiej!{LDwyHLH7tdrS-eNX?``RC-C+g}8C!L@@EZlN^_M37q8Lz&0JVC;uqoZdlOkH9T zp5slknM@=?<;USkpWn$Xb&%fVjV)bm?4rBn3tL#jEVIylKsipepc!4d&I`8|dZ~_XYZ+Jwn0$%e5~0jWad?zVj?3vu4#r z-t-fT-Oi>;%1e-rUNRv%YM(E{*FhnBuj%)ZKJau5*#8d;P*~;hTRz(lTV+~ht(*X% z>eW`uD`{;$?!OEkT&H<8u(S?{p_!Cx4ZLt3hWVOzlt3W*wZ%m{6tw5@>SUr3jT_z$ z9RBv(e%4a`VJ34XEAJam1yB~}8#VppO`w8dcR~%~w=gE6=soepNfGxmX1&Q1DmeRE zVom7ExxG~AOKq*oVggCGAD3}))>&2ple|MEbhUw?mG5#>H~skjAs9OHRX`kXAS5Oh z4Y0zlrD2(=8e#icq^MO&;lnSXq03_phQgLtWooN>edl$|eZwO3Chiqtn**pT1oaIX z8Q=9g9#;Lg*-1}N&uH~wG92uv-wmQKJ*g_wO4??&wo?4r_l+!MY#c8>x&#(eXK^4E zj*@FR=6B}ImfT?D=OadTlE$5JPBX+>;u$9i_VaYaJPGF_)+@Ievml%F`zhJ)5;CP? zg+f~4jgY5&Ua*#H{m`pAIKro#$Ac7|zkV7ZPc;X&9YpuZ5xCs{7;n(FkE-*e4Kf|A(J?SvPX6_|l1&lWH1l`P~_>1;kT=|`-vxcSL5y!xC8hp)nlaH+ux zTEWs565sRsEe25;j8OZV;DEXWO||FYTmz8FwJUekWfz^RclkRye-Cua1oK8nH52;^ z77svkYgZfmYNHCwYqbJE!i}+^(aaZ2{KFLQyHhV3>|-u^q_KJKs-0+IG3^l z<-65PfkbZ+Q`(~15VERD+0b0c2|TfXtN6=*emb4G(Zs~lG1x07U zOIGQllu{T&Lg)r7mz+mex1^!0X|`LP==K;fM&wOV8FBE({2;rOOWnG!nnwQK#=|Oi z8Cx2N7mEQG?&8bgV-amaGC>9rME%3l<=jn7?jZN8HN0N4F3xhTVW|RBXepL*X5-$8g`JGd{eM!Yz>Kbcz{ zER@{Bqu-h#d@t5Z6X@F*d}ldkV(Qi^AKYS@;c*)iF5|dxfXG0&zuy){E~yF$3dXWa z&|@;Y;%Z%=Xlq=g9UAq-IT60FPWBn|dmJbX$Wye88yGHpY&C ztcc=psp`SQFA-&yUIfsZVO161D`wrF1^h^v)WxEPJ-uG+IoGbdnlP<2t(aZ^2FMSFTYDA1wirXtGvr$?^qFf z^IL=3CqIXb=UFg83saSPdA^sD{@B)?zjZ6G;S?(R*n+iWqGO5L)U^_@33``U%VP$8 zlJG#_l+1G9Bah*WTZk~aj{Q`|LB{U{k$o%x^wWe5aP966`qgvycX)f2Q26#DPaB2k zDViMC>i!R@I(sgMf`NSy|Ehd{=70JbaCN;q!8wL&min7X#QW322%TjvtK2*3rNT6wJxm~-wA!O6ucX+05Q}o*(-p8GS*~!E!-{oGQp?u!QPC#FJP5R8sjE#1k&{hz6 z^l4cPlH?P|>9KW3e5vu#%qki(M%{YE#ES5lW3Mr>8ck;q4IoRtJ~RDov!l~m-vWb< zg~qJ|xabWRrr1hVTGaMg91AzrEn;FH0&)6e2KuKo56&9K?drds`6|=yFTS%Vd-0)c ztb(~JN_C&cZ-kq{erme@UYMS#x+Bn@=+a=<27y4jKA+V;Jm`KEYnPp3mqINY?ERJ+ zx5*Ak5(#A!D<32T_dK+~{eFpaERBtciR)}(v*Zst##;XLQ+qjP@@gOgDU<)}ZCh9c z6Dq8JS~UN#*Y{JGrJf8ulfAKRrZwuBh)mLtJO1JLnZO4RPkg^L-aYcvW3?}}-m%hY zc2j3HlLxl4wa=acSFMpI`o6*PD>63Fy9O7}^uClF{EZhkboTV(y46tCLmTyW0kw1%6$*p=>Y56GTHqToMIO2 zIFO&s>D%6fs>0sS((>z#RmRz%K8JD092Z$Ld_C8LfRwX8vNT|-jL2d-bu*>m?TB}` z4nd*42JVj77h3$Peb+V}O1^csYOmXzY&YWOh%L(#yJ}I??W!V7QvTI7cZ=8C~U=!u%c7*IT;)IK_y714WY0iLOk*@8js-u>lOSNVh zwV*>(TiYB(OS}N6${_uEZRt?p$Uc;n9xgMGj5I-)6?SZEn6jC>hYXYQDEeo@A`C3m zt$wHJ^CJ-Qf`V$!)!UxzcQzhSWx_A}e5;f7NYL2{0tiOX>)pwHFl|uNZ+CD{7J`}} zXOUwn9D+|x;E6)aoI6PL)}>Je5>MURk4N_*ETe-~&5Xnb)Gokc+W)FBI zG@G<=yo{~) z&>NdD``p|S(!s?CE>3P--hHVC<~`9(BenUaE*yl;)q>KV3pAUm#`d2qvO`47+rN|k zZY7+sy%1N-1i78dYmyHOPwRaPL5s3--qT?_%^bO;>d@CAeS9A$x%%o*^5ErqM`9yeX#^q>6tT-%KD+PdXG3qzn_$UKseY6a0W5ak1b<}npQj&t=Tze9BKK& zh0yl-&(G$bP9!zyhlJ+jo9VEPt-)R+uF%qqoSY|RU*VQ-GZ$V62p~jN!#Pt=!Y-e^ zJ!-ziO;ESJd_66xydn$1puRakh3V`k`mex;N2 z?KeWc7EnP72!9_Hdpzue^;BvllPyGY^F9jSKLQR zG5lw#c5~kjo!J+!-uQOFBbNfRJfxSEtZ$oK!^$pa18BxP>UI!p>*Kg;Tg1?MHWSoxh`hXr!D>0Z8|zS)>rYKiB8s`4T;oBFo5tHnnS}bT+l0bDGPf` zU9p-48%egZ2jkf)$6h-yJgZ`R6&X6trQxPUF9Pd9B>t{z2Or#6EXELv>uGCN301)z z1bN7V0TqSDrH?JjupE?uezo*2WJMnBq`3^oh`yn@h*;h2{s80rpmjxXPgd_lY0ToK z-R^O~E-Uy~!RkeY@Bvh0fmwBDiXPewBl^2w+V2SMP*{cC9+Q)qnwD1F!NVk66`!Zy zMkO9bc7bgyX1}`EwTGj!axGax{xv_4gApO~1Cpra;%DSyuW`XZ%f3lZ9CG&8d9577 z7LemG6U-A(L_JdGGS!;s90|AdQ33eo-tNLx5qY>`v&ooasV1^FfzhzBL~vysX6+oW zc3b&?J?2B-WmAR_%XsexY%NSer%h&GfilPDl&I$%LQ`3Hps&j8zknHKWv*v%X)2)w zq`pU}ii9l1zn_14Jh!UaNjnMn$gJI;vMy-8UO9QC9>rD8#l8jvNNDaMNxj~Bo3?_O z`kgimPn);PF}~a7KH(wRZt9{L2Z(_3&m*oM$KU+aG+=b2Nfn#@>3*z`VT-KH%&~B7 z`SRl4#rL7g)X8PUNH8hIuGSt9o+AdsctF7-u`f;sE*%{WdT{vYl}T?w!Lh3++4dZ^ zafKBW6!f$l%$;SB9y%~^4iIvV@V7rdZNKasU8})l5A6%Qlagj+X7D#zc1A42r5Nu| zf+NvTidO-HPE%oDZUsIwFvRy=0P98MBg`IP~ zUM@lcC{@SK32o`;q{3XTGq=ay5f_H@vqks*gh}Er+*?yM5~6UTXX9|l3SApm48^Gb zG=(EKpzIhTDd-*~XxvF@$Q9Csj3 zcy77`n}X6?S-|!+<rCYU@TXRMG_}vBqJ?t?0K@&Z+TRjwhL}GaE}c0rGS@Ajxst;UjqrcA2nrM=yHbs7Ri1u8XU6A?>LYgKy*{{$U0i#I#3lshTwP*s*R-+TRQ{61+c&)}wuUv7UF zQOU2(;$vrIVsZ<;N6~n2D^d)-GvIsBV&Ti+X_`*FD55Vt*zei5^E_2HyDDz~!vg$C zWAn>mDMwouYgm%ea|sR}!#wVR@+!EV$1Vki5LGv=dWD2o+LxqUEbsg z7*G>vA2D^A#iN`ub8_180zYVnUC=bG(MRr|RvIl=I=k{|@%fgc%b_BxRemTKfiB&7TxO}>ycc3%`6W3o^>zQP=n8Gc zy#-#81R+~lRVD|f$6$Eld!wsB+mgW4ms{Hn7q%VcPm+WMOl1v?%+IL*-d8@pIH}CA zqEQ|iSG}oNc#5Sk8W&QEUqbp|^Or6nBad!Ej91y23n12my$>gAJP6;Kdl6L2CuSMf zx9|%>1_j4Ew3xIR5(FMt9flAIk}Ro}iEb)X?twuan##`1pteoLwpI(z*&^|`e?t$N zUT=a*cD<*hA6quuw%KYtT&}H3{dO0Cu3dq(OXb|)74k*I`~tHC08sa(1^+Wq{7^e0 zbz)!f^Pu$P!n>u$hYMZmkXjdf_ex+xPeoyx8D(p%0Q=%l7G{9`eyvN=HFYL+r-3f{ zE~VG64a#@D0U!8x>y*rhU_|NOpEe%E@VD777k4-Ca^x3_nv%$*+$WYVGBc|oF+1|V zui6O=vcvZNT#+OG!juge*Vtn%2OGe0yN>SeNT6P5f1T(wr@mBd;a_w8{eAl0bnlPv zotoP@X8C(VffFE&8Z~~La*A^eSu59?e)9i#9L}B}b&u98fI|~^HU|$@@9xG*u*pO! z(zl{P1mwtAOg(v0qs-|~#AsDoZ&@SzeOy^b?0hoxF{+w!Ys>`=%@jQx8N{T#3bJm+ z7hC3M_xTot*QBwyMEG;V?sMrZ(iz=U_uW=tq34K%9@SHc+1^Z07H4} znEz&;rBJ`S1S2Uov`7i2X8osG1qH==&3rjtddH8%`SyK}OpU$AFnqOq!n1k3tz%F- z3=W1gwV`WIFTG5^0!YKlr9~gdE{}Z|x5GiK?q3U?B7BcUa7AT-br3K0nTE(k6k^2! z4io#8&cnvU0l3b?hg4Ju)*XMVb?OwhLc8xgt1D9J6B83L-b(@Wq2o#+<<)<*CizR|?U- zla;5)S0%PsHT}3tS6l1bbU2rYFE_%w-J|5OqvMsPfU?IIf*$>ANv~gRG$kLu8nxe& z?~g2Z3lBh44+PGgJx+Wf)GoHhmf_Ur_?+^7Jw7`nW~upgy%3X*EPI)gsr1QmmIBYe zNwX5#+Bx@A0Dkpb?X}ppN=m&>ciZy2_?Dl1yIv$TYGI^0R>JHE+@U{>uf%ym#t_>W z226AD5)kJXdPqW3=?#6a2f$Bvic{)YkNmu&&sKl%Y&wu5^(rQc>f)iM7EqfgGqBoh znCr^@0O(uWZ0D*EGPSl<-eH?+gPzI+>Hq9XA{sBAa2;D*DqSjlXN(>k99&ky|H){b ze4Blw$3H$kUi4=$&s6~NM?a0<`&75vn!hjR>bQ?{oc5KTpUD)vE+DsC2CjCn=;CTy zxPl4Lm2iWaXGgla5zX)dTBS>LxY&D~HsHl<%AJyNF10NR!JCnl#Va$8Ok$xNyZ$ci zrBDNr6=AL|E~B3NFJGTKInGl@Z{vZr@9pXzuJXd#31GD4R_ivkP)$y&A9rn{3JQe# z$EuU+JkHbvJZ~KHjN{QxAr@e}QmGPCxKFm9She;&12+;H0mInog4U;X8o+xHGk-(H z3JmXs-60izvy+_$P-%=8KK{C;KRv#VF{$S>y=^!%2FW`Xi{YEj>}u|vD`;C1^H?aU zIWwLN9=n!@+RBc!+XOX;YPzg^kOzZ*6a7_zBn1PV)#Wi53nky!*Pk?hSk?k8P7ELvDOxj!!AAhG1#>&ElBrWGW=bio1B^C`yftn~# z-D~_Q9jZX8=hBg(Ce{vQKwSREar<}Z)8jk-3WCCBLZO%FLM<&Scb;caE~KTUnK3iR zJux;mhO#)go6s(brxe;hD0y9_CSrLTbNBRVjiA?6EWfi+y?KpR39ss%`owZrI4WS} zP|04S)nA9YVq#_@ladVRIb_A12m1gnqXMZ60A)Jc8O@F&js?LDfFXj=8!l;a> zs+Xjcat#l%>1b|S;EjJu%;RD}{=Fvp|LE3#Wgp0Nei%4qoOlQ_>^Pj4H<))#WuQsY z*G!9dv!kbTz%lQ1C|o$#Glh73G9{KvLD6a)@x#~AD#%kE6BpdmxdwQO&TdI_u{KV( z7{|($`%#gR7Pyzo|5-S$qKr0)6NFe)C;@?20s1&OkTSYgKb* zCR%%+TE8iCSxA0@_S^X>RZupcSSl`K^JT6C0K_0LSbtjZJ@_{q9pciPAKlN4M?iGwPrWh*^BTFKqba>`?@Sq#Ldl7C++sz!MQViO#==i7xtkA zb-Tq+b2r~_bKWNvKD{B3t!{5$laURJcKUz4g zU#8J4B{wkMxnz+)Fi|9+KGo?Wlc>-S#$y5IfrcDG-O0$PC>?~ayp%y&^` zgA~)@+RC0yB@aVdE}vfyD5E5$lpR-o@D7;2u08-xiG!C5{$F3jgNY+s*)yaCJU(`Z z%&sq?bJUA@$?+6<7TZw*#vvE>dcHd9lcVGBdKLDq&6m(9r885vK26w2e?tCu*Z%EZ-eew*DLXJrN0|MPyIIe7?RiscK1!AIaK=&cK!?+2G_ zx=>MxiRU?;Twt_rN!OwNwstj!tiFZs;>BHRim^^A@5hyTeV&P0kJvVDKV=~IF}_&+ zcI6`*eSt)gx9{fwx=s$xe#K+Q_> z+vzsyX2{2jT>j>`Q;6a6(j{H`R7J8xJMJ>C{qoE<*euxzdZ?Z(n6&%CGe%A6Ie%7Z zTu%UmooEE%`Ohntb?Ni!rie+|6Ho$z^Uq0|!H`E_{gbhc*!GT&$m|r~f$iU5PxP|} z8p+RRy1NownJH{eV&ef+guznQZmoSe^`s@>_w&|&A!Mq_g%;&Cty|?QL-d5z21Zk? zBN%DPE^V(Y)rI307t$l5Or0D0@8vcwkGajz$ciy)2C_cmI|8%GeyfF~uBd=F2K$GS z|I$sst?3IHwr|*+1OsqJNU!s+>2-B=^}Lx1X92LuA*RRtel9Zt=^^C4SeNU*&}VL9 zY9}skqE-?+Nf=g|vcMd8WAzoNi!^i@@nC`?#85JC7%HFU5EK+l>-7|vIokcn{AcRh zQlYBVxlOT#JU4t8X|cd!#aReo#O<1r`0GDEMZ^GjO9-%=nFY*)+yi4x5j<`MX72qT zw=2FFD4NutY(BVuS1TWB|8NjLe)zx6;9q-i^_fc`Z@841xWpi>Ef#Lr4#274+7~no%)ik zUUK5DW8L{`I~Q^QP3_S{CD57nD=pU$KLpS!Tn!$@0qxuQLdg=w-W7m)EWEfiZ!K20 zmd5G7mI}}rco*nG`63iZRp1^_j^7~Rw4&nbGf4mb+!MTg-vcWs?;RW89lU1(_Gj|A zlI6*r-vPSbsPt$iEmW-Bvg&9!ZA59B_wgy#L~Wq8+8@hYC$=Tqf$~F?=@f?`Xs&91 zC+$`W(c(-=v5g0xG_7R2H0)Mj??+U?4&mg%&v8PlMx&!;amJ1BAt&6h#@m9__eW1! zw|-Tm1p}o%k>m?*unZ?$1*s+gRA*|2TSqze}Zefas856JU+=+Ll(d``3=0 z(|Ca`BU@wdk~i&#+Si;;XU_p3A<>;U-ai(z4`)B-@-9m9o7@E|Cac-hV4ky1Vs-RZ z4jmJdIc>J?*u5WOMjxr~&8BvP(3~ljXDCOJjaweZDY9NDp)mu4l&|N{hC&64jk12S z$d6ttg~Kg8KkgU*>Ny4~7HEYws@_i93}nD(07Jb(^WXo@yTzuWOGmo z`|)X-+yJE9;v)M%g}K1uq?MZ;z9D~RrY!R7SK)kC#YZ|i12_2YX$}lX@JZyy&dgNA zdaeM$87lD!s}K|}nuu+yC<#}q9LUJZ((v@;=%3CAVff2IYY1OuSIVOGE8PvvJUI6G z^g24Wi~eTB7-9gw`*)o^o_%<34Coi_$-`c4U;MpHXM=qks3x_Z=A*hO(@L!}m-)XM zqOmmA%c8+t0Wosxzm6DJ{HCE+`W~@V5c8J^S41~$$>|?u1>XKUBmL)psLC|P>HkmD zw(kVUF@F&%LIDcOq`&GrfNxiu`h83SLZ3}ITk3*uKy7(U+!Pg!gU##J=X90GtkfLo zt}(~dHD?m=XxC@Ys-V8fQ}F@}I+aH@mtOV<0HHR8vOI80&*GU+@ptYD2&keODC+pq z;Nt&b0RqOq;%Hv@;S@OCY&}|A-YMR2XF4fXq;h<~*aozJ97m17tGLGuUips39|v*! z?OKxeK*#W>`Q(&^yfymE*B+jH$48CO0rmdtE$}q4aiAjWe44I1Ukz7RohSZxufN_~4;I29E3uvB zTvh!QPRZ`f-~Zs|B{t?$Bo0U4wXOH+gOf3+{3}Km_YbZ?);^j`3X$GH?`U^IGBv2#P+dvD+GUGgvg>YXQ*T9x7+RD4> zsxZ9^J+c?1I}ZDL$KXnYcfFdYFV_)No9EJy2EZD45y(0j_htT8y_8_(#on#Ol+V4s z{IX;7v*mH%?Hw5_@Ept27wT_n4?GdD^C!5m`!kA=As5L0iOMH6k&=`oOmQ6CrhJGQ ziYe+~9JePZ=dV6SPbma6ACcb3Nw*nZx<@bZE(rhXR58|yHpi*!lGBF`xJm!aO?NFC z2X}DlhiX@9^0$+^NpN4{xX%W$R(GXIN#?;# zv&)JB?_*+OC=p}61f+RTD2vn!SoPk91}(LQ6co_Zof1<1>Z!i$pRGZyZ5|j9WPR!3 zcH%p+OYN>C9>kB}OkoLRyjSm%&)&LKh6iDUP74%DbR6g!o|9fKdUV*U?HA>_D!1UD z1~WJUAp*LE`uwkG2B{X1<=Bgcm@qI`^!cV*Zf8~k0sbS>XepYpCWfY9?FIBtZ@GG& z;#zX%mET)Szc;Ds>mt8BB+>JSv;u_|m4 z?WZsMAi|?TFAI93cm#ef)FzJr9Zr4ZH)b=Bi245RLEZ6ZJx4ASG5NvcjCvzfN?d1| z3HVQ%z}Upg&OSC!Y{i<-`lEEa=f(s@puw)F5C?0^q1<*t%j%HcJiWgcg% zvM@0icF9D=N1=%(Fh(~ZVP5g1^I#>7niyoaqapwUm8{+v+`p-goc$7qs)C4gmL3~%Fdap#IAiOKD zY0?A^`r3zdTBZHfvR1qAQvLFYbJCC$kzgLr?+Y(%CkmAy(5k;1T{FMVN5JdJ*g+Oh zA%OwWe!?lZBRadi#^WRC0c>l!kXFD>Q~;i%F>~2(hFABnCwIc@;FU^vyo5sv`x2P$ zV}Mv%d+TV%Ty7AS2l!jYgl!+^faUXpAS-r#0?4e&?1+KJrp{xA&UJree8>}(v*6Ig zaiGu!cZsX8*B#9tPa+<1)C+@9CeSpDrD!{A2}!SxyD7^WAlgOEWxBv&b4kI6SpCZ+ zIHPz-VLH+VS1-Kjm2iteq$9b$)F$h#GRL?}jmEY$b7g<-O?{Y1c_eq|GACnh=(Ly1H%o{eFZ!0eA1qp;Wi(R zYHk2M5o(3vxNvGI5JUbts0|A00-^VBJ$ZcP-UJ|pycThl5h$z@`pnua+!9N;2lbbu zoyQQtv}?E(`X2Sy{353eH9RPe=B{ugxm{F54PMT2o+6y8{58gT;`l z_q%P^UuT1Nr_<`sjVJe$-m$n3C>c>&ysf?tYZqtk%Nk2IwPdTlNC5O2wep6e-j@XY z593NOX=|`P&-LeNOc$4x3!8klo8!wrzVR|13H9v%^>*wARCnn5G2Bx{(xjglyMp6) zTR)@9a`QZ=S|Bv9{5x>>%Ri_u^j+_K^l6SS){9X-C7vtlxj8orRi&@M^%$1lqoeml zq-@| zQOR)#Pj^L(z*BGak%HWWcx;OC2ZQ%ir81Y9L-`^@nHp^UVtRIo3jjwh!MhC4#sIg2 zJ0D=2L!plQ&J9UP!!52D{?VeBLHqlcYV3nSdQvT|7`PUyDNJScuB-B1U45xRDqUIE z)kFVe&y3&vs?Zs|)ot_4*~1;VIIe!_^dhfH1UJ7RO{Rv_hI_1~Rgnanl%~I# z^nrA(TZNa)W&+JB)V(?P?KFS;rdZvX%PW?QjjlrLjTo;z9Hn_BEwl%oyV}6pt4J=W z+t|<;(WvyAX?z!`O<)cM8pG91o^&CZ^k3#)`1E}GZTp!wJ}blUnJ|oHJI?BJ!U<&`c=QMbiznu**2Xq zl{3SJ7Uz(`aTBrMPXA-zs?OYWDK9P1SiP3n;j}kvK8&K5N?bB&J2F>%EwetRd<>HU zkwY$AjRu;VF8!IQgH}`Ha`b1P5x|mIV@T9gsHqCXq5KTWv8-{m^ME?Hm-p}5GaQdgZ z);RY>l&EkYpYT|tgU@f7LnE4o#)#l%~aNN%hg~dGt2E^aK&y3VdUh@ z=-JYlbq7e75>+1$v*JlQz;m7-Y#;M4K;8nz(lDVAmLCE8HVk~LP?}S`oi0B1C#$UT zB@vUq_Ssb|U)DYiCJTy+uFsEWX`;-iFhiW>SB$vkWk%Ik&O5)+mWGoE8BK-V8C`Sa z9oyPhz`3LT;xhS{mFuP^rt4eN;g)IlR-EvsFN+Hb3zt>gVzdGnq#!o8px`O! zh1=9`69yf&<1O5}V>f_3VYWk{t&3?@yAGAE3&&fq}HWdh&xXhgl8Rz^@{VJ*>@KvOSfe4qrVQdPF_ z5Z;KVR{`sZP@<@NfDTiT(AwKM%ze5%&IDj;jgzZg7C|+}$+ndMt z6i?<)`1K+-Qimbwz3NcKbf=3@#pxRZYJmU%vw;j+GypJ-G_czzwz%j<0(f^ZHN8xG zv5ARTihn6>XW_GZv7@)w>%N28<9r@uYjnxKh^VVehmvzr0{_R+gZbswgYt8a9xyo) z9yq(Ld@H)Bz7!*}Yo*$btviLGk24I^sfzFrZB==f@zNTnPr_)oj0{J-ht<=+qFWz( zfc_5{IknHMm?2SFR&A5lTpFau%1vdDfeZjRsE@{nCVz%Bd>)ho5|$P9LXOo2S$$_f z1fL+jA&eHMZxQQ5KvtfexU6l0-)gP)qz~ELuQn@!iO1Kdf#r%6SCR$Ob`q@VV_K=` z(bd5*PSM&u=4zls*jJ{Q*Lu9`?<%b0R|TGkIAPDQMeOqix9y!J-Bpm=1~)!ARg?)yhyCvI0n^i})@+Bjh}!{Q#Ug1FFM zpLmKV;N5aH1cvF-;L4Go+c^)+%r*(XSv2BA|EUzWLhU_2Y^MfUxldIFJlAA;aWu|6 zDChzIUHF1|of9d%oHzeFk$YYQP#BeG@kUgEh*V-04{Z?T&D<^#uQLTD8 zIXB@P&Q;Ip@fWeElfpSf^j1ligQNDbtU_lR5I00O#@|G^UnyL<2f-P$aEZ4Ym&3uW z=PX9pxC3R{y-WHZ7C><~EJ=Ozh+*o%_k#D@k(?ukjt`06e*FtpG8h->v$E6eVy^O2 zTS8VtO)ZZx)1fx&+QOj6O-@{Q8axBHmf@I0{p{EP4F8#*L2 z>bDrh$jGtPOlQa&r<8D5-H?!I<6cH2nGGvGPm%k}hom#16w4od&&OsGwB zE2z+VqZqYW;6B+a#YA|wx!H^Ev&UVOc}@bZj!8I`=+|ez8i&PEB9oK(Yl$VL6Fiwv z^()y*c)tloPnNkOjWF5%|C_!+OzQPMn@*mA zfOad-1^=1Sf$c2T41%mgi|M@+>B3|6!5Lq%;u&(YY^wrU##Xx%4Hr_BCU(^0ehyH1cKb$3823m`J4!FF@hU^sP{;u6 zx(C6jvJ3R4e0auM`fvxE46bEq*ukbbTDz+$nDZ9sf;GyG_xoJe0ftswt}foqNDK1b04u zc@*(n4xfV0OEPbP#}M%0@K{>Vu@NoCOtcJ}IqdNcK&MDyH1By zepdLIpZJ`D!3RW7YfC95Ly1T8xr(vU4&QgO34!p1bD=QzALS;R zMOYsba-%qinZUJD>iPp9Bw9+0Z6`Yu6_cWOPRV;dqIIbP6O@9V!3q&Yi|8(e-v(PS6j z*&>S5w>!n`q_ZcT65p|K35Ykv0cm#}kmEgfKw3bz?^XZ(A~Xvm5bAcu!^>F)Zc1Ax zUkfC=mk67b<&5}WM@)f99S)4|H-O=z4oDJ7p+}M*;nc9&?k%x~T>$QXwY_;4wfagW zAkcq%STfD2JRj9CLhL$$u?THxh%pk@4G3sR3TTbr=#ka6*>xogr(t{Q|9nbR5qN&Q zE~{W4kkaIPW@2((X4I4kN?@x>T&nX;j)~E;!!(56puBKF=6{0G^s0^5Q+P>>1LCHjWu?*=ONM4mo$Me_<*Q&+)X=>)G*_39#OvSR zCOq+_twoqgYUj0JZvJdUz^8?&m6QN_^`!p5L1RFcqd0Fneji@+`eNogcF`5!&Ruk- zQ}9$O&(#P;x^nySu|HZHWIU|v|Ksc{z@pr`wgEvz6i@_2DFsAYFpx&+4w00Q4(V>fe^i_Nrj!V! zOVuOCPFm|W&Y4y(Z1Sr+3mgI<*t-4x#QTp^Q}vP2(XEoK)lZ`Jd%S!GPQZfit{9QB z>v@#VB)ELCujgz$$!hn$GmaB@0(PEm+AWTJrA%SH6V2+-9%!|<&QXyosKG6g=(<7= zyp){)2q4F~UUYM+<5N(?J#U{D5F8M0eHWkL)erEftgF$2%GYEQ#<>7;cO7G%#D#7U`$NU)y)BoefCY`Lc?%+q>R$*@$_r zFQxR3wx#39N1U+A1qXym=;?{bu96e;>yFzUT0^H?YXFzT-a5lR=S;$k^E5Aj!{$!d zjjcWCYvtWL-_N(RKqpG>mi-7Ib*<;E=mwC1osAT9!8|KQ16q5Q>|HY{`xP(v=&;X_ z=~Wl)BtEiTPU&0SIhB_w7yK`DkuvtS$`qyriX~lHPp(DV{SvPom~dh|s-rh=Be|9biqjfCG&1?|wP9 zu}I;v!0bG1tEKS~mZ?0Q-u|02ouZUkL+94E zn&}e#-S4^AdEV<=Q6%Mc4xF!CMC)`vNq#rCx!7!iC-x-XrEK~A_mSc~*_ zMw-q|MO3Cv`JQ_>uch8u0t0wr6;sOY@RuNh|3X!_Rk44cJQ8F^w`=q-!%XwKjg&h~ z-9EkK80@!*=+#Pfli~W{RbsQQyk3OdowsSPTkn>|)qr`g`h9>}wyg)LeZ^v+nfm6Q1Ll@{U8 zfPhXf4ajv4(3t7v!*dbs@WD&%TaB~Z;Ixn5fVohTKB=aIxg@$Fwe)Z$%s268Ck4Ug z3?#Gdc+eWw>1jZZx-Kl9i?HOn-^*{yvy>E3q!=rv4ln zP5cK5tqQCK-D*;-ySG7HqXW%r-AQm)bSisSu_~*UP}XTmyYDPLGC8|)zTB&mSlb=~YIV!3l@s}`8XW}iMHep=PnGJ;Ds-Yx!}_*%7Cq*h9Zk5e4Y`|9 z&vG;5__#Zy4kz~fDO?nv(us;iZ$~u zkiOo-$srouRv27r$=jEEpvK7QK`1abG25L2m}`KYOu|j(RR0)-rUTS-Oi+~qz*W$x zTHVewai)B}K=RS;guBba{dWNBv4b5mofhz2FFD=R6Grgvi9a~aNAy6RAxGH*84T~p z-S`0ejBae*x5tqBBr^Ge>v+5F!wvg!$qbXt9}e%I3dEgCPD_(CH_tsoc0<6t>>HOj zK<`9Xr5jaOZNp6W%^;8kR1rb0h)>#p_4^oqbGhgNU97#?E~8l9xxs>HQ5K%udf;z3 z$$jwJhP$PRm0{iv#o=y&#ju$l;Q;R;4nV z(Md(pFFbhNzL|s;B$4>{1&B_tooDe~rfiXTdK#p1C}_GN?Ua#tyldL!2Q@B})y9hu zyn=}pfW34Z0!uWdl+Oxmk9h}Ag1EF5dE+5@Yye?;$wz&&jdRP%u$^lC=i?fy;nfNG z1t#w|{O_EoH#A8Yw3e=8`ZjynaAV`b9wX`Jfcag9z|gP~ZzLGHuc(&~g|k3v4Y#m) z&DP05>wubE2A-ul!H;JmSk9xI;OVCo6=|9?`b)!}x55Wz#Ki}xI1&pbx)cJdH4=jb zPkxOmUC=Q0*`(B>k{$U`dIq-6uc{nDPdJKXCJFo+wJy!ymc{pw>ZquN7e=YszCe06V)>9C??HYqQtBT>ZHVbbOFR|`QwK0$6G7H z3RN|7t~E&xa_d~we#i4pd+L^%WIC;{f+!Rj(!oGwK2UXBz#ziyFOzu?`jE3uf?BdL ztFN25ynA-PN3b+BrCa9g<*+=mWbsotES95go2@T7My_rbx_@}Mj#=H$!ps;Aya1ZH zmHQ_Rkf$1SP%Jogta1Y-CL0TPvT6t>7z;OPiCnKFyky;P30D(WMGPZ zs5dgXD*mKL$+0h>YQd~`55eK*~W2m_j1TZ46sHl&%B9IRx^1`uIAK6GGda<}rt_uOI3C{nCTb z(orYTATH-3p4}#0l(hjsGC4A^`>Mqz#jcxs!2qUD<01!w>6FGPPC{3$+8QFFby2IV zqg)4Ab+fGPmq|KazgDM~8Z>Fv*vZO;y}7G>(t`Wy*gG0+Du=%9gL+*oLkH`7y;9$@ zZtnQA=EN2T&|+B8$|2y<)1|l)7 zRu07r0VYb|5$@#Vq#v8~D%Sgmh+D?P6&mqC>Cj}!Ql4skD}2!6KNXO@iI&n=tBT+= zg3n~V$984~6l%mQab|hA9_Q6PVTa~O2O7Gw&?V0X=!!UubK0D?TxdE?v)*E(Z={sF zX+if@Yf4M2o6WZG)F}T}*VOvx?iHJdz4-;X^&U)&`P7yWJZOb6cg<&fJQIEYCA~f{ z^LSRj6j}rIs`)^MPx$0n3WgoZ8;^h?@u+-pA6p3fIjd?xGF#f%A>S!6m0S#m0E1Lm zZE6;GaOkdk@V4N+EadLaiuximpKOdrrO9V%ET@OHw+dLQeGVMInwo8PXNIYnUdA}- zqaM2}Ol6KK!;7>XtUjQy9`nL(g?OzthivjdIw6&Li|oB~=>cfQko=jswlnF&U$GtF zzO&`gYQTHv2S|c(f(+#?2UmMXd;g|^v?})LxhJo;^;vi1^3oJ@`E{cv4VL}8PkuXM zA|}2T@;Z_l5Hrf>6|+$^gPXK!B-1@+iEe$c&;dcUIMqrbW`$`m!@^9TZ+L*`!KZT$ zV&YFH1jk2C8QocMjzRbrn>hepqz}{tWNFs$M{kve6K8Mak<27ZwkXB#!YdS3TJO`l z{gC92;NO3#n5<;C>oh}T6lR3IazxGUg?V1(@~t1vcGCt06}@=-1S-9!Eh-{P2N`d) zXtJ6XS3eOmHUy|3FQ@D;BYl1)(WWrG{Ad)`3fe?cxb@QCTHLPo^Tu4s>NnVKt!fWi z-9l3OCR2NfTIfw$FW+|*k84#yNjKcn_D?B!~KpG zV70k?=Rzw08|qJG>ThI^oGri5aB% zfaI5#JjeAfz#qi)yn3#<>3?`%v(GS{eLXCUKhxmx#$H)Rt*o*{5d0p=W5E?X4LvvK z-d54kxX8!d=llfLFq=qGk+lRY1_f9vY(A5;s+c8%mXYQzpa?j<`hqKKf9gdN`cQKU z*6rzhmg+P`y(bI&2}dbRpfmXxt*03#Q|U4dw#=WnJ6F*eWj~aOYAERus6G_^fWN0a z2M&NlYX)0=Uj5`;_JqNW>dZxW8=6{0GJxTL+O%&nAn)zImdVWq-~Lz{Qqr7cv&y!v z^3`iy#c+eJ>c;7?sHiKusIo7>?H9#DpyqMX)hFgRdi;<&jBB46>EX6fJrfR5!XyjK zULMw(+v4@gL=RSWbY|CPYxjNixowFSBTsxzrrDaX6<%d5)A7uOT``?iqu;a1IP!`z zVZ;I6*>RbqA|zGDjfWa`)$TlE6}vZ>Xlx&?1=gBxl~)F|$0A2JUelRx{>VxZ{7X zvqC;T;YEB+zz$567xDF^6Zz^>lf8F$>;+W=*}@_t88b4Bd#Cfft0ip>7Ks9q%gV%T zD{E#}9jiA47QwA7*(k#cU@~}NuX`mF9&~?3*wuPxT8tzgZ}EDfbmxGGGP`7h-ctm} z)g(?8UGUNu#`)!fwOjzM0`?p5>Rx5fR+6 z1&*~N1?FA(I_8&I#G}tfgyD#`jB|@hJXXr&mqxhoMf#t8=$*dHt#Y_RNu-!}^<7V4 zw)Mqp+*1GYLijOmg4&Ym!zwz}mX(cli|Cn!t5f1RyYLJ~{`EZU+*d32n^jle@tfF< z5SUhHYUr6Q9a5cxjcHU==hjZwJdZ^_7ukNr+n}{LEqd@<#m$z<&-q#UD|;TTGJDfI zt6PSebgETx=%elg&`I-piNQo*M32#M5hMkNCnrz(Ds$4(O2a1Y2*?#RHKqZTae?dB z{Z7&v1or>{D+7Vlm1>7QJCIRX)M9LA;lh(JCnE~+j-%xI7)jFSu{3QgFJfkasl!bz zX5n!<=j2#FiGX@ zcm2h^A7GKO2smEOqt14J1#z|Y;#{ng2hI&G?YjuX18#ArjlN^88XCUXsVCRhn{VS! zi;0Va$TK2r@jdU1|BDkFuNbSjSRKe$5d87Ly;<d<}y;>=gzqv&_-#rgR=y=@rOSXn=0I;YgJm{@=>q{Ir!-siN z;(z4kTdPI>gr2EYq6lNX!vJ_V4Hy>{j{w&I&NcaAVc1KC7)z|TybGdR? za+KY^1*;C57-oo>Q}fAYPL}4zAS=JdEY?TlZKmOBiql)R?^j>3eD7$fQ$ncdX>tUe zck>#=WtglXalZ9KXo{$r-B6y}X)!CodeO#h@{2lqiuTLi^6oJ*&f@}2=kL``EQ^^V zO2*f(2`6)bDUfXsQ_6w)PLs1d0P@?kKQ{t!mx~Jv?_s+b>P?A(lS#|S-OuI2F+~6N zg6OfK5po?A`jClW6z4_RKm@)o(44LkG-8lq%Y<9d4vd+?mTJNC z@%j*{&BCdnuUtS=y@fsp)zRvCF!tPmQLkUu1^#%d-U!2-k7EVhtjR zI~rh8Gv?h+5p+bg&fs`&!M6ZTh24EE1$LX)iWefE3^hZ#;^9o7rUT9E2XWHcv7!dX zRqyTDRv#Y=*92wPE*#v`v3moSOB zNXU2KY}kShUH_PvP2dURvUP+W!l{Sps7H-=e8GtO)yu<&16Sbhr5o9pv;j`|q3y;K z-Ah~{Fkif;wq|2S&Ad`r#qxG;&mK$jICa%E@j13S9xtM8e%OAbDfN z!~lD9i$QN|1q)Q{dX(pS+sfM7AA&OQP`uF3z&^}WMaR5KEzo+EJ!ldzMxP}dL)Fzn z?I^E{1OwKs%#(mgGMvxtPJmaJ946E$FU$)`5~qX|LD4WF&gL^myYDTN0Gzg^P7f3b z%%|y)(q{`xh@zh*9n_H;Ht4=X5e(q?k!x$&CaqQG!pl_;(Yh14v%iwsn86Bf#H+Z7tL5cpS@B-#hMR3#`C@>v z`zd~o9XB)cCkiQZso|4}{V|UTulYWKr{LhWWn5(dlWY~OzJ+9S4LVRm*FDoW6t(wgWFZJLQsZpr&Xo&bjWE? zh)_D|?JULUSEa@|nV|@~G^E1tL$Pc}FcWsX8Gx6rK2res5~$l!K)~nPMOlE0(8-Kj z+*)FNkqfv#Qj%>2tJ!!cf{U6FG!zK3k+&+Zj(q{^d}Xi`CV4K!K7BUWX3@@1KO3(Y z7+2P35PgR5YdX>(wJhIW_&WZvV&Un@JO=-<@pZ)LG38fzhu~fuPLrM+fEL93F^u_L z1;`Z&d;OXgjC2Cfh-f5S+)M@;GKt^p2~m~D#w)dOUr?oje zYa~lsEhaf{*hFlj7JJsdm|#D0;n6hiFDZ01y?7y)ZpD$OclyoFCoJA;rFQDej=bOO zIqv4N*jZRk-zF1-r<^3SM{O3Uu7J%GOkxl#x1o7>8D?kRLEb@}< z8t~2*2!bGWD*(G+p(FFi4!mgPX*)l__O_Apb+H*-=>;A+#Na0q#JyoOXxh%3Y}(IK zY)`W}*W0bdQQWt^j;t&X&+!1TAN7HC>)Z^M;)F{Wh#m`Fz}JsJ^53zf<>i&$Hm@l^ zL(Z-u!}IMfsqyP4)$2-O@$uxZzSQRSOSR{V=V^jVnudF!%$v-$!|QFoT(r7*XMf_I zA^!!y|Mp>{n0xv=bvB|j5gb(d>-4eEy%>n|LqaE8Kw2fvAf4Nc1jYjE1M=kALA(tE zkkxm+x`>AsyU3u0epS+XqcTrq=gAyQYho8$vNnMFn`YPI_=YwvxL5`2l;w9kEph-Q zP+PM(HAS#8hv0pCdsCo!p7O&F>TvDqE;K=A;q$QEzO7MEpr+m^WPe>r13{q@)sWk5 z{|0%#R#NwXaU8lgskksg&Gd!R0?)QbQvbR&$Cc`o)ppufKbuXN&^y}nxNWUWvAb=j z**Cwyhii3pcO%y;+<~>uIoI@Q^3}WG2;S|@=v)mh$;7XB!asPQY-&E>mbZu7MOPS1 z$<8c0PBu~FMV|YFAM!Q33RY^t8f#wQH(%aJv4J)_3<}hw;hFGFtUVAybmnRC&-Ubp z&lju)Sr5FyhMx!m%;|eGmP&xtiCNvOII`$#Yj`JkAmFW+bY7oh0r`zlW+fwPV4+kx z(c5I44F@|W)*Q*txUC$>5RmJQ7Mm*1_T^;F7f1J*6`kSM_K-e*=ey_TyI`*Spsp*o zU6i>7H+&rgfKE(}d5el$TNfOZ$&hoKXDeUk&Nb7#?4pi{3GZ$R>JAQy=Neo_!i&45 zl{;+H;#|YXtedCbV z3Y(n&H2r;>p7;`6GZM3QQ1dw9V44$DmZW(hU_9I)MJuB3ZPE$tn)~qQC6XN;zGsIg z?*i*EAA`tl-T|nU21<<574Tve5G zJV$@p@&J8ZCBt+W5vrdfZd};`wu=J7;~EX5OM%iP-Asm4$)|34qoo}e7lq1K)+=|d zjPSwiO6Eq$lo9a7nrOfpsTLom3K$o!tTTLU3jLHU8cYGPC_1edb4)I{EJTCwtCTIV zZ&!f==?!hl*?x=G?J3T2wAsPJG^56G)4W>anXQ3|iK%zNsR7gFqcuDJZ8YSsGTJcQ znm)YCmQe|I-Pnp|H{T7nZj9e-s`q1U&K@iT$m@Ozp#;Fr;P}eJt;g$=e&^fI?Cu}C zt>H+AW^a6629I5~?m4uLrX;T&aW%C}ezP$Nx8QEC4s1&HmX`je#_qIM>R`Sr4#RG> z0J@DRF!*|D5Ku~e!ZRNMJcvTrRnZ^^wI^dyb;?C(q4MA{NZPCnOH5={Uqdo--7I-f zG7GrR97gQ&c9%ZM+DEY1sej@>_);)ovMnYn8~!ecXQ+m5A24Y+j!S-O(s&Q`?*_3oFtvs>B?1SgXVg02M~}FvW(u zFrlJhkJ2O%Nr*c+@PK8-vwrLiVsLv6psc%6dXxorcil{p*2J!)WsH0Yz5LHI zTSP5_IwO&oE$~z+!`62|I8(1nGEYq0 z*pIi2labMMf>en8CcECj8!m!Ty706rYCvaG2vEsNr*Uzo05UBc{3i*tDx~Qf<8^`I zz7OB@m8#4U3Z=IJBbSll%g2CUKCG&W=QY1aP1RPP-fIqv8n+;@Ct7?c-I)0Ib_(c^&qiRhx zHItMB$q`3ge^-6-SaNM0x-rN_?Ry3NK|bFLiSAp%#tU4sx#h_7#9k! zrVTK9-NXGHc_^B{n$ZFMKX=!g196zn66)bOvt)47{ot(2V^w5OQseQmJ(3?VD(Y4Nn|y} zk7WRWZN1sf$GTX3@Wv=DYXN{)Lra{@lC!fFZ4FFc;-2AJ+6kBCFMSus4!?{}>Cv{U zZkyyF5W!pL^x@-kd&Stk9Hjn|s9TVvj0~||$Gu@lDYsMtezw!E0nH?lMY3)qL!M0h zdfGMK4d6&nw4k-z(L_H(+$WF3uT98iQ z&J5dn-NAmW1-@ASdfgIGJ_ciRym=%g8EYpyb4-<8JjNQo)b57?ESBPaEC=h27&}Nb zlwi8{9W>6}g)2TGs`5(dtT2hc?C3~?_YPbmv`c)M<;bg-Yj26cX*&YJ=YgMkYKo6O z7haa}%(Dx8Hnxx*B_u{XepZGyAz4y&BOscx+bO69CK0T7@oJ8>n))K=O0wHdZeJy) z1(FU&0)SkYkT5&qJPvvz+1}KJR`cG9dt1s==POd}dbxZSj4NLKcv7i|_k1G$++twN zLhXe%hz9Ofyuj3h+}XCq*TT`FV2n_4jjbYr*57HgxL zZ(Xw>!l#@Us)t-Nhu@)T?$VdMKYmL`vd8CGE1)l2=Y!7g8wV^l=s-DwTFC242Oh)MPD@Bj z1K&=C&4FeZ_d61Dwx;cIt~X z#?z7Kows};fA_dr9btb;+7ilULA@~FPpV2+lzL{sl*_2{Aho-~m^^kRt~lOwt_U9# za=Z;CEex80q;IK_8aHki4-oRJKC}64-gK1DR?f0)tUKEZ3U?&=^F zIoT$yjoq>ijdK|k(iE|)6M8!Tfdw&u5 zXE)|dmp-lxqe@@s#ytt8&3KA^b52zJabEd8BGoQ1GyZQ8b;-EUl{zctnX%Nzg9Oj}bv3}^`b&HW(8IZUzP+wh{4R7HR zp(*s$yAS{TRSf8Y0Xsq3jGCC&=`j4LfM-Og%>S?+J6IS3Fx56kCWyYdq&pzx=Zj?}vh2&3Cobjo()wyH?_LD= zW+}s63O}7`DRFqV)saZt^ZiTq8I5OWjg2#u8cho#qN63{<>d!%J-$kPX$qHa@+U6f zi+RpXDH+#gS{xEh0C{|UcbRr;cQtQ!2GmB%sUFFsxVC|Qc2}h`cg2f!R8tQM;B{l*06fHHip#7keC{UmC!=n3Bb5%nj=bRBA zdi-96)IqJvPHW>dqn=>V9E0la)=tZ*TwD^?wBbXW)fepcRae)%3HlA}$r+Oat-iT4`^39F{bqNM?{gu`S@r7E8c34h2R z;0P~?+=*h=GQi)?rEN{0*Q_e*(gr#byJ6eV`)?o%Mz3wCya2%CJV4_SHVgCN7F|JI&b@ihUVO*IFguv|Q0Z7!5xH z)AQ9&5!~XH82b8rs_NGjl+1NXL)MvI_kGRCP9pl0 z7Bt>*13j^KQ9-Ff#CGsK*_?+WL`XAbci!;n1q}oJY5#_P{?ZQWA{J?lv9Rbg&-5$6_i{MowyWE_tOa_V2jzpnCyx?nK3{R>m4}vz&OXdkG2o{ zz3jo{1D6h~$`U7bz`*`d$!fXb!yqV%<}{$n1nRD(*hIH&JGS?F-0Iem`y#XLO)|JxS@-^UWIAyCHYXo*I70ec!Eb zkP2_DaAz8EGy{#X&tGxl7#*tM6Aw!SwJ&s?288Sar2xY&aJz_si%>A=I>5tHy6+AK zS#)!?Yp!?!k~6tem?nhpvBmO;Gp^?{>(4Ki&S|$~SE$(ePkrpN_uK7#gFHVHQ6lL` z0s#?fuxyFvZzC9z9R*$c1ts(BIx39fZMl_Bm_;{fk-}KMNgG!_bI7n^0)@J%u3@<< zQ9j2D$-S;MN;7q{K}^Ox0U{4VdD^;_)Jlz6DS}HoXZpE}G>T+iwlVpW0yiZOi&^wi zYLUjrN&+bO;z$L=>+>HL7Mn{yoRew@PZ#hKZFmnqxHP z>eLi^U&9PnrVbH>=~P?g0+3J7z&UvNqQ%Dbd;@+zkNKeRB~8eIo4?yuj}Itd<2I z1*_Isu`yN9NKx559lL2op6uQ0gFiYNWHYC0ack+_+qd`e_~)shE341Wx_vySzg9MJ z#J;W2u)X9Ev5|jG?tzn(Q|N$q3ZsOH1aa(6Hak>6I$u@5A*02(vh3c~qA4DPaiyYH zmwiTo_F3Q>l}$q9Co48feZsp@5B#>#s0O6+_ebY|CXrjD zabFsxMJOhj(7Z4|hf@6B(hH2B6p7Fa*YiUB-zv~+X*^-IqbhETGQ&7|AhKe6wz-uh z;Gqn&y0&U@+}Y;5@*qGw@f>8v7n;cCd6z+K*dTc{O2c7LnC0#P87HV~GzpPRf|^5S z?K(O9>l{uk@ZRZjRf2|f?p9rl3Pm+yC8NOhlLgpvCrwLt{RGKqmPm`5y*9h=080&- zZQ*))dQG!w@jC6m5&Ws0cSeeoZ5J);Q|Wz8mpx|H0zE%OS?b6SK#Ks9q1?kkDPYdk zzz4{|7C^cFD2RXmF6Xx&og3NCXgDQ=3t6{%RbnBb7 zhIkEn9>^4!Jy1}XY|X0)OLWhSbA!ta)Zrtq_aV}J@JZRlWO$bElHM{(ny)?3=A4Qk zOxaA0ZCN4OVh0(dw{akkv@bupR{5(HI~@sSe-+7$>*w;vvx6^Y2DCHCln>|^wxsL# zvMWd3eBrMuDX)_R>r3914$bljx*y zL6zh2R{GdYRExi;ZK%-eYP8&gr?5z@OA6LXrjzWkytxKdo7KVj{$*fFUsyq{K%u3z z&krwoW6SnxZ2BF|Ilu3P+q13nprk!xtD4?tRX4WvFBzQSz%gFM2X^BFu%nV$(VQ$0B zuT)>~;=j3!*GKCw43%$W_qb*ARN5i00_IeRS3b%x!R><@>uFAF7*K#AZKld;m4-F% z<&*Ny#N*4(ded4S%~^TXR|*XeE?Z042tm~fTvwV6AzQ^5)Q(z1^vgogE12qb!(|KA z9X@<|B~YBGYHh`I1-@9TUi#oUU@+Hk-dr%t*_i~^A;gDGjZ4CEno}n46Y#LKv^->_ z1w|2@H@-i{_s18%c8isZ!GP@% zol}DC8QX8w#<@W{yAd~DC?s0%8sDyJBQTa)#>*}E1MYP}Zn58BeL4tP85an|1<&zszbo(DF_ z0?MNRy(E=m-Q~yldVL9UMMkMN!n}h_85?j}r3$)hmK!GDi`(5XAy?cT6AW(o6wCvP z2)fkrqHTQ&<}1PW^5IR75{v)511Uuy--Zs9Z>HZIJ_s2)sQUzXffmJ$jg1H1x%FMv zjHll&pV2A`s??%zdlEO~vgo}6Gqq>|j>FR~fvNJ?KpAEEutVu;)W4UNS7VPf|85oI zw@)@qqUBE8&c`9YP&4CR=?-}vc^>z!f)bo2Veju5E+_D8kyn}r^YY11IIUTk?(ub! zb}Hv-l5bpm2?!-fSDL70n~=JTCGDHQ*JN5m&bPZnUFohy!F~1nglrZMm(f9j3q?p{ zw##&GlxJ<{i3|JAS=~{`^N-GoXl_E98ZpZ>d*|5K=RKnl&w-Yjr-wP zFS_A3oxtb2+CAc;Wn1Ucgf4_Sb4AzD-SB2_8tm_475BxKw5ot;1U#khKu)Zq2qO+$ zEoyOSX3;H@BOUwUFDTLsQ%3c(dzFQ114eKUL&+7m9rhVTCPtT&-!#su8duV&z=c^E zQ1a<1+KHNXo)VCKg^IF6egj1+`5<+G&b>fl;j3b2+qb0O8ZG(w@#E^19`uh`SXk>^ zshsB#V|F=O0EZthn`hVB&Kd$dcD-8{rPFWbkdTldOsc){Qrp|x^ERI#*ZD&2Jfm#3 z{E6P)tbib*kTE3yg3TbH+9(O9?Fj(a9}cjkA`&Cp zv!qMIM)%o&;vS9~qk>^f0^8; zXD|THn%wgP1E_N$pz+6WP;>R)v;u;`D9%QKUl5Jo8u}Ml!{Nw5A_J(r{9My96NT&R zP{2y(_%AvR9sy=C=>=+@n8iUSm}gBMD1!w)TxB^=$aRK#|MTVF`a<;$>*7-UQuM3S zzXg5eD$(fw+Q`35t&|kl7j)BhDN28=o`4|M-JkH2pI!O`NOSyo0WzFhmURwfy&-RZ z>&6iT<^pBs83{1_MThQL<~ zT>^#F_+yj*)8_okGzrXu`r6#~xmdKQd_rl@?Z2E8pfUWP`{yeYaE%z$pdG=IyrMv6 z?f<&-jqspSeLh?>KM$o^0h-+r&h(EHdbGEWmj*hLAwMvBfDRHP1-6^C$XCDL_Xd@U zr`i9o!|Ctlzt!i+%X3&~sGLLg##+ z+Y2&9T#?VETR%Euome_=h6!->#nuo~dqA>AVP3}tVqAoZ775BkmX#6(gJk>ax_8t}=fypvR;;6wzp2uZS&SI5L%QRZzwBEYu;5U~2NCaTk#tuii8?3gJwqN$(@s?ngaVL>Ol; zINp;zYx?ned@9FGAZh_RiKrYvR}1Q1oV`4M^Ly!y+XI)6`+|mnjv;dytQ_XN$;!jD zGiuk)N^7FY_@ZHSo~J^E5p@p#F2po(Qg1TiUTg9jbXCh!N8O<*^XwKu?HCQzcfYC< zx5dB5P(+Cpsy3{+J7CB7uFl;uT?Us^_HG>6(TRA=D6r5;u(ah`;J)X~jQ|OEF3m@q z;}q4{spRD3fh?G2hrM@oXCS58N#+13+QdKr&WD%Kg(R6%w;lmF*(c;(6x<8Q;}}iw z|J|`RB4D7j=q&)7wtS7i)GXR@6_>X~PMU9pr~MG8cV_&?(}bQ^nfA}jIfQSd&c(^777f3BL*LfUd2~dRUSrN#sliy* z>#out@5xGV;TzOqUO?Rs(B_r=f?KZur=8B9QxQ1n+JDYp@AyQZVLSvrF8%Q{an>j8 z9wPP6dJT{yJv&^kbCxhHm`umUecLvLgGa?oYS(zX=-=fM9zR(h_bw8{jLyjAiqfqj z@K@&G2O=7DJzAdBho2CmK~K|2LSmY+)=Lck`oQs7Yz0T*u>D)N)g(sF{4l3ij&c5Z zJDj_4qoE0KaiUbZmH)5C&$%Jm$WiW@LG% z0RR(jP+%Xn5t0P-q4R4W6__zINwlGJK+q3~2h75=;PvBthrMSBb`h91@4Bwb{~wKK_d@_g*h?`lPjye`!`-A-=E)X$7SLUP zZ(o2)UGabCzIhXv;R_`_|W+wQQl7>A0iNxpaA%Gh~tn&a%=rp6`7w^!!Z=T)N=Qm_lweEL zziL76%U5yHHL9#1xAXI1mj}lSoIn5=MxGz-5AHgWl3hTjy){ZS^W|vv9o)>=6;qtxB#``xKG+3CkAP3acJLKEb zz(h!Yht>@44Lr=E__tmql4OsV{DCM#b?YsX_-v6z87YA;J^E>s%#?fSS)zWc-V~k^ zWAa(})`^;ladvsJV?n^`6(z5xJ9Hwgs1HEcBZ(N5nzq-4D~uf!=Fk|(FQneX_9A4* zI&r29`|xKRNpaX$Q@RAc@9R!^?QU-Sh!VCpW+z?-M`}wMZ57R{Vdn%yJpdtro(dD+ zQiPDxmIv-88u$@-FnS`6RcVpaEy%QErh;#Doinf9#cctxs#W?D$Lz9^Yc{6t{nj*n zlv6ZLjU(q>-$TJ{P5hS62aLx(D8n|X!CvFcy_bmCcI}_3;#*uV&ujM>zH_a}ENMCa zd>{^UVw46V$*$AdWEhG9o*g2&JxcOp>=Q46%?y8o9o^e*q5+Ee@L0KJmjzjejSHS#XR^x<&vNgs*+QJoo2Aot^)ShtAOm zTy>fE`SY7Cx>8250uwkdq0&kdXOB>tkO1k#Xehf3(%Z~;Kw%ITO;*@@U@k`Mw?;LC zGG90si@v*f9-RE)fm-IOkrUfw{WIl!{p(w~?M`NBq`LJN-(}g~NHrM_^8J9Xo7rL% zxE!s8NVeG+@$9%-nHYoD$#G7d}Sl?*)5nvby-12mL z49t7A_vYGdd|f=jPm=p4WQaOhd3^iKTX*!+QMD;>wOC^}p5^Q#KDe!xEoYwYD6^LVAs*r2%Q zU}^^Qc$pDc$T2?l>7s+vOX!Ii9`C5jFcF7T(YiFjlE)Sa zZ@8%3`I4;|c2V%sVaHI-qh4Z0sg}IVr5-xPp}u1l6-o$JZj$L;2;q^U1@4<=TJ1m_ z`uA)v@VI{-WbnKy>~VxD>F#@u229bPh71i!HjxUqv-i zAAQdaj+tyx229P%=8d6;S4sU-H2t5J>7jN5-6O|l`q6!ZvK^01Dd^TP0hYH0^I7hn zUvMN$s`~x2fBC}kwuhc{Y(<-c6{+Msgryx#C>v(_ah0iGw&veGAW#obJyZb}ZwbK< zC|vd1=YequVLJ5QIqGZ4%%o$ro0;i&l2dywL~cr z=(oOy)*Sl+exH$l^Q)ldj;aQ7Gimh)942f~5invz9A;Ag_v7=rO8^7{*&~{tD#EGy z610@R&Gmm+oI}f9=OM7%^PTmt9~~~#R4!i^c>O<2Qy@JwIXzQJH~z8^r{oBKpB2yN5jy5{B>G>P8gL0VU34P?h z^Z$8?0pA;USj^;eG>lL}D!Tu&`+xd-E-?d5T7)nR9opdnMOaOcp8n^!{?DCj^a_$A z(+%=RBk$nBI6?~k-qyc2Ox+a=;0oX4m%OFMH!CTkuyW4&VJ<6m;l8EwG!& zJQH}229?SCv!TE5Ca9smbcH|zOsHso^bj~0UKKb{M%u4#qu%}H3x^N+9<05*{kpu8oWB+(Sev^m5c?U$8LfB8g+9@GTPqP2vv_j^`C0a;?EnD6A?UI%T z96Em)(ZBBaqJ@0~|C?j{XugtCAW578EET8|&j_jh+vvw{ z5dbkGNPw+PrC1-1qDR9s;xFU*$7}KTol27cZWY4C7zOI%y$M)8$o>%Rs3!kyVrYD! zHYV>Ypg8A`_T^h@f!zP0GYy5Hjft%}dHdsjpze|+daS#@>mi3N{)1WwPS`6#-yfcf zud=RSL5lw$`_ju7H{|c3zFWZpn@XhC^L@ip3m@Q32%pX9S>27niyOmbfkXBWM`8f- z`pu>nVHsr^Wt_{s=pp=kH~x8De%7^etNA;_!im&hS1}1^hbv3tTo#J03HU) z(7`-1y~cMbIt~&M2mR{@i`xfV)6NY=&sN#Nwe@IfI*Z!yzq;zAsXB5VRy->1pI%w> z;%+@CLD0h;o-mgii;u7R5zXVf%s$!4j%=xOw|j4yUCYO)=xp>zKYgf=+zTFwcsM(_ zSa>RvXFsue2QBce(I>QB^V0+--=&?E&k12hrzr-T>=Mka{7w)By z%ytQV0JSP5Kqezv^WN&$5zP$=XN=~lm#>H8D{i(g3^xxCJ>%24;*Bi><33*0bTYYu8=no?8x`u%`V`Lkl+);?2RzPu+!hNgff_T)NMuOQ8N zG&)zh^E9zDdp%}c6_{df)CFTe~CgY#w97( zxjM8zK3ywvJnBKV3R~_xIR|@Gs^=)KrDuk+fYNqU|MMQk5J&2nXN&cPdXj&PO`z-4 z`-lH|#7{8T-z##WD*LenhxP|!7Ejel|h070b zJ+}O~8P738dNesdA4oNVkuCO*15I8y*P>U6@w$5=|9*KKqnfu%b-``&$q~5=Rg@Q= zZl`$Pm#ejvJ2e-LclzGmwWfQT4wLJm38v>)Bpy{cT0uMQiu8LH)GGdX?ODargz!#0 ziwMGRh&S~f|d7|?oi@iO``h#VMlBDq%{W( zZ1qjmKF!*Ckx8#8Aq*4o02+cP<>{sME8j>W32O+=n~1^aBB<*U{yw_vV+R;ySB`i4 z;oWw*-txPn^XkkgnywnLTzzTk}FaOmM4{_ZN)fbsu16Z8+LOvNtQ z6f3Eg_I?Xtp0FKrqr$+-zn^yO3#j^kY<+cDlW*U?iikmofS|OLG8&Z*NeKxBCM_jO zcMk*=1f&E6q@{BLN^i8I2S|5}+UVY>-{teX-{*af_xSyx2Mo5G`?{~|ljr9=DHH*`w) zfqSce7Jv?>T$#Dzse>JZ)(*`qEWr;>=KDVBhvD%5koLBr(N zSE4S*HjuU~hN-`1pRgaBCu_G+_hIj(X=ib216l**BUNIfIrS6%vs1HeE|RB#@4($T zwPSygE^+^M%OKjkI89Vfvauo+J!#4|CiD09oGD-FUq6ZkhUNIr5a#87_Lr;>)qSIC z0o8b(9Qjmn%?#Ce?)&=RE$e-fq$54wqy+@|{` z;oX-EgeiY++|q7S6;t)~nw(+Uz#?mc9OJnz~KyX@`P;fjmh#}fQD zVwN}k@H_WJMMWul*8-lkE+N(0^GV2mkn>;+=fku0=Z%u8QTAKPXmIWYn?)_PzdOL^vB>kT+@7Ek3VJpsa?*wPc zSUeiT>AtcD#_~grL(-sr(6VgUMs3(?0P_pI@$c z-O~ybn`oCcs%(Z-tJu~f=q2uEDMvIaGs9+8W8EO#gjJH0avL!)2~6RRWbQ9DmcW1w z{@ZmNy&YRI1IE(B%1m^K0pG#gP(xvq^j%%&Dz~J;(<#pv2y7Iy%9IH?Czb)P-GsmhKP)_4Pmn;a&IGw|+;^<0WpO zXg|vS{(MLK$EzoB05;@Zh`(KR`JBhNa_zKq`Od!U0!J?-gy*~0n%ob?Vp7Q9>coEA*Gi4|}|I)|9d(Ugix&U?z3 zx<7RvJVIZb;1_H2ebvdm10Im>7x7@qP{;C5+TquicC*E!O=(uBP$MM! zHy8N-Iei_P?|`Y>{q}?Rzb=^|JLTg}$w0jlHbG(e(ZN@;Aae19LycN_(?p6jmO9`ts?IcdWem5f|knyGx`8 z>7kPXQQal1iu=E5M7r5rZ6|B|#A5I4scatM_w|Q<3!v>B$W~*ftLKBgEgi_B{J?K9 zxY`OZ=YFWsW%}1^`OFCCHnQFJ$-CSWl0sG74vET3!>^>(uelaUlKy>JOU7p*jD9Jm z=8;Y%_z>NHU9rh8@z#=_H{IWtGyM1d=j!=(;0=YIlIKgeL?$j z9F>H^#fF=+EdOJ83XC(%T7tE24F;4;Um}8OUWqDyeo5H!*8aOQNAr{FegV?cUc*a< z>a|$;U{a;FFq%mXr`;vqJ-=VHkqlDUuN&x?<@5k@X4oF9kX7eRxS2HJsg?S5e%|E#|XD+^@5_7cO7$f3a2K|Y~pj5YJv*^Q;5iaOtw z=>mrWgh_<{y6zoYNgv1XqM%zZBy=_6t&uJ_Df2!C#UzdwxLJP_cWE2CxU1M$9)sXb zyUAQbt8Y4EANFLuP45!SmDArb$7#p{3MT{zgI$Q{*91A40ljmcna4ULm_XyO=PcXgtfe3>c`$ zHNlud2`za@;64x@7!1m+%RVnYi~*m z&dI;AW&MqM1KDY+0r|t1O7!njQ*ew=&+oeaI}eF2zC3#8dNz3=feech?OV~i5LH%Q z(MTcFE%)&{%~Z2I4YSfIA)+s*3-YpR18S{uXdJaMrJeoM?6B4HrtezW_{#oxk%^S| z`Fn~VZeuQRw}5Buv0NgAy^VEOFPCTOzDTmWGDDZAeD_)#1K;=6HPejfB;Q0s#i>pVXTdBXNWD0KS=K~+4-1HT?5tcBaQ>ufS=T!aw$&7(bzCOy z1$4W&r}j4IY%h83+eCfWugDFZNTMFTyIDu=(KKrOcc-avH~#)lC@kB2nW0>xSl)5p zm!5E6v2_Z?+vVEc+5RB!yf80x&1m-H^!)+vo8>YFrlmG1rPhJ8x>Fj34!XJ`F~{yz zrE17r#-GX?KD-NSnWY*jCmTB6HORxrwBSk2LcysyoaN;!tj{)lqsw%>vwL31Cdm;$ z+L4%ys&kj&81iSs8NObWhd98%{UOnpCdbLJk_`A&+kX37RCI;gO;kn2#*iChL&Di6=Ra$x`0N1(U5DsCw3KFI|AYCL$sO#K6KPtDeFjJ{_PF@gOCYm%bFb){#=P z`&S%Okuy6ei&Z|D#p3s#37~|)y(N6x7~QUdPDjv-{BSt+k(?-}0fhJAQ2%|bu6Dsd zi^-}waPsE-PD|Z)?DQPB!0%n;HIRI-mH_wC^)JmNZsgA2(DhwTQs1!dU?8=oV+LSq(}UFcYeYBu}v8DhU8_AX+Mg? zh*NUKx(L~?<+|NL+jh(*`^El^c#Afv!`?M&6PdltZ_&2gQBAXbYwuhopCk$4aJ*5g z8E$tjSo>g@dYLt8iKg9i@~y>GVrP>a+Bh_Wz)h>AT}Hb>_`Gj{3!CiFJ+EzK4mb$} z=dVS8RPt!{{WYfEO!<&4AR~(duA)cuS3-2H%lF-7v;|PryswpUA&dqR3_xmG;1u82 zEsSGYu!SSO)^oC}nw-c2-=DOtbXsX(o?KH{){<$tXTG*P;Z*Pv|>NS;RkAn#M^Tzg=tf>KW zst2Y>NrRtnBGaVmELNhMfZd}1CVl!)_3QmR_U@}FpeK357ew(2Ki!MF8yjV-eDvs> znx5#zyj<^!_q|ZA`onszW_M{}T_sjB7BLUbonlC2svolE4-)1J-$CBGbm@{-jSI(5 zJ3NmG>=#Ke8Dr4KlxdSN`e&b`16}Z3(Ko08um<(&AX!=9PI&Nw^P%my4je1}N;Uw7 zbXn|F^fjIKb-V-Po$*?5-@_eV0S_hoIfq)!_@4VKx?re`B<^yNNH~*M22Yy9z-2gM z_(hdrUN2R9l5ifJ(;}X8Mk_((07&98Tp?rl1ekCb86`Zl99yLVN$+4HoMw7HHMpO* zOS7jQ(#nU?@-IE+^j;X4HUNALlRG)7Ajg{sZ^eqfoNAcA7nN=TM}$?{n>JHvN|N6( zEWZ0xHWNJLxq`gAS!&A~1ZSRQ$DzU;q)6NSi_f@JhY-GpW^1F)Cid~%y3M#6&RkT` z=Y2o{(;r3b-K|?{G*)EnD_3e%vu8uh-!MtOGrBr+{tSlhq>mCbPBw1~^O>UG`JIC} z&5zvFc6`%`u%tNfeK+L*Vt_P3v}+(X_g>iT_(L zJCS?${_kG9X?PJ~Q&N2Lt@)Bpz|`;j`3G-#0+Y&Fc8PRfQCp)N4gpAct6Cna`!sSrYS; z3L|=|9d+(_$=*_vcN5F#*}?L3zeuq%)EA`eHR?@a%CSNbS=n(njc2a3(T^1Zv@>SA z9PdS$C^C9xYlcew&bH%cG4^qf(s(gvh$%k(shJ+z70_I=o9FB>g|03rwYLmVw;of< zZ95Q?vq^d)#dsv?I63ioy=Fo0P=Gw;pISig8b{Rw-B*C|P}Ch8w{Zrz{;XHotD6PE!!^jWvBqkLyO&PEP{-@23X< z30gz(A!H0X7L3xBG}H@d!5nPR3xdS+_kas??l;%}-vBd^j`;2)yA|EnZDH|8`y-~# zrv$R9`e3qjw{R|9Or2xHp^f-Mwb!TXmhjIKDJ)d$(kHW0n9lf?_3qx!dVYl@GN;W0ZwqkwZ?e(e`+HeQP^q#l} zFRlwC&wF{hQ^bgb1jnq24d>reeDy5iTK79@BKh>mX;ih%@8$BfO{8&+3t22Dg5K52 z`kMEGMd!$i)UtMC;vv)ur&cFB1~9o5aO@oyoBuxO5`wS|&SAb@ z&kS~`&}<_meJizAL@AOX_<+Ca&$@<>@4c^lr*{DR(~~sGnx5ve(Z?{t+u}1Tn&D!T zP&o30;q(|02%?gVXSn753KS&T1L$78ui}jSQ$*_Z_yOd+>(qi+|5sB*cXe6T)bG6$ z*OJMw`fVTPD!;cyIvpzwTeHLO!Ul`=iFTKIhxm4myzz^bD}Rn3)eEok@|ad$eosOc z^K5ViB=wimVFwRxcc+K+XDQ8sEF6m}O9_~L=Z`fA2yP2slIJ`oAwjL*pa~t< z9!m6!L5*>tpLn~*FJCx)8I4Nu+m?N_xqrOXLbKg;y!mQu zfP+rP;h_((oH8C5LYIZv{D(3Srrw$MvAt*c9SJ4k&IA>BlS3t-J*}hB-2k5Kx^9(U z4T%xWg3ruidkhiLl|9tXqT2R`gkzRty2<#fqb=4Wk8u$!Q{sCRQ_;GOj5Nv4q@WAN zso1EDfr={<8fE{dIKoHrV12?c-E*juhH!&j5Z1&dSZa|ZWHl&tQs5s+C+x#s>#_b> zuOtoli-$n-oN>=~2<&$e(1-=&^0*7Rw*sc=e8|GZRvX5HW5kY z4yhjpd&B6R3z+FX@z4|&j>j~Naevzsq3dP;*N^8UlVOfaiH5%7H*eB?XpANmZ}%P6 zk_o=PW4pdM%2d49j`;hbdAstbbiH?j#lM>V`)xe-Gs$90!)fHFf3GEeg;7HM5VFQF zO}YHIM8{beHTey%B@^QevSYdUkh9Rw$;wN&P4I8!Tr=7sEtGMB)H|-;C?y8`hSVCv z(XBJa{%gueZ+a1QN;D6~ubk%k!_Dj{wh7^=Zr=KFk(38lx|#p~*R}3Oinw-{NHG#n zPQwCjq`is%b31!cbH!#;d4X6d)eZs6tf0B>hOLH2gl|l#`!%W`g&(<4EJw}#5_!?h zJFi9Y|9$fcU5eoGbhlvDf!hjmi>|zKjY{C9otpX2cZ4T>r0vHaR(Yv@N|Ep+|7A1O zoF?V#=1E_OP9G^XzLC`Dw?6*p1ize)b^YQYu6ZU7^g-OW!BFvPb%P!9{LHs1bOfST z+!#u=wCigg}sL%6;mfs0ml#P3t z9}3n~ahZ^`-#f^B(y@q?WaGR6wlN+`oCGq{}X8aE%fQi zPB+^3WgsWEJlCh+w}enUIcpsmcgIcb6zUa4^5_fI+u`ae)w`jADtMm5c4e*(<4-0!hO|$?iIh-2rT!)m0T-a zdv(gyxQ3^Hd~!vsN{aWszy)1Eype|4tyXg1fAUGW7jQVm`&KL4?DdPgr*Cm@P3^4~ znl2*-veXhq9HlWmEWSw~J^8MF$I}*K%Bkotb1LD68z%O)NSrjvkoA}9-*0>Sy( za9yz~VW`G*eT;GSPaVA8e5k+(Z+5b`5LK!&JTGHAtmy?bW{U5b_!jJTpqN?N*;^s} zwU>cRJQ&uOZ3;>Y&=@YJVW9rB)bq`p;5n125IX@GmI3E;d~~L2CJ-bNeXWMc!N#QpR}b9(h+d5 zit^fv=@hUWVmMg%0q@lXp6Kw(~U+PIlL3*Ig*;QN_&I?zrUfqhP zPkK#v#gbzMSms;52I=bq1C=auQ8CD>!QFNc@t1Y9Fe0N_^`9{g47aAFJwP2hS?LFTHTQnr|dVI5r&Td67$vJUXFj z-_2>g^Pd{}zhn5LhIdhvg;l~<^H-mbPmgHrJ+JI58sj|N{vfUMB5HOLjz#p~pcmOL zWK!rtQ=tvp3?yqZ&WNjigv9FXhX<#VI9*T}GLOclBNk7*W8kxGwb3 zPE7Q4>l#{RhPVECB+Yc@g!Jo?kk#AP3lcp)R$V(c=jpX45LcBNwf0oxIXUc#ulX18 zmu{Xz!&vrWxNgQtyABvRx|6+Fa{uHPpiTB@e3<$Akw~G75z0~Ta~B@N?uo1) z(%g8F);N%(#!8j3$iEAC36gy-2#G;CgK$r;kJS^fMbR{+Idwu~zGo-+d=o^iNw%u= zjUuhgOF$I!GdTOIl#|uYMEngW<#?mK7tetts$;{@`;~#58yI0xeRo67KwPWBB+x6= zg-MV149x>I&|poOQ|fuXaI2|+^V4Wt+1o#y?WV6HK7DFD+FmeT^aho$N&UbTng03; z*xcAWq|xU;hnXems^p#)@jeBD!2zLPW1a&+Hhb`d3JGc=oq16zcQDUB7mW-i?=o?9 zM6+foccw-htc@{hN;;J0ny2EIdJI?kcONl`xwNW=dGI^h`0e&k?{g{-z3K9P-Dy)O zq=HW4n;AC&Ito%M%p>{Q@*o%-%+HkG+q(b5Ya7knTcSxrwA}btsCAZKnsjf(7jtGC(Qwx%3l+-@140h=6<0 zo-UIP>G5ZQ(4f=ysVsvEq@;2!lJ?GevsIoJtNam6<$sKK$4Um$ntsOLRWbD5!8Gga zAH{Yw-qL(ZCumM*$$_u_sg0Z@N|ZjGkl1NU$|tyQoOr`|yovfC{cKOpNG$+!vgC7^ zvT`ItCNwD0;a0tMPe$VfP|{~^$H082!LfCo|A5cqDcLL5m)8c(0KLIw6TRj`$@5O# zqMNsGFID)th3+h$V2~Y~WnThx+zo#DT-nEsh*VhA*biVH)E{n0T)nn^+IGvdX9b0i z>$q=iBedoJ7Rdg6;jjkQXPf0lWtji@m3Txa;ipEce$x^Rd)|{JBuRk^l zdFOT~8mV<{@=rOvD%r`?DEOO%ruLV6CRKzx*As>pU59*c4{J{6nGV05|Nf_VclFb_ z=z>_`kaA2Uk=E-$YU)j~yWaE-8HB_;X{Wnu&?R4Hxuyi4g=sU>?^?+tlU+rJPlaco zl=yEyZv|o?X*4iB?<5)!>((gs>o(y|m|K)3ZC}Q2CBrajw_U-;KD7!G8(Wvg9 zUpSPUpm|%q7^FLm=|8BX zu%g3R9f@e><>}qpE7m=cmv~K|6!>r29-B)k$(IuA1mt`h5!I2nb3I-maM^do7Pgt_ zsAI}0w=wp)ZR0({Pu9s`>b!Y<=EFW)6lIOaEsR(rcRFr6&t1Q!vbI<}YQjW0V`GSv zAPvD2*xl{(G8Ew31OvAF?L20Q5=F+=q@~r${=dH*W;q@E-!JLLOvm~f8NC;J9eB2V zpIKMpn#Ks%0w>4ymqp&dCm3oDkZCz~0(*8FR2fdKJ)Xbr%Xs3o)kG4*Zz`=*q(`<{ zze^6HlthMG&qtsWLjAtAgh`DZ)vr9EK%tUch&SQ{aGi&E+bNfPH$; z9;io$gZKtFEMABvTl5p3FRKCBZhw`dX=<%i*X@(dfb&17g9!C2rl4#)?X^ILI8p=U z50-VLjiys=c=FMKVcU*Z);-H&#v{H%D|$5!5x0Y-WQF8<6+fZ@Uhso zXVMb1^7zkhKvs(k`<=*XN`17H?6_xLjUTce2l}#44mWlv2ZH{o1xyKA_ojHke$y;m z(`V@*zVzjURPrM6eJ5pNFQI>D;Ehw%Z$^Ivj;toYU(Tr-Rym~lSj<*J_(&q|K8`c~ z5)6W%d#<^kO_o71AsafLsv6zl$T;4x<{=)^(g->PW%d(~tM*pzA$$;FUzi~LAt4fj z$rlX4Zeh+etYSI>T(M=|yLt)=)m7}Vyvd-U{dEP$96nT}+(0N%_u|tl{$wa2WCnUw z4U+@rVbt6&8;jaM-k{w^%Sa#wEMlGZRs>I%Cos%ydRs=1q(nuZ!pqZG+q~i;+ZkuyuX$hE<3BI z639RkKexiNZ3htVnNOd56m^=tiSh5hQyEd5Vu&;nGYs2o;VGP<;#BX0#oP*^U~U_* zg8X>ZWWF}K9mVcV>`mIi?gl4~@2k>ehRW#boKII%2JbhV<*xheZ-i@Sq0HMlP3sA% zAfN(N`%gw&4E5@`>}X2?XczHqFjrSGYEta&395em5-o}s``2r($&|41Pyf)UDhBzLS+G4Cd^rEpqJ!=GmzyB(inD20e zUOZ)!$#CkbCyHst_K2hZq=>tB3U@%J^Q!8`e%Xq!M3rTsBH5ZL@s|79K2$$DUPRPm z)$mEe0nICd3qO0-#9W<0lM(L1U*C5nN}BKqVmw_RD?)F4t@nK*a?~7Qw#HNHiA>{n zS0YUwF~P0wdzBToo3=%t0m`n+#|Mi3Pppo9u-<>!cq}$hXg#xxPNyImr2oBRWTBZL zlD^!V95pht5_Lv&Wp(+BuyyZPxNI5~>N8Uyi1BN3lxaeH+|^?_$xPf!%gr5^(K1yT z@~GZ??Onma5-78LNMzq(HR3aa=Sm;b&g()3;p!U#|MUs}CjzZ{cS1j$c^0weBszHf zfRZ~q4sq zpL+L>$n3!8ql4Pq4T7I98ZR;wp4ZCTu%W!MQsI7Rx8YOL-Z+}o z@Trg#&41&J3-Pv#TXqL{IcxSy*1=bJL44C8Zcw|6##+60USd4V-f>|MR>0%%u^&28Rl{$4tYVt2g2m&X#>yJg2OOj>58z zk~iP(J`~$w5%qO|89im<;^-_yDpcAwl(OQlXX-RiMDO>DKTWR6s6=a>NKH43?f#mzQ5#sZaU5Iu1EZ zoVH#VCaxne5liTUju+$l>}!{;UqlsrhkurP?VkGQzHrT<+>jJsY1^O$9}A4L>Y)4a zy$Q|k>M=Ek7vCCz84>_e(o^doBe)G3&L4}zc&`oH^t-IxahR;Wn3O2)v-iess+I;7 z#f$>=fUs$V@83=iR+xA5aJu9%@WVDOt}?y{cI~ZZDhaxs6_y?MLZs!jv~C7dFmH4o zZ=;xvQ7%6WV5NV_O850AHQd(6X@vBT0Kr~A)w^>*bq;9KxUj+>l%3~WuRYkHv3&kR zo&2jbuv-*6_`Gby$xhd}9%r4eUU@GbbRT3n7K?TaTi!1#tiW*SMF*VVZE&rjb;5IoXWgTHnbYU5&SqOE%7FH_squaiAlwxD zY4g@UYr^DJdtc_8i47~iv$lknRsK@a_&wqJ!Aizy9~`f*AdIJI=5=q13Uk+M0D*|^ zXmGJ3P8wv0&x|YBuyx-|w~!%!D=&AzAZEFI8x%4raL*X4J}ZQ|y_uP|ZLWWKdXVke zpW72Y?gYpb$A5T-e@&Fc+je-|py7^#I{uVg_LGS-=A`@Emm zcPEo@TU&V)104royNtE1GY}f+t#kDq?)%d{d?WA|ZU8FNBi?DrC??--;If#g=`JK; z_^5hFNEto{N8HVFoEZ^(H7hH5=x6)Wr}R;8+P+B*&@iycG;a%;9FGmnbjJ-jtJN_w z1#U?B6pEm0-%99D1uS(l_Z2}M_m~A5ONte+BLM@Cn)ZfECg=oRvLWrNgB--N*ZzQPyep1x(88&iL{}(;IIF^QAWsRqFM< z$$}P2?X(vqA?PFtif74>Q40Ij#ucx5b2ZPIqqW`qri#$ zEcfw-ck0pyAK_7uVm29g6N)-s^nF)^NE-aQ`>hBy8msxZF`8B0eHFyLW?Qp?gi&Nn zJY8Dx%!RDMWVG<>?!m`^aerh)4M}Il4~b1vE)-b`djH<2BmA~E-12#a5*ZY^95`6= zJg3~STvGb6!zAYG?c}E&w>Y-lV)GDTfH2xv)8AqG2t{xOU zaJpz{^K8?5*26L>P0l|e{)GiQ4A;FaoaUMp2{qXTKJw^YF;l(!t8b2P1tS>I7OM%_ zik^(jr7tPPTwf=cm$I1Vd)L57KFt9j*bvE8E&< zZzJ{pHh(S#Pzy+Mnoj0;O%u?WlfJv!8>il74?)d3xu2Drfo^4OBUzLY|ehu)J8Hs z7l=)<;eSioGxk~75DX;fQi;7g6y0)$wsSZA{Jr#HHnyvm#;>*FD?IF7#w*c#_nge? z@W_)k-UckU5T&F*YKdvuzWaj=r@XW3+CxW%vn6|mZ$cLn&d-PnpQI+kRSfBx-tKJ= zol2B#W;KcK?~*bm^pw@ax{o6@LoP~>CtMpA!~SgS$Pq5vT*wqHbGqBC!T9my12qqM zQac1C?lnj|l5DLxzZWJZda_<8TIXNJ$C+FoVe(G>Abvq@!oMXG&Skz?ce>||xl3%- zk;_#^VnrH%@AZ#g={YA^(H*0-mBlTY1+h+E;}X@?RtP>W_wb*aBqJaS)U_w2S!?J$ z7bf?4J7(V@22-*7;b3ET&DE1|16ICB!8Uzh6JEOKa=X5Yd ze14(!Iv>@1b?A(AQrw!4FQ({hxBYqL7yUjlX>ZcS=V)z#OHTNi9?_%4muq*=??(0z z7|giHTdtC}N}&(67TSw(Vh+KpzRx>XFaN6f;T*3K>u(~n@zA{zUfyGhu1*RILhoxG z%CTs`Q%VRDx43Sr4=u;rCA~{4QeqQR&{_DnpEZttIe!u3STg?NZNm9f*!x(N*+?~X z|7A1WWWcog{_tCt&lwN5Y&3^LPPxh!4k}-)l$p^9d>$o1o847f!`%&@(?5-D3m~j= zwO?M#$Y9yW%e{b^*nZyvolzDDBTgaeS)NAf7C`OE`7^yp7laX3^Ad}s>2aVoXxUs+ z+{ojNl#{~}Y%~WfgG$yo+O0FoqxeRG~SN z+G4JPvDrR$$fvxFeXs~hAtY$PNzr99CpKvPP3X=c$W;fHp8pnB2L(8Qux$pQv@(}P zRnof;ukM`H#l>E001%Qg1|MSlPVkob#%dnhf2oEkvQoyS1e75m-(iZ5Ef+P+cq9u!|Txj5529}o#n+(B^ih24o2yQM&2Mw9sl2Ry zQ)Xy%?~#p8Y${r-BDZEILP|JShRmAZmT|c~W=h;`9c@}YE3UCd)FROLGYKD@fUw7- zHvZzkG+h`Q&YME83(XAw!38{n^Ojb-_tonQ;{?VLep&UtQB2YNGNU)nHUk38=M5bv zVvSJcLHo3(e%HL;qvG?)EnP4G5jGfe3@DPlr>MS%b|jGA=6Sg?bO1uJ_egldhU?-s z7fxz*_a8R&pgi$M*_~*J$`qmN-_aZhPBd{CXeP1p)Uc$ zG*t7k)fX<~+A7?|}`J>A)cZP^xUoksfLl_jYnV2fhz}sXc-W z^?A`xQzK78M6&nZ&%4pTmR_X!hZXLz?-#U1NK0RlD_~hYK5`rhz?$6fjE@!RXWwaE zi1IykzmoL%oIrod68juMM3TvPZJ z=GGQQ;rlGZq}Hy$Fn#K7IOp>!6Gr&5{R2KnCNSg`Xf&+_e0(u=sBU{6)448l$-Lgd z-fD$cj;|(snel-eaG3EUjA^EpZzii_uz80tKKC`&$0KF0GJ_7d2_WRwQ^s3?8b)xT z$Q|ptkKwfZt3Ll8t&p|5{4)4|Hr&Mk%IL!&%#1O)!b$*cxo5zOf%Y8pR-Aq899c>t2Q3V$sRN@p%*O$^XMprp)1T@U9F&C8ubb6&2 z9#(V`%Z0@$RfgD9|7KhM^&6u_a;u67?mhVEHkY!O=t00Ea#TWZYdq2UT(_gzkHdw` zXy>O{V@w4L!)dxRbC3Or25w_elz}*|$oz_$nW(fySlgeaYSh#UY_fB?Eq$E@EQ#q`G{n2>W^@T5d zR3jF``g)w)wA_|_8m{-k;%h+#HHYf~$jA=8&hX2u5Ewd9kO*GC6P9va=$anq8{k-W z0l_?0Wp=1gw*|0>_x%LD?M%^{^xk~^P}dIP1F8s8pX zE5BF6ApC#bR^JAXs}*lzZ=X7N*ibJ(6E*{ntK z+B-s#+V)X11q+~~9nsgvBdsaou=cXO>K*L05Bn7olDTaZlc!odjk(O(5mnVgbi1-N zlK0H=)W@OiHm?EZcETsP%G4L8TepH#DWGxk(9vJMQG}2=6R2b*$#Amf!47S2dX+NO zezjkXOM5a`m0>b1zwz&kCi$s>wHT-U-zW5rg%pMkQmMuarfs6I3u|NLt1$IspkQaQgL$BRJ62_7XWbip>5=WQlbX2G z>^q;VS+c5|LkZ-?VF&T&B|nX7CgC6B{qqjX3EKcEktJE8-kAD$-4O0~OfP1V)X#qO z?fzMB-KL!0)lY@r_MB&sL=K=@I}%hsw)izsfl}YwxAC2Sw8%F}O_1*k86o|~gvTJr z*FF57diA*Zy;( zxW41VZv&8B<9yo^$ydGPoyj+*G;OMflc*)}G%45Nio2Z&kQ*&qQkf@U9LoW6)WvLIoOfHai0_J{T%+IcR( z*2(?6q4qpy*sQjRlP-rh7L1d|yyisLwjVI#@&v`7Y<6vpc`xX)7HYW0<9NM{u^Y z!_VT$t$i;Nq`&yfoqoti6^vu0<8>5*0puVLj=K}Jx*5pKum zGCDh0a#$q&#C@(^2j$Qb)~NQe3apq$PKV7X;8}d3EO`F)zM1rlfxDD#yLGhClTl$~ z&bm%(rZ0TqXYD4tK{urjuV4tX)PXYUE@pEEp1ycFDZhej^kUAqEi ztfWa>oNT{qXDR)VZUB1k?dMTHXusG_73xBKZ&?PF$Fs!#0$zb80paf0`C$uK+^1il zbdp{IVbl-izw%kchaP?L+M0a=fMy!x?$Ot#cN9ZHskr2%Nk&3@BZ{^7PUG@V&l0@M ziEFsz<>jZo#X491O@{2JYIQd)#$Vp(xf6U*A2wA{U!2QlS{UtiydNtnzjOQQ)9ERT z&HuvkJP&$zB47O##oo8Tr6H$x?O^TvZ!>QBeDa(X`rS(~jz@c-0x&LuKJ61dy~+^a zvA#Q|OZ$93TpN?|J{5cL7K{p>9^sccToQ}r0x#hOof_Z0+%K>jBdOQZNpMtD&KC*I zvXwn+@>x>H$Qa}ltNVRL&|sJ=B|J_n6!(#qq4Vtvf?@_jn20M$etamstrXEWIjElv zFvw)lQ`uJor?HDM%J*j2%QWg;muIv!+ABNTxi1_aZdQCRg~fBn8>6%t?Pe-@3wb`( z6`KG^^)_QbGIQhTpOOVB-@}(7r7&69wQhft^2s>Z8%5v^YX=T>oUcpLfS8zhqRoM zp$s0uG>=MG1u0Lq=CVeSr~FXEGO1{hD~nyMX^ROw`b$X|8q@kWWzcW%4~4xVVe8%! zp0zWO14-OVFgzYv@>iLJ@+w%63vkAKHIWtZs1=`gNocHF1?xZsoo1{!@NCV~P-;s3B}i4no4|_&eU;W?1!+ zSx%R5Oo7ZlfG;1;_3k_^a*X#BW75gcgJ4zEv0Wi9ro>YGld4> zEs%WDf-rhza-YQxyrZcQ?Zs|jz{UN80Q zL$uTBpmqv=fwrA{p0WyoUe%XAsTB(qzpwUK7D2I=#GLH)$@Nz4TeoHyg9gghL23B< zjCpa$d!TbExwd?R0`&0?mp%%ctOuJmnCpEl=~4N`{XpDEqI#kzEoA{a*G~LeZsWmP z#pmLK)cq!GyFP+)XVCXH{#*SAP?4PC`z#9=e;w>Sw8&u6#GSDrftG~eu$c&xbya

      GA}SEef#`hrio>J^l|aU~K$_ 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%0DjvJzF4`n~JBzxMr~x5W#F z7%UYD3%`c5C4vFy=SkU^Oqz5qk2GGRoGYBVgnzxVSkHHnyc^Y7y~Gml!=%FDHOLTh zshp(|o{HA|Rp03q(UIlmyp0q-7A5|-Q-i-ToQI_HLY>!0F?NMLvwGuGa0YE`UvQr@ zHF!H-WPISpU2e!-p?AdQO#mlRBWQybi-s<0Y+Q6kQK~LkIXN7B^6w*o9JxX$2%{+P zCG`kZ@$^j6>SZr?1f|+N$u&0q?r?W&>y~qfQo{y18kz_&sz}Jluq#nP*9ga%R$#s<>L7LDQ9%an1F0Y)hb~lC72F$3Bbh&iilwLCfE4X z2yBT_*2VqH5i>r$_S82RQbW?Jsj3>^wTss`*mH?;9+Uv;gI1M4oCR}v1`r{12f_5b z(b36KTXIP*s&vat#XKi&ABFK%OnQuX;3Y;@F}mhDhY#a6%$lGgiI`EV;EG{Yw#_oZp53*5|K;KW~!XLKogdcYH`k0{Kg>u^x}|KS_cI2Zo7%& zuJIh^66Fp`bkNS_+-B?bF4;MJY~sQ7=1xEHsMIFL`;Rk6eIs!~8RrVHQ$JHo&j^M!q#eN{aNb2}8bb0?4m}CEXTF9hWdPyd`3Vx#j30VzVqkfV zidH}W%L^o0pZ)A@%W{*e!guG#!MMIbHn{Ow3}5>Rrab&_dg5%(l2q{pE7*9i>% zCh!e#s_aevix2-g9e!@SNR!xYcjf+RTK~hw$?$p-8O5d;;*tJ)n?30P<3Fs{5c@A9 z8nDa+qA=1VVbLf<-6a3sKbEB2QIlWc6QY0f_kZb@KmNiG3!F;EI?E~XzqEN6@K>xh zYqI}p8wtGL6LLo}h)Oab#r%7lJHCPm$Qsb7{TJ(x{0=ykU|-O-)_-X;%TKpA=qL7H xZbX(Zn85h^Ph;%j|K8^RH+cU4HF!FnU+&aHgP+>c=Yj!WA_9{9WxQX!{|EdczQX_j diff --git a/images/proxy-fitnes.png b/images/proxy-fitnes.png new file mode 100644 index 0000000000000000000000000000000000000000..c448727157fd4dcca1333d92d5dbecf45d4d8aa5 GIT binary patch literal 313675 zcmeFZ1yo$kwl0b`E+GWh03o=$1qiMIg1ZI?-nc^&f;$9vcXtcHLlfNH-D#v7ZfEcR z?6dcN|2^;BbMJWLjW_-t-K=8Os#>e6X3aUjZ_e&eRb?40bP{wpI5;dh*|%zNaHvFZ za7Zht0N5F8d1MqgI7}sLNl8^XNl7YIX9r8`j}~xnvZ0AuDB9{n1etnj)JUjr-^lMN z;l|>L~*EgNos_$m{f($&L zBka{y`8aesoIt=?Tu1ruZ%&ja-3GMQh^W${omq)2%IWCP#_yPwaU zBRezDGcuBObIv_>w08h-ExhN&ORmQrpLFX#y=;Mlqeb7~&e4y-IA?=f8$~E##(~Sl zzu1|)%$IKmn359%aW`z}K&tDObjs@M;ZR;D4*jo`@NYDCFD;1SK3u)YOk^7j5Cjsj zIL4v&;eCZt-3*OpFn;n7{lWVS0Fu)>sGIDZ9J)=jT!?vWSzR5krX!sGdf@-we85HH{+nCjSHA3M0Rr=WItj(k{8UEixbQWA zAI~n1=BnY-5`q-%e`H50KFf>fLoiK|#XG8+7#N;BVt}z?n>}&rD@58{x z#rigp=_oc}^;9eZ`S6(>|9PTQ297&9K3Ft!LLv2&nPwFBdAd{EuOk|QRW>mQ8?ET zBTOBo34DLW5y@gweZdX>+Sm+#670Rces+LT#s%sZ0c_q{s(2`Vpckgnrvu{JD?cL~ z{^BV>0el0^4us_UW>GGo+q7;xHuGtO4D&zdgTrpdNDm2q_?}`wJwkq_m-1qU{kTi& zZ237!bsqma)nU{y%0A0mSu7!}S?U)Sm0e@e!?X1{J}x0%U&h9utPc`%U$B~f5SXD< zPtG|VG0#Nsz!A9N+y2n4>6I6*-=MgzYVMggy@w8c5$v7)*+gIVGk>XMretKlu9QuM zn?~i1)453AYWN3niYGHR#O$lKaA>y^{>c2$JQm#clgzcJH~I3Dk@&ZY)#lIsaBIHx zRaK|64*GlV;QZV|vOY`1H8Nae!->oIGvI5D5oudJvlAenr#5&Rf9Eqv7v|6wnO>}oe z8)YWaw>y*{(P|yr5jkY-ycsU*%UECX#tRP~!|1FZY@6V73J6o6G&}9wb73^$??@5= z6TzHss?u}f{IdMWs|Cv6^?Z$w8=)ZnBD7Shq0mcxvsh;edCJ*_{2Kon`??`DH8mwQM7KUw+pbf$ zWkIxo%LY6xT5MakSmH9RKK0^YWXipiQoXC>F;zNGXB_fjs9t!1Qy1$P>6qfU10dP^ zF1Uz#>RZvfl6O^3a+}B*5>5Fod-40oSDg3o_sCvNucRjBnrLJ8$K^cEiBfnd=N7?#&iKBQyVjzf3!+B1s>qKmb-cg z>IfDHdIJ}LUcd%d1K@L@)t=@7#mup>sUp*>=#*Z4(9&3YKZO7L2PCUcAAZC=bERR8 z^eEy}8&grq*UD|uIxSt1@lEo}_G^5UhXSB&fabsq@%kQMuo9pMvsLCG;);ZUNQcw; zX;AM=aZZLw#5!}Y-It0l9n$^MJ<@7<*V6P6t&u7He*HTAwh_@p?kVhwK8inH*(ye* z3Y+cM@|Tlo3LMgw4NU#w{-I&gI$b|{6`#_e)2@>5^c|Iv6>5y4Pud}YUQNCW+eA@VWN_Q;P%D~vb)_35G<)$syXyNcq7|VE) zU7B6n_)RXk&8|(dwU)Je4@HA}9pR!wy#u8b(Kd%XXQ|DUD~c;hlw_x5MX#?+p;@z8 zj#=<#_&7mcyi66Duh*3py;c!f(Xn#Vz=vowa&`Vf>z_|&JxVB*`L^RHVHPdx?_Mfz*r}<^MXgOZ`5vxae_j+285$6 zqj56rGd(jOM4m33&xUUnwy%Nd*Zkwn$D0&hX`YuIOn;DK&TE_3y2G7d~@7=+a1>JEp91JEZ!h4 z(o@+}7Zm*&SK_;b<`?~4;&Y^S5<`_@@4fV2@g@f*H6|}iaK0aZw^&!&96!(5)QawU zZbD2Q`r#{5Z2RDJtb1O0UZE6}L@6RFtTMunjO&%9+s}P%>7#@>gBpiT$Y#>Oa#T~O z){iFIU(eO>Z17g-0JN3zN8i}JzNe$@#$(3)kc%A3-}(%qhXKtbG zQe|&dCORgy3dBawK-wAOiTi0fN%Jf_VN5^R>LhA;tvW`cey*e}C&z!Q<4aCYOZAq` zWf@9JPqz_v?VoZh>8RIU;23pTSg;nUWuM0uc$r1(@N+Vd6sq|-as#Cg>XQW-hJYuZ z7gB!9;gRIbb1hu{Nyn9ikMshi&&h_D?(5eW5d$bxC4sm}Selwmk8TR&kqVG|2+n>jSD zitc-yOM!BMML||FdQ#?t)6eK_u^SczqnXAfySu^{KVHPWnANWFixp`D=O{gm6W^1QE;N_S?zU`T6)cZ#>k7WKl9yLh*NnxLVa&yKI{*_l`uXM&pz33+X!6 zgTGyAgU=&2ar6r7mqa<%e0IACiw`p~}TR8!)s{}8LtnH*(=-3(cLv66VHMN`>m6yD{w={0;E zMf#mo#bIa3$CK%4rfBi<6!#=yX}Vp{ZS2f&nzGUV=-Ba)-$!iC?=W}{rHK-qLe!tu z|Ei^KkK@>B{&_q-k4i=suRF47|LkxQ5k&AJXG<%?#=XjHQ;T9uZ$4 z-_o)^it(x&TzR&r2y(z{5;!LcIC3GkV(iTA`>~8+iBDF+EYwC5&Xe6;45eKA?tVB9 zfojvpm<~_KaDu_y^FZxz7`{L+TpKwFWQ+DfWak`B%mRJ^S0tn4pE(W$7Ygq_VT1=Ze4|Ir-wpUBG(K%k=_ z8=JekJF7bvtAn!@8;5{^02@0e8z(0V>)4CX;E}xwtuXeDEdW2MF(sl$*kY1Xuysz zG5h^OaDe@J{r4lRjG&l3S%6Cp2loa}?yb0n2mDb6O8S%rVINzEdwvOOG1Xi*>&utL zuX%s0kTP}z%gQ`^ksq3k`ZXvhsKXff8GNFtxRiM7)r$As$*8?${QP{%ynvo1SSXrO z$a6?2Wh*P*`n2=GIibpN!|6OhSOAYP#Mf2?tC=VX?(TEnb0?ZRskiuz@c*AE-<@w6 z2Lw{0>gM&Z2W`pt5y2}eJ;hQ=!>LdDZ-qSTp1PvEGeKhKf&MqDAT|J^ThDHum24u3 z3mUNqxWdAxK^&TZl6|p@UQ}b7`)CL|!nf4N|3;M`4;V;R-Oa;aO3{_!tgJT`-gO$l@S}S?ZVG`1e>A`{r838Umo`l>AIc9 zWIwwMux%IT`1F@p!?yKbV*RhG<}b1SHy!_%w*FU>^q02&H(%f{ZT)Yq%U@2&zdDA0 zIU)b%;{N4?{2PGy%L)0*3HdM4$vXVyg#5qggb2#?Jy#JvG3p~hi-G%J zc;BM2!zhDb9y}`e|Htn@TqJ%e3DnnvjDWbCxq;4G>|Orp47lx;Y&GDCDL;Lr$pUchwB37(oFFtSE4U z9on-bEh%71^y|KSSzu9nDxZS@i%UG-1tu!{sYHHrlLTkyC~4IInaaTXyRGNj=`Lfj&xaEdH~PYdTCYjBx~89o z;tCWjHv5&%fyGXq%=_zIWmTnY0xmm15ctrcaOiyV-1{kqkWS<_XCNW*YAeKmB39umE-7ptbDVOM$>(1nncME zY`Imxv7vNI|FEg6CueW3+h};eQ?h2*e*R>yKL@!i!HZZ*xAlJ;*F>}t+OcB?Bu-bY z)SP2iPP5#QO+l+NS;X5;LJTH`nMmk_j8sMM8QBt6aWv`IdWtHWc#NAqHLItkwm}C^ zPKbw^AM!+G{Kj2Mfl35Ico;s%pMsehHkuB¥@@4h(=Q0+R@yzyA3!3tj^obs zX7D#3Ve&XbZA^>>DtRX*kIz)DBZxiHv^qBZlYDXG0O|IAw~OrW(F|^)KaEK(TpN{; z32dPO2#wiGKsQLtgT@H};*VeBsSv@B(_84w&rlN>-^=$$dP;@ivu@Nwyw6Sdm+PXB z=4vE^?h=`_Gyzy1%8Uu_GVeadx1D;w)+;)U4q)5bxjLgn#FWV08OBAL==G=0e6?8l zQtW8r-@-rzB4Q)@zxGN;($|7`4x0wsR|(8iBzVxwO%MoY%3skZvK=E4D?;7e^es5o z4zpIZ|L+D<*DfHyg778o;ORL6ufcamEY7bX8!KHsHEZZ6;Zh`LN?aLM*H~0GOdwXixJ7jNK1>mi|zc}ld<80 zY1v@z>9$E54zwbt1!HXdJ`PFR4P zk(UPw2o0%VeZ+^xuVR!$Zu>|e6X8z@2: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

      i99^iONAmEkIluQ=-P0fXs3mA5?;rnNy9|YP+ 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

      JXaBk6x}oNpi9g>yJhGH6H?No+1+ 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 XGKZnISpP?S;P1HE$s_ruh=~6ItVBRf literal 0 HcmV?d00001 diff --git a/images/smart-rotation.png b/images/smart-rotation.png new file mode 100644 index 0000000000000000000000000000000000000000..cbf8de0ffd3a214102e59a58aaacaa6ee4fb0afb GIT binary patch literal 161518 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

      K3iq>HZ*OgeVgR}pD)vw2%tfOt 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

      );6kT>A3o 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

    1. sL&kH$9?*d;{SR1hpaxLo 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

      {APP_CONFIG.name} v{APP_CONFIG.version}

      Local Mode - All data stored on your machine

      +
      + MIBP Edition + diff --git a/src/shared/components/Header.js b/src/shared/components/Header.js index c3bbe606..dd000468 100644 --- a/src/shared/components/Header.js +++ b/src/shared/components/Header.js @@ -8,7 +8,6 @@ import ProviderIcon from "@/shared/components/ProviderIcon"; import HeaderMenu from "@/shared/components/HeaderMenu"; import HeaderLanguage from "@/shared/components/HeaderLanguage"; import ThemeToggle from "@/shared/components/ThemeToggle"; -import DonateModal from "@/shared/components/DonateModal"; import { useHeaderSearchStore } from "@/store/headerSearchStore"; import { OAUTH_PROVIDERS, APIKEY_PROVIDERS } from "@/shared/constants/config"; import { MEDIA_PROVIDER_KINDS, AI_PROVIDERS } from "@/shared/constants/providers"; @@ -183,7 +182,6 @@ export default function Header({ onMenuClick, showMenuButton = true }) { const pathname = usePathname(); const [displayName, setDisplayName] = useState(""); const [loginMethod, setLoginMethod] = useState(""); - const [donateOpen, setDonateOpen] = useState(false); // Memoize page info to prevent unnecessary recalculations const pageInfo = useMemo(() => getPageInfo(pathname), [pathname]); @@ -313,19 +311,20 @@ export default function Header({ onMenuClick, showMenuButton = true }) { )} - + code + MIBP Edition + - setDonateOpen(false)} /> ); } diff --git a/src/shared/components/Sidebar.js b/src/shared/components/Sidebar.js index 2f329da2..fa52dc2c 100644 --- a/src/shared/components/Sidebar.js +++ b/src/shared/components/Sidebar.js @@ -347,6 +347,17 @@ export default function Sidebar({ onClose }) { + + {/* Remote Promo Modal */} From df8c4ccb8155dd82ef48f30172bcc2a0a777b364 Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Sat, 15 Aug 2026 03:47:18 +0800 Subject: [PATCH 23/42] fix: improve provider routing and assignments --- .gitignore | 3 +- open-sse/executors/freebuff.js | 63 +++++++++++-- open-sse/handlers/chatCore.js | 22 ++++- open-sse/services/proxyPoolFitness.js | 41 +++++++++ .../dashboard/providers/[id]/ConnectionRow.js | 36 ++++++-- .../dashboard/providers/[id]/page.js | 91 +++++++++++++++++-- .../usage/components/ProviderLimits/utils.js | 17 ++++ src/app/api/providers/[id]/test/testUtils.js | 19 +++- .../proxy-pools/[id]/fitness/clear/route.js | 5 +- .../proxy-pools/fitness/clear-all/route.js | 5 +- src/app/api/proxy-pools/fitness/route.js | 5 +- src/lib/network/connectionProxy.js | 32 +++++-- src/sse/services/auth.js | 20 +++- tests/unit/freebuff-model-assignment.test.js | 36 ++++++++ tests/unit/freebuff-provider.test.js | 74 +++++++++++++-- tests/unit/grok-cli-oauth-probe.test.js | 28 ++++++ tests/unit/proxy-pool-fitness.test.js | 25 +++++ 17 files changed, 471 insertions(+), 51 deletions(-) create mode 100644 tests/unit/freebuff-model-assignment.test.js diff --git a/.gitignore b/.gitignore index c05d02cf..fe81d4fe 100644 --- a/.gitignore +++ b/.gitignore @@ -26,6 +26,7 @@ product # misc .DS_Store *.pem +.vscode # debug npm-debug.log* @@ -84,4 +85,4 @@ graphify-out/* .script/ .codegraph/ .PR/ -.next-analyze/* +.next-analyze/* \ No newline at end of file diff --git a/open-sse/executors/freebuff.js b/open-sse/executors/freebuff.js index 8bbf8d7b..8efe719f 100644 --- a/open-sse/executors/freebuff.js +++ b/open-sse/executors/freebuff.js @@ -75,13 +75,40 @@ function injectFreebuffMarker(body) { return { ...body, messages: [{ role: "system", content: FREEBUFF_SYSTEM_MARKER }, ...messages] }; } -// Freebuff root agent id per model (mirrors the CLI's FREEBUFF_ROOT_AGENT_ID_BY_MODEL). +// The backend's foreign_toolset gate rejects any tool-calling request whose +// toolset lacks the CLI's `end_turn` tool with a misleading 404 "No endpoints +// found for {model}" (verified live 2026-08-14; the freebuff-proxy bridge +// works around the same gate by injecting this definition). Every request that +// declares tools must carry it or the router finds no serving endpoint. +const END_TURN_TOOL = { + type: "function", + function: { + name: "end_turn", + description: "Signal the end of the current task.", + parameters: { type: "object", properties: {} }, + }, +}; + +function injectEndTurnTool(body) { + const tools = body?.tools; + if (!Array.isArray(tools) || tools.length === 0) return body; + const hasEndTurn = tools.some( + (t) => t?.function?.name === "end_turn", + ); + if (hasEndTurn) return body; + return { ...body, tools: [...tools, END_TURN_TOOL] }; +} + +// Freebuff root agent id per model (mirrors the CLI's +// FREEBUFF_CLI_BASE3_AGENT_ID_BY_MODEL — the CLI harness moved from base2 to +// base3, and the backend can return 404 "No endpoints found" for the old +// base2 roots during the transition). const FREE_ROOT_AGENT_BY_MODEL = { - "deepseek/deepseek-v4-flash": "base2-free-deepseek-flash", - "deepseek/deepseek-v4-pro": "base2-free-deepseek", - "mimo/mimo-v2.5": "base2-free-mimo", - "minimax/minimax-m3": "base2-free-minimax-m3", - "openai/gpt-5.6-luna": "base2-free-luna", + "deepseek/deepseek-v4-flash": "base3-free-deepseek-flash", + "deepseek/deepseek-v4-pro": "base3-free-deepseek", + "mimo/mimo-v2.5": "base3-free-mimo", + "minimax/minimax-m3": "base3-free-minimax-m3", + "openai/gpt-5.6-luna": "base3-free-luna", }; // Per-token+model session cache (in-memory; keyed so multi-account setups @@ -414,6 +441,23 @@ export class FreebuffExecutor extends BaseExecutor { return this.config.baseUrl; } + // The backend's model router answers 404 "No endpoints found for {model}" + // when a tool-calling request's toolset fails its foreign_toolset gate — + // normally prevented by injecting the CLI's `end_turn` tool (see + // injectEndTurnTool). If one still slips through, surface a helpful message + // instead of a bare 404, and let the standard cooldown pace retries. + async parseError(response, bodyText) { + const text = String(bodyText || ""); + if (response?.status === 404 && /No endpoints found/i.test(text)) { + return { + status: 404, + message: `Freebuff upstream rejected the request (404: "${text.trim().slice(0, 90)}"). Tool-calling requests need the CLI's end_turn tool — retry; if it persists the Codebuff backend may be having trouble.`, + resetsAtMs: Date.now() + 120_000, + }; + } + return super.parseError(response, bodyText); + } + transformRequest(model, body, stream, credentials) { // Top-level wire shape — see header comment. `run_id` and // `freebuff_instance_id` are attached by execute() (they need the async @@ -425,14 +469,16 @@ export class FreebuffExecutor extends BaseExecutor { cost_mode: "free", }; body.provider = { allow_fallbacks: false }; - // Freebuff agents (base2-free-*) own reasoning: the backend applies the + // Freebuff agents (base3-free-*) own reasoning: the backend applies the // agent's reasoningOptions.effort server-side, so a client-sent // reasoning_effort / reasoning.effort collides with that default → // 400 "both provided with conflicting values". Mirror the CLI: send none. delete body.reasoning_effort; delete body.reasoning; // Free-tier gate: first system message must open with the CLI marker. - return injectFreebuffMarker(body); + body = injectFreebuffMarker(body); + // Foreign-toolset gate: tool-calling requests must declare `end_turn`. + return injectEndTurnTool(body); } async execute({ model, body, stream, credentials, signal, log, proxyOptions = null }) { @@ -638,6 +684,7 @@ export const __test__ = { resetSessionCache, rootAgentIdForModel, injectFreebuffMarker, + injectEndTurnTool, fetchWithNetworkRetry, FREEBUFF_SYSTEM_MARKER, SESSION_STALE_CODES, diff --git a/open-sse/handlers/chatCore.js b/open-sse/handlers/chatCore.js index bca3b7c5..8a097a1f 100644 --- a/open-sse/handlers/chatCore.js +++ b/open-sse/handlers/chatCore.js @@ -309,8 +309,29 @@ export async function handleChatCore({ body, modelInfo, credentials, log, onCred proxyPoolId: psd?.proxyPoolId || psd?.connectionProxyPoolId || null, }); + const proxyScope = `${provider}::${model}`; let proxyOptions = buildProxyOptions(credentials?.providerSpecificData || {}); + if (provider === "freebuff" && credentials?.providerSpecificData?.noFitPool === true) { + const error = new Error(`Freebuff has no healthy proxy pool for ${model}; all assigned pools are cooling down after limited-IP errors.`); + error.status = 503; + error.poolScoped = { poolId: null, scope: proxyScope, reason: "no_fit_pool" }; + trackPendingRequest(model, provider, connectionId, false, true); + return createErrorResult(503, error.message); + } + + if ( + provider === "freebuff" && + !proxyOptions.proxyPoolId && + !proxyOptions.vercelRelayUrl && + !(proxyOptions.connectionProxyEnabled && proxyOptions.connectionProxyUrl) + ) { + const error = new Error(`Freebuff requires a configured proxy pool for ${model}; direct egress is disabled to prevent limited-IP rate limits.`); + error.status = 503; + trackPendingRequest(model, provider, connectionId, false, true); + return createErrorResult(503, error.message); + } + if (proxyOptions.vercelRelayUrl) { const connectionName = credentials?.connectionName || credentials?.connectionId || "unknown"; const poolId = proxyOptions.proxyPoolId || "none"; @@ -342,7 +363,6 @@ export async function handleChatCore({ body, modelInfo, credentials, log, onCred // another pool instead of failing the account. Covers both thrown errors // (executor.execute) and non-ok responses declared poolScoped via // parseError — poolId/scope are completed here from proxyOptions. - const proxyScope = `${provider}::${model}`; let parsedNonOk = null; const tryNextPool = async (poolScoped, reasonMsg) => { diff --git a/open-sse/services/proxyPoolFitness.js b/open-sse/services/proxyPoolFitness.js index 72fc4644..cd43165e 100644 --- a/open-sse/services/proxyPoolFitness.js +++ b/open-sse/services/proxyPoolFitness.js @@ -17,14 +17,49 @@ const FITNESS_STATE_KEY = "__9routerPoolFitness__"; const fitness = (globalThis[FITNESS_STATE_KEY] ??= new Map()); // poolId -> Map +let persistTimer = null; +let hydratePromise = null; export const POOL_UNFIT_MS = 5 * 60 * 1000; +function schedulePersist() { + if (persistTimer) return; + persistTimer = setTimeout(async () => { + persistTimer = null; + try { + const { updateSettings } = await import("@/lib/db/repos/settingsRepo.js"); + await updateSettings({ proxyPoolFitness: poolFitnessSnapshot() }); + } catch { + // Fitness is advisory; persistence failures must not block requests. + } + }, 25); + if (persistTimer.unref) persistTimer.unref(); +} + +export function hydratePoolFitness(snapshot = {}) { + for (const [poolId, byScope] of Object.entries(snapshot || {})) { + const entries = Object.entries(byScope || {}).filter(([, entry]) => Number(entry?.until) > Date.now()); + if (entries.length) fitness.set(poolId, new Map(entries)); + } +} + +export async function ensurePoolFitnessHydrated() { + if (!hydratePromise) { + hydratePromise = import("@/lib/db/repos/settingsRepo.js") + .then(({ getSettings }) => getSettings()) + .then((settings) => hydratePoolFitness(settings.proxyPoolFitness || {})) + .catch(() => {}) + .then(() => undefined); + } + return hydratePromise; +} + export function markPoolUnfit(poolId, scope, until = Date.now() + POOL_UNFIT_MS, reason = "") { if (!poolId || !scope) return; const byScope = fitness.get(poolId) || new Map(); byScope.set(scope, { until, reason }); fitness.set(poolId, byScope); + schedulePersist(); } export function clearPoolUnfit(poolId, scope) { @@ -32,6 +67,7 @@ export function clearPoolUnfit(poolId, scope) { if (!byScope) return; byScope.delete(scope); if (byScope.size === 0) fitness.delete(poolId); + schedulePersist(); } // "provider::model" -> "provider::*" (null when the scope has no provider part) @@ -77,9 +113,11 @@ export function clearAllPoolUnfit(provider = null) { } if (byScope.size === 0) fitness.delete(poolId); } + schedulePersist(); return; } fitness.clear(); + schedulePersist(); } // Snapshot of live (non-expired) marks — expired entries are pruned here so @@ -87,6 +125,8 @@ export function clearAllPoolUnfit(provider = null) { // Test helper: drop all marks (module state is globalThis-backed). export function resetPoolFitness() { fitness.clear(); + hydratePromise = Promise.resolve(); + schedulePersist(); } // Sweep all expired marks. Returns how many scope entries were removed. @@ -101,6 +141,7 @@ export function pruneExpired(now = Date.now()) { } if (byScope.size === 0) fitness.delete(poolId); } + if (removed) schedulePersist(); return removed; } diff --git a/src/app/(dashboard)/dashboard/providers/[id]/ConnectionRow.js b/src/app/(dashboard)/dashboard/providers/[id]/ConnectionRow.js index 2e4f92e4..af7f02f5 100644 --- a/src/app/(dashboard)/dashboard/providers/[id]/ConnectionRow.js +++ b/src/app/(dashboard)/dashboard/providers/[id]/ConnectionRow.js @@ -6,7 +6,7 @@ import PropTypes from "prop-types"; import { Badge, Toggle, Tooltip } from "@/shared/components"; import CooldownTimer from "./CooldownTimer"; -export default function ConnectionRow({ connection, proxyPools, isOAuth, isFirst, isLast, onMoveUp, onMoveDown, onToggleActive, onUpdateProxy, onEdit, onDelete, oneByOneStatus = null, autoPing = null }) { +export default function ConnectionRow({ connection, proxyPools, isOAuth, isFirst, isLast, onMoveUp, onMoveDown, onToggleActive, onUpdateProxy, onEdit, onDelete, oneByOneStatus = null, autoPing = null, modelAssignmentOptions = null, onModelAssignmentChange = null, strictModelAssignment = false }) { const [showProxyDropdown, setShowProxyDropdown] = useState(false); const [updatingProxy, setUpdatingProxy] = useState(false); const [selectedProxyIds, setSelectedProxyIds] = useState([]); @@ -19,13 +19,14 @@ export default function ConnectionRow({ connection, proxyPools, isOAuth, isFirst const legacyProxyPoolId = connection.providerSpecificData?.proxyPoolId; // Migrate legacy single proxy to array format - if (legacyProxyPoolId && proxyPoolIds.length === 0) { - setSelectedProxyIds([legacyProxyPoolId]); - } else { - setSelectedProxyIds(proxyPoolIds); - } - - setRotationStrategy(connection.providerSpecificData?.proxyRotationStrategy || "none"); + queueMicrotask(() => { + if (legacyProxyPoolId && proxyPoolIds.length === 0) { + setSelectedProxyIds([legacyProxyPoolId]); + } else { + setSelectedProxyIds(proxyPoolIds); + } + setRotationStrategy(connection.providerSpecificData?.proxyRotationStrategy || "none"); + }); }, [connection]); const proxyPoolMap = new Map((proxyPools || []).map((pool) => [pool.id, pool])); @@ -201,7 +202,7 @@ export default function ConnectionRow({ connection, proxyPools, isOAuth, isFirst return () => { if (interval) clearInterval(interval); }; - }, [modelLockUntil]); + }, [connection, modelLockUntil]); // Determine effective status (override unavailable if cooldown expired) const effectiveStatus = (connection.testStatus === "unavailable" && !isCooldown) @@ -283,6 +284,20 @@ export default function ConnectionRow({ connection, proxyPools, isOAuth, isFirst )} + {modelAssignmentOptions && onModelAssignmentChange && ( + + )} {hasAnyProxy && (
      @@ -495,6 +510,9 @@ ConnectionRow.propTypes = { onUpdateProxy: PropTypes.func, onEdit: PropTypes.func.isRequired, onDelete: PropTypes.func.isRequired, + modelAssignmentOptions: PropTypes.arrayOf(PropTypes.shape({ id: PropTypes.string.isRequired, name: PropTypes.string })), + onModelAssignmentChange: PropTypes.func, + strictModelAssignment: PropTypes.bool, oneByOneStatus: PropTypes.shape({ state: PropTypes.string, error: PropTypes.string, diff --git a/src/app/(dashboard)/dashboard/providers/[id]/page.js b/src/app/(dashboard)/dashboard/providers/[id]/page.js index 5eb92c34..9ee75185 100644 --- a/src/app/(dashboard)/dashboard/providers/[id]/page.js +++ b/src/app/(dashboard)/dashboard/providers/[id]/page.js @@ -64,6 +64,7 @@ export default function ProviderDetailPage() { const [bulkUpdatingProxy, setBulkUpdatingProxy] = useState(false); const [providerStrategy, setProviderStrategy] = useState(null); const [providerStickyLimit, setProviderStickyLimit] = useState(""); + const [strictModelAssignment, setStrictModelAssignment] = useState(false); const [thinkingMode, setThinkingMode] = useState("auto"); const [autoPing, setAutoPing] = useState({ enabled: false, connections: {} }); const [suggestedModels, setSuggestedModels] = useState([]); @@ -170,6 +171,21 @@ export default function ProviderDetailPage() { return levels && levels.includes(thinkingMode) ? thinkingMode : null; }; const providerStorageAlias = isCompatible ? providerId : providerAlias; + const assignmentModels = (() => { + const byId = new Map(); + const add = (model) => { + if (model?.id && !byId.has(model.id)) byId.set(model.id, model); + }; + models.forEach(add); + kiloFreeModels.forEach(add); + customModels.forEach((model) => { + if (model.providerAlias === providerStorageAlias && (model.kind || model.type || "llm") === "llm") { + add(model); + } + }); + const disabled = new Set(disabledModelIds); + return [...byId.values()].filter((model) => !disabled.has(model.id)); + })(); // Union of levels across this provider's reasoning models — drives the level picker options. // Include custom models too (e.g. manually added gpt-5.6-sol → max). const providerThinkingLevels = (() => { @@ -313,6 +329,7 @@ export default function ProviderDetailPage() { const override = (settingsData.providerStrategies || {})[providerId] || {}; setProviderStrategy(override.fallbackStrategy || null); setProviderStickyLimit(override.stickyRoundRobinLimit != null ? String(override.stickyRoundRobinLimit) : "1"); + setStrictModelAssignment(override.strictModelAssignment === true); // Load per-provider thinking config const thinkingCfg = (settingsData.providerThinking || {})[providerId] || {}; setThinkingMode(thinkingCfg.mode || "auto"); @@ -368,9 +385,13 @@ export default function ProviderDetailPage() { const settingsData = settingsRes.ok ? await settingsRes.json() : {}; const current = settingsData.providerStrategies || {}; - // Build override: null strategy means remove override, use global - const override = {}; + // Preserve Freebuff-only settings while changing the shared strategy. + const override = { ...(current[providerId] || {}) }; if (strategy) override.fallbackStrategy = strategy; + else { + delete override.fallbackStrategy; + delete override.stickyRoundRobinLimit; + } if (strategy === "round-robin" && stickyLimit !== "") { override.stickyRoundRobinLimit = Number(stickyLimit) || 3; } @@ -392,6 +413,44 @@ export default function ProviderDetailPage() { } }; + const handleStrictAssignmentToggle = async (enabled) => { + setStrictModelAssignment(enabled); + try { + const settingsRes = await fetch("/api/settings", { cache: "no-store" }); + const settingsData = settingsRes.ok ? await settingsRes.json() : {}; + const current = settingsData.providerStrategies || {}; + await fetch("/api/settings", { + method: "PATCH", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ + providerStrategies: { + ...current, + [providerId]: { ...(current[providerId] || {}), strictModelAssignment: enabled }, + }, + }), + }); + } catch (error) { + console.log("Error saving Freebuff strict assignment:", error); + } + }; + + const handleModelAssignment = async (connectionId, assignedModel) => { + try { + const res = await fetch(`/api/providers/${connectionId}`, { + method: "PUT", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ providerSpecificData: { assignedModel: assignedModel || null } }), + }); + if (res.ok) { + setConnections((prev) => prev.map((c) => c.id === connectionId + ? { ...c, providerSpecificData: { ...(c.providerSpecificData || {}), assignedModel: assignedModel || null } } + : c)); + } + } catch (error) { + console.log("Error saving Freebuff model assignment:", error); + } + }; + const handleRoundRobinToggle = (enabled) => { const strategy = enabled ? "round-robin" : null; const sticky = enabled ? (providerStickyLimit || "1") : providerStickyLimit; @@ -452,10 +511,12 @@ export default function ProviderDetailPage() { }; useEffect(() => { - fetchConnections(); - fetchAliases(); - fetchCustomModels(); - fetchDisabledModels(); + Promise.resolve().then(() => { + fetchConnections(); + fetchAliases(); + fetchCustomModels(); + fetchDisabledModels(); + }); }, [fetchConnections, fetchAliases, fetchCustomModels, fetchDisabledModels]); // Cursor's model availability is account-specific and changes frequently. @@ -463,13 +524,13 @@ export default function ProviderDetailPage() { // registry remains the fallback while the request is pending or unavailable. useEffect(() => { if (providerId !== "cursor") { - setLiveModels([]); + queueMicrotask(() => setLiveModels([])); return; } const connection = connections.find((item) => item.isActive !== false); if (!connection?.id) { - setLiveModels([]); + queueMicrotask(() => setLiveModels([])); return; } @@ -867,7 +928,9 @@ export default function ProviderDetailPage() { }; useEffect(() => { - setSelectedConnectionIds((prev) => prev.filter((id) => connections.some((conn) => conn.id === id))); + queueMicrotask(() => { + setSelectedConnectionIds((prev) => prev.filter((id) => connections.some((conn) => conn.id === id))); + }); }, [connections]); const selectedProxySummary = (() => { @@ -1014,6 +1077,9 @@ export default function ProviderDetailPage() { }} onDelete={() => handleDelete(conn.id)} oneByOneStatus={oneByOneResults[conn.id] || null} + modelAssignmentOptions={assignmentModels} + onModelAssignmentChange={(model) => handleModelAssignment(conn.id, model)} + strictModelAssignment={strictModelAssignment} />
      @@ -1511,6 +1577,13 @@ export default function ProviderDetailPage() { )} +
      +
      + Strict Model Assignment +

      Only assigned accounts can serve each model for this provider.

      +
      + +
      diff --git a/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/utils.js b/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/utils.js index 9f185b83..378a98bd 100644 --- a/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/utils.js +++ b/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/utils.js @@ -522,6 +522,23 @@ export function parseQuotaData(provider, data) { } break; + case "freebuff": + // Session quotas keyed by model id — label rows with the friendly + // displayName (from the registry) and keep modelKey for ordering. + if (data.quotas) { + Object.entries(data.quotas).forEach(([modelKey, quota]) => { + normalizedQuotas.push({ + name: quota.displayName || modelKey, + modelKey, + used: quota.used || 0, + total: quota.total || 0, + resetAt: quota.resetAt || null, + recurring: quota.recurring !== false, + }); + }); + } + break; + case "ollama": // Session (5h) / Weekly (7d) usage % from ollama.com/api/usage. // remainingPercentage only — no absolute remaining (UI treats remaining as %). diff --git a/src/app/api/providers/[id]/test/testUtils.js b/src/app/api/providers/[id]/test/testUtils.js index 96fffd2a..f45cd836 100644 --- a/src/app/api/providers/[id]/test/testUtils.js +++ b/src/app/api/providers/[id]/test/testUtils.js @@ -102,9 +102,24 @@ const OAUTH_TEST_CONFIG = { }, refreshable: false, }, + freebuff: { + // The session endpoint doubles as the auth probe: GET never claims a + // session (POST would burn 1.0 unit of the daily quota). Mirrors the usage + // handler: 401 = bad token, 403 = region/account gate (token still valid), + // 404 = no session row yet (pre-join, token valid). No refresh path — + // when the authToken dies the user re-logs in. + url: "https://www.codebuff.com/api/v1/freebuff/session", + method: "GET", + authHeader: "Authorization", + authPrefix: "Bearer ", + extraHeaders: { Accept: "application/json", "User-Agent": "codebuff-cli/0.0.138" }, + acceptStatuses: [403, 404], + softFailMessage: { + 403: "Connected, but Freebuff is gated (403) — country blocked or account banned.", + }, + }, // Grok CLI / Grok Build — probe /v1/user (no inference quota). Headers mirror official CLI. - "grok-cli": { - url: PROVIDERS["grok-cli"]?.userUrl || "https://cli-chat-proxy.grok.com/v1/user", + "grok-cli": { url: PROVIDERS["grok-cli"]?.userUrl || "https://cli-chat-proxy.grok.com/v1/user", method: "GET", authHeader: "Authorization", authPrefix: "Bearer ", diff --git a/src/app/api/proxy-pools/[id]/fitness/clear/route.js b/src/app/api/proxy-pools/[id]/fitness/clear/route.js index ce587750..947258c6 100644 --- a/src/app/api/proxy-pools/[id]/fitness/clear/route.js +++ b/src/app/api/proxy-pools/[id]/fitness/clear/route.js @@ -1,10 +1,11 @@ import { NextResponse } from "next/server"; -import { clearPoolUnfit } from "open-sse/services/proxyPoolFitness.js"; +import { clearPoolUnfit, ensurePoolFitnessHydrated } from "open-sse/services/proxyPoolFitness.js"; // POST /api/proxy-pools/[id]/fitness/clear // Body: { scope: "provider::model" } — clears the mark for this pool + scope. export async function POST(request, { params }) { try { + await ensurePoolFitnessHydrated(); const { id } = await params; let body = {}; try { @@ -22,4 +23,4 @@ export async function POST(request, { params }) { console.log("Error clearing pool fitness:", error); return NextResponse.json({ error: "Failed to clear pool fitness" }, { status: 500 }); } -} \ No newline at end of file +} diff --git a/src/app/api/proxy-pools/fitness/clear-all/route.js b/src/app/api/proxy-pools/fitness/clear-all/route.js index 26c29e3a..5d89bc9c 100644 --- a/src/app/api/proxy-pools/fitness/clear-all/route.js +++ b/src/app/api/proxy-pools/fitness/clear-all/route.js @@ -1,11 +1,12 @@ import { NextResponse } from "next/server"; -import { clearAllPoolUnfit } from "open-sse/services/proxyPoolFitness.js"; +import { clearAllPoolUnfit, ensurePoolFitnessHydrated } from "open-sse/services/proxyPoolFitness.js"; // POST /api/proxy-pools/fitness/clear-all // Body: { provider?: string } — clears every mark, or only marks scoped to the // given provider ("provider::*") when provided. export async function POST(request) { try { + await ensurePoolFitnessHydrated(); let body = {}; try { body = await request.json(); @@ -19,4 +20,4 @@ export async function POST(request) { console.log("Error clearing proxy fitness:", error); return NextResponse.json({ error: "Failed to clear proxy fitness" }, { status: 500 }); } -} \ No newline at end of file +} diff --git a/src/app/api/proxy-pools/fitness/route.js b/src/app/api/proxy-pools/fitness/route.js index 6929b8d3..4f178b1c 100644 --- a/src/app/api/proxy-pools/fitness/route.js +++ b/src/app/api/proxy-pools/fitness/route.js @@ -1,13 +1,14 @@ import { NextResponse } from "next/server"; -import { poolFitnessSnapshot } from "open-sse/services/proxyPoolFitness.js"; +import { ensurePoolFitnessHydrated, poolFitnessSnapshot } from "open-sse/services/proxyPoolFitness.js"; // GET /api/proxy-pools/fitness — in-memory snapshot of pool fitness marks. // Returns { pools: { [poolId]: { [scope]: { until, reason } } } }. export async function GET() { try { + await ensurePoolFitnessHydrated(); return NextResponse.json({ pools: poolFitnessSnapshot() }); } catch (error) { console.log("Error reading proxy fitness:", error); return NextResponse.json({ error: "Failed to read proxy fitness" }, { status: 500 }); } -} \ No newline at end of file +} diff --git a/src/lib/network/connectionProxy.js b/src/lib/network/connectionProxy.js index af819be3..393382ec 100644 --- a/src/lib/network/connectionProxy.js +++ b/src/lib/network/connectionProxy.js @@ -1,5 +1,5 @@ import { getProxyPoolById } from "@/models"; -import { fitPoolIds } from "open-sse/services/proxyPoolFitness.js"; +import { ensurePoolFitnessHydrated, fitPoolIds } from "open-sse/services/proxyPoolFitness.js"; // Safely normalize any value into a trimmed string. function normalizeString(value) { @@ -30,8 +30,10 @@ export function pickProxyPoolId(poolIds, strategy, providerId, opts = {}) { if (strategy === "smart" && scope) eligible = fitPoolIds(eligible, scope); if (eligible.length === 0) { - // Every candidate is unfit/excluded — fall back to the first non-excluded - // pool rather than deadlocking; its egress may have recovered. + // Freebuff must never reuse a limited-IP egress. Other providers retain + // the previous fail-open behavior when every smart candidate is marked + // unfit; their executors may have their own pool fallback semantics. + if (providerId === "freebuff" && strategy === "smart") return null; eligible = poolIds.filter((id) => !(excludeIds || []).includes(id)); if (eligible.length === 0) return null; } @@ -88,6 +90,7 @@ export async function resolveConnectionProxyConfig( excludePoolIds = null ) { try { + await ensurePoolFitnessHydrated(); // Handle new multi-proxy format const proxyPoolIds = providerSpecificData?.proxyPoolIds || []; const proxyRotationStrategy = providerSpecificData?.proxyRotationStrategy || "none"; @@ -97,6 +100,8 @@ export async function resolveConnectionProxyConfig( const proxyPoolIdRaw = legacyProxyPoolId === "__none__" ? "" : legacyProxyPoolId; const legacy = normalizeLegacyProxy(providerSpecificData); + const multiPoolScope = providerSpecificData?.proxyPoolScope || null; + let selectedPoolId = null; /** * ----------------------------- @@ -104,10 +109,9 @@ export async function resolveConnectionProxyConfig( * ----------------------------- */ if (proxyPoolIds.length > 0) { - const scope = providerSpecificData?.proxyPoolScope || null; - const selectedPoolId = pickProxyPoolId(proxyPoolIds, proxyRotationStrategy, connectionId, { scope, excludeIds: excludePoolIds }); + selectedPoolId = pickProxyPoolId(proxyPoolIds, proxyRotationStrategy, connectionId, { scope: multiPoolScope, excludeIds: excludePoolIds }); - if (selectedPoolId) { + if (selectedPoolId) { const proxyPool = await getProxyPoolById(selectedPoolId); const proxyUrl = normalizeString(proxyPool?.proxyUrl); const noProxy = normalizeString(proxyPool?.noProxy); @@ -147,6 +151,22 @@ export async function resolveConnectionProxyConfig( } } } + if ( + !selectedPoolId && + proxyRotationStrategy === "smart" && + multiPoolScope?.startsWith("freebuff::") + ) { + return { + source: "pool", + proxyPoolId: null, + proxyPool: null, + noFitPool: true, + connectionProxyEnabled: false, + connectionProxyUrl: "", + connectionNoProxy: "", + strictProxy: true, + }; + } /** * ----------------------------- diff --git a/src/sse/services/auth.js b/src/sse/services/auth.js index c2e80572..eaf42614 100644 --- a/src/sse/services/auth.js +++ b/src/sse/services/auth.js @@ -8,6 +8,18 @@ import * as log from "../utils/logger.js"; // Mutex to prevent race conditions during account selection let selectionMutex = Promise.resolve(); +export function filterConnectionsForModel(providerId, connections, model, settings = {}) { + const override = (settings.providerStrategies || {})[providerId] || {}; + if (override.strictModelAssignment !== true || !model) { + return connections; + } + return connections.filter((connection) => { + const assignedModel = connection.providerSpecificData?.assignedModel + || (providerId === "freebuff" ? connection.providerSpecificData?.freebuffModel : null); + return assignedModel === model; + }); +} + const GITHUB_MONTHLY_USAGE_LIMIT = "you've reached your additional usage limit for your plan"; function githubMonthlyResetMs(status, errorText, provider) { @@ -81,7 +93,10 @@ export async function getProviderCredentials(provider, excludeConnectionIds = nu }; } - const connections = await getProviderConnections({ provider: providerId, isActive: true }); + let connections = await getProviderConnections({ provider: providerId, isActive: true }); + const settings = await getSettings(); + const providerOverride = (settings.providerStrategies || {})[providerId] || {}; + connections = filterConnectionsForModel(providerId, connections, model, settings); log.debug("AUTH", `${provider} | total connections: ${connections.length}, excludeIds: ${excludeSet.size > 0 ? [...excludeSet].join(",") : "none"}, model: ${model || "any"}`); if (connections.length === 0) { @@ -126,9 +141,7 @@ export async function getProviderCredentials(provider, excludeConnectionIds = nu return null; } - const settings = await getSettings(); // Per-provider strategy overrides global setting - const providerOverride = (settings.providerStrategies || {})[providerId] || {}; const strategy = providerOverride.fallbackStrategy || settings.fallbackStrategy || "fill-first"; let connection; @@ -211,6 +224,7 @@ export async function getProviderCredentials(provider, excludeConnectionIds = nu connectionProxyPoolId: resolvedProxy.proxyPoolId || null, vercelRelayUrl: resolvedProxy.vercelRelayUrl || "", proxyPoolId: resolvedProxy.proxyPoolId || null, + noFitPool: resolvedProxy.noFitPool === true, strictProxy: resolvedProxy.strictProxy === true, }, connectionId: connection.id, diff --git a/tests/unit/freebuff-model-assignment.test.js b/tests/unit/freebuff-model-assignment.test.js new file mode 100644 index 00000000..11a76eee --- /dev/null +++ b/tests/unit/freebuff-model-assignment.test.js @@ -0,0 +1,36 @@ +import { describe, expect, it } from "vitest"; +import { filterConnectionsForModel } from "../../src/sse/services/auth.js"; + +const connections = [ + { id: "flash-1", providerSpecificData: { freebuffModel: "deepseek/deepseek-v4-flash" } }, + { id: "mimo-1", providerSpecificData: { freebuffModel: "mimo/mimo-v2.5" } }, + { id: "unassigned", providerSpecificData: {} }, +]; + +describe("Freebuff strict model assignment", () => { + it("keeps only accounts assigned to the requested model", () => { + const result = filterConnectionsForModel("freebuff", connections, "mimo/mimo-v2.5", { + providerStrategies: { freebuff: { strictModelAssignment: true } }, + }); + + expect(result.map((connection) => connection.id)).toEqual(["mimo-1"]); + }); + + it("excludes unassigned accounts when strict mode is enabled", () => { + const result = filterConnectionsForModel("freebuff", connections, "deepseek/deepseek-v4-flash", { + providerStrategies: { freebuff: { strictModelAssignment: true } }, + }); + + expect(result.map((connection) => connection.id)).toEqual(["flash-1"]); + }); + + it("preserves the existing pool when strict mode is disabled", () => { + expect(filterConnectionsForModel("freebuff", connections, "mimo/mimo-v2.5", {})).toBe(connections); + }); + + it("does not affect other providers when their toggle is off", () => { + expect(filterConnectionsForModel("codex", connections, "mimo/mimo-v2.5", { + providerStrategies: {}, + })).toBe(connections); + }); +}); diff --git a/tests/unit/freebuff-provider.test.js b/tests/unit/freebuff-provider.test.js index a96c57f0..7db8274f 100644 --- a/tests/unit/freebuff-provider.test.js +++ b/tests/unit/freebuff-provider.test.js @@ -207,6 +207,43 @@ describe("freebuff executor wire shape", () => { const ex = new FreebuffExecutor(); expect(ex.buildUrl()).toBe("https://www.codebuff.com/api/v1/chat/completions"); }); + + it("injects the end_turn tool into any tool-calling request (backend foreign_toolset gate)", () => { + const ex = new FreebuffExecutor(); + const body = { + model: "deepseek/deepseek-v4-flash", + messages: [{ role: "user", content: "hi" }], + tools: [{ type: "function", function: { name: "read_file", description: "read" } }], + }; + const out = ex.transformRequest(body.model, body, true, { providerSpecificData: { fingerprintId: "fp-1" } }); + const names = out.tools.map((t) => t.function.name); + expect(names).toContain("read_file"); + expect(names).toContain("end_turn"); + expect(out.tools[out.tools.length - 1].function).toMatchObject({ + name: "end_turn", + description: "Signal the end of the current task.", + }); + }); + + it("does not inject end_turn when the request has no tools", () => { + const ex = new FreebuffExecutor(); + const body = { model: "deepseek/deepseek-v4-flash", messages: [{ role: "user", content: "hi" }] }; + const out = ex.transformRequest(body.model, body, true, { providerSpecificData: { fingerprintId: "fp-1" } }); + expect(out.tools).toBeUndefined(); + }); + + it("does not duplicate end_turn when the caller already declared it", () => { + const ex = new FreebuffExecutor(); + const endTurn = { type: "function", function: { name: "end_turn", description: "Signal the end of the current task.", parameters: { type: "object", properties: {} } } }; + const body = { + model: "deepseek/deepseek-v4-flash", + messages: [{ role: "user", content: "hi" }], + tools: [endTurn], + }; + const out = ex.transformRequest(body.model, body, true, { providerSpecificData: { fingerprintId: "fp-1" } }); + expect(out.tools).toHaveLength(1); + expect(out.tools[0].function.name).toBe("end_turn"); + }); }); describe("freebuff session pre-flight", () => { @@ -301,11 +338,11 @@ describe("freebuff free-tier system marker", () => { describe("freebuff run registration", () => { it("maps freebuff models to their root free agent ids", () => { - expect(rootAgentIdForModel("deepseek/deepseek-v4-flash")).toBe("base2-free-deepseek-flash"); - expect(rootAgentIdForModel("deepseek/deepseek-v4-pro")).toBe("base2-free-deepseek"); - expect(rootAgentIdForModel("mimo/mimo-v2.5")).toBe("base2-free-mimo"); - expect(rootAgentIdForModel("minimax/minimax-m3")).toBe("base2-free-minimax-m3"); - expect(rootAgentIdForModel("openai/gpt-5.6-luna")).toBe("base2-free-luna"); + expect(rootAgentIdForModel("deepseek/deepseek-v4-flash")).toBe("base3-free-deepseek-flash"); + expect(rootAgentIdForModel("deepseek/deepseek-v4-pro")).toBe("base3-free-deepseek"); + expect(rootAgentIdForModel("mimo/mimo-v2.5")).toBe("base3-free-mimo"); + expect(rootAgentIdForModel("minimax/minimax-m3")).toBe("base3-free-minimax-m3"); + expect(rootAgentIdForModel("openai/gpt-5.6-luna")).toBe("base3-free-luna"); expect(rootAgentIdForModel("some/unknown-model")).toBe("base2-free"); }); @@ -320,7 +357,7 @@ describe("freebuff run registration", () => { expect(opts.headers.Authorization).toBe("Bearer tok-1"); const payload = JSON.parse(opts.body); expect(payload.action).toBe("START"); - expect(payload.agentId).toBe("base2-free-deepseek-flash"); + expect(payload.agentId).toBe("base3-free-deepseek-flash"); expect(payload.ancestorRunIds).toEqual([]); }); @@ -586,3 +623,28 @@ describe("freebuff executor execute", () => { expect(JSON.parse(finishes[0][1].body).status).toBe("cancelled"); }); }); + +describe("freebuff executor parseError", () => { + it("explains a 404 'No endpoints found' as the toolset gate, not a credential problem", async () => { + const ex = new FreebuffExecutor(); + const res = jsonResponse( + { error: { message: "No endpoints found for deepseek/deepseek-v4-flash.", code: 404, type: null, param: null } }, + { status: 404, ok: false }, + ); + const parsed = await ex.parseError(res, JSON.stringify({ error: { message: "No endpoints found for deepseek/deepseek-v4-flash.", code: 404 } })); + + expect(parsed.status).toBe(404); + expect(parsed.message).toMatch(/end_turn/i); + expect(parsed.message).not.toMatch(/credential/i); + expect(parsed.resetsAtMs).toBeGreaterThan(Date.now()); + }); + + it("passes other statuses through untouched", async () => { + const ex = new FreebuffExecutor(); + const res = jsonResponse({ error: "bad" }, { status: 500, ok: false }); + const parsed = await ex.parseError(res, JSON.stringify({ error: "bad" })); + expect(parsed.status).toBe(500); + expect(parsed.message).toContain("bad"); + expect(parsed.resetsAtMs).toBeUndefined(); + }); +}); diff --git a/tests/unit/grok-cli-oauth-probe.test.js b/tests/unit/grok-cli-oauth-probe.test.js index 5cda4cdb..24eefa55 100644 --- a/tests/unit/grok-cli-oauth-probe.test.js +++ b/tests/unit/grok-cli-oauth-probe.test.js @@ -48,3 +48,31 @@ describe("classifyOAuthProbeResult (grok-cli)", () => { expect(r).toEqual({ valid: true, error: null, soft: false }); }); }); + +describe("classifyOAuthProbeResult (freebuff)", () => { + const FREEBUFF_PROBE = { + acceptStatuses: [403, 404], + softFailMessage: { 403: "gated" }, + }; + + it("treats 404 (no session row) as silent success", () => { + const r = classifyOAuthProbeResult({ ok: false, status: 404 }, FREEBUFF_PROBE, ""); + expect(r).toEqual({ valid: true, error: null, soft: false }); + }); + + it("treats 403 (region/account gate) as soft success", () => { + const r = classifyOAuthProbeResult( + { ok: false, status: 403 }, + FREEBUFF_PROBE, + JSON.stringify({ status: "country_blocked", countryCode: "XX" }), + ); + expect(r.valid).toBe(true); + expect(r.soft).toBe(true); + expect(r.error).toMatch(/gated/); + }); + + it("treats 401 as hard auth failure", () => { + const r = classifyOAuthProbeResult({ ok: false, status: 401 }, FREEBUFF_PROBE, "unauthorized"); + expect(r).toEqual({ valid: false, error: "Token invalid or revoked", soft: false }); + }); +}); diff --git a/tests/unit/proxy-pool-fitness.test.js b/tests/unit/proxy-pool-fitness.test.js index aae84a0d..431194e1 100644 --- a/tests/unit/proxy-pool-fitness.test.js +++ b/tests/unit/proxy-pool-fitness.test.js @@ -9,6 +9,7 @@ import { pruneExpired, resetPoolFitness, } from "open-sse/services/proxyPoolFitness.js"; +import { pickProxyPoolId } from "../../src/lib/network/connectionProxy.js"; describe("proxy pool fitness registry", () => { beforeEach(() => resetPoolFitness()); @@ -39,6 +40,30 @@ describe("proxy pool fitness registry", () => { expect(snap.p1["fb::m2"]).toBeUndefined(); }); + it("does not reuse a pool when every smart candidate is unfit", () => { + markPoolUnfit("p1", "freebuff::openai/gpt-5.6-luna", Date.now() + 60_000, "limited_ip"); + markPoolUnfit("p2", "freebuff::openai/gpt-5.6-luna", Date.now() + 60_000, "limited_ip"); + + expect(pickProxyPoolId( + ["p1", "p2"], + "smart", + "freebuff", + { scope: "freebuff::openai/gpt-5.6-luna" }, + )).toBeNull(); + }); + + it("preserves fail-open smart fallback for non-Freebuff providers", () => { + markPoolUnfit("p1", "opencode::sonnet-4.6", Date.now() + 60_000, "ip-limit"); + markPoolUnfit("p2", "opencode::sonnet-4.6", Date.now() + 60_000, "ip-limit"); + + expect(pickProxyPoolId( + ["p1", "p2"], + "smart", + "opencode", + { scope: "opencode::sonnet-4.6" }, + )).toBe("p1"); + }); + it("clear per scope, clear-all per provider, clear-all global, pruneExpired", () => { markPoolUnfit("p1", "freebuff::m1", Date.now() + 60_000); markPoolUnfit("p1", "kiro::m3", Date.now() + 60_000); From c895410510964f557128c14acbc8370b6f5f6884 Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Sat, 15 Aug 2026 04:11:54 +0800 Subject: [PATCH 24/42] chore(deps): sync package lock --- package-lock.json | 250 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 199 insertions(+), 51 deletions(-) diff --git a/package-lock.json b/package-lock.json index c4271bda..2502087a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "9router-app", - "version": "0.5.50", + "version": "0.5.55", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "9router-app", - "version": "0.5.50", + "version": "0.5.55", "dependencies": { "@dnd-kit/core": "^6.3.1", "@dnd-kit/modifiers": "^9.0.0", @@ -14,8 +14,10 @@ "@dnd-kit/utilities": "^3.2.2", "@monaco-editor/react": "^4.7.0", "@next/third-parties": "^16.2.9", + "@node-saml/node-saml": "^5.1.0", "@xyflow/react": "^12.10.1", "bcryptjs": "^3.0.3", + "chalk": "^5.6.2", "confbox": "^0.2.4", "dompurify": "^3.4.13", "express": "^5.2.1", @@ -29,6 +31,7 @@ "node-machine-id": "^1.1.12", "open": "^11.0.0", "ora": "^9.1.0", + "prop-types": "^15.8.1", "react": "19.2.4", "react-dom": "19.2.4", "react-is": "^16.13.1", @@ -373,30 +376,6 @@ "react": ">=16.8.0" } }, - "node_modules/@emnapi/core": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", - "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@emnapi/wasi-threads": "1.2.1", - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/runtime": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.3.tgz", - "integrity": "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@emnapi/wasi-threads": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", @@ -1383,6 +1362,29 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/@node-saml/node-saml": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@node-saml/node-saml/-/node-saml-5.1.0.tgz", + "integrity": "sha512-t3cJnZ4aC7HhPZ6MGylGZULvUtBOZ6FzuUndaHGXjmIZHXnLfC/7L8a57O9Q9V7AxJGKAiRM5zu2wNm9EsvQpw==", + "license": "MIT", + "dependencies": { + "@types/debug": "^4.1.12", + "@types/qs": "^6.9.18", + "@types/xml-encryption": "^1.2.4", + "@types/xml2js": "^0.4.14", + "@xmldom/is-dom-node": "^1.0.1", + "@xmldom/xmldom": "^0.8.10", + "debug": "^4.4.0", + "xml-crypto": "^6.1.2", + "xml-encryption": "^3.1.0", + "xml2js": "^0.6.2", + "xmlbuilder": "^15.1.1", + "xpath": "^0.0.34" + }, + "engines": { + "node": ">= 18" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -2021,6 +2023,15 @@ "@types/d3-selection": "*" } }, + "node_modules/@types/debug": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz", + "integrity": "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, "node_modules/@types/estree": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", @@ -2051,6 +2062,12 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" + }, "node_modules/@types/node": { "version": "26.1.2", "resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.2.tgz", @@ -2060,6 +2077,12 @@ "undici-types": "~8.3.0" } }, + "node_modules/@types/qs": { + "version": "6.15.1", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.1.tgz", + "integrity": "sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw==", + "license": "MIT" + }, "node_modules/@types/trusted-types": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", @@ -2073,6 +2096,24 @@ "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==", "license": "MIT" }, + "node_modules/@types/xml-encryption": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/xml-encryption/-/xml-encryption-1.2.4.tgz", + "integrity": "sha512-I69K/WW1Dv7j6O3jh13z0X8sLWJRXbu5xnHDl9yHzUNDUBtUoBY058eb5s+x/WG6yZC1h8aKdI2EoyEPjyEh+Q==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/xml2js": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/@types/xml2js/-/xml2js-0.4.14.tgz", + "integrity": "sha512-4YnrRemBShWRO2QjvUin8ESA41rH+9nQGLUGZV/1IDhi3SL9OhdpNC/MrulTWuptXKwhx/aDxE7toV0f/ypIXQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "8.66.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.66.0.tgz", @@ -2693,6 +2734,24 @@ "win32" ] }, + "node_modules/@xmldom/is-dom-node": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@xmldom/is-dom-node/-/is-dom-node-1.0.1.tgz", + "integrity": "sha512-CJDxIgE5I0FH+ttq/Fxy6nRpxP70+e2O048EPe85J2use3XKdatVM7dDVvFNjQudd9B49NPoZ+8PG49zj4Er8Q==", + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "node_modules/@xmldom/xmldom": { + "version": "0.8.14", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.14.tgz", + "integrity": "sha512-T4EDRUBVZYRldYApjEJiU0e1stYWaRAX7CuSnKzrpwdZKo53zGV8/pqfzV6FfwNl9YThD2OumQYvqtvjvgG7aQ==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/@xyflow/react": { "version": "12.11.2", "resolved": "https://registry.npmjs.org/@xyflow/react/-/react-12.11.2.tgz", @@ -3416,17 +3475,12 @@ "license": "CC-BY-4.0" }, "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" + "node": "^12.17.0 || ^14.13 || >=16.0.0" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" @@ -4499,6 +4553,7 @@ "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.9", @@ -4650,6 +4705,23 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/espree": { "version": "10.4.0", "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", @@ -6089,7 +6161,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, "license": "MIT" }, "node_modules/js-yaml": { @@ -6526,7 +6597,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" @@ -6952,7 +7022,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -7166,18 +7235,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ora/node_modules/chalk": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", - "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, "node_modules/own-keys": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.2.tgz", @@ -7416,7 +7473,6 @@ "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", @@ -7955,6 +8011,15 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "license": "MIT" }, + "node_modules/sax": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.1.tgz", + "integrity": "sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, "node_modules/scheduler": { "version": "0.27.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", @@ -9318,6 +9383,89 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/xml-crypto": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/xml-crypto/-/xml-crypto-6.1.2.tgz", + "integrity": "sha512-leBOVQdVi8FvPJrMYoum7Ici9qyxfE4kVi+AkpUoYCSXaQF4IlBm1cneTK9oAxR61LpYxTx7lNcsnBIeRpGW2w==", + "license": "MIT", + "dependencies": { + "@xmldom/is-dom-node": "^1.0.1", + "@xmldom/xmldom": "^0.8.10", + "xpath": "^0.0.33" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/xml-crypto/node_modules/xpath": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.33.tgz", + "integrity": "sha512-NNXnzrkDrAzalLhIUc01jO2mOzXGXh1JwPgkihcLLzw98c0WgYDmmjSh1Kl3wzaxSVWMuA+fe0WTWOBDWCBmNA==", + "license": "MIT", + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/xml-encryption": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/xml-encryption/-/xml-encryption-3.1.0.tgz", + "integrity": "sha512-PV7qnYpoAMXbf1kvQkqMScLeQpjCMixddAKq9PtqVrho8HnYbBOWNfG0kA4R7zxQDo7w9kiYAyzS/ullAyO55Q==", + "license": "MIT", + "dependencies": { + "@xmldom/xmldom": "^0.8.5", + "escape-html": "^1.0.3", + "xpath": "0.0.32" + } + }, + "node_modules/xml-encryption/node_modules/xpath": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.32.tgz", + "integrity": "sha512-rxMJhSIoiO8vXcWvSifKqhvV96GjiD5wYb8/QHdoRyQvraTpp4IEv944nhGausZZ3u7dhQXteZuZbaqfpB7uYw==", + "license": "MIT", + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/xml2js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", + "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xml2js/node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "license": "MIT", + "engines": { + "node": ">=8.0" + } + }, + "node_modules/xpath": { + "version": "0.0.34", + "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.34.tgz", + "integrity": "sha512-FxF6+rkr1rNSQrhUNYrAFJpRXNzlDoMxeXN5qI84939ylEv3qqPFKa85Oxr6tDaJKqwW6KKyo2v26TSv3k6LeA==", + "license": "MIT", + "engines": { + "node": ">=0.6.0" + } + }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", From 3d10fd9611609c1f0ddc82158d728546a5420859 Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Sat, 15 Aug 2026 04:25:18 +0800 Subject: [PATCH 25/42] =?UTF-8?q?chore(docker):=20follow=20upstream=20?= =?UTF-8?q?=E2=80=94=20untrack=20package-lock,=20use=20npm=20install?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 +- Dockerfile | 4 +- package-lock.json | 9555 --------------------------------------------- 3 files changed, 4 insertions(+), 9558 deletions(-) delete mode 100644 package-lock.json diff --git a/.gitignore b/.gitignore index fe81d4fe..d51cbdcb 100644 --- a/.gitignore +++ b/.gitignore @@ -85,4 +85,5 @@ graphify-out/* .script/ .codegraph/ .PR/ -.next-analyze/* \ No newline at end of file +.next-analyze/* +package-lock.json \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index ad373f8a..b4a265ea 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,9 +7,9 @@ FROM base AS builder RUN apk --no-cache upgrade && apk --no-cache add python3 make g++ linux-headers -COPY package.json package-lock.json ./ +COPY package.json ./ RUN --mount=type=cache,target=/root/.npm \ - npm ci + npm install COPY . ./ ENV NEXT_TELEMETRY_DISABLED=1 diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 2502087a..00000000 --- a/package-lock.json +++ /dev/null @@ -1,9555 +0,0 @@ -{ - "name": "9router-app", - "version": "0.5.55", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "9router-app", - "version": "0.5.55", - "dependencies": { - "@dnd-kit/core": "^6.3.1", - "@dnd-kit/modifiers": "^9.0.0", - "@dnd-kit/sortable": "^10.0.0", - "@dnd-kit/utilities": "^3.2.2", - "@monaco-editor/react": "^4.7.0", - "@next/third-parties": "^16.2.9", - "@node-saml/node-saml": "^5.1.0", - "@xyflow/react": "^12.10.1", - "bcryptjs": "^3.0.3", - "chalk": "^5.6.2", - "confbox": "^0.2.4", - "dompurify": "^3.4.13", - "express": "^5.2.1", - "http-proxy-middleware": "^3.0.5", - "jose": "^6.1.3", - "marked": "^18.0.1", - "material-symbols": "^0.44.6", - "monaco-editor": "^0.56.0", - "next": "^16.1.6", - "node-forge": "^1.3.3", - "node-machine-id": "^1.1.12", - "open": "^11.0.0", - "ora": "^9.1.0", - "prop-types": "^15.8.1", - "react": "19.2.4", - "react-dom": "19.2.4", - "react-is": "^16.13.1", - "recharts": "^3.7.0", - "selfsigned": "^5.5.0", - "socks-proxy-agent": "^8.0.5", - "sql.js": "^1.14.1", - "undici": "^7.19.2", - "uuid": "^13.0.0", - "zustand": "^5.0.10" - }, - "devDependencies": { - "@tailwindcss/postcss": "^4.1.18", - "eslint": "^9", - "eslint-config-next": "16.1.6", - "postcss": "^8.5.6", - "tailwindcss": "^4" - }, - "optionalDependencies": { - "better-sqlite3": "^12.6.2" - } - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", - "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.29.7", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", - "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", - "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.29.7", - "@babel/generator": "^7.29.7", - "@babel/helper-compilation-targets": "^7.29.7", - "@babel/helper-module-transforms": "^7.29.7", - "@babel/helpers": "^7.29.7", - "@babel/parser": "^7.29.7", - "@babel/template": "^7.29.7", - "@babel/traverse": "^7.29.7", - "@babel/types": "^7.29.7", - "@jridgewell/remapping": "^2.3.5", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.29.8", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.8.tgz", - "integrity": "sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.29.8", - "@babel/types": "^7.29.8", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", - "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.29.7", - "@babel/helper-validator-option": "^7.29.7", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-globals": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", - "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", - "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.29.7", - "@babel/types": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", - "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.29.7", - "@babel/helper-validator-identifier": "^7.29.7", - "@babel/traverse": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", - "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", - "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", - "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz", - "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.29.7", - "@babel/types": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.29.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.8.tgz", - "integrity": "sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.29.8" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/template": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", - "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.29.7", - "@babel/parser": "^7.29.7", - "@babel/types": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.29.8", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.8.tgz", - "integrity": "sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.29.7", - "@babel/generator": "^7.29.8", - "@babel/helper-globals": "^7.29.7", - "@babel/parser": "^7.29.8", - "@babel/template": "^7.29.7", - "@babel/types": "^7.29.8", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.29.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz", - "integrity": "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.29.7", - "@babel/helper-validator-identifier": "^7.29.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@dnd-kit/accessibility": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@dnd-kit/accessibility/-/accessibility-3.1.1.tgz", - "integrity": "sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - }, - "peerDependencies": { - "react": ">=16.8.0" - } - }, - "node_modules/@dnd-kit/core": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.3.1.tgz", - "integrity": "sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "@dnd-kit/accessibility": "^3.1.1", - "@dnd-kit/utilities": "^3.2.2", - "tslib": "^2.0.0" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/@dnd-kit/modifiers": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@dnd-kit/modifiers/-/modifiers-9.0.0.tgz", - "integrity": "sha512-ybiLc66qRGuZoC20wdSSG6pDXFikui/dCNGthxv4Ndy8ylErY0N3KVxY2bgo7AWwIbxDmXDg3ylAFmnrjcbVvw==", - "license": "MIT", - "dependencies": { - "@dnd-kit/utilities": "^3.2.2", - "tslib": "^2.0.0" - }, - "peerDependencies": { - "@dnd-kit/core": "^6.3.0", - "react": ">=16.8.0" - } - }, - "node_modules/@dnd-kit/sortable": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@dnd-kit/sortable/-/sortable-10.0.0.tgz", - "integrity": "sha512-+xqhmIIzvAYMGfBYYnbKuNicfSsk4RksY2XdmJhT+HAC01nix6fHCztU68jooFiMUB01Ky3F0FyOvhG/BZrWkg==", - "license": "MIT", - "dependencies": { - "@dnd-kit/utilities": "^3.2.2", - "tslib": "^2.0.0" - }, - "peerDependencies": { - "@dnd-kit/core": "^6.3.0", - "react": ">=16.8.0" - } - }, - "node_modules/@dnd-kit/utilities": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@dnd-kit/utilities/-/utilities-3.2.2.tgz", - "integrity": "sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - }, - "peerDependencies": { - "react": ">=16.8.0" - } - }, - "node_modules/@emnapi/wasi-threads": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", - "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.10.1.tgz", - "integrity": "sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", - "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/config-array": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", - "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/object-schema": "^2.1.7", - "debug": "^4.3.1", - "minimatch": "^3.1.5" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/config-helpers": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", - "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/core": "^0.17.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/core": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", - "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.6.tgz", - "integrity": "sha512-l2Ul9PrHsPCKcEY/ac7VgFj9D80C7S68sOKc618SyHDPK36s1XcFebXY0iTzUVn4Yq+YbwvSnDmCz9yxjX+QrA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.14.0", - "debug": "^4.3.2", - "espree": "^10.0.1", - "globals": "^14.0.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.3.0", - "minimatch": "^3.1.5", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/js": { - "version": "9.39.5", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.5.tgz", - "integrity": "sha512-QywQuszQh77pIXCsq998c8hbhSTI/azTty1Z6N53dmAudKHhy573j3yvRLsX2BSp8YpLtoCEG8E9DJe+8zUh4A==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - } - }, - "node_modules/@eslint/object-schema": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", - "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/plugin-kit": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", - "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/core": "^0.17.0", - "levn": "^0.4.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@humanfs/core": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz", - "integrity": "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanfs/types": "^0.15.0" - }, - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node": { - "version": "0.16.8", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.8.tgz", - "integrity": "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanfs/core": "^0.19.2", - "@humanfs/types": "^0.15.0", - "@humanwhocodes/retry": "^0.4.0" - }, - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/types": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-0.15.0.tgz", - "integrity": "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/retry": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", - "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@img/colour": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", - "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/@img/sharp-darwin-arm64": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.35.3.tgz", - "integrity": "sha512-RMnFX7YQsMoh7lWfcM4NEHHymBX/rLuKNPVM84XE9ONPcaSCDgE7CHIHpSgPcO2xcRthgBy1HfNO319mwhIAkg==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.3.2" - } - }, - "node_modules/@img/sharp-darwin-x64": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.35.3.tgz", - "integrity": "sha512-Xo+5uFBtLN0BKqieTxiFzFPQAUlBbbH5iBKyRX/z1JrbnYsHTfKJnUfL8+p2TPXr1pXqao4eeL4Rl144uDpK9w==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.3.2" - } - }, - "node_modules/@img/sharp-freebsd-wasm32": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-freebsd-wasm32/-/sharp-freebsd-wasm32-0.35.3.tgz", - "integrity": "sha512-lUxcqWIj2wMQ9BrwNjngcr1gWUr5xgaGThBRqPPalIC2n67Cqj1uPh8NnA/ZhAg8hUbKl+kVHKwgUIwe6ZYPrg==", - "license": "Apache-2.0", - "optional": true, - "os": [ - "freebsd" - ], - "dependencies": { - "@img/sharp-wasm32": "0.35.3" - }, - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.3.2.tgz", - "integrity": "sha512-9J6ypZFpQBj4YnePGoq/S38w6nz+vqg5WZLrLGY4YuSemdMq47GMLBPO42MzwdGwpg/agZ7xzZcFHa48xlywfg==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.3.2.tgz", - "integrity": "sha512-m2pW1n6cns9VaubNwsZ+c3CRYjxNQWgJ5gPlnL1nbBcpkBvFm6SCFN5o0psFHI8w9n11NKhFkeEDns98tiqbEw==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.3.2.tgz", - "integrity": "sha512-1eMLzy92I4J6rmi4mAT8yC3HxOtniyGELlzGbNMLLeqe052ahFQ0h6LFq+lh5DsDIdYViIDst08abvSbcEdLXQ==", - "cpu": [ - "arm" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.3.2.tgz", - "integrity": "sha512-dqVSFynCox4C/J8kT16V7SIFAns0IjgLwkvYT7p8LQVmJ5OS5b6tI9IGflxTeuBS//zXeFIUbwt5dwxyZ17cnA==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-ppc64": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.3.2.tgz", - "integrity": "sha512-3z0NHDxD6n5I9gc05U1eW1AyRm+Gznzq3naMrthPNqE6oYykcogW0l/jfpJdjYnuNl8R7yI9pNbE1XiUeyq0Aw==", - "cpu": [ - "ppc64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-riscv64": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.3.2.tgz", - "integrity": "sha512-bsb4rI+NldGOsXuej2r8OdSS8+zXDVaCWxyWrcv6kneTOlgAHtZABRzBBCwdsPiD90J4myNJuHpg6kA20ImW/w==", - "cpu": [ - "riscv64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.3.2.tgz", - "integrity": "sha512-/ABshyj8gCpyIrNXnHn4LorDJ0HHm1VhXPBlxZ8zAtfVPAaSafXPGn+sUSIRiwaSBy0mmFjSjiXI5mkcwdChKQ==", - "cpu": [ - "s390x" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.3.2.tgz", - "integrity": "sha512-ITPEtgffGJ0S6G9dRyw/366tJQqFRcHWPHhC+Stpg3Z8AEMrDrTr2lhdz4f/Y/HMbRh//7Z5mBzEpVdi62Oc3w==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.3.2.tgz", - "integrity": "sha512-zE9EdiUzUmg5mDT5a1rk5fYJ6GWPloTwWBYDS14naqHsL+EaMpDj1AWnpLgh3u0YCORv2Tt50wrcrpYqkP97Kw==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.3.2.tgz", - "integrity": "sha512-m0lrLiUt+lBYnCFr8qV/65yMR4E/c7/wf78I5eKTdkEakFAlZ9QlzEM3QIhhAwVeUhLAHLcCq7a7Vszq/oFNZQ==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-linux-arm": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.35.3.tgz", - "integrity": "sha512-affVWCTLooy8TSxbDx2qkzuDeaWLNVBA+P//FNBirHsXpP2fuBhk5AuboYUnrDnzoXes8GFjpTx0SBFOCRg+FA==", - "cpu": [ - "arm" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.3.2" - } - }, - "node_modules/@img/sharp-linux-arm64": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.35.3.tgz", - "integrity": "sha512-QgKDspHPnrU+GQ55XPhGwyhC8acLVOOSyAvo1oVfFmrIXLkDNmGWzAfDZ4xK8oSA1qBQrALcHX0G5UZni/SuFQ==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.3.2" - } - }, - "node_modules/@img/sharp-linux-ppc64": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.35.3.tgz", - "integrity": "sha512-sMd8rDxmpLOwv/7N44klFjOD5DUO7FLdjiXDI0hoxYaf7Ar262dQIEkosE98bps+5HPLtp/EvNqeqQtOycP/IA==", - "cpu": [ - "ppc64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-ppc64": "1.3.2" - } - }, - "node_modules/@img/sharp-linux-riscv64": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.35.3.tgz", - "integrity": "sha512-0Eob78yjlYPfL5vMNWAW55l3R9Y6BQS/gOfe0ZcP9mEz9ohhKSt4im1hayiknXgf8AWrFqMvJcKIdmLmEe7yeQ==", - "cpu": [ - "riscv64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-riscv64": "1.3.2" - } - }, - "node_modules/@img/sharp-linux-s390x": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.35.3.tgz", - "integrity": "sha512-KgAxQ0DxpNOq1rG2t5cgTgShJFGSuU7XO45cqC+1NVOuZnP6tlgZRuSYOfNupGkHID0o3cJOsw4DVeJpMovcGw==", - "cpu": [ - "s390x" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.3.2" - } - }, - "node_modules/@img/sharp-linux-x64": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.35.3.tgz", - "integrity": "sha512-8pqvxubL2PGdhlPy6GLqzDYMUjyRmKAwKHYKixpdJYBUK7PJ0C029XdsnpFIdgRZG68fZiGdHVWcKPvtiPB4cA==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.3.2" - } - }, - "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.35.3.tgz", - "integrity": "sha512-Vz0iQjzzcSX3HCbfwFfCSG/9SCIqyO0mH2sXyiHaAYfBk0cRsCWXRyQYX0ovCK/PAQBbTzQ0dsPQHh5MAFL59w==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.3.2" - } - }, - "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.35.3.tgz", - "integrity": "sha512-6O1NPKcDVj9QEdg7Hx549EX8U0rp6yXQERqru6yRN7fGBn32UvIRJUlWnk+8xDCiG76hXVBbX82NZ/ZKr0euIg==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.3.2" - } - }, - "node_modules/@img/sharp-wasm32": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.35.3.tgz", - "integrity": "sha512-cZ0XkcYGpHZkqW6iCkqTcmUC0CD9DhD5d/qeZlZkfRBn6GnHniZXLUo5+9xw8Iv76YE6LQFN9YNBlKREcCG76w==", - "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", - "optional": true, - "dependencies": { - "@emnapi/runtime": "^1.11.1" - }, - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-webcontainers-wasm32": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-webcontainers-wasm32/-/sharp-webcontainers-wasm32-0.35.3.tgz", - "integrity": "sha512-2rnq7bX3NzeR2T4YWgz8qiG4h3TSdMe+vN1iQXpJleSJ3SM5zQ8Fy2SyyXAWlbxpEZ2Y+Z4u1BePgJEYbSy80Q==", - "cpu": [ - "wasm32" - ], - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@img/sharp-wasm32": "0.35.3" - }, - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-arm64": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.35.3.tgz", - "integrity": "sha512-4bPwFdMbeC4JQ8L8LOyWp6nsHcboP5fxkp6iPOXz2Vg49R42TuMs2whkJ5OAP4/Ul035qOzy0AecOF9VOscn4w==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-ia32": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.35.3.tgz", - "integrity": "sha512-r53mXsBN6lFUDiST764SvgwUdHAqM4rPAiDzAmf4fLoB6X/rkfyTrLCg6+g17wJJiCmB3JYgHuUldCWUIRFSXw==", - "cpu": [ - "ia32" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-x64": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.35.3.tgz", - "integrity": "sha512-D4y1vNeZrIIJCN+uHaWVtH86B+aCrdMYYjicy9pXHvbGZeGYLLSd3wdVuC37FxVXlU1ARsk84eKWfWMXGYEqvA==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/remapping": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", - "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.31", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", - "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@monaco-editor/loader": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@monaco-editor/loader/-/loader-1.7.0.tgz", - "integrity": "sha512-gIwR1HrJrrx+vfyOhYmCZ0/JcWqG5kbfG7+d3f/C1LXk2EvzAbHSg3MQ5lO2sMlo9izoAZ04shohfKLVT6crVA==", - "license": "MIT", - "dependencies": { - "state-local": "^1.0.6" - } - }, - "node_modules/@monaco-editor/react": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@monaco-editor/react/-/react-4.7.0.tgz", - "integrity": "sha512-cyzXQCtO47ydzxpQtCGSQGOC8Gk3ZUeBXFAxD+CWXYFo5OqZyZUonFl0DwUlTyAfRHntBfw2p3w4s9R6oe1eCA==", - "license": "MIT", - "dependencies": { - "@monaco-editor/loader": "^1.5.0" - }, - "peerDependencies": { - "monaco-editor": ">= 0.25.0 < 1", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.2.tgz", - "integrity": "sha512-JfB4kuJQjaoHuCTseIINHtHWeJnvgEcxjwA5t/Y00ZgaOO1Crz3fjT/p8kT28zA/Caz7oiUMn3d6H2yOVCVwuw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@tybys/wasm-util": "^0.10.3" - }, - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=23.5.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Brooooooklyn" - }, - "peerDependencies": { - "@emnapi/core": "^1.7.1 || ^2.0.0-alpha.3", - "@emnapi/runtime": "^1.7.1 || ^2.0.0-alpha.3" - } - }, - "node_modules/@next/env": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/@next/env/-/env-16.3.0.tgz", - "integrity": "sha512-o9r1S0BNiNreHP9Vs+Qnqd9kviDkJh8xIACY7UFZSmiGbbQRzPBBosvHzAU4TULHOIuOj/18RSsyz2qrREmIFw==", - "license": "MIT" - }, - "node_modules/@next/eslint-plugin-next": { - "version": "16.1.6", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-16.1.6.tgz", - "integrity": "sha512-/Qq3PTagA6+nYVfryAtQ7/9FEr/6YVyvOtl6rZnGsbReGLf0jZU6gkpr1FuChAQpvV46a78p4cmHOVP8mbfSMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-glob": "3.3.1" - } - }, - "node_modules/@next/swc-darwin-arm64": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.3.0.tgz", - "integrity": "sha512-55hpqq18bEVAlxedlTt3tFqZmKg2nUXT1kn1G/BGEy0R13h3LwtwHPVzzjG6P4LLeOHE32PFDQUVaJEWvBEZBw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-darwin-x64": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.3.0.tgz", - "integrity": "sha512-SOi96kSaF5T+0wW4koiM1bWzSPwjzTesC1p3df+FjdOi5LIQkBK/blxh7HdoKnNuI4PURF1OO7TZqtfnbWDSgw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-gnu": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.3.0.tgz", - "integrity": "sha512-P0gZAoPMF4dyTRzhmkV4PrqVzSOB6t4mC1oI3c4dqijJ+OVEVx5clIXAKR4/uQpsqw2KKM/0D5tVumcR2r5blg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-musl": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.3.0.tgz", - "integrity": "sha512-tXXGKJw0m37O0eKJARVTX/TheKPhz0QFVtVVZXmOig+9YKLQOSP6hvf2pxv5DO7CLEJyTHx3Pg043CDQkv1G4Q==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-gnu": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.3.0.tgz", - "integrity": "sha512-pjGxK5EY7yWml78ALejFkWmgHsU7wbFQrISiugpH6FbUJhgEvw3xFZ/EBAtLl7QtL0WdQKiG9eWJ3mOKGTukHw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-musl": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.3.0.tgz", - "integrity": "sha512-sjo++Xx+lomlPs3HRsHWhVDyGG6ms1kGW5EtHLERdII8AyG1i+f6aq68xHREO6AEMlhjTNEWBSmfJfqm9orf7g==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-arm64-msvc": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.3.0.tgz", - "integrity": "sha512-C5JSgiO54wURdaxdEUIXqkz04uMqC9UmPX1gtDrV/5Tf1UowdWYI8uA5hfFbPolTlp0q4KZ60xlHePNibf0VIw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-x64-msvc": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.3.0.tgz", - "integrity": "sha512-fDOggsweNb5SSw0ZKVk6U+gxSyGFFlIBY/LBc1r8GUj4u/6t6oArL+Pmkg0MBnsgR+KkdsURilVH4F3GXUGepA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/third-parties": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/@next/third-parties/-/third-parties-16.3.0.tgz", - "integrity": "sha512-cAA96hSI9NC7083b6sEsKjgyvM/YJ2eqXs4HWv8a/z5LE12CL1sUJS+cmcTwNMY4yAFpLyyuZHrMBEfh/4Xupw==", - "license": "MIT", - "dependencies": { - "third-party-capital": "1.0.20" - }, - "peerDependencies": { - "next": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0-beta.0", - "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0" - } - }, - "node_modules/@noble/hashes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", - "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", - "license": "MIT", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@node-saml/node-saml": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@node-saml/node-saml/-/node-saml-5.1.0.tgz", - "integrity": "sha512-t3cJnZ4aC7HhPZ6MGylGZULvUtBOZ6FzuUndaHGXjmIZHXnLfC/7L8a57O9Q9V7AxJGKAiRM5zu2wNm9EsvQpw==", - "license": "MIT", - "dependencies": { - "@types/debug": "^4.1.12", - "@types/qs": "^6.9.18", - "@types/xml-encryption": "^1.2.4", - "@types/xml2js": "^0.4.14", - "@xmldom/is-dom-node": "^1.0.1", - "@xmldom/xmldom": "^0.8.10", - "debug": "^4.4.0", - "xml-crypto": "^6.1.2", - "xml-encryption": "^3.1.0", - "xml2js": "^0.6.2", - "xmlbuilder": "^15.1.1", - "xpath": "^0.0.34" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nolyfill/is-core-module": { - "version": "1.0.39", - "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", - "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.4.0" - } - }, - "node_modules/@peculiar/asn1-cms": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.8.0.tgz", - "integrity": "sha512-NgekZOrSJFSBFLFoLfwePguAWAx7z1+f2TEsWFUMyiqqfntZ4+S/S5hzqME3q4pCA0iOsFKdwiQ35dwY24eVqA==", - "license": "MIT", - "dependencies": { - "@peculiar/asn1-schema": "^2.8.0", - "@peculiar/asn1-x509": "^2.8.0", - "@peculiar/asn1-x509-attr": "^2.8.0", - "asn1js": "^3.0.10", - "tslib": "^2.8.1" - } - }, - "node_modules/@peculiar/asn1-csr": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.8.0.tgz", - "integrity": "sha512-akbF8+uvleHs8sejNPQxwmVFuInAg6FMNHOwMILXfP518YfFJwdR3jr6oNUPOaEJfuEhn/vkNOCIT6ASUd4mbg==", - "license": "MIT", - "dependencies": { - "@peculiar/asn1-schema": "^2.8.0", - "@peculiar/asn1-x509": "^2.8.0", - "asn1js": "^3.0.10", - "tslib": "^2.8.1" - } - }, - "node_modules/@peculiar/asn1-ecc": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.8.0.tgz", - "integrity": "sha512-ohwlk+u9Rv2NOAY1c6MfHj45ATVF8R1DUN/WCgABiRtLi2ZftlZWZX7KvpAbU8v9xPcmoILfELeEABj/rn18AQ==", - "license": "MIT", - "dependencies": { - "@peculiar/asn1-schema": "^2.8.0", - "@peculiar/asn1-x509": "^2.8.0", - "asn1js": "^3.0.10", - "tslib": "^2.8.1" - } - }, - "node_modules/@peculiar/asn1-pfx": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.8.0.tgz", - "integrity": "sha512-5yof1ytoB++RQtaFbqSUJ8pxDJtZT6vbVqZ8XoJ61ph7UjNVvfFwAilnCodqkNsAodpy13gDhoxZXw00pghnyg==", - "license": "MIT", - "dependencies": { - "@peculiar/asn1-cms": "^2.8.0", - "@peculiar/asn1-pkcs8": "^2.8.0", - "@peculiar/asn1-rsa": "^2.8.0", - "@peculiar/asn1-schema": "^2.8.0", - "asn1js": "^3.0.10", - "tslib": "^2.8.1" - } - }, - "node_modules/@peculiar/asn1-pkcs8": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.8.0.tgz", - "integrity": "sha512-qAKXtLpBEw9LqhKpjw3ajZSXlBur+ipW+y2ivVBQAG6F6qRx94yO+1ZR4mvw+YaCfKSaOzLeYEzsPaBp4SJELA==", - "license": "MIT", - "dependencies": { - "@peculiar/asn1-schema": "^2.8.0", - "@peculiar/asn1-x509": "^2.8.0", - "asn1js": "^3.0.10", - "tslib": "^2.8.1" - } - }, - "node_modules/@peculiar/asn1-pkcs9": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.8.0.tgz", - "integrity": "sha512-b5nDWCnkV60+cQ141D6sVVwK9nz64R5n3zSVnklGd+ECdkW2Ol3U1a6yYFlalpSOaD557yuJB64A+q42jG7lUQ==", - "license": "MIT", - "dependencies": { - "@peculiar/asn1-cms": "^2.8.0", - "@peculiar/asn1-pfx": "^2.8.0", - "@peculiar/asn1-pkcs8": "^2.8.0", - "@peculiar/asn1-schema": "^2.8.0", - "@peculiar/asn1-x509": "^2.8.0", - "@peculiar/asn1-x509-attr": "^2.8.0", - "asn1js": "^3.0.10", - "tslib": "^2.8.1" - } - }, - "node_modules/@peculiar/asn1-rsa": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.8.0.tgz", - "integrity": "sha512-zHEUlCqB2mk7x2lxDwHHJy7hWZOPdGHVlsmITWKB5/PbQo61atbu9PJ/0r9dQNMwFzbKPXZ8uK8/91eUhRznSg==", - "license": "MIT", - "dependencies": { - "@peculiar/asn1-schema": "^2.8.0", - "@peculiar/asn1-x509": "^2.8.0", - "asn1js": "^3.0.10", - "tslib": "^2.8.1" - } - }, - "node_modules/@peculiar/asn1-schema": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.8.0.tgz", - "integrity": "sha512-7YT0U/ze0tF2QOBbE15gKZwy5tvgGyLRiRHLzhlbOpf7BT032oBSd0haZqXn5W6l26WLlu3dyxzjM+2638/z2Q==", - "license": "MIT", - "dependencies": { - "@peculiar/utils": "^2.0.2", - "asn1js": "^3.0.10", - "tslib": "^2.8.1" - } - }, - "node_modules/@peculiar/asn1-x509": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.8.0.tgz", - "integrity": "sha512-N0CMuhWUzsWEVq6F1q9X6+VKUnWzSW+cSVg+aPaGGwDdbFoFWTYgin5MHwXgpWd6y9COMBxnfy/Qc+Xc7F0Zwg==", - "license": "MIT", - "dependencies": { - "@peculiar/asn1-schema": "^2.8.0", - "@peculiar/utils": "^2.0.2", - "asn1js": "^3.0.10", - "tslib": "^2.8.1" - } - }, - "node_modules/@peculiar/asn1-x509-attr": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.8.0.tgz", - "integrity": "sha512-tHjkfS/qhMnmrlB2J9NhflQlQ7In3khO3CfmVrriOlpTeErY9ZIKOso1hQ5JQiyrJ7ShvqVPk7E5fQmbclkSKA==", - "license": "MIT", - "dependencies": { - "@peculiar/asn1-schema": "^2.8.0", - "@peculiar/asn1-x509": "^2.8.0", - "asn1js": "^3.0.10", - "tslib": "^2.8.1" - } - }, - "node_modules/@peculiar/utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@peculiar/utils/-/utils-2.0.3.tgz", - "integrity": "sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ==", - "license": "MIT", - "dependencies": { - "tslib": "^2.8.1" - } - }, - "node_modules/@peculiar/x509": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/@peculiar/x509/-/x509-1.14.3.tgz", - "integrity": "sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA==", - "license": "MIT", - "dependencies": { - "@peculiar/asn1-cms": "^2.6.0", - "@peculiar/asn1-csr": "^2.6.0", - "@peculiar/asn1-ecc": "^2.6.0", - "@peculiar/asn1-pkcs9": "^2.6.0", - "@peculiar/asn1-rsa": "^2.6.0", - "@peculiar/asn1-schema": "^2.6.0", - "@peculiar/asn1-x509": "^2.6.0", - "pvtsutils": "^1.3.6", - "reflect-metadata": "^0.2.2", - "tslib": "^2.8.1", - "tsyringe": "^4.10.0" - }, - "engines": { - "node": ">=20.0.0" - } - }, - "node_modules/@reduxjs/toolkit": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.12.0.tgz", - "integrity": "sha512-KiT+RzZbp6mQET+Mg+h2c97+9j1sNflUxQkIHI7Yuzf6Peu+OYpmkn6nbHWmLLWj+1ZODUJFwGZ7gx3L9R9EOw==", - "license": "MIT", - "dependencies": { - "@standard-schema/spec": "^1.0.0", - "@standard-schema/utils": "^0.3.0", - "immer": "^11.0.0", - "redux": "^5.0.1", - "redux-thunk": "^3.1.0", - "reselect": "^5.1.0" - }, - "peerDependencies": { - "react": "^16.9.0 || ^17.0.0 || ^18 || ^19", - "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-redux": { - "optional": true - } - } - }, - "node_modules/@rtsao/scc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", - "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", - "dev": true, - "license": "MIT" - }, - "node_modules/@standard-schema/spec": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", - "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", - "license": "MIT" - }, - "node_modules/@standard-schema/utils": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz", - "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==", - "license": "MIT" - }, - "node_modules/@swc/helpers": { - "version": "0.5.15", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", - "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.8.0" - } - }, - "node_modules/@tailwindcss/node": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.3.tgz", - "integrity": "sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/remapping": "^2.3.5", - "enhanced-resolve": "^5.24.1", - "jiti": "^2.7.0", - "lightningcss": "1.32.0", - "magic-string": "^0.30.21", - "source-map-js": "^1.2.1", - "tailwindcss": "4.3.3" - } - }, - "node_modules/@tailwindcss/oxide": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.3.tgz", - "integrity": "sha512-krXjAikiaFSPaK/FkAQT5UTx3VormQaiZ5hBFlJZ9UFQGB/rwg1MZIhHAG9smMQRTdyJxP6Qt5MwMtdyU5FWrA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 20" - }, - "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.3.3", - "@tailwindcss/oxide-darwin-arm64": "4.3.3", - "@tailwindcss/oxide-darwin-x64": "4.3.3", - "@tailwindcss/oxide-freebsd-x64": "4.3.3", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.3", - "@tailwindcss/oxide-linux-arm64-gnu": "4.3.3", - "@tailwindcss/oxide-linux-arm64-musl": "4.3.3", - "@tailwindcss/oxide-linux-x64-gnu": "4.3.3", - "@tailwindcss/oxide-linux-x64-musl": "4.3.3", - "@tailwindcss/oxide-wasm32-wasi": "4.3.3", - "@tailwindcss/oxide-win32-arm64-msvc": "4.3.3", - "@tailwindcss/oxide-win32-x64-msvc": "4.3.3" - } - }, - "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.3.tgz", - "integrity": "sha512-Y85A2gmPSkl5Ve5qR86GL4HT509cFqQh1aes9p3sSkyTPwt0Pppf3GkwGe4JPACcRYjgJIEhQgM6dBClnr0NYw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 20" - } - }, - "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.3.tgz", - "integrity": "sha512-BiaWatpBcERQFDlOjRDpIVXuFK5PJez5SA4JMg6VYZdBYU+qKfV/vqjcIs+IYmtitf1xYQZTwXvU/8y4lfZUGw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 20" - } - }, - "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.3.tgz", - "integrity": "sha512-fAeUqfV5ndhxRwai8cXGzdLvul9utWOmeTkv69unv4ZXixjn61Z+p9lCWdwOwA3TYboG3BwdVuN/RDjhBRl0mw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 20" - } - }, - "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.3.tgz", - "integrity": "sha512-iyf5bV6+wnAlflVeEy7R25dupxTNECZN5QMI0qNT6eT+EgaGdZcKhGkr5SdoaWiLJ3spLqIY9VCeSGrwmtg4kw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 20" - } - }, - "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.3.tgz", - "integrity": "sha512-aAYUprJAJQWWbRrPvtjdroZ56Md+JM8pMiopS6xGEwDfLhqj+2ver2p4nU4Mb3CRqcMmNBjo8KkUgcxhkzVQGQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 20" - } - }, - "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.3.tgz", - "integrity": "sha512-nDxldcEENOxZRzC2uu9jrutZdAAQtb+8WWDCSnWL1zvBk1+FN+x6MtDViPB5AJMfttVCUhehGWus3XBPgatM/w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 20" - } - }, - "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.3.tgz", - "integrity": "sha512-Md44bD6veX/PC5iyF8cDVnw4HBIANZepRZZ7a8DQOvkfo5WUBwcp6iAuCUz23u+4SUkhJlD3eL7hNdW8ezd/kA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 20" - } - }, - "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.3.tgz", - "integrity": "sha512-tx7us1muwOKAKWao2v/GaafFeQboE6aj88vC6ziN2NCGcRm8gWUhwjzg+YdVB1e4boAtdtma4L43onunI6NS4w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 20" - } - }, - "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.3.tgz", - "integrity": "sha512-SJxX60smvHgasZoBy11dX6YRjXJFovwWBoedhbQPOBzgFWBHGB+TVPWB9BxzR7TTxU8FQZAI2AyiNCMzFm8Img==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 20" - } - }, - "node_modules/@tailwindcss/oxide-wasm32-wasi": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.3.tgz", - "integrity": "sha512-jx1+rPhY/5Ympkktd656HBWEBLxP7dH06losBLjjf5vgCODXvi9KhtftWcMIwTFIDqBr7cRnQkdLnAG+IOlGvQ==", - "bundleDependencies": [ - "@napi-rs/wasm-runtime", - "@emnapi/core", - "@emnapi/runtime", - "@tybys/wasm-util", - "@emnapi/wasi-threads", - "tslib" - ], - "cpu": [ - "wasm32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "^1.11.1", - "@emnapi/runtime": "^1.11.1", - "@emnapi/wasi-threads": "^1.2.2", - "@napi-rs/wasm-runtime": "^1.1.4", - "@tybys/wasm-util": "^0.10.2", - "tslib": "^2.8.1" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.3.tgz", - "integrity": "sha512-3rc292Ca2ceK6Ulcc/bAVnTs/3nDtoPhyEKlgPv+yQJQi/JS/AMJlqzxvlDacL1nekbrcf6bTqp/jV4qgnPxNQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 20" - } - }, - "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.3.tgz", - "integrity": "sha512-yJ0pwIVc/nYeGoV02WtsN8KYyLQv7kyI2wDnkezyJlGGjkd4QLwDGAwl47YpPJeuI0M0ObaXGSPjvWDPeTPggw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 20" - } - }, - "node_modules/@tailwindcss/postcss": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.3.3.tgz", - "integrity": "sha512-JTSZZGQi1AyKirbLN3azmjVzef92tcX7h+iSqPdaeStyFpGpDlKvvpxeOE8njhbUanbRwr3z8DyzhICWnMtQeg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "@tailwindcss/node": "4.3.3", - "@tailwindcss/oxide": "4.3.3", - "postcss": "^8.5.16", - "tailwindcss": "4.3.3" - } - }, - "node_modules/@tybys/wasm-util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", - "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@types/d3-array": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", - "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", - "license": "MIT" - }, - "node_modules/@types/d3-color": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", - "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", - "license": "MIT" - }, - "node_modules/@types/d3-drag": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", - "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", - "license": "MIT", - "dependencies": { - "@types/d3-selection": "*" - } - }, - "node_modules/@types/d3-ease": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", - "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", - "license": "MIT" - }, - "node_modules/@types/d3-interpolate": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", - "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", - "license": "MIT", - "dependencies": { - "@types/d3-color": "*" - } - }, - "node_modules/@types/d3-path": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", - "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", - "license": "MIT" - }, - "node_modules/@types/d3-scale": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", - "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", - "license": "MIT", - "dependencies": { - "@types/d3-time": "*" - } - }, - "node_modules/@types/d3-selection": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz", - "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==", - "license": "MIT" - }, - "node_modules/@types/d3-shape": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz", - "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==", - "license": "MIT", - "dependencies": { - "@types/d3-path": "*" - } - }, - "node_modules/@types/d3-time": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", - "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", - "license": "MIT" - }, - "node_modules/@types/d3-timer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", - "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", - "license": "MIT" - }, - "node_modules/@types/d3-transition": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz", - "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==", - "license": "MIT", - "dependencies": { - "@types/d3-selection": "*" - } - }, - "node_modules/@types/d3-zoom": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", - "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", - "license": "MIT", - "dependencies": { - "@types/d3-interpolate": "*", - "@types/d3-selection": "*" - } - }, - "node_modules/@types/debug": { - "version": "4.1.13", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz", - "integrity": "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==", - "license": "MIT", - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", - "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/http-proxy": { - "version": "1.17.17", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.17.tgz", - "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/ms": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", - "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "26.1.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.2.tgz", - "integrity": "sha512-Vu4a5UFA9rIIFJ7rB/Vaafh9lrCQszopTCx6KjFboXTGQbPNasehVR5TEiithSDGyd1DEiUByggTZsg8jukeIg==", - "license": "MIT", - "dependencies": { - "undici-types": "~8.3.0" - } - }, - "node_modules/@types/qs": { - "version": "6.15.1", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.1.tgz", - "integrity": "sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw==", - "license": "MIT" - }, - "node_modules/@types/trusted-types": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", - "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", - "license": "MIT", - "optional": true - }, - "node_modules/@types/use-sync-external-store": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz", - "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==", - "license": "MIT" - }, - "node_modules/@types/xml-encryption": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/xml-encryption/-/xml-encryption-1.2.4.tgz", - "integrity": "sha512-I69K/WW1Dv7j6O3jh13z0X8sLWJRXbu5xnHDl9yHzUNDUBtUoBY058eb5s+x/WG6yZC1h8aKdI2EoyEPjyEh+Q==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/xml2js": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/@types/xml2js/-/xml2js-0.4.14.tgz", - "integrity": "sha512-4YnrRemBShWRO2QjvUin8ESA41rH+9nQGLUGZV/1IDhi3SL9OhdpNC/MrulTWuptXKwhx/aDxE7toV0f/ypIXQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.66.0.tgz", - "integrity": "sha512-p088eaGrzYz1s+7cov0aMOCkNGTJlVxF4jgubf28c8L0Cv9Rloj8YBHnv4hXLq6IIEE1AsjNWavO+k+8kP2Y0A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.66.0", - "@typescript-eslint/type-utils": "8.66.0", - "@typescript-eslint/utils": "8.66.0", - "@typescript-eslint/visitor-keys": "8.66.0", - "ignore": "^7.0.5", - "natural-compare": "^1.4.0", - "ts-api-utils": "^2.5.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^8.66.0", - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.6.tgz", - "integrity": "sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.66.0.tgz", - "integrity": "sha512-X6ypGChaWYk6PBtUg2BwuTZEFFcHJAtGTVJ9/lCTOufhZ4i9fNolQNnktq+kkMCwMj7V8Svsq7+TxSDslmhE0g==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@typescript-eslint/scope-manager": "8.66.0", - "@typescript-eslint/types": "8.66.0", - "@typescript-eslint/typescript-estree": "8.66.0", - "@typescript-eslint/visitor-keys": "8.66.0", - "debug": "^4.4.3" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@typescript-eslint/project-service": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.66.0.tgz", - "integrity": "sha512-7MthGPTt4BP69lSryqpqq8HQqxuzynssckL/jyDyk3+TNMQ3y2jFWkptCrktWvBrP+EH787Nl5N5Qpw7WZg+5g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.66.0", - "@typescript-eslint/types": "^8.66.0", - "debug": "^4.4.3" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.66.0.tgz", - "integrity": "sha512-8TGcH25j9zqJ/IULB/ppyhRvxA8QYfFEZ7nfbg6/BN9spDgb8fPWQXlE5l8TWBL50EtUx007uZ1o9VOwrq2/9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.66.0", - "@typescript-eslint/visitor-keys": "8.66.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.66.0.tgz", - "integrity": "sha512-9D5gLYZG4rOjcoag8MQ/fWI8WqA9wcPDyOGyWtWFhvM1lHRbliqUSPIY5J3zqCU1tvSwzXxnnjhQhz5Ne7mJ4g==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.66.0.tgz", - "integrity": "sha512-LG2dWfjZQQp0ADtAu/EWJVayefGL2UEZ3CDeI44D9v3rXB/WYUqE/jpO28KrEKul5AySrmI+Zh1v6v+xW2U9+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.66.0", - "@typescript-eslint/typescript-estree": "8.66.0", - "@typescript-eslint/utils": "8.66.0", - "debug": "^4.4.3", - "ts-api-utils": "^2.5.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.66.0.tgz", - "integrity": "sha512-H6gcYaSDOyvL3AD/jHUtUFo2jqGgn/F6nuyuZSu0QTesxL+cP4dQoIMrODRofuJC09g64+WgZ6tE19Y1N2YIFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.66.0.tgz", - "integrity": "sha512-8/x4INiiQb10jGgXYD7116/zQ+OL84ZIFn0za68wwFHCanT/VLbBEroWht8RV8fn0/ZCAoazHLQgwUC0UQcDfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/project-service": "8.66.0", - "@typescript-eslint/tsconfig-utils": "8.66.0", - "@typescript-eslint/types": "8.66.0", - "@typescript-eslint/visitor-keys": "8.66.0", - "debug": "^4.4.3", - "minimatch": "^10.2.2", - "semver": "^7.7.3", - "tinyglobby": "^0.2.15", - "ts-api-utils": "^2.5.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz", - "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "10.2.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", - "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.8" - }, - "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.8.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", - "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.66.0.tgz", - "integrity": "sha512-jasearZPolBw5NJNYGMwxzHMF83niVWmMU1VdHzG1CyfI2VS7f7nZltnKtHcg20hW+7Uo5GfK4MeDPoU3qI8EA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.66.0", - "@typescript-eslint/types": "8.66.0", - "@typescript-eslint/typescript-estree": "8.66.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.66.0.tgz", - "integrity": "sha512-dkKR8q+lKciskj1Y3vthHktl+3cMLWGyVUP23bRiPZ5O9BRT++4EqDDV+TVeIKBL1VXVEqrJlz8MYbcnvJcAlg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.66.0", - "eslint-visitor-keys": "^5.0.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", - "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^20.19.0 || ^22.13.0 || >=24" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@unrs/resolver-binding-android-arm-eabi": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.12.2.tgz", - "integrity": "sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@unrs/resolver-binding-android-arm64": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.12.2.tgz", - "integrity": "sha512-YGCRZv/9GLhwmz6mYDeTsm/92BAyR28l6c2ReweVW5pWgfsitWLY8upvfRlGdoyD8HjeTHSYJWyZGD4KJA/nFQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@unrs/resolver-binding-darwin-arm64": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.12.2.tgz", - "integrity": "sha512-u9DiNT1auQMO20A9SyTuG3wUgQWB9Z7KjAg0uFuCDR1FsAY8A0CG2S6JpHS1xwm/w1G08bjXZDcyOCjv1WAm2w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@unrs/resolver-binding-darwin-x64": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.12.2.tgz", - "integrity": "sha512-f7rPLi/T1HVKZu/u6t87lroib16n8vrSzcyxI7lg4BGO9UF26KhQL44sd9eOUgrTYhvRXtWOIZT5PejdPyJfUA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@unrs/resolver-binding-freebsd-x64": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.12.2.tgz", - "integrity": "sha512-BpcOjWCJub6nRZUS2zA20pmLvjtqAtGejETaIyRLiZiQf++cbrjltLA5NN/xaXfqeOBOSlMFbemIl5/S5tljmg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.12.2.tgz", - "integrity": "sha512-vZTDvdSISZjJx66OzJqtsOhzifbqRjbmI1Mnu49fQDwog5GtDI4QidRiEAYbZCRj9C8YZEW+3ZjqsyS9GR4k2A==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.12.2.tgz", - "integrity": "sha512-BiPI+IrIlwcW4nLLMM21+B1dFPzd55yAVgVGrdgDjNef+ch03GdxrcyaIz8X9SsQirh/kCQ7mviyWlMxdh2D7g==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.12.2.tgz", - "integrity": "sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-arm64-musl": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.12.2.tgz", - "integrity": "sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-loong64-gnu": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-loong64-gnu/-/resolver-binding-linux-loong64-gnu-1.12.2.tgz", - "integrity": "sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-loong64-musl": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-loong64-musl/-/resolver-binding-linux-loong64-musl-1.12.2.tgz", - "integrity": "sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.12.2.tgz", - "integrity": "sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.12.2.tgz", - "integrity": "sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.12.2.tgz", - "integrity": "sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.12.2.tgz", - "integrity": "sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-x64-gnu": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.12.2.tgz", - "integrity": "sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-x64-musl": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.12.2.tgz", - "integrity": "sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-openharmony-arm64": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-openharmony-arm64/-/resolver-binding-openharmony-arm64-1.12.2.tgz", - "integrity": "sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ] - }, - "node_modules/@unrs/resolver-binding-wasm32-wasi": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.12.2.tgz", - "integrity": "sha512-tYFDIkMxSflfEc/h92ZWNsZlHSwgimbNHSO3PL2JWQHfCuC2q316jMyYU9TIWZsFK2bQwyK5VAdYgn8ygPj69A==", - "cpu": [ - "wasm32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "1.10.0", - "@emnapi/runtime": "1.10.0", - "@napi-rs/wasm-runtime": "^1.1.4" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@unrs/resolver-binding-wasm32-wasi/node_modules/@emnapi/runtime": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", - "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.12.2.tgz", - "integrity": "sha512-qzNyg3xL0VPQmCaUh+N5jSitce6k+uCBfMDesWRnlULOZaqUkaJ0ybdT+UqlAWJoQjuqfIU/0Ptx9bteN4D82g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.12.2.tgz", - "integrity": "sha512-WD9sY00OfpHVGfsnHZoA8jVT+esS/Bg8z8jzxp5BnDCjjwsuKsPQrzswwpFy4J1AUJbXPRfkpcX0mXrzeXW79g==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@unrs/resolver-binding-win32-x64-msvc": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.12.2.tgz", - "integrity": "sha512-nAB74NfSNKknqQ1RrYj6uz8FcXEomu/MATJZxh/x+BArzN2U3JbOYC0APYzUIGhVY3m5hRxA8VPNdPBoG8txlA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@xmldom/is-dom-node": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@xmldom/is-dom-node/-/is-dom-node-1.0.1.tgz", - "integrity": "sha512-CJDxIgE5I0FH+ttq/Fxy6nRpxP70+e2O048EPe85J2use3XKdatVM7dDVvFNjQudd9B49NPoZ+8PG49zj4Er8Q==", - "license": "MIT", - "engines": { - "node": ">= 16" - } - }, - "node_modules/@xmldom/xmldom": { - "version": "0.8.14", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.14.tgz", - "integrity": "sha512-T4EDRUBVZYRldYApjEJiU0e1stYWaRAX7CuSnKzrpwdZKo53zGV8/pqfzV6FfwNl9YThD2OumQYvqtvjvgG7aQ==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@xyflow/react": { - "version": "12.11.2", - "resolved": "https://registry.npmjs.org/@xyflow/react/-/react-12.11.2.tgz", - "integrity": "sha512-eLAlDWJfWnQEhJwGMjlWdAXO9eYllKpliUmPQlAmOLxz6mExXuzMVDUKLMquixgkrtmMFFtug3jGKmYYld12cA==", - "license": "MIT", - "dependencies": { - "@xyflow/system": "0.0.79", - "classcat": "^5.0.3", - "zustand": "^4.4.0" - }, - "peerDependencies": { - "@types/react": ">=17", - "@types/react-dom": ">=17", - "react": ">=17", - "react-dom": ">=17" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@xyflow/react/node_modules/zustand": { - "version": "4.5.7", - "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.7.tgz", - "integrity": "sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw==", - "license": "MIT", - "dependencies": { - "use-sync-external-store": "^1.2.2" - }, - "engines": { - "node": ">=12.7.0" - }, - "peerDependencies": { - "@types/react": ">=16.8", - "immer": ">=9.0.6", - "react": ">=16.8" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "immer": { - "optional": true - }, - "react": { - "optional": true - } - } - }, - "node_modules/@xyflow/system": { - "version": "0.0.79", - "resolved": "https://registry.npmjs.org/@xyflow/system/-/system-0.0.79.tgz", - "integrity": "sha512-czLyOh91NF0hIzbNzwi8I6GlqG23BHh2435OddfI6uiaLH3xdrdygO93gqgH1Bv9mhy8XPFQJOBn1FTq4LvEWA==", - "license": "MIT", - "dependencies": { - "@types/d3-drag": "^3.0.7", - "@types/d3-interpolate": "^3.0.4", - "@types/d3-selection": "^3.0.10", - "@types/d3-transition": "^3.0.8", - "@types/d3-zoom": "^3.0.8", - "d3-drag": "^3.0.0", - "d3-interpolate": "^3.0.1", - "d3-selection": "^3.0.0", - "d3-zoom": "^3.0.0" - } - }, - "node_modules/accepts": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", - "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", - "license": "MIT", - "dependencies": { - "mime-types": "^3.0.0", - "negotiator": "^1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.18.0.tgz", - "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==", - "dev": true, - "license": "MIT", - "peer": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/agent-base": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, - "node_modules/ajv": { - "version": "6.15.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", - "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/aria-query": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", - "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", - "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "is-array-buffer": "^3.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-includes": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", - "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.24.0", - "es-object-atoms": "^1.1.1", - "get-intrinsic": "^1.3.0", - "is-string": "^1.1.1", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.findlast": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", - "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", - "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "es-shim-unscopables": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", - "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", - "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", - "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", - "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/asn1js": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.10.tgz", - "integrity": "sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg==", - "license": "BSD-3-Clause", - "dependencies": { - "pvtsutils": "^1.3.6", - "pvutils": "^1.1.5", - "tslib": "^2.8.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/ast-types-flow": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", - "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/async-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", - "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/axe-core": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.12.1.tgz", - "integrity": "sha512-s7iGf5GaVMxEG0ENN9x+xTr7GFZCb1ZP/1uATUpCEK2X78nDB3RwbtFCo9pGAf9ru+VwoQ464DkaLEeRM08wJA==", - "dev": true, - "license": "MPL-2.0", - "engines": { - "node": ">=4" - } - }, - "node_modules/axobject-query": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", - "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "optional": true - }, - "node_modules/baseline-browser-mapping": { - "version": "2.11.12", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.12.tgz", - "integrity": "sha512-r7WnVImvVCeFpf2DOXfy41aPWzeNg3H/A2X4dKmy1QL0MSyyk/e7z8ihJ3N6Nn2PsdhkVlqnEfnUE4a05P2aTA==", - "license": "Apache-2.0", - "bin": { - "baseline-browser-mapping": "dist/cli.cjs" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/bcryptjs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-3.0.3.tgz", - "integrity": "sha512-GlF5wPWnSa/X5LKM1o0wz0suXIINz1iHRLvTS+sLyi7XPbe5ycmYI3DlZqVGZZtDgl4DmasFg7gOB3JYbphV5g==", - "license": "BSD-3-Clause", - "bin": { - "bcrypt": "bin/bcrypt" - } - }, - "node_modules/better-sqlite3": { - "version": "12.11.1", - "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.11.1.tgz", - "integrity": "sha512-dq9AtApgg5PGFtBzPFSBl3HZQjHok5gaQCM6zh2Yk0aSmDCs1CbnVI8/HgASQkNKsWFpseIO9beg5xxpYhbIfA==", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "dependencies": { - "bindings": "^1.5.0", - "prebuild-install": "^7.1.1" - }, - "engines": { - "node": "20.x || 22.x || 23.x || 24.x || 25.x || 26.x" - } - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "license": "MIT", - "optional": true, - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "license": "MIT", - "optional": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/body-parser": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.3.0.tgz", - "integrity": "sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==", - "license": "MIT", - "dependencies": { - "bytes": "^3.1.2", - "content-type": "^2.0.0", - "debug": "^4.4.3", - "http-errors": "^2.0.1", - "iconv-lite": "^0.7.2", - "on-finished": "^2.4.1", - "qs": "^6.15.2", - "raw-body": "^3.0.2", - "type-is": "^2.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/body-parser/node_modules/content-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.0.0.tgz", - "integrity": "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.18", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", - "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.28.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.7.tgz", - "integrity": "sha512-JxV13hNrFxqjOc8alRbq9dK1MM79NEXYpma2B2J4wAtpWS5zIEIKqWPGCl7N4o7Uc7B7itylh7SuDujATRyyTw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "peer": true, - "dependencies": { - "baseline-browser-mapping": "^2.10.44", - "caniuse-lite": "^1.0.30001806", - "electron-to-chromium": "^1.5.393", - "node-releases": "^2.0.51", - "update-browserslist-db": "^1.2.3" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "optional": true, - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/bundle-name": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", - "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", - "license": "MIT", - "dependencies": { - "run-applescript": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/bytestreamjs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bytestreamjs/-/bytestreamjs-2.0.1.tgz", - "integrity": "sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/call-bind": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", - "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "get-intrinsic": "^1.3.0", - "set-function-length": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001806", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001806.tgz", - "integrity": "sha512-72Cuvd95zbSYPKq6Fhg8eDJRlzgWDf7/mtoZv6Qe/DYNCEBdNxoA3+rZAU2ZhGCpZlns3EssFavaZomckT5Uuw==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/chalk": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", - "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "license": "ISC", - "optional": true - }, - "node_modules/classcat": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/classcat/-/classcat-5.0.5.tgz", - "integrity": "sha512-JhZUT7JFcQy/EzW605k/ktHtncoo9vnyW/2GspNYwFlN1C/WmjuV/xtS04e9SOkL2sTdw0VAZ2UGCcQ9lR6p6w==", - "license": "MIT" - }, - "node_modules/cli-cursor": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", - "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", - "license": "MIT", - "dependencies": { - "restore-cursor": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-spinners": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-3.4.0.tgz", - "integrity": "sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==", - "license": "MIT", - "engines": { - "node": ">=18.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/client-only": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", - "license": "MIT" - }, - "node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT" - }, - "node_modules/confbox": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.4.tgz", - "integrity": "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==", - "license": "MIT" - }, - "node_modules/content-disposition": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz", - "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, - "node_modules/cookie": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", - "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", - "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", - "license": "MIT", - "engines": { - "node": ">=6.6.0" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/d3-array": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", - "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", - "license": "ISC", - "dependencies": { - "internmap": "1 - 2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-dispatch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", - "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-drag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", - "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", - "license": "ISC", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-selection": "3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-ease": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", - "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-format": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz", - "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "license": "ISC", - "dependencies": { - "d3-color": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", - "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-scale": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", - "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", - "license": "ISC", - "dependencies": { - "d3-array": "2.10.0 - 3", - "d3-format": "1 - 3", - "d3-interpolate": "1.2.0 - 3", - "d3-time": "2.1.1 - 3", - "d3-time-format": "2 - 4" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-selection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", - "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", - "license": "ISC", - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-shape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", - "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", - "license": "ISC", - "dependencies": { - "d3-path": "^3.1.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", - "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", - "license": "ISC", - "dependencies": { - "d3-array": "2 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time-format": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", - "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", - "license": "ISC", - "dependencies": { - "d3-time": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-timer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", - "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-transition": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", - "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", - "license": "ISC", - "dependencies": { - "d3-color": "1 - 3", - "d3-dispatch": "1 - 3", - "d3-ease": "1 - 3", - "d3-interpolate": "1 - 3", - "d3-timer": "1 - 3" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "d3-selection": "2 - 3" - } - }, - "node_modules/d3-zoom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", - "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", - "license": "ISC", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-drag": "2 - 3", - "d3-interpolate": "1 - 3", - "d3-selection": "2 - 3", - "d3-transition": "2 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/data-view-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", - "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", - "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/inspect-js" - } - }, - "node_modules/data-view-byte-offset": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", - "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decimal.js-light": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", - "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==", - "license": "MIT" - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "license": "MIT", - "optional": true, - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/default-browser": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.0.tgz", - "integrity": "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==", - "license": "MIT", - "dependencies": { - "bundle-name": "^4.1.0", - "default-browser-id": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/default-browser-id": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", - "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-lazy-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", - "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/detect-libc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", - "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", - "devOptional": true, - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/dompurify": { - "version": "3.4.13", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.13.tgz", - "integrity": "sha512-2vmYIoqjze2d+kakP8S/nS5shfsl587kzwEjcGlTdiksUVgFHnFCsLYDVj/JNqJVOQZGSYBTmuycv0PodwmnMQ==", - "license": "(MPL-2.0 OR Apache-2.0)", - "optionalDependencies": { - "@types/trusted-types": "^2.0.7" - } - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.5.401", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.401.tgz", - "integrity": "sha512-H6ViHN68nGYlChEvlIU67fn8O2/tpbWQPwck98yaJmh+08LSvHiydzDQ6oXNccLU3kNRVIRS9A4mA7CG+i6fLQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", - "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", - "license": "MIT", - "optional": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.24.5", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.5.tgz", - "integrity": "sha512-L1l8TNvomm6UVW5B253AGxQagSQr+vGwhMlrrfRS2qmhx46AMpMVJKQYLvWYbysTMY8VoicOvzHzoHMbyzB+4A==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.3.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/es-abstract": { - "version": "1.24.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.2.tgz", - "integrity": "sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.2", - "arraybuffer.prototype.slice": "^1.0.4", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "data-view-buffer": "^1.0.2", - "data-view-byte-length": "^1.0.2", - "data-view-byte-offset": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "es-set-tostringtag": "^2.1.0", - "es-to-primitive": "^1.3.0", - "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.3.0", - "get-proto": "^1.0.1", - "get-symbol-description": "^1.1.0", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "internal-slot": "^1.1.0", - "is-array-buffer": "^3.0.5", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.2", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.2.1", - "is-set": "^2.0.3", - "is-shared-array-buffer": "^1.0.4", - "is-string": "^1.1.1", - "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.1", - "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.4", - "object-keys": "^1.1.1", - "object.assign": "^4.1.7", - "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.4", - "safe-array-concat": "^1.1.3", - "safe-push-apply": "^1.0.0", - "safe-regex-test": "^1.1.0", - "set-proto": "^1.0.0", - "stop-iteration-iterator": "^1.1.0", - "string.prototype.trim": "^1.2.10", - "string.prototype.trimend": "^1.0.9", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.3", - "typed-array-byte-length": "^1.0.3", - "typed-array-byte-offset": "^1.0.4", - "typed-array-length": "^1.0.7", - "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.19" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-abstract-get": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-abstract-get/-/es-abstract-get-1.0.0.tgz", - "integrity": "sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.2", - "is-callable": "^1.2.7", - "object-inspect": "^1.13.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-iterator-helpers": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.4.0.tgz", - "integrity": "sha512-c/A0P0oxkACDc+cKWw8evLXK83oBKgn0qPOqCYT4x9uolpCIJAcYvJC9QYKNDRPsTeGyCrQ326jrvgZWdCdK5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.9", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.24.2", - "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.1.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.3.0", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "internal-slot": "^1.1.0", - "iterator.prototype": "^1.1.5", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", - "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", - "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.4.tgz", - "integrity": "sha512-yPDz7wqpg1/mmHLmS3tcfTfbw5f1eryXvyghYBffGdERwe+mV7ZcWzTR8LR17Kvqt3qfPurjlonmnq3MKXIOXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-abstract-get": "^1.0.0", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "is-callable": "^1.2.7", - "is-date-object": "^1.1.0", - "is-symbol": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-toolkit": { - "version": "1.50.0", - "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.50.0.tgz", - "integrity": "sha512-OyZKhUVvEep9ITEiwHn8GKnMRQIVqoSIX7WnRbkWgJkllCujilqP2rD0u979tkl8wqyc8ICwlc1UBVv/Sl1G6w==", - "license": "MIT", - "workspaces": [ - "docs", - "benchmarks", - "tests/types" - ] - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "license": "MIT" - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "9.39.5", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.5.tgz", - "integrity": "sha512-DgZS62aPLXKlnxILS/AYCoRvHaZeXceIzlXPkkGGzJWSow1aEk0lbTlxUSlyjC8jcaKxAdOnTDz+o1JFSBsyjw==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.8.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.21.2", - "@eslint/config-helpers": "^0.4.2", - "@eslint/core": "^0.17.0", - "@eslint/eslintrc": "^3.3.6", - "@eslint/js": "9.39.5", - "@eslint/plugin-kit": "^0.4.1", - "@humanfs/node": "^0.16.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.2", - "@types/estree": "^1.0.6", - "ajv": "^6.14.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.6", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.4.0", - "eslint-visitor-keys": "^4.2.1", - "espree": "^10.4.0", - "esquery": "^1.5.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.5", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "jiti": "*" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } - } - }, - "node_modules/eslint-config-next": { - "version": "16.1.6", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-16.1.6.tgz", - "integrity": "sha512-vKq40io2B0XtkkNDYyleATwblNt8xuh3FWp8SpSz3pt7P01OkBFlKsJZ2mWt5WsCySlDQLckb1zMY9yE9Qy0LA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@next/eslint-plugin-next": "16.1.6", - "eslint-import-resolver-node": "^0.3.6", - "eslint-import-resolver-typescript": "^3.5.2", - "eslint-plugin-import": "^2.32.0", - "eslint-plugin-jsx-a11y": "^6.10.0", - "eslint-plugin-react": "^7.37.0", - "eslint-plugin-react-hooks": "^7.0.0", - "globals": "16.4.0", - "typescript-eslint": "^8.46.0" - }, - "peerDependencies": { - "eslint": ">=9.0.0", - "typescript": ">=3.3.1" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/eslint-config-next/node_modules/globals": { - "version": "16.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-16.4.0.tgz", - "integrity": "sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.10.tgz", - "integrity": "sha512-tRrKqFyCaKict5hOd244sL6EQFNycnMQnBe+j8uqGNXYzsImGbGUU4ibtoaBmv5FLwJwcFJNeg1GeVjQfbMrDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.16.1", - "resolve": "^2.0.0-next.6" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-import-resolver-typescript": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.1.tgz", - "integrity": "sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "@nolyfill/is-core-module": "1.0.39", - "debug": "^4.4.0", - "get-tsconfig": "^4.10.0", - "is-bun-module": "^2.0.0", - "stable-hash": "^0.0.5", - "tinyglobby": "^0.2.13", - "unrs-resolver": "^1.6.2" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint-import-resolver-typescript" - }, - "peerDependencies": { - "eslint": "*", - "eslint-plugin-import": "*", - "eslint-plugin-import-x": "*" - }, - "peerDependenciesMeta": { - "eslint-plugin-import": { - "optional": true - }, - "eslint-plugin-import-x": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.14.0.tgz", - "integrity": "sha512-W2WCRZ9Dqntd+2u8jJcVMV2PKulc6RdLgUUoh/yQr3uB6lo/ZOeGx11sv60/8S4QFFKNslAlWhr9u0Ef7ZW6Ig==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.32.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", - "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@rtsao/scc": "^1.1.0", - "array-includes": "^3.1.9", - "array.prototype.findlastindex": "^1.2.6", - "array.prototype.flat": "^1.3.3", - "array.prototype.flatmap": "^1.3.3", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.12.1", - "hasown": "^2.0.2", - "is-core-module": "^2.16.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "object.groupby": "^1.0.3", - "object.values": "^1.2.1", - "semver": "^6.3.1", - "string.prototype.trimend": "^1.0.9", - "tsconfig-paths": "^3.15.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", - "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "aria-query": "^5.3.2", - "array-includes": "^3.1.8", - "array.prototype.flatmap": "^1.3.2", - "ast-types-flow": "^0.0.8", - "axe-core": "^4.10.0", - "axobject-query": "^4.1.0", - "damerau-levenshtein": "^1.0.8", - "emoji-regex": "^9.2.2", - "hasown": "^2.0.2", - "jsx-ast-utils": "^3.3.5", - "language-tags": "^1.0.9", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "safe-regex-test": "^1.0.3", - "string.prototype.includes": "^2.0.1" - }, - "engines": { - "node": ">=4.0" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" - } - }, - "node_modules/eslint-plugin-react": { - "version": "7.37.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", - "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.8", - "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.3", - "array.prototype.tosorted": "^1.1.4", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.2.1", - "estraverse": "^5.3.0", - "hasown": "^2.0.2", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.9", - "object.fromentries": "^2.0.8", - "object.values": "^1.2.1", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.5", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.12", - "string.prototype.repeat": "^1.0.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" - } - }, - "node_modules/eslint-plugin-react-hooks": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.1.1.tgz", - "integrity": "sha512-f2I7Gw6JbvCexzIInuSbZpfdQ44D7iqdWX01FKLvrPgqxoE7oMj8clOfto8U6vYiz4yd5oKu39rRSVOe1zRu0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.24.4", - "@babel/parser": "^7.24.4", - "hermes-parser": "^0.25.1", - "zod": "^3.25.0 || ^4.0.0", - "zod-validation-error": "^3.5.0 || ^4.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 || ^10.0.0" - } - }, - "node_modules/eslint-scope": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", - "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/espree": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", - "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.15.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", - "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "license": "MIT" - }, - "node_modules/expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", - "license": "(MIT OR WTFPL)", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/express": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", - "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", - "license": "MIT", - "dependencies": { - "accepts": "^2.0.0", - "body-parser": "^2.2.1", - "content-disposition": "^1.0.0", - "content-type": "^1.0.5", - "cookie": "^0.7.1", - "cookie-signature": "^1.2.1", - "debug": "^4.4.0", - "depd": "^2.0.0", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "etag": "^1.8.1", - "finalhandler": "^2.1.0", - "fresh": "^2.0.0", - "http-errors": "^2.0.0", - "merge-descriptors": "^2.0.0", - "mime-types": "^3.0.0", - "on-finished": "^2.4.1", - "once": "^1.4.0", - "parseurl": "^1.3.3", - "proxy-addr": "^2.0.7", - "qs": "^6.14.0", - "range-parser": "^1.2.1", - "router": "^2.2.0", - "send": "^1.1.0", - "serve-static": "^2.2.0", - "statuses": "^2.0.1", - "type-is": "^2.0.1", - "vary": "^1.1.2" - }, - "engines": { - "node": ">= 18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fastq": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", - "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^4.0.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "license": "MIT", - "optional": true - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", - "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", - "license": "MIT", - "dependencies": { - "debug": "^4.4.0", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "on-finished": "^2.4.1", - "parseurl": "^1.3.3", - "statuses": "^2.0.1" - }, - "engines": { - "node": ">= 18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/flatted": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.4.tgz", - "integrity": "sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==", - "dev": true, - "license": "ISC" - }, - "node_modules/follow-redirects": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", - "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-each": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", - "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", - "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "license": "MIT", - "optional": true - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/function.prototype.name": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.2.0.tgz", - "integrity": "sha512-jObKIik1P2QjPHP5nz5BaOtUlfgS0fWo8IUByNXkM+o+02sJOi94em77GwJKQSJ3gfPHdgzLNrHc1uokV4P/ew==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.9", - "call-bound": "^1.0.4", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2", - "hasown": "^2.0.4", - "is-callable": "^1.2.7", - "is-document.all": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/generator-function": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", - "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-east-asian-width": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.6.0.tgz", - "integrity": "sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/get-symbol-description": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", - "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-tsconfig": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.1.tgz", - "integrity": "sha512-Dz/6HxkrxgNehhxLVeyv8sad9UzF2xBVeaKBQNDfJ5XiSXmp2gTR0eO0RWiT2NCKS5aGP9jjkOMggTN90qU50A==", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, - "node_modules/github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", - "license": "MIT", - "optional": true - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/has-bigints": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", - "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", - "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", - "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hermes-estree": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz", - "integrity": "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==", - "dev": true, - "license": "MIT" - }, - "node_modules/hermes-parser": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.25.1.tgz", - "integrity": "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "hermes-estree": "0.25.1" - } - }, - "node_modules/http-errors": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", - "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", - "license": "MIT", - "dependencies": { - "depd": "~2.0.0", - "inherits": "~2.0.4", - "setprototypeof": "~1.2.0", - "statuses": "~2.0.2", - "toidentifier": "~1.0.1" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "license": "MIT", - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-middleware": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-3.0.7.tgz", - "integrity": "sha512-iwbQltVlx8bCrqePUM8C+hllHvdawVhQJaLrj1X7qllkvFQdXFsr16pW/mo9+JDVjN+QO2XUx9jd8SmoFkE5qw==", - "license": "MIT", - "dependencies": { - "@types/http-proxy": "^1.17.15", - "debug": "^4.3.6", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.3", - "is-plain-object": "^5.0.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": "^14.18.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz", - "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause", - "optional": true - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/immer": { - "version": "11.1.15", - "resolved": "https://registry.npmjs.org/immer/-/immer-11.1.15.tgz", - "integrity": "sha512-VrNANlmnWQnh5COXIIOQXM9oOJw7naGKlBT74ZOOR6lpVXc3gFEu9FJLDFcpCJ2j+NWr8TIwtWD//T6ZX6TKiQ==", - "license": "MIT", - "peer": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "license": "ISC", - "optional": true - }, - "node_modules/internal-slot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", - "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/internmap": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", - "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/ip-address": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.4.0.tgz", - "integrity": "sha512-oSK96Grm3aP6OrS263xVxbNDGVL7rzBtYdpGqlDG8iQdoenDoTs/nkki+DflYbAEE8Xl6o5YxhxlrKvI3nqKXQ==", - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", - "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-async-function": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", - "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "async-function": "^1.0.0", - "call-bound": "^1.0.3", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", - "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", - "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bun-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz", - "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.7.1" - } - }, - "node_modules/is-bun-module/node_modules/semver": { - "version": "7.8.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", - "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.16.2", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", - "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-view": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", - "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", - "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-document.all": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-document.all/-/is-document.all-1.0.0.tgz", - "integrity": "sha512-+XSoyS05OdBbhFuELhgTCpFNHkpBOJqtsZfUFFpe5QTw+9Sjbh8zitxhQkYAo6wV7e1Vb8cAPvpCk9jGam/82g==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-finalizationregistry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", - "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-generator-function": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", - "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.4", - "generator-function": "^2.0.0", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-in-ssh": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-in-ssh/-/is-in-ssh-1.0.0.tgz", - "integrity": "sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==", - "license": "MIT", - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-inside-container": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", - "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", - "license": "MIT", - "dependencies": { - "is-docker": "^3.0.0" - }, - "bin": { - "is-inside-container": "cli.js" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-interactive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", - "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", - "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-promise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", - "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", - "license": "MIT" - }, - "node_modules/is-regex": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", - "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", - "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", - "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", - "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-symbols": "^1.1.0", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", - "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-unicode-supported": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", - "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", - "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", - "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-wsl": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", - "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", - "license": "MIT", - "dependencies": { - "is-inside-container": "^1.0.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true, - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/iterator.prototype": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", - "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.6", - "get-proto": "^1.0.0", - "has-symbols": "^1.1.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/jiti": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", - "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", - "dev": true, - "license": "MIT", - "bin": { - "jiti": "lib/jiti-cli.mjs" - } - }, - "node_modules/jose": { - "version": "6.2.8", - "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.8.tgz", - "integrity": "sha512-Bsdjwm3Qsd/P0jR+BHDe3LytDfY7WBq2HmCCLIwuVRHMuEC9ae7/R474GIUdF1NgCyZjzVo/A9DOiOBtXq8ZoQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/panva" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.1.tgz", - "integrity": "sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/puzrin" - }, - { - "type": "github", - "url": "https://github.com/sponsors/nodeca" - } - ], - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsx-ast-utils": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", - "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "object.assign": "^4.1.4", - "object.values": "^1.1.6" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/language-subtag-registry": { - "version": "0.3.23", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", - "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/language-tags": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", - "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", - "dev": true, - "license": "MIT", - "dependencies": { - "language-subtag-registry": "^0.3.20" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lightningcss": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", - "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", - "dev": true, - "license": "MPL-2.0", - "dependencies": { - "detect-libc": "^2.0.3" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "lightningcss-android-arm64": "1.32.0", - "lightningcss-darwin-arm64": "1.32.0", - "lightningcss-darwin-x64": "1.32.0", - "lightningcss-freebsd-x64": "1.32.0", - "lightningcss-linux-arm-gnueabihf": "1.32.0", - "lightningcss-linux-arm64-gnu": "1.32.0", - "lightningcss-linux-arm64-musl": "1.32.0", - "lightningcss-linux-x64-gnu": "1.32.0", - "lightningcss-linux-x64-musl": "1.32.0", - "lightningcss-win32-arm64-msvc": "1.32.0", - "lightningcss-win32-x64-msvc": "1.32.0" - } - }, - "node_modules/lightningcss-android-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", - "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", - "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", - "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-freebsd-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", - "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", - "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", - "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", - "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", - "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", - "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", - "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", - "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/log-symbols": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-7.0.1.tgz", - "integrity": "sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==", - "license": "MIT", - "dependencies": { - "is-unicode-supported": "^2.0.0", - "yoctocolors": "^2.1.1" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/magic-string": { - "version": "0.30.21", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", - "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" - } - }, - "node_modules/marked": { - "version": "18.0.9", - "resolved": "https://registry.npmjs.org/marked/-/marked-18.0.9.tgz", - "integrity": "sha512-/Sa4qiiHZxf0/FQdBBowr9q4r10krCwMvpK48FUBdXdUXScDxiQGR9zCPrFgRVR5LU3iySOiIjy09ZQvADir1w==", - "license": "MIT", - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 20" - } - }, - "node_modules/material-symbols": { - "version": "0.44.12", - "resolved": "https://registry.npmjs.org/material-symbols/-/material-symbols-0.44.12.tgz", - "integrity": "sha512-lZkS9BwISNU2Jbup+IlwZrr9z1oAK6zx38qPpe7mNzkXwiIEnQaxPz1Sf3bNZ0MX15LNlJQNjKI3MWLgmo83+Q==", - "license": "Apache-2.0" - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/media-typer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.1.tgz", - "integrity": "sha512-yz3xRaG20c6/BOzvYoDaGtPmGscs7YivItZEEqe6GbwNfHuxu9YNmvnEkMzKldAGY4/80pRcQRZSEnhquk9XuQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/merge-descriptors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", - "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", - "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", - "license": "MIT", - "dependencies": { - "mime-db": "^1.54.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/mimic-function": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", - "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "devOptional": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "license": "MIT", - "optional": true - }, - "node_modules/monaco-editor": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.56.0.tgz", - "integrity": "sha512-sXboRm3BeBeLm938eaiyLMe0OxzfXIlZvbv4ir/jVgQy1zDhWjgmny0WoN45fuDKhCCQsYMbBJrv/A6jd8aCUg==", - "license": "MIT", - "peer": true, - "dependencies": { - "dompurify": "3.4.8", - "marked": "14.0.0" - } - }, - "node_modules/monaco-editor/node_modules/marked": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-14.0.0.tgz", - "integrity": "sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==", - "license": "MIT", - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/nanoid": { - "version": "3.3.17", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.17.tgz", - "integrity": "sha512-xQLf0A3HOMlgHq0n247/LRuAOYmB7dXJ/DvAxGvsSBij45XtBSmQycu+F8ODbHwns/XyFZagyL1+J0Offw1E0g==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/napi-build-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz", - "integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==", - "license": "MIT", - "optional": true - }, - "node_modules/napi-postinstall": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz", - "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==", - "dev": true, - "license": "MIT", - "bin": { - "napi-postinstall": "lib/cli.js" - }, - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/napi-postinstall" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" - }, - "node_modules/negotiator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", - "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/next": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/next/-/next-16.3.0.tgz", - "integrity": "sha512-NEdGOzH+08eTXMUp9UYkA99Nhi5N6Thrhc1jgFOQgfgnGK/dA2hRwBpXep+exdFQrnwlRf/3Wixyp8lLBUpE2A==", - "license": "MIT", - "peer": true, - "dependencies": { - "@next/env": "16.3.0", - "@swc/helpers": "0.5.15", - "baseline-browser-mapping": "^2.9.19", - "caniuse-lite": "^1.0.30001579", - "postcss": "8.5.23", - "styled-jsx": "5.1.6" - }, - "bin": { - "next": "dist/bin/next" - }, - "engines": { - "node": ">=20.9.0" - }, - "optionalDependencies": { - "@next/swc-darwin-arm64": "16.3.0", - "@next/swc-darwin-x64": "16.3.0", - "@next/swc-linux-arm64-gnu": "16.3.0", - "@next/swc-linux-arm64-musl": "16.3.0", - "@next/swc-linux-x64-gnu": "16.3.0", - "@next/swc-linux-x64-musl": "16.3.0", - "@next/swc-win32-arm64-msvc": "16.3.0", - "@next/swc-win32-x64-msvc": "16.3.0", - "sharp": "^0.35.3" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.1.0", - "@playwright/test": "^1.51.1", - "babel-plugin-react-compiler": "*", - "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", - "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", - "sass": "^1.3.0" - }, - "peerDependenciesMeta": { - "@opentelemetry/api": { - "optional": true - }, - "@playwright/test": { - "optional": true - }, - "babel-plugin-react-compiler": { - "optional": true - }, - "sass": { - "optional": true - } - } - }, - "node_modules/next/node_modules/postcss": { - "version": "8.5.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.23.tgz", - "integrity": "sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.16", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/node-abi": { - "version": "3.94.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.94.0.tgz", - "integrity": "sha512-W5ZNO5KRPB5TkYmGVD9F6YqhsglXJzE6etpbmT+f6EQElhiX/UTG551cnsRGvLG3fyZEg9HwaDmNmj5nwJ4z9g==", - "license": "MIT", - "optional": true, - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-abi/node_modules/semver": { - "version": "7.8.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", - "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", - "license": "ISC", - "optional": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-exports-info": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/node-exports-info/-/node-exports-info-1.6.2.tgz", - "integrity": "sha512-kXs9Go0cah0qHVV2v389IXQLdLCeE1xfFtjOAF+iobu0OIoG1pje8At2vMHyaPMiPMnG/LWP50twML21eMcAag==", - "dev": true, - "license": "MIT", - "dependencies": { - "array.prototype.flatmap": "^1.3.3", - "es-errors": "^1.3.0", - "object.entries": "^1.1.9", - "semver": "^6.3.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/node-forge": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.4.0.tgz", - "integrity": "sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==", - "license": "(BSD-3-Clause OR GPL-2.0)", - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-machine-id": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/node-machine-id/-/node-machine-id-1.1.12.tgz", - "integrity": "sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==", - "license": "MIT" - }, - "node_modules/node-releases": { - "version": "2.0.52", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.52.tgz", - "integrity": "sha512-MRlTqhAfoMx/4mhEbPo3Hi02g9LJZaJkka69V6h67Cb1gjrAG0jsTE4CZX1eptNx+VCAwJmfpnDIF4P0Nh1A7A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", - "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0", - "has-symbols": "^1.1.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.entries": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", - "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.groupby": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", - "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.values": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", - "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", - "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", - "license": "MIT", - "dependencies": { - "mimic-function": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/open/-/open-11.0.0.tgz", - "integrity": "sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw==", - "license": "MIT", - "dependencies": { - "default-browser": "^5.4.0", - "define-lazy-prop": "^3.0.0", - "is-in-ssh": "^1.0.0", - "is-inside-container": "^1.0.0", - "powershell-utils": "^0.1.0", - "wsl-utils": "^0.3.0" - }, - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/ora": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-9.4.1.tgz", - "integrity": "sha512-6VlU9MLXbjVQD04AZCMX28hVtA5bUoadvUqO76MUCVA0ilwJbMiHsITRPfyVm6p/BC0Av/BXMujx39WCe1LEqw==", - "license": "MIT", - "dependencies": { - "chalk": "^5.6.2", - "cli-cursor": "^5.0.0", - "cli-spinners": "^3.2.0", - "is-interactive": "^2.0.0", - "is-unicode-supported": "^2.1.0", - "log-symbols": "^7.0.1", - "stdin-discarder": "^0.3.2", - "string-width": "^8.1.0" - }, - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/own-keys": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.2.tgz", - "integrity": "sha512-19YVAg7T+WTrxggPukVq7DjTv6+PJ867TmhCvBsYwmbFCsZd344rq2Ld1p0wo8f8Qrrhgp82c6FJRqdXWtSEhg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.4", - "get-intrinsic": "^1.3.0", - "object-keys": "^1.1.1", - "safe-push-apply": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, - "license": "MIT" - }, - "node_modules/path-to-regexp": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz", - "integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", - "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pkijs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/pkijs/-/pkijs-3.4.0.tgz", - "integrity": "sha512-emEcLuomt2j03vxD54giVB4SxTjnsqkU692xZOZXHDVoYyypEm+b3jpiTcc+Cf+myooc+/Ly0z01jqeNHVgJGw==", - "license": "BSD-3-Clause", - "dependencies": { - "@noble/hashes": "1.4.0", - "asn1js": "^3.0.6", - "bytestreamjs": "^2.0.1", - "pvtsutils": "^1.3.6", - "pvutils": "^1.1.3", - "tslib": "^2.8.1" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/possible-typed-array-names": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", - "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/postcss": { - "version": "8.5.25", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.25.tgz", - "integrity": "sha512-DTPx3RWSSnWyzLxQnlH0rJP+EW5ekl16ZU4/psbIhA0e53kJfdgaN5vKM+xP7yJtXVu+nfdVFmlgFDEKAe4Pyw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.16", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/powershell-utils": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.1.0.tgz", - "integrity": "sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==", - "license": "MIT", - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/prebuild-install": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz", - "integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==", - "deprecated": "No longer maintained. Please contact the author of the relevant native addon; alternatives are available.", - "license": "MIT", - "optional": true, - "dependencies": { - "detect-libc": "^2.0.0", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^2.0.0", - "node-abi": "^3.3.0", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^4.0.0", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - }, - "bin": { - "prebuild-install": "bin.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/pump": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz", - "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==", - "license": "MIT", - "optional": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/pvtsutils": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.6.tgz", - "integrity": "sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==", - "license": "MIT", - "dependencies": { - "tslib": "^2.8.1" - } - }, - "node_modules/pvutils": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.2.0.tgz", - "integrity": "sha512-BbubeCEyTuQjVMakvJQ/Sxbc93F2pwmbsxONT/ZRrwU7Ua38d8unYTwXpTVLAKJ4BDuH9IGztCjQcd/N/39Dvg==", - "license": "MIT", - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/qs": { - "version": "6.15.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.3.tgz", - "integrity": "sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==", - "license": "BSD-3-Clause", - "dependencies": { - "es-define-property": "^1.0.1", - "side-channel": "^1.1.1" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/range-parser": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.3.0.tgz", - "integrity": "sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/raw-body": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", - "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", - "license": "MIT", - "dependencies": { - "bytes": "~3.1.2", - "http-errors": "~2.0.1", - "iconv-lite": "~0.7.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", - "optional": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react": { - "version": "19.2.4", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", - "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", - "license": "MIT", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "19.2.4", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz", - "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==", - "license": "MIT", - "peer": true, - "dependencies": { - "scheduler": "^0.27.0" - }, - "peerDependencies": { - "react": "^19.2.4" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT", - "peer": true - }, - "node_modules/react-redux": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.3.0.tgz", - "integrity": "sha512-KQopgqFo/p/fgmAs5qz6p5RWaNAzq40WAu7fJIXnQpYxFPbJYtsJPWvGeF2rOBaY/kEuV77AVsX8TsQzKm+A/g==", - "license": "MIT", - "peer": true, - "dependencies": { - "@types/use-sync-external-store": "^0.0.6", - "use-sync-external-store": "^1.4.0" - }, - "peerDependencies": { - "@types/react": "^18.2.25 || ^19", - "react": "^18.0 || ^19", - "redux": "^5.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "redux": { - "optional": true - } - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "license": "MIT", - "optional": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/recharts": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/recharts/-/recharts-3.10.1.tgz", - "integrity": "sha512-QXFrvt6IVcw7eeZCoyXTwkIJAX3Dv1nyVhMicXJ47GsGDDpcN8z6o644DibE9XjpBTThtsomLKnTV6lc+cVFUA==", - "license": "MIT", - "workspaces": [ - "www" - ], - "dependencies": { - "@reduxjs/toolkit": "^1.9.0 || 2.x.x", - "clsx": "^2.1.1", - "decimal.js-light": "^2.5.1", - "es-toolkit": "^1.39.3", - "eventemitter3": "^5.0.1", - "immer": "^11.1.8", - "react-redux": "8.x.x || 9.x.x", - "reselect": "5.2.0", - "tiny-invariant": "^1.3.3", - "use-sync-external-store": "^1.2.2", - "victory-vendor": "^37.0.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-is": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/recharts/node_modules/eventemitter3": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", - "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", - "license": "MIT" - }, - "node_modules/redux": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", - "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", - "license": "MIT", - "peer": true - }, - "node_modules/redux-thunk": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz", - "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==", - "license": "MIT", - "peerDependencies": { - "redux": "^5.0.0" - } - }, - "node_modules/reflect-metadata": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", - "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", - "license": "Apache-2.0" - }, - "node_modules/reflect.getprototypeof": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", - "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.1", - "which-builtin-type": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", - "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "license": "MIT" - }, - "node_modules/reselect": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.2.0.tgz", - "integrity": "sha512-AgZ3UOZm3YndfrJ4OYjgrT7bmCm/1iqkjvEfH/oYjzh6PD2qw4QuT3jjnXIrpdt4MTpMXclMT3lXbmRY+XRakw==", - "license": "MIT" - }, - "node_modules/resolve": { - "version": "2.0.0-next.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.7.tgz", - "integrity": "sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "is-core-module": "^2.16.2", - "node-exports-info": "^1.6.0", - "object-keys": "^1.1.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, - "node_modules/restore-cursor": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", - "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", - "license": "MIT", - "dependencies": { - "onetime": "^7.0.0", - "signal-exit": "^4.1.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/reusify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/router": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", - "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", - "license": "MIT", - "dependencies": { - "debug": "^4.4.0", - "depd": "^2.0.0", - "is-promise": "^4.0.0", - "parseurl": "^1.3.3", - "path-to-regexp": "^8.0.0" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/run-applescript": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", - "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-array-concat": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.4.tgz", - "integrity": "sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.9", - "call-bound": "^1.0.4", - "get-intrinsic": "^1.3.0", - "has-symbols": "^1.1.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "optional": true - }, - "node_modules/safe-push-apply": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", - "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-regex-test": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", - "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-regex": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT" - }, - "node_modules/sax": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.1.tgz", - "integrity": "sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==", - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=11.0.0" - } - }, - "node_modules/scheduler": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", - "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", - "license": "MIT" - }, - "node_modules/selfsigned": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-5.5.0.tgz", - "integrity": "sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew==", - "license": "MIT", - "dependencies": { - "@peculiar/x509": "^1.14.2", - "pkijs": "^3.3.3" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/send": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", - "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", - "license": "MIT", - "dependencies": { - "debug": "^4.4.3", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "etag": "^1.8.1", - "fresh": "^2.0.0", - "http-errors": "^2.0.1", - "mime-types": "^3.0.2", - "ms": "^2.1.3", - "on-finished": "^2.4.1", - "range-parser": "^1.2.1", - "statuses": "^2.0.2" - }, - "engines": { - "node": ">= 18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/serve-static": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", - "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", - "license": "MIT", - "dependencies": { - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "parseurl": "^1.3.3", - "send": "^1.2.0" - }, - "engines": { - "node": ">= 18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-proto": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", - "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "license": "ISC" - }, - "node_modules/sharp": { - "version": "0.35.3", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.35.3.tgz", - "integrity": "sha512-ej0zVHuZGHCiABXcNxeYhpRnPNPAcvbG8RMdBAhDAxLKkCRVSpK3Iyu7qbqw3JMzoj0REeM6f3tJLtVwl0023Q==", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@img/colour": "^1.1.0", - "detect-libc": "^2.1.2", - "semver": "^7.8.5" - }, - "engines": { - "node": ">=20.9.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-darwin-arm64": "0.35.3", - "@img/sharp-darwin-x64": "0.35.3", - "@img/sharp-freebsd-wasm32": "0.35.3", - "@img/sharp-libvips-darwin-arm64": "1.3.2", - "@img/sharp-libvips-darwin-x64": "1.3.2", - "@img/sharp-libvips-linux-arm": "1.3.2", - "@img/sharp-libvips-linux-arm64": "1.3.2", - "@img/sharp-libvips-linux-ppc64": "1.3.2", - "@img/sharp-libvips-linux-riscv64": "1.3.2", - "@img/sharp-libvips-linux-s390x": "1.3.2", - "@img/sharp-libvips-linux-x64": "1.3.2", - "@img/sharp-libvips-linuxmusl-arm64": "1.3.2", - "@img/sharp-libvips-linuxmusl-x64": "1.3.2", - "@img/sharp-linux-arm": "0.35.3", - "@img/sharp-linux-arm64": "0.35.3", - "@img/sharp-linux-ppc64": "0.35.3", - "@img/sharp-linux-riscv64": "0.35.3", - "@img/sharp-linux-s390x": "0.35.3", - "@img/sharp-linux-x64": "0.35.3", - "@img/sharp-linuxmusl-arm64": "0.35.3", - "@img/sharp-linuxmusl-x64": "0.35.3", - "@img/sharp-webcontainers-wasm32": "0.35.3", - "@img/sharp-win32-arm64": "0.35.3", - "@img/sharp-win32-ia32": "0.35.3", - "@img/sharp-win32-x64": "0.35.3" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/sharp/node_modules/semver": { - "version": "7.8.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", - "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", - "license": "ISC", - "optional": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", - "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.4", - "side-channel-list": "^1.0.1", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-list": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", - "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "optional": true - }, - "node_modules/simple-get": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", - "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "optional": true, - "dependencies": { - "decompress-response": "^6.0.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "license": "MIT", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.9.tgz", - "integrity": "sha512-LJhUYUvItdQ0LkJTmPeaEObWXAqFyfmP85x0tch/ez9cahmhlBBLbIqDFnvBnUJGagb0JbIQrkBs1wJ+yRYpEw==", - "license": "MIT", - "dependencies": { - "ip-address": "^10.1.1", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", - "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "socks": "^2.8.3" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sql.js": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/sql.js/-/sql.js-1.14.1.tgz", - "integrity": "sha512-gcj8zBWU5cFsi9WUP+4bFNXAyF1iRpA3LLyS/DP5xlrNzGmPIizUeBggKa8DbDwdqaKwUcTEnChtd2grWo/x/A==", - "license": "MIT" - }, - "node_modules/stable-hash": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", - "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==", - "dev": true, - "license": "MIT" - }, - "node_modules/state-local": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz", - "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==", - "license": "MIT" - }, - "node_modules/statuses": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", - "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/stdin-discarder": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.3.2.tgz", - "integrity": "sha512-eCPu1qRxPVkl5605OTWF8Wz40b4Mf45NY5LQmVPQ599knfs5QhASUm9GbJ5BDMDOXgrnh0wyEdvzmL//YMlw0A==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/stop-iteration-iterator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", - "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "internal-slot": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "license": "MIT", - "optional": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.2.tgz", - "integrity": "sha512-GaPUh5gfdrYzqeVNZvUfT23vYYxXzKYidUcnMtJg/3rxRV63EFZy3k6xfKlmfeJD0176lnUV/Usr3XcwSvFzpg==", - "license": "MIT", - "dependencies": { - "get-east-asian-width": "^1.5.0", - "strip-ansi": "^7.1.2" - }, - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string.prototype.includes": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", - "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", - "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.6", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.6", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "internal-slot": "^1.1.0", - "regexp.prototype.flags": "^1.5.3", - "set-function-name": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.repeat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", - "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.11.tgz", - "integrity": "sha512-PwvK7BU+CMTJGYQCTZb5RWXIML92lftJLhQz1tBzgKiqGxJaMlBAa48POXaNAC2s4y8jr3EFqrkF9+44neS46w==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.9", - "call-bound": "^1.0.4", - "define-data-property": "^1.1.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.24.2", - "es-object-atoms": "^1.1.2", - "has-property-descriptors": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.10.tgz", - "integrity": "sha512-2+3aDAOmPTmuFwjDnmJG2ctEkQKVki7vOSqaxkv42Mowj1V6PnvuwFCRrR5lChUux1TBskPjfkeTOhqczDMxTw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.9", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", - "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.2.2" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/styled-jsx": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", - "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", - "license": "MIT", - "dependencies": { - "client-only": "0.0.1" - }, - "engines": { - "node": ">= 12.0.0" - }, - "peerDependencies": { - "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "babel-plugin-macros": { - "optional": true - } - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tailwindcss": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.3.tgz", - "integrity": "sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/tapable": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", - "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/tar-fs": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.5.tgz", - "integrity": "sha512-OboTd8mmMhZDNPV+UjQcK9yKAatXu2aJ+r1w4im1Otd4M4fl2hwvdoXUxIYHFTHWK/3y3FarBP70v3vwmGlOxw==", - "license": "MIT", - "optional": true, - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "license": "MIT", - "optional": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/third-party-capital": { - "version": "1.0.20", - "resolved": "https://registry.npmjs.org/third-party-capital/-/third-party-capital-1.0.20.tgz", - "integrity": "sha512-oB7yIimd8SuGptespDAZnNkzIz+NWaJCu2RMsbs4Wmp9zSDUM8Nhi3s2OOcqYuv3mN4hitXc8DVx+LyUmbUDiA==", - "license": "ISC" - }, - "node_modules/tiny-invariant": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", - "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", - "license": "MIT" - }, - "node_modules/tinyglobby": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", - "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fdir": "^6.5.0", - "picomatch": "^4.0.4" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", - "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/ts-api-utils": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", - "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.12" - }, - "peerDependencies": { - "typescript": ">=4.8.4" - } - }, - "node_modules/tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/tsyringe": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/tsyringe/-/tsyringe-4.10.0.tgz", - "integrity": "sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==", - "license": "MIT", - "dependencies": { - "tslib": "^1.9.3" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/tsyringe/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "license": "0BSD" - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-is": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.1.0.tgz", - "integrity": "sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==", - "license": "MIT", - "dependencies": { - "content-type": "^2.0.0", - "media-typer": "^1.1.0", - "mime-types": "^3.0.0" - }, - "engines": { - "node": ">= 18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/type-is/node_modules/content-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.0.0.tgz", - "integrity": "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/typed-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", - "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", - "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", - "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.15", - "reflect.getprototypeof": "^1.0.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.8.tgz", - "integrity": "sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.9", - "for-each": "^0.3.5", - "gopd": "^1.2.0", - "is-typed-array": "^1.1.15", - "possible-typed-array-names": "^1.1.0", - "reflect.getprototypeof": "^1.0.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typescript": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", - "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/typescript-eslint": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.66.0.tgz", - "integrity": "sha512-QlEbBPz/RuJ1XUHj29nm3t0F/O/cSlEnntozqPOYHnnTGAXFamnMBu5i9Vn6vhUPHGAjR+Vl+5J8vPN/BMUrJw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/eslint-plugin": "8.66.0", - "@typescript-eslint/parser": "8.66.0", - "@typescript-eslint/typescript-estree": "8.66.0", - "@typescript-eslint/utils": "8.66.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", - "typescript": ">=4.8.4 <6.1.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", - "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-bigints": "^1.0.2", - "has-symbols": "^1.1.0", - "which-boxed-primitive": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/undici": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-7.29.0.tgz", - "integrity": "sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==", - "license": "MIT", - "engines": { - "node": ">=20.18.1" - } - }, - "node_modules/undici-types": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz", - "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==", - "license": "MIT" - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/unrs-resolver": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.12.2.tgz", - "integrity": "sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "napi-postinstall": "^0.3.4" - }, - "funding": { - "url": "https://opencollective.com/unrs-resolver" - }, - "optionalDependencies": { - "@unrs/resolver-binding-android-arm-eabi": "1.12.2", - "@unrs/resolver-binding-android-arm64": "1.12.2", - "@unrs/resolver-binding-darwin-arm64": "1.12.2", - "@unrs/resolver-binding-darwin-x64": "1.12.2", - "@unrs/resolver-binding-freebsd-x64": "1.12.2", - "@unrs/resolver-binding-linux-arm-gnueabihf": "1.12.2", - "@unrs/resolver-binding-linux-arm-musleabihf": "1.12.2", - "@unrs/resolver-binding-linux-arm64-gnu": "1.12.2", - "@unrs/resolver-binding-linux-arm64-musl": "1.12.2", - "@unrs/resolver-binding-linux-loong64-gnu": "1.12.2", - "@unrs/resolver-binding-linux-loong64-musl": "1.12.2", - "@unrs/resolver-binding-linux-ppc64-gnu": "1.12.2", - "@unrs/resolver-binding-linux-riscv64-gnu": "1.12.2", - "@unrs/resolver-binding-linux-riscv64-musl": "1.12.2", - "@unrs/resolver-binding-linux-s390x-gnu": "1.12.2", - "@unrs/resolver-binding-linux-x64-gnu": "1.12.2", - "@unrs/resolver-binding-linux-x64-musl": "1.12.2", - "@unrs/resolver-binding-openharmony-arm64": "1.12.2", - "@unrs/resolver-binding-wasm32-wasi": "1.12.2", - "@unrs/resolver-binding-win32-arm64-msvc": "1.12.2", - "@unrs/resolver-binding-win32-ia32-msvc": "1.12.2", - "@unrs/resolver-binding-win32-x64-msvc": "1.12.2" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", - "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/use-sync-external-store": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", - "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", - "license": "MIT", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "license": "MIT", - "optional": true - }, - "node_modules/uuid": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-13.0.2.tgz", - "integrity": "sha512-vzi9uRZ926x4XV73S/4qQaTwPXM2JBj6/6lI/byHH1jOpCzb0zDbfytgA9LcN/hzb2l7WQSQnxITOVx5un/wGw==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist-node/bin/uuid" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/victory-vendor": { - "version": "37.3.6", - "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-37.3.6.tgz", - "integrity": "sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ==", - "license": "MIT AND ISC", - "dependencies": { - "@types/d3-array": "^3.0.3", - "@types/d3-ease": "^3.0.0", - "@types/d3-interpolate": "^3.0.1", - "@types/d3-scale": "^4.0.2", - "@types/d3-shape": "^3.1.0", - "@types/d3-time": "^3.0.0", - "@types/d3-timer": "^3.0.0", - "d3-array": "^3.1.6", - "d3-ease": "^3.0.1", - "d3-interpolate": "^3.0.1", - "d3-scale": "^4.0.2", - "d3-shape": "^3.1.0", - "d3-time": "^3.0.0", - "d3-timer": "^3.0.1" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", - "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-bigint": "^1.1.0", - "is-boolean-object": "^1.2.1", - "is-number-object": "^1.1.1", - "is-string": "^1.1.1", - "is-symbol": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", - "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "function.prototype.name": "^1.1.6", - "has-tostringtag": "^1.0.2", - "is-async-function": "^2.0.0", - "is-date-object": "^1.1.0", - "is-finalizationregistry": "^1.1.0", - "is-generator-function": "^1.0.10", - "is-regex": "^1.2.1", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.1.0", - "which-collection": "^1.0.2", - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.22", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.22.tgz", - "integrity": "sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.9", - "call-bound": "^1.0.4", - "for-each": "^0.3.5", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC" - }, - "node_modules/wsl-utils": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.3.1.tgz", - "integrity": "sha512-g/eziiSUNBSsdDJtCLB8bdYEUMj4jR7AGeUo96p/3dTafgjHhpF4RiCFPiRILwjQoDXx5MqkBr4fwWtR3Ky4Wg==", - "license": "MIT", - "dependencies": { - "is-wsl": "^3.1.0", - "powershell-utils": "^0.1.0" - }, - "engines": { - "node": ">=20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/xml-crypto": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/xml-crypto/-/xml-crypto-6.1.2.tgz", - "integrity": "sha512-leBOVQdVi8FvPJrMYoum7Ici9qyxfE4kVi+AkpUoYCSXaQF4IlBm1cneTK9oAxR61LpYxTx7lNcsnBIeRpGW2w==", - "license": "MIT", - "dependencies": { - "@xmldom/is-dom-node": "^1.0.1", - "@xmldom/xmldom": "^0.8.10", - "xpath": "^0.0.33" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/xml-crypto/node_modules/xpath": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.33.tgz", - "integrity": "sha512-NNXnzrkDrAzalLhIUc01jO2mOzXGXh1JwPgkihcLLzw98c0WgYDmmjSh1Kl3wzaxSVWMuA+fe0WTWOBDWCBmNA==", - "license": "MIT", - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/xml-encryption": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/xml-encryption/-/xml-encryption-3.1.0.tgz", - "integrity": "sha512-PV7qnYpoAMXbf1kvQkqMScLeQpjCMixddAKq9PtqVrho8HnYbBOWNfG0kA4R7zxQDo7w9kiYAyzS/ullAyO55Q==", - "license": "MIT", - "dependencies": { - "@xmldom/xmldom": "^0.8.5", - "escape-html": "^1.0.3", - "xpath": "0.0.32" - } - }, - "node_modules/xml-encryption/node_modules/xpath": { - "version": "0.0.32", - "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.32.tgz", - "integrity": "sha512-rxMJhSIoiO8vXcWvSifKqhvV96GjiD5wYb8/QHdoRyQvraTpp4IEv944nhGausZZ3u7dhQXteZuZbaqfpB7uYw==", - "license": "MIT", - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/xml2js": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", - "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", - "license": "MIT", - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xml2js/node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "license": "MIT", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/xmlbuilder": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", - "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", - "license": "MIT", - "engines": { - "node": ">=8.0" - } - }, - "node_modules/xpath": { - "version": "0.0.34", - "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.34.tgz", - "integrity": "sha512-FxF6+rkr1rNSQrhUNYrAFJpRXNzlDoMxeXN5qI84939ylEv3qqPFKa85Oxr6tDaJKqwW6KKyo2v26TSv3k6LeA==", - "license": "MIT", - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "license": "ISC" - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yoctocolors": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.2.0.tgz", - "integrity": "sha512-xYqdZFUK/VYazNl/oCDYN+3WloWQwMfZxBoiNt6qNyk+xfOdi598muWE42rNZFp1kNOiqW936q5RhUdnpqElSg==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zod": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz", - "integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==", - "dev": true, - "license": "MIT", - "peer": true, - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, - "node_modules/zod-validation-error": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-4.0.2.tgz", - "integrity": "sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "zod": "^3.25.0 || ^4.0.0" - } - }, - "node_modules/zustand": { - "version": "5.0.14", - "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.14.tgz", - "integrity": "sha512-/8tAspM5LMPr28b3fwLYrtdj77ECpfZviaP75CMTnwO8ISyaE4GDIG/9rDDYq/cH9D2Xw2A2RXglLInmVBQB/g==", - "license": "MIT", - "engines": { - "node": ">=12.20.0" - }, - "peerDependencies": { - "@types/react": ">=18.0.0", - "immer": ">=9.0.6", - "react": ">=18.0.0", - "use-sync-external-store": ">=1.2.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "immer": { - "optional": true - }, - "react": { - "optional": true - }, - "use-sync-external-store": { - "optional": true - } - } - } - } -} From 76b139b32ce7652c3336081051ac4f5c79af70b0 Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Sat, 15 Aug 2026 08:07:59 +0800 Subject: [PATCH 26/42] fix(docker): restore lockfile (npm 10) + npm ci for reliable builds --- .gitignore | 3 +- Dockerfile | 4 +- package-lock.json | 8208 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 8211 insertions(+), 4 deletions(-) create mode 100644 package-lock.json diff --git a/.gitignore b/.gitignore index d51cbdcb..fe81d4fe 100644 --- a/.gitignore +++ b/.gitignore @@ -85,5 +85,4 @@ graphify-out/* .script/ .codegraph/ .PR/ -.next-analyze/* -package-lock.json \ No newline at end of file +.next-analyze/* \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index b4a265ea..ad373f8a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,9 +7,9 @@ FROM base AS builder RUN apk --no-cache upgrade && apk --no-cache add python3 make g++ linux-headers -COPY package.json ./ +COPY package.json package-lock.json ./ RUN --mount=type=cache,target=/root/.npm \ - npm install + npm ci COPY . ./ ENV NEXT_TELEMETRY_DISABLED=1 diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..ec22bb9f --- /dev/null +++ b/package-lock.json @@ -0,0 +1,8208 @@ +{ + "name": "9router-app", + "version": "0.5.55", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "9router-app", + "version": "0.5.55", + "dependencies": { + "@dnd-kit/core": "^6.3.1", + "@dnd-kit/modifiers": "^9.0.0", + "@dnd-kit/sortable": "^10.0.0", + "@dnd-kit/utilities": "^3.2.2", + "@monaco-editor/react": "^4.7.0", + "@next/third-parties": "^16.2.9", + "@node-saml/node-saml": "^5.1.0", + "@xyflow/react": "^12.10.1", + "bcryptjs": "^3.0.3", + "chalk": "^5.6.2", + "confbox": "^0.2.4", + "dompurify": "^3.4.13", + "express": "^5.2.1", + "http-proxy-middleware": "^3.0.5", + "jose": "^6.1.3", + "marked": "^18.0.1", + "material-symbols": "^0.44.6", + "monaco-editor": "^0.56.0", + "next": "^16.1.6", + "node-forge": "^1.3.3", + "node-machine-id": "^1.1.12", + "open": "^11.0.0", + "ora": "^9.1.0", + "prop-types": "^15.8.1", + "react": "19.2.4", + "react-dom": "19.2.4", + "react-is": "^16.13.1", + "recharts": "^3.7.0", + "selfsigned": "^5.5.0", + "socks-proxy-agent": "^8.0.5", + "sql.js": "^1.14.1", + "undici": "^7.19.2", + "uuid": "^13.0.0", + "zustand": "^5.0.10" + }, + "devDependencies": { + "@tailwindcss/postcss": "^4.1.18", + "eslint": "^9", + "eslint-config-next": "16.1.6", + "postcss": "^8.5.6", + "tailwindcss": "^4" + }, + "optionalDependencies": { + "better-sqlite3": "^12.6.2" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", + "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", + "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helpers": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.8.tgz", + "integrity": "sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.8", + "@babel/types": "^7.29.8", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", + "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", + "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", + "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz", + "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.8.tgz", + "integrity": "sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.8" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/template": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.8.tgz", + "integrity": "sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.8", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.8", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.8", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz", + "integrity": "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@dnd-kit/accessibility": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@dnd-kit/accessibility/-/accessibility-3.1.1.tgz", + "integrity": "sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@dnd-kit/core": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.3.1.tgz", + "integrity": "sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==", + "license": "MIT", + "dependencies": { + "@dnd-kit/accessibility": "^3.1.1", + "@dnd-kit/utilities": "^3.2.2", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@dnd-kit/modifiers": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@dnd-kit/modifiers/-/modifiers-9.0.0.tgz", + "integrity": "sha512-ybiLc66qRGuZoC20wdSSG6pDXFikui/dCNGthxv4Ndy8ylErY0N3KVxY2bgo7AWwIbxDmXDg3ylAFmnrjcbVvw==", + "license": "MIT", + "dependencies": { + "@dnd-kit/utilities": "^3.2.2", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@dnd-kit/core": "^6.3.0", + "react": ">=16.8.0" + } + }, + "node_modules/@dnd-kit/sortable": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@dnd-kit/sortable/-/sortable-10.0.0.tgz", + "integrity": "sha512-+xqhmIIzvAYMGfBYYnbKuNicfSsk4RksY2XdmJhT+HAC01nix6fHCztU68jooFiMUB01Ky3F0FyOvhG/BZrWkg==", + "license": "MIT", + "dependencies": { + "@dnd-kit/utilities": "^3.2.2", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@dnd-kit/core": "^6.3.0", + "react": ">=16.8.0" + } + }, + "node_modules/@dnd-kit/utilities": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@dnd-kit/utilities/-/utilities-3.2.2.tgz", + "integrity": "sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.10.1.tgz", + "integrity": "sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.2.tgz", + "integrity": "sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.5" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.6.tgz", + "integrity": "sha512-l2Ul9PrHsPCKcEY/ac7VgFj9D80C7S68sOKc618SyHDPK36s1XcFebXY0iTzUVn4Yq+YbwvSnDmCz9yxjX+QrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.14.0", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.3.0", + "minimatch": "^3.1.5", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "9.39.5", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.5.tgz", + "integrity": "sha512-QywQuszQh77pIXCsq998c8hbhSTI/azTty1Z6N53dmAudKHhy573j3yvRLsX2BSp8YpLtoCEG8E9DJe+8zUh4A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz", + "integrity": "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/types": "^0.15.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.8.tgz", + "integrity": "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.2", + "@humanfs/types": "^0.15.0", + "@humanwhocodes/retry": "^0.4.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/types": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-0.15.0.tgz", + "integrity": "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@img/colour": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", + "integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.35.3.tgz", + "integrity": "sha512-RMnFX7YQsMoh7lWfcM4NEHHymBX/rLuKNPVM84XE9ONPcaSCDgE7CHIHpSgPcO2xcRthgBy1HfNO319mwhIAkg==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.3.2" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.3.2.tgz", + "integrity": "sha512-9J6ypZFpQBj4YnePGoq/S38w6nz+vqg5WZLrLGY4YuSemdMq47GMLBPO42MzwdGwpg/agZ7xzZcFHa48xlywfg==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@monaco-editor/loader": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@monaco-editor/loader/-/loader-1.7.0.tgz", + "integrity": "sha512-gIwR1HrJrrx+vfyOhYmCZ0/JcWqG5kbfG7+d3f/C1LXk2EvzAbHSg3MQ5lO2sMlo9izoAZ04shohfKLVT6crVA==", + "license": "MIT", + "dependencies": { + "state-local": "^1.0.6" + } + }, + "node_modules/@monaco-editor/react": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@monaco-editor/react/-/react-4.7.0.tgz", + "integrity": "sha512-cyzXQCtO47ydzxpQtCGSQGOC8Gk3ZUeBXFAxD+CWXYFo5OqZyZUonFl0DwUlTyAfRHntBfw2p3w4s9R6oe1eCA==", + "license": "MIT", + "dependencies": { + "@monaco-editor/loader": "^1.5.0" + }, + "peerDependencies": { + "monaco-editor": ">= 0.25.0 < 1", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@next/env": { + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/@next/env/-/env-16.3.0.tgz", + "integrity": "sha512-o9r1S0BNiNreHP9Vs+Qnqd9kviDkJh8xIACY7UFZSmiGbbQRzPBBosvHzAU4TULHOIuOj/18RSsyz2qrREmIFw==", + "license": "MIT" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-16.1.6.tgz", + "integrity": "sha512-/Qq3PTagA6+nYVfryAtQ7/9FEr/6YVyvOtl6rZnGsbReGLf0jZU6gkpr1FuChAQpvV46a78p4cmHOVP8mbfSMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-glob": "3.3.1" + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.3.0.tgz", + "integrity": "sha512-55hpqq18bEVAlxedlTt3tFqZmKg2nUXT1kn1G/BGEy0R13h3LwtwHPVzzjG6P4LLeOHE32PFDQUVaJEWvBEZBw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/third-parties": { + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/@next/third-parties/-/third-parties-16.3.0.tgz", + "integrity": "sha512-cAA96hSI9NC7083b6sEsKjgyvM/YJ2eqXs4HWv8a/z5LE12CL1sUJS+cmcTwNMY4yAFpLyyuZHrMBEfh/4Xupw==", + "license": "MIT", + "dependencies": { + "third-party-capital": "1.0.20" + }, + "peerDependencies": { + "next": "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0-beta.0", + "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0" + } + }, + "node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@node-saml/node-saml": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@node-saml/node-saml/-/node-saml-5.1.0.tgz", + "integrity": "sha512-t3cJnZ4aC7HhPZ6MGylGZULvUtBOZ6FzuUndaHGXjmIZHXnLfC/7L8a57O9Q9V7AxJGKAiRM5zu2wNm9EsvQpw==", + "license": "MIT", + "dependencies": { + "@types/debug": "^4.1.12", + "@types/qs": "^6.9.18", + "@types/xml-encryption": "^1.2.4", + "@types/xml2js": "^0.4.14", + "@xmldom/is-dom-node": "^1.0.1", + "@xmldom/xmldom": "^0.8.10", + "debug": "^4.4.0", + "xml-crypto": "^6.1.2", + "xml-encryption": "^3.1.0", + "xml2js": "^0.6.2", + "xmlbuilder": "^15.1.1", + "xpath": "^0.0.34" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.4.0" + } + }, + "node_modules/@peculiar/asn1-cms": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.8.0.tgz", + "integrity": "sha512-NgekZOrSJFSBFLFoLfwePguAWAx7z1+f2TEsWFUMyiqqfntZ4+S/S5hzqME3q4pCA0iOsFKdwiQ35dwY24eVqA==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.8.0", + "@peculiar/asn1-x509": "^2.8.0", + "@peculiar/asn1-x509-attr": "^2.8.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-csr": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.8.0.tgz", + "integrity": "sha512-akbF8+uvleHs8sejNPQxwmVFuInAg6FMNHOwMILXfP518YfFJwdR3jr6oNUPOaEJfuEhn/vkNOCIT6ASUd4mbg==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.8.0", + "@peculiar/asn1-x509": "^2.8.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-ecc": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.8.0.tgz", + "integrity": "sha512-ohwlk+u9Rv2NOAY1c6MfHj45ATVF8R1DUN/WCgABiRtLi2ZftlZWZX7KvpAbU8v9xPcmoILfELeEABj/rn18AQ==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.8.0", + "@peculiar/asn1-x509": "^2.8.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-pfx": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.8.0.tgz", + "integrity": "sha512-5yof1ytoB++RQtaFbqSUJ8pxDJtZT6vbVqZ8XoJ61ph7UjNVvfFwAilnCodqkNsAodpy13gDhoxZXw00pghnyg==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-cms": "^2.8.0", + "@peculiar/asn1-pkcs8": "^2.8.0", + "@peculiar/asn1-rsa": "^2.8.0", + "@peculiar/asn1-schema": "^2.8.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-pkcs8": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.8.0.tgz", + "integrity": "sha512-qAKXtLpBEw9LqhKpjw3ajZSXlBur+ipW+y2ivVBQAG6F6qRx94yO+1ZR4mvw+YaCfKSaOzLeYEzsPaBp4SJELA==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.8.0", + "@peculiar/asn1-x509": "^2.8.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-pkcs9": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.8.0.tgz", + "integrity": "sha512-b5nDWCnkV60+cQ141D6sVVwK9nz64R5n3zSVnklGd+ECdkW2Ol3U1a6yYFlalpSOaD557yuJB64A+q42jG7lUQ==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-cms": "^2.8.0", + "@peculiar/asn1-pfx": "^2.8.0", + "@peculiar/asn1-pkcs8": "^2.8.0", + "@peculiar/asn1-schema": "^2.8.0", + "@peculiar/asn1-x509": "^2.8.0", + "@peculiar/asn1-x509-attr": "^2.8.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-rsa": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.8.0.tgz", + "integrity": "sha512-zHEUlCqB2mk7x2lxDwHHJy7hWZOPdGHVlsmITWKB5/PbQo61atbu9PJ/0r9dQNMwFzbKPXZ8uK8/91eUhRznSg==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.8.0", + "@peculiar/asn1-x509": "^2.8.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-schema": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.8.0.tgz", + "integrity": "sha512-7YT0U/ze0tF2QOBbE15gKZwy5tvgGyLRiRHLzhlbOpf7BT032oBSd0haZqXn5W6l26WLlu3dyxzjM+2638/z2Q==", + "license": "MIT", + "dependencies": { + "@peculiar/utils": "^2.0.2", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-x509": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.8.0.tgz", + "integrity": "sha512-N0CMuhWUzsWEVq6F1q9X6+VKUnWzSW+cSVg+aPaGGwDdbFoFWTYgin5MHwXgpWd6y9COMBxnfy/Qc+Xc7F0Zwg==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.8.0", + "@peculiar/utils": "^2.0.2", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-x509-attr": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.8.0.tgz", + "integrity": "sha512-tHjkfS/qhMnmrlB2J9NhflQlQ7In3khO3CfmVrriOlpTeErY9ZIKOso1hQ5JQiyrJ7ShvqVPk7E5fQmbclkSKA==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.8.0", + "@peculiar/asn1-x509": "^2.8.0", + "asn1js": "^3.0.10", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@peculiar/utils/-/utils-2.0.3.tgz", + "integrity": "sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ==", + "license": "MIT", + "dependencies": { + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/x509": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/@peculiar/x509/-/x509-1.14.3.tgz", + "integrity": "sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-cms": "^2.6.0", + "@peculiar/asn1-csr": "^2.6.0", + "@peculiar/asn1-ecc": "^2.6.0", + "@peculiar/asn1-pkcs9": "^2.6.0", + "@peculiar/asn1-rsa": "^2.6.0", + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.0", + "pvtsutils": "^1.3.6", + "reflect-metadata": "^0.2.2", + "tslib": "^2.8.1", + "tsyringe": "^4.10.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@reduxjs/toolkit": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.12.0.tgz", + "integrity": "sha512-KiT+RzZbp6mQET+Mg+h2c97+9j1sNflUxQkIHI7Yuzf6Peu+OYpmkn6nbHWmLLWj+1ZODUJFwGZ7gx3L9R9EOw==", + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.0.0", + "@standard-schema/utils": "^0.3.0", + "immer": "^11.0.0", + "redux": "^5.0.1", + "redux-thunk": "^3.1.0", + "reselect": "^5.1.0" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17.0.0 || ^18 || ^19", + "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } + } + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "license": "MIT" + }, + "node_modules/@standard-schema/utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz", + "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==", + "license": "MIT" + }, + "node_modules/@swc/helpers": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@tailwindcss/node": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.3.tgz", + "integrity": "sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "enhanced-resolve": "^5.24.1", + "jiti": "^2.7.0", + "lightningcss": "1.32.0", + "magic-string": "^0.30.21", + "source-map-js": "^1.2.1", + "tailwindcss": "4.3.3" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.3.tgz", + "integrity": "sha512-krXjAikiaFSPaK/FkAQT5UTx3VormQaiZ5hBFlJZ9UFQGB/rwg1MZIhHAG9smMQRTdyJxP6Qt5MwMtdyU5FWrA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.3.3", + "@tailwindcss/oxide-darwin-arm64": "4.3.3", + "@tailwindcss/oxide-darwin-x64": "4.3.3", + "@tailwindcss/oxide-freebsd-x64": "4.3.3", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.3", + "@tailwindcss/oxide-linux-arm64-gnu": "4.3.3", + "@tailwindcss/oxide-linux-arm64-musl": "4.3.3", + "@tailwindcss/oxide-linux-x64-gnu": "4.3.3", + "@tailwindcss/oxide-linux-x64-musl": "4.3.3", + "@tailwindcss/oxide-wasm32-wasi": "4.3.3", + "@tailwindcss/oxide-win32-arm64-msvc": "4.3.3", + "@tailwindcss/oxide-win32-x64-msvc": "4.3.3" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.3.tgz", + "integrity": "sha512-BiaWatpBcERQFDlOjRDpIVXuFK5PJez5SA4JMg6VYZdBYU+qKfV/vqjcIs+IYmtitf1xYQZTwXvU/8y4lfZUGw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/postcss": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.3.3.tgz", + "integrity": "sha512-JTSZZGQi1AyKirbLN3azmjVzef92tcX7h+iSqPdaeStyFpGpDlKvvpxeOE8njhbUanbRwr3z8DyzhICWnMtQeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "@tailwindcss/node": "4.3.3", + "@tailwindcss/oxide": "4.3.3", + "postcss": "^8.5.16", + "tailwindcss": "4.3.3" + } + }, + "node_modules/@types/d3-array": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", + "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", + "license": "MIT" + }, + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", + "license": "MIT" + }, + "node_modules/@types/d3-drag": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", + "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-ease": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", + "license": "MIT" + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "license": "MIT", + "dependencies": { + "@types/d3-color": "*" + } + }, + "node_modules/@types/d3-path": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", + "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", + "license": "MIT" + }, + "node_modules/@types/d3-scale": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", + "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", + "license": "MIT", + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-selection": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz", + "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==", + "license": "MIT" + }, + "node_modules/@types/d3-shape": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz", + "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==", + "license": "MIT", + "dependencies": { + "@types/d3-path": "*" + } + }, + "node_modules/@types/d3-time": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", + "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", + "license": "MIT" + }, + "node_modules/@types/d3-timer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", + "license": "MIT" + }, + "node_modules/@types/d3-transition": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz", + "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==", + "license": "MIT", + "dependencies": { + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-zoom": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", + "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", + "license": "MIT", + "dependencies": { + "@types/d3-interpolate": "*", + "@types/d3-selection": "*" + } + }, + "node_modules/@types/debug": { + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz", + "integrity": "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.17", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.17.tgz", + "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "26.1.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.2.tgz", + "integrity": "sha512-Vu4a5UFA9rIIFJ7rB/Vaafh9lrCQszopTCx6KjFboXTGQbPNasehVR5TEiithSDGyd1DEiUByggTZsg8jukeIg==", + "license": "MIT", + "dependencies": { + "undici-types": "~8.3.0" + } + }, + "node_modules/@types/qs": { + "version": "6.15.1", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.1.tgz", + "integrity": "sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw==", + "license": "MIT" + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT", + "optional": true + }, + "node_modules/@types/use-sync-external-store": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz", + "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==", + "license": "MIT" + }, + "node_modules/@types/xml-encryption": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/xml-encryption/-/xml-encryption-1.2.4.tgz", + "integrity": "sha512-I69K/WW1Dv7j6O3jh13z0X8sLWJRXbu5xnHDl9yHzUNDUBtUoBY058eb5s+x/WG6yZC1h8aKdI2EoyEPjyEh+Q==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/xml2js": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/@types/xml2js/-/xml2js-0.4.14.tgz", + "integrity": "sha512-4YnrRemBShWRO2QjvUin8ESA41rH+9nQGLUGZV/1IDhi3SL9OhdpNC/MrulTWuptXKwhx/aDxE7toV0f/ypIXQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.66.0.tgz", + "integrity": "sha512-p088eaGrzYz1s+7cov0aMOCkNGTJlVxF4jgubf28c8L0Cv9Rloj8YBHnv4hXLq6IIEE1AsjNWavO+k+8kP2Y0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.12.2", + "@typescript-eslint/scope-manager": "8.66.0", + "@typescript-eslint/type-utils": "8.66.0", + "@typescript-eslint/utils": "8.66.0", + "@typescript-eslint/visitor-keys": "8.66.0", + "ignore": "^7.0.5", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.66.0", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.6.tgz", + "integrity": "sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.66.0.tgz", + "integrity": "sha512-X6ypGChaWYk6PBtUg2BwuTZEFFcHJAtGTVJ9/lCTOufhZ4i9fNolQNnktq+kkMCwMj7V8Svsq7+TxSDslmhE0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.66.0", + "@typescript-eslint/types": "8.66.0", + "@typescript-eslint/typescript-estree": "8.66.0", + "@typescript-eslint/visitor-keys": "8.66.0", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.66.0.tgz", + "integrity": "sha512-7MthGPTt4BP69lSryqpqq8HQqxuzynssckL/jyDyk3+TNMQ3y2jFWkptCrktWvBrP+EH787Nl5N5Qpw7WZg+5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.66.0", + "@typescript-eslint/types": "^8.66.0", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.66.0.tgz", + "integrity": "sha512-8TGcH25j9zqJ/IULB/ppyhRvxA8QYfFEZ7nfbg6/BN9spDgb8fPWQXlE5l8TWBL50EtUx007uZ1o9VOwrq2/9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.66.0", + "@typescript-eslint/visitor-keys": "8.66.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.66.0.tgz", + "integrity": "sha512-9D5gLYZG4rOjcoag8MQ/fWI8WqA9wcPDyOGyWtWFhvM1lHRbliqUSPIY5J3zqCU1tvSwzXxnnjhQhz5Ne7mJ4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.66.0.tgz", + "integrity": "sha512-LG2dWfjZQQp0ADtAu/EWJVayefGL2UEZ3CDeI44D9v3rXB/WYUqE/jpO28KrEKul5AySrmI+Zh1v6v+xW2U9+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.66.0", + "@typescript-eslint/typescript-estree": "8.66.0", + "@typescript-eslint/utils": "8.66.0", + "debug": "^4.4.3", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.66.0.tgz", + "integrity": "sha512-H6gcYaSDOyvL3AD/jHUtUFo2jqGgn/F6nuyuZSu0QTesxL+cP4dQoIMrODRofuJC09g64+WgZ6tE19Y1N2YIFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.66.0.tgz", + "integrity": "sha512-8/x4INiiQb10jGgXYD7116/zQ+OL84ZIFn0za68wwFHCanT/VLbBEroWht8RV8fn0/ZCAoazHLQgwUC0UQcDfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.66.0", + "@typescript-eslint/tsconfig-utils": "8.66.0", + "@typescript-eslint/types": "8.66.0", + "@typescript-eslint/visitor-keys": "8.66.0", + "debug": "^4.4.3", + "minimatch": "^10.2.2", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz", + "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.8" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.66.0.tgz", + "integrity": "sha512-jasearZPolBw5NJNYGMwxzHMF83niVWmMU1VdHzG1CyfI2VS7f7nZltnKtHcg20hW+7Uo5GfK4MeDPoU3qI8EA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.66.0", + "@typescript-eslint/types": "8.66.0", + "@typescript-eslint/typescript-estree": "8.66.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.66.0.tgz", + "integrity": "sha512-dkKR8q+lKciskj1Y3vthHktl+3cMLWGyVUP23bRiPZ5O9BRT++4EqDDV+TVeIKBL1VXVEqrJlz8MYbcnvJcAlg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.66.0", + "eslint-visitor-keys": "^5.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@unrs/resolver-binding-darwin-arm64": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.12.2.tgz", + "integrity": "sha512-u9DiNT1auQMO20A9SyTuG3wUgQWB9Z7KjAg0uFuCDR1FsAY8A0CG2S6JpHS1xwm/w1G08bjXZDcyOCjv1WAm2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@xmldom/is-dom-node": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@xmldom/is-dom-node/-/is-dom-node-1.0.1.tgz", + "integrity": "sha512-CJDxIgE5I0FH+ttq/Fxy6nRpxP70+e2O048EPe85J2use3XKdatVM7dDVvFNjQudd9B49NPoZ+8PG49zj4Er8Q==", + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "node_modules/@xmldom/xmldom": { + "version": "0.8.14", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.14.tgz", + "integrity": "sha512-T4EDRUBVZYRldYApjEJiU0e1stYWaRAX7CuSnKzrpwdZKo53zGV8/pqfzV6FfwNl9YThD2OumQYvqtvjvgG7aQ==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@xyflow/react": { + "version": "12.11.2", + "resolved": "https://registry.npmjs.org/@xyflow/react/-/react-12.11.2.tgz", + "integrity": "sha512-eLAlDWJfWnQEhJwGMjlWdAXO9eYllKpliUmPQlAmOLxz6mExXuzMVDUKLMquixgkrtmMFFtug3jGKmYYld12cA==", + "license": "MIT", + "dependencies": { + "@xyflow/system": "0.0.79", + "classcat": "^5.0.3", + "zustand": "^4.4.0" + }, + "peerDependencies": { + "@types/react": ">=17", + "@types/react-dom": ">=17", + "react": ">=17", + "react-dom": ">=17" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@xyflow/react/node_modules/zustand": { + "version": "4.5.7", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.7.tgz", + "integrity": "sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw==", + "license": "MIT", + "dependencies": { + "use-sync-external-store": "^1.2.2" + }, + "engines": { + "node": ">=12.7.0" + }, + "peerDependencies": { + "@types/react": ">=16.8", + "immer": ">=9.0.6", + "react": ">=16.8" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + } + } + }, + "node_modules/@xyflow/system": { + "version": "0.0.79", + "resolved": "https://registry.npmjs.org/@xyflow/system/-/system-0.0.79.tgz", + "integrity": "sha512-czLyOh91NF0hIzbNzwi8I6GlqG23BHh2435OddfI6uiaLH3xdrdygO93gqgH1Bv9mhy8XPFQJOBn1FTq4LvEWA==", + "license": "MIT", + "dependencies": { + "@types/d3-drag": "^3.0.7", + "@types/d3-interpolate": "^3.0.4", + "@types/d3-selection": "^3.0.10", + "@types/d3-transition": "^3.0.8", + "@types/d3-zoom": "^3.0.8", + "d3-drag": "^3.0.0", + "d3-interpolate": "^3.0.1", + "d3-selection": "^3.0.0", + "d3-zoom": "^3.0.0" + } + }, + "node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "license": "MIT", + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.18.0.tgz", + "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/ajv": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asn1js": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.10.tgz", + "integrity": "sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg==", + "license": "BSD-3-Clause", + "dependencies": { + "pvtsutils": "^1.3.6", + "pvutils": "^1.1.5", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.12.1.tgz", + "integrity": "sha512-s7iGf5GaVMxEG0ENN9x+xTr7GFZCb1ZP/1uATUpCEK2X78nDB3RwbtFCo9pGAf9ru+VwoQ464DkaLEeRM08wJA==", + "dev": true, + "license": "MPL-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true + }, + "node_modules/baseline-browser-mapping": { + "version": "2.11.12", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.12.tgz", + "integrity": "sha512-r7WnVImvVCeFpf2DOXfy41aPWzeNg3H/A2X4dKmy1QL0MSyyk/e7z8ihJ3N6Nn2PsdhkVlqnEfnUE4a05P2aTA==", + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/bcryptjs": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-3.0.3.tgz", + "integrity": "sha512-GlF5wPWnSa/X5LKM1o0wz0suXIINz1iHRLvTS+sLyi7XPbe5ycmYI3DlZqVGZZtDgl4DmasFg7gOB3JYbphV5g==", + "license": "BSD-3-Clause", + "bin": { + "bcrypt": "bin/bcrypt" + } + }, + "node_modules/better-sqlite3": { + "version": "12.11.1", + "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.11.1.tgz", + "integrity": "sha512-dq9AtApgg5PGFtBzPFSBl3HZQjHok5gaQCM6zh2Yk0aSmDCs1CbnVI8/HgASQkNKsWFpseIO9beg5xxpYhbIfA==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "bindings": "^1.5.0", + "prebuild-install": "^7.1.1" + }, + "engines": { + "node": "20.x || 22.x || 23.x || 24.x || 25.x || 26.x" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "license": "MIT", + "optional": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/body-parser": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.3.0.tgz", + "integrity": "sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==", + "license": "MIT", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^2.0.0", + "debug": "^4.4.3", + "http-errors": "^2.0.1", + "iconv-lite": "^0.7.2", + "on-finished": "^2.4.1", + "qs": "^6.15.2", + "raw-body": "^3.0.2", + "type-is": "^2.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/body-parser/node_modules/content-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.0.0.tgz", + "integrity": "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", + "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.7.tgz", + "integrity": "sha512-JxV13hNrFxqjOc8alRbq9dK1MM79NEXYpma2B2J4wAtpWS5zIEIKqWPGCl7N4o7Uc7B7itylh7SuDujATRyyTw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.10.44", + "caniuse-lite": "^1.0.30001806", + "electron-to-chromium": "^1.5.393", + "node-releases": "^2.0.51", + "update-browserslist-db": "^1.2.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/bytestreamjs": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bytestreamjs/-/bytestreamjs-2.0.1.tgz", + "integrity": "sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", + "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "get-intrinsic": "^1.3.0", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001806", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001806.tgz", + "integrity": "sha512-72Cuvd95zbSYPKq6Fhg8eDJRlzgWDf7/mtoZv6Qe/DYNCEBdNxoA3+rZAU2ZhGCpZlns3EssFavaZomckT5Uuw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "license": "ISC", + "optional": true + }, + "node_modules/classcat": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/classcat/-/classcat-5.0.5.tgz", + "integrity": "sha512-JhZUT7JFcQy/EzW605k/ktHtncoo9vnyW/2GspNYwFlN1C/WmjuV/xtS04e9SOkL2sTdw0VAZ2UGCcQ9lR6p6w==", + "license": "MIT" + }, + "node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "license": "MIT", + "dependencies": { + "restore-cursor": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-spinners": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-3.4.0.tgz", + "integrity": "sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==", + "license": "MIT", + "engines": { + "node": ">=18.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/confbox": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.4.tgz", + "integrity": "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==", + "license": "MIT" + }, + "node_modules/content-disposition": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz", + "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz", + "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "license": "ISC", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "license": "ISC", + "dependencies": { + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "d3-selection": "2 - 3" + } + }, + "node_modules/d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js-light": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", + "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==", + "license": "MIT" + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/default-browser": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.0.tgz", + "integrity": "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==", + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", + "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "devOptional": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dompurify": { + "version": "3.4.13", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.13.tgz", + "integrity": "sha512-2vmYIoqjze2d+kakP8S/nS5shfsl587kzwEjcGlTdiksUVgFHnFCsLYDVj/JNqJVOQZGSYBTmuycv0PodwmnMQ==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.401", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.401.tgz", + "integrity": "sha512-H6ViHN68nGYlChEvlIU67fn8O2/tpbWQPwck98yaJmh+08LSvHiydzDQ6oXNccLU3kNRVIRS9A4mA7CG+i6fLQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "license": "MIT", + "optional": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.24.5", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.5.tgz", + "integrity": "sha512-L1l8TNvomm6UVW5B253AGxQagSQr+vGwhMlrrfRS2qmhx46AMpMVJKQYLvWYbysTMY8VoicOvzHzoHMbyzB+4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/es-abstract": { + "version": "1.24.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.2.tgz", + "integrity": "sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-abstract-get": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-abstract-get/-/es-abstract-get-1.0.0.tgz", + "integrity": "sha512-6PMWXpdhshVvFp+FoWYs1EvG1Nj0tvk0dZM+XcK0xMEM1czRVcP6ohqPWHy6qPagSpC8j4+p89WXlT+xXJs/fg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.2", + "is-callable": "^1.2.7", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.4.0.tgz", + "integrity": "sha512-c/A0P0oxkACDc+cKWw8evLXK83oBKgn0qPOqCYT4x9uolpCIJAcYvJC9QYKNDRPsTeGyCrQ326jrvgZWdCdK5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.2", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.1.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.3.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.5", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.4.tgz", + "integrity": "sha512-yPDz7wqpg1/mmHLmS3tcfTfbw5f1eryXvyghYBffGdERwe+mV7ZcWzTR8LR17Kvqt3qfPurjlonmnq3MKXIOXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-abstract-get": "^1.0.0", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "is-callable": "^1.2.7", + "is-date-object": "^1.1.0", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-toolkit": { + "version": "1.50.0", + "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.50.0.tgz", + "integrity": "sha512-OyZKhUVvEep9ITEiwHn8GKnMRQIVqoSIX7WnRbkWgJkllCujilqP2rD0u979tkl8wqyc8ICwlc1UBVv/Sl1G6w==", + "license": "MIT", + "workspaces": [ + "docs", + "benchmarks", + "tests/types" + ] + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.39.5", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.5.tgz", + "integrity": "sha512-DgZS62aPLXKlnxILS/AYCoRvHaZeXceIzlXPkkGGzJWSow1aEk0lbTlxUSlyjC8jcaKxAdOnTDz+o1JFSBsyjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.2", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.6", + "@eslint/js": "9.39.5", + "@eslint/plugin-kit": "^0.4.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.14.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.5", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-next": { + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-16.1.6.tgz", + "integrity": "sha512-vKq40io2B0XtkkNDYyleATwblNt8xuh3FWp8SpSz3pt7P01OkBFlKsJZ2mWt5WsCySlDQLckb1zMY9yE9Qy0LA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@next/eslint-plugin-next": "16.1.6", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.32.0", + "eslint-plugin-jsx-a11y": "^6.10.0", + "eslint-plugin-react": "^7.37.0", + "eslint-plugin-react-hooks": "^7.0.0", + "globals": "16.4.0", + "typescript-eslint": "^8.46.0" + }, + "peerDependencies": { + "eslint": ">=9.0.0", + "typescript": ">=3.3.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-config-next/node_modules/globals": { + "version": "16.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.4.0.tgz", + "integrity": "sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.10.tgz", + "integrity": "sha512-tRrKqFyCaKict5hOd244sL6EQFNycnMQnBe+j8uqGNXYzsImGbGUU4ibtoaBmv5FLwJwcFJNeg1GeVjQfbMrDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.16.1", + "resolve": "^2.0.0-next.6" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.1.tgz", + "integrity": "sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@nolyfill/is-core-module": "1.0.39", + "debug": "^4.4.0", + "get-tsconfig": "^4.10.0", + "is-bun-module": "^2.0.0", + "stable-hash": "^0.0.5", + "tinyglobby": "^0.2.13", + "unrs-resolver": "^1.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-import-resolver-typescript" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" + }, + "peerDependenciesMeta": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.14.0.tgz", + "integrity": "sha512-W2WCRZ9Dqntd+2u8jJcVMV2PKulc6RdLgUUoh/yQr3uB6lo/ZOeGx11sv60/8S4QFFKNslAlWhr9u0Ef7ZW6Ig==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.1", + "hasown": "^2.0.2", + "is-core-module": "^2.16.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.1", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.9", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", + "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.9", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.1.1.tgz", + "integrity": "sha512-f2I7Gw6JbvCexzIInuSbZpfdQ44D7iqdWX01FKLvrPgqxoE7oMj8clOfto8U6vYiz4yd5oKu39rRSVOe1zRu0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.24.4", + "@babel/parser": "^7.24.4", + "hermes-parser": "^0.25.1", + "zod": "^3.25.0 || ^4.0.0", + "zod-validation-error": "^3.5.0 || ^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 || ^10.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" + }, + "node_modules/expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "license": "(MIT OR WTFPL)", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/express": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", + "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", + "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.1", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "depd": "^2.0.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "license": "MIT", + "optional": true + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", + "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.4.tgz", + "integrity": "sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==", + "dev": true, + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "license": "MIT", + "optional": true + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.2.0.tgz", + "integrity": "sha512-jObKIik1P2QjPHP5nz5BaOtUlfgS0fWo8IUByNXkM+o+02sJOi94em77GwJKQSJ3gfPHdgzLNrHc1uokV4P/ew==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2", + "hasown": "^2.0.4", + "is-callable": "^1.2.7", + "is-document.all": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.6.0.tgz", + "integrity": "sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.1.tgz", + "integrity": "sha512-Dz/6HxkrxgNehhxLVeyv8sad9UzF2xBVeaKBQNDfJ5XiSXmp2gTR0eO0RWiT2NCKS5aGP9jjkOMggTN90qU50A==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "license": "MIT", + "optional": true + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hermes-estree": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz", + "integrity": "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==", + "dev": true, + "license": "MIT" + }, + "node_modules/hermes-parser": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.25.1.tgz", + "integrity": "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hermes-estree": "0.25.1" + } + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-3.0.7.tgz", + "integrity": "sha512-iwbQltVlx8bCrqePUM8C+hllHvdawVhQJaLrj1X7qllkvFQdXFsr16pW/mo9+JDVjN+QO2XUx9jd8SmoFkE5qw==", + "license": "MIT", + "dependencies": { + "@types/http-proxy": "^1.17.15", + "debug": "^4.3.6", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.3", + "is-plain-object": "^5.0.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": "^14.18.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz", + "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immer": { + "version": "11.1.15", + "resolved": "https://registry.npmjs.org/immer/-/immer-11.1.15.tgz", + "integrity": "sha512-VrNANlmnWQnh5COXIIOQXM9oOJw7naGKlBT74ZOOR6lpVXc3gFEu9FJLDFcpCJ2j+NWr8TIwtWD//T6ZX6TKiQ==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC", + "optional": true + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/ip-address": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.4.0.tgz", + "integrity": "sha512-oSK96Grm3aP6OrS263xVxbNDGVL7rzBtYdpGqlDG8iQdoenDoTs/nkki+DflYbAEE8Xl6o5YxhxlrKvI3nqKXQ==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bun-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz", + "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.7.1" + } + }, + "node_modules/is-bun-module/node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-document.all": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-document.all/-/is-document.all-1.0.0.tgz", + "integrity": "sha512-+XSoyS05OdBbhFuELhgTCpFNHkpBOJqtsZfUFFpe5QTw+9Sjbh8zitxhQkYAo6wV7e1Vb8cAPvpCk9jGam/82g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-in-ssh": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-in-ssh/-/is-in-ssh-1.0.0.tgz", + "integrity": "sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "license": "MIT" + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-unicode-supported": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", + "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/jiti": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", + "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/jose": { + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.8.tgz", + "integrity": "sha512-Bsdjwm3Qsd/P0jR+BHDe3LytDfY7WBq2HmCCLIwuVRHMuEC9ae7/R474GIUdF1NgCyZjzVo/A9DOiOBtXq8ZoQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.1.tgz", + "integrity": "sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dev": true, + "license": "MIT", + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lightningcss": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-7.0.1.tgz", + "integrity": "sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==", + "license": "MIT", + "dependencies": { + "is-unicode-supported": "^2.0.0", + "yoctocolors": "^2.1.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/marked": { + "version": "18.0.9", + "resolved": "https://registry.npmjs.org/marked/-/marked-18.0.9.tgz", + "integrity": "sha512-/Sa4qiiHZxf0/FQdBBowr9q4r10krCwMvpK48FUBdXdUXScDxiQGR9zCPrFgRVR5LU3iySOiIjy09ZQvADir1w==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 20" + } + }, + "node_modules/material-symbols": { + "version": "0.44.12", + "resolved": "https://registry.npmjs.org/material-symbols/-/material-symbols-0.44.12.tgz", + "integrity": "sha512-lZkS9BwISNU2Jbup+IlwZrr9z1oAK6zx38qPpe7mNzkXwiIEnQaxPz1Sf3bNZ0MX15LNlJQNjKI3MWLgmo83+Q==", + "license": "Apache-2.0" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.1.tgz", + "integrity": "sha512-yz3xRaG20c6/BOzvYoDaGtPmGscs7YivItZEEqe6GbwNfHuxu9YNmvnEkMzKldAGY4/80pRcQRZSEnhquk9XuQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "devOptional": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "license": "MIT", + "optional": true + }, + "node_modules/monaco-editor": { + "version": "0.56.0", + "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.56.0.tgz", + "integrity": "sha512-sXboRm3BeBeLm938eaiyLMe0OxzfXIlZvbv4ir/jVgQy1zDhWjgmny0WoN45fuDKhCCQsYMbBJrv/A6jd8aCUg==", + "license": "MIT", + "dependencies": { + "dompurify": "3.4.8", + "marked": "14.0.0" + } + }, + "node_modules/monaco-editor/node_modules/marked": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-14.0.0.tgz", + "integrity": "sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.18", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz", + "integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/napi-build-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz", + "integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==", + "license": "MIT", + "optional": true + }, + "node_modules/napi-postinstall": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz", + "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==", + "dev": true, + "license": "MIT", + "bin": { + "napi-postinstall": "lib/cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/napi-postinstall" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/next": { + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/next/-/next-16.3.0.tgz", + "integrity": "sha512-NEdGOzH+08eTXMUp9UYkA99Nhi5N6Thrhc1jgFOQgfgnGK/dA2hRwBpXep+exdFQrnwlRf/3Wixyp8lLBUpE2A==", + "license": "MIT", + "dependencies": { + "@next/env": "16.3.0", + "@swc/helpers": "0.5.15", + "baseline-browser-mapping": "^2.9.19", + "caniuse-lite": "^1.0.30001579", + "postcss": "8.5.23", + "styled-jsx": "5.1.6" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=20.9.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "16.3.0", + "@next/swc-darwin-x64": "16.3.0", + "@next/swc-linux-arm64-gnu": "16.3.0", + "@next/swc-linux-arm64-musl": "16.3.0", + "@next/swc-linux-x64-gnu": "16.3.0", + "@next/swc-linux-x64-musl": "16.3.0", + "@next/swc-win32-arm64-msvc": "16.3.0", + "@next/swc-win32-x64-msvc": "16.3.0", + "sharp": "^0.35.3" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.51.1", + "babel-plugin-react-compiler": "*", + "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "@playwright/test": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/next/node_modules/postcss": { + "version": "8.5.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.23.tgz", + "integrity": "sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.16", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/node-abi": { + "version": "3.94.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.94.0.tgz", + "integrity": "sha512-W5ZNO5KRPB5TkYmGVD9F6YqhsglXJzE6etpbmT+f6EQElhiX/UTG551cnsRGvLG3fyZEg9HwaDmNmj5nwJ4z9g==", + "license": "MIT", + "optional": true, + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-abi/node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-exports-info": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/node-exports-info/-/node-exports-info-1.6.2.tgz", + "integrity": "sha512-kXs9Go0cah0qHVV2v389IXQLdLCeE1xfFtjOAF+iobu0OIoG1pje8At2vMHyaPMiPMnG/LWP50twML21eMcAag==", + "dev": true, + "license": "MIT", + "dependencies": { + "array.prototype.flatmap": "^1.3.3", + "es-errors": "^1.3.0", + "object.entries": "^1.1.9", + "semver": "^6.3.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/node-forge": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.4.0.tgz", + "integrity": "sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==", + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-machine-id": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/node-machine-id/-/node-machine-id-1.1.12.tgz", + "integrity": "sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==", + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.52", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.52.tgz", + "integrity": "sha512-MRlTqhAfoMx/4mhEbPo3Hi02g9LJZaJkka69V6h67Cb1gjrAG0jsTE4CZX1eptNx+VCAwJmfpnDIF4P0Nh1A7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "license": "MIT", + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/open/-/open-11.0.0.tgz", + "integrity": "sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw==", + "license": "MIT", + "dependencies": { + "default-browser": "^5.4.0", + "define-lazy-prop": "^3.0.0", + "is-in-ssh": "^1.0.0", + "is-inside-container": "^1.0.0", + "powershell-utils": "^0.1.0", + "wsl-utils": "^0.3.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-9.4.1.tgz", + "integrity": "sha512-6VlU9MLXbjVQD04AZCMX28hVtA5bUoadvUqO76MUCVA0ilwJbMiHsITRPfyVm6p/BC0Av/BXMujx39WCe1LEqw==", + "license": "MIT", + "dependencies": { + "chalk": "^5.6.2", + "cli-cursor": "^5.0.0", + "cli-spinners": "^3.2.0", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^2.1.0", + "log-symbols": "^7.0.1", + "stdin-discarder": "^0.3.2", + "string-width": "^8.1.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/own-keys": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.2.tgz", + "integrity": "sha512-19YVAg7T+WTrxggPukVq7DjTv6+PJ867TmhCvBsYwmbFCsZd344rq2Ld1p0wo8f8Qrrhgp82c6FJRqdXWtSEhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4", + "get-intrinsic": "^1.3.0", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz", + "integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkijs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pkijs/-/pkijs-3.4.0.tgz", + "integrity": "sha512-emEcLuomt2j03vxD54giVB4SxTjnsqkU692xZOZXHDVoYyypEm+b3jpiTcc+Cf+myooc+/Ly0z01jqeNHVgJGw==", + "license": "BSD-3-Clause", + "dependencies": { + "@noble/hashes": "1.4.0", + "asn1js": "^3.0.6", + "bytestreamjs": "^2.0.1", + "pvtsutils": "^1.3.6", + "pvutils": "^1.1.3", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.5.25", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.25.tgz", + "integrity": "sha512-DTPx3RWSSnWyzLxQnlH0rJP+EW5ekl16ZU4/psbIhA0e53kJfdgaN5vKM+xP7yJtXVu+nfdVFmlgFDEKAe4Pyw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.16", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/powershell-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.1.0.tgz", + "integrity": "sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/prebuild-install": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz", + "integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==", + "deprecated": "No longer maintained. Please contact the author of the relevant native addon; alternatives are available.", + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^2.0.0", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pump": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz", + "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==", + "license": "MIT", + "optional": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pvtsutils": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.6.tgz", + "integrity": "sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.8.1" + } + }, + "node_modules/pvutils": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.2.0.tgz", + "integrity": "sha512-BbubeCEyTuQjVMakvJQ/Sxbc93F2pwmbsxONT/ZRrwU7Ua38d8unYTwXpTVLAKJ4BDuH9IGztCjQcd/N/39Dvg==", + "license": "MIT", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/qs": { + "version": "6.15.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.3.tgz", + "integrity": "sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==", + "license": "BSD-3-Clause", + "dependencies": { + "es-define-property": "^1.0.1", + "side-channel": "^1.1.1" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/range-parser": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.3.0.tgz", + "integrity": "sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/raw-body": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", + "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.7.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "optional": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", + "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz", + "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.4" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/react-redux": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.3.0.tgz", + "integrity": "sha512-KQopgqFo/p/fgmAs5qz6p5RWaNAzq40WAu7fJIXnQpYxFPbJYtsJPWvGeF2rOBaY/kEuV77AVsX8TsQzKm+A/g==", + "license": "MIT", + "dependencies": { + "@types/use-sync-external-store": "^0.0.6", + "use-sync-external-store": "^1.4.0" + }, + "peerDependencies": { + "@types/react": "^18.2.25 || ^19", + "react": "^18.0 || ^19", + "redux": "^5.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "redux": { + "optional": true + } + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "optional": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/recharts": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/recharts/-/recharts-3.10.1.tgz", + "integrity": "sha512-QXFrvt6IVcw7eeZCoyXTwkIJAX3Dv1nyVhMicXJ47GsGDDpcN8z6o644DibE9XjpBTThtsomLKnTV6lc+cVFUA==", + "license": "MIT", + "workspaces": [ + "www" + ], + "dependencies": { + "@reduxjs/toolkit": "^1.9.0 || 2.x.x", + "clsx": "^2.1.1", + "decimal.js-light": "^2.5.1", + "es-toolkit": "^1.39.3", + "eventemitter3": "^5.0.1", + "immer": "^11.1.8", + "react-redux": "8.x.x || 9.x.x", + "reselect": "5.2.0", + "tiny-invariant": "^1.3.3", + "use-sync-external-store": "^1.2.2", + "victory-vendor": "^37.0.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-is": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/recharts/node_modules/eventemitter3": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", + "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", + "license": "MIT" + }, + "node_modules/redux": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", + "license": "MIT" + }, + "node_modules/redux-thunk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz", + "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==", + "license": "MIT", + "peerDependencies": { + "redux": "^5.0.0" + } + }, + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", + "license": "Apache-2.0" + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "license": "MIT" + }, + "node_modules/reselect": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.2.0.tgz", + "integrity": "sha512-AgZ3UOZm3YndfrJ4OYjgrT7bmCm/1iqkjvEfH/oYjzh6PD2qw4QuT3jjnXIrpdt4MTpMXclMT3lXbmRY+XRakw==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "2.0.0-next.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.7.tgz", + "integrity": "sha512-tqt+NBWwyaMgw3zDsnygx4CByWjQEJHOPMdslYhppaQSJUtL/D4JO9CcBBlhPoI8lz9oJIDXkwXfhF4aWqP8xQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.2", + "node-exports-info": "^1.6.0", + "object-keys": "^1.1.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "license": "MIT", + "dependencies": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/run-applescript": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.4.tgz", + "integrity": "sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "get-intrinsic": "^1.3.0", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/sax": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.1.tgz", + "integrity": "sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, + "node_modules/selfsigned": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-5.5.0.tgz", + "integrity": "sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew==", + "license": "MIT", + "dependencies": { + "@peculiar/x509": "^1.14.2", + "pkijs": "^3.3.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", + "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.3", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.1", + "mime-types": "^3.0.2", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/serve-static": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", + "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/sharp": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.35.3.tgz", + "integrity": "sha512-ej0zVHuZGHCiABXcNxeYhpRnPNPAcvbG8RMdBAhDAxLKkCRVSpK3Iyu7qbqw3JMzoj0REeM6f3tJLtVwl0023Q==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@img/colour": "^1.1.0", + "detect-libc": "^2.1.2", + "semver": "^7.8.5" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.35.3", + "@img/sharp-darwin-x64": "0.35.3", + "@img/sharp-freebsd-wasm32": "0.35.3", + "@img/sharp-libvips-darwin-arm64": "1.3.2", + "@img/sharp-libvips-darwin-x64": "1.3.2", + "@img/sharp-libvips-linux-arm": "1.3.2", + "@img/sharp-libvips-linux-arm64": "1.3.2", + "@img/sharp-libvips-linux-ppc64": "1.3.2", + "@img/sharp-libvips-linux-riscv64": "1.3.2", + "@img/sharp-libvips-linux-s390x": "1.3.2", + "@img/sharp-libvips-linux-x64": "1.3.2", + "@img/sharp-libvips-linuxmusl-arm64": "1.3.2", + "@img/sharp-libvips-linuxmusl-x64": "1.3.2", + "@img/sharp-linux-arm": "0.35.3", + "@img/sharp-linux-arm64": "0.35.3", + "@img/sharp-linux-ppc64": "0.35.3", + "@img/sharp-linux-riscv64": "0.35.3", + "@img/sharp-linux-s390x": "0.35.3", + "@img/sharp-linux-x64": "0.35.3", + "@img/sharp-linuxmusl-arm64": "0.35.3", + "@img/sharp-linuxmusl-x64": "0.35.3", + "@img/sharp-webcontainers-wasm32": "0.35.3", + "@img/sharp-win32-arm64": "0.35.3", + "@img/sharp-win32-ia32": "0.35.3", + "@img/sharp-win32-x64": "0.35.3" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/sharp/node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", + "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4", + "side-channel-list": "^1.0.1", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true + }, + "node_modules/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.9.tgz", + "integrity": "sha512-LJhUYUvItdQ0LkJTmPeaEObWXAqFyfmP85x0tch/ez9cahmhlBBLbIqDFnvBnUJGagb0JbIQrkBs1wJ+yRYpEw==", + "license": "MIT", + "dependencies": { + "ip-address": "^10.1.1", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sql.js": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/sql.js/-/sql.js-1.14.1.tgz", + "integrity": "sha512-gcj8zBWU5cFsi9WUP+4bFNXAyF1iRpA3LLyS/DP5xlrNzGmPIizUeBggKa8DbDwdqaKwUcTEnChtd2grWo/x/A==", + "license": "MIT" + }, + "node_modules/stable-hash": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", + "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/state-local": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz", + "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==", + "license": "MIT" + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stdin-discarder": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.3.2.tgz", + "integrity": "sha512-eCPu1qRxPVkl5605OTWF8Wz40b4Mf45NY5LQmVPQ599knfs5QhASUm9GbJ5BDMDOXgrnh0wyEdvzmL//YMlw0A==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "optional": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.2.tgz", + "integrity": "sha512-GaPUh5gfdrYzqeVNZvUfT23vYYxXzKYidUcnMtJg/3rxRV63EFZy3k6xfKlmfeJD0176lnUV/Usr3XcwSvFzpg==", + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.5.0", + "strip-ansi": "^7.1.2" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.11.tgz", + "integrity": "sha512-PwvK7BU+CMTJGYQCTZb5RWXIML92lftJLhQz1tBzgKiqGxJaMlBAa48POXaNAC2s4y8jr3EFqrkF9+44neS46w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.2", + "es-object-atoms": "^1.1.2", + "has-property-descriptors": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.10.tgz", + "integrity": "sha512-2+3aDAOmPTmuFwjDnmJG2ctEkQKVki7vOSqaxkv42Mowj1V6PnvuwFCRrR5lChUux1TBskPjfkeTOhqczDMxTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/styled-jsx": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", + "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", + "license": "MIT", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.3.tgz", + "integrity": "sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/tar-fs": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.5.tgz", + "integrity": "sha512-OboTd8mmMhZDNPV+UjQcK9yKAatXu2aJ+r1w4im1Otd4M4fl2hwvdoXUxIYHFTHWK/3y3FarBP70v3vwmGlOxw==", + "license": "MIT", + "optional": true, + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/third-party-capital": { + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/third-party-capital/-/third-party-capital-1.0.20.tgz", + "integrity": "sha512-oB7yIimd8SuGptespDAZnNkzIz+NWaJCu2RMsbs4Wmp9zSDUM8Nhi3s2OOcqYuv3mN4hitXc8DVx+LyUmbUDiA==", + "license": "ISC" + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/ts-api-utils": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tsyringe": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/tsyringe/-/tsyringe-4.10.0.tgz", + "integrity": "sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==", + "license": "MIT", + "dependencies": { + "tslib": "^1.9.3" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/tsyringe/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-is": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.1.0.tgz", + "integrity": "sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==", + "license": "MIT", + "dependencies": { + "content-type": "^2.0.0", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/type-is/node_modules/content-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.0.0.tgz", + "integrity": "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.8.tgz", + "integrity": "sha512-phPGCwqr2+Qo0fwniCE8e4pKnGu/yFb5nD5Y8bf0EEeiI5GklnACYA9GFy/DrAeRrKHXvHn+1SUsOWgJp6RO+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.9", + "for-each": "^0.3.5", + "gopd": "^1.2.0", + "is-typed-array": "^1.1.15", + "possible-typed-array-names": "^1.1.0", + "reflect.getprototypeof": "^1.0.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.66.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.66.0.tgz", + "integrity": "sha512-QlEbBPz/RuJ1XUHj29nm3t0F/O/cSlEnntozqPOYHnnTGAXFamnMBu5i9Vn6vhUPHGAjR+Vl+5J8vPN/BMUrJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.66.0", + "@typescript-eslint/parser": "8.66.0", + "@typescript-eslint/typescript-estree": "8.66.0", + "@typescript-eslint/utils": "8.66.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.29.0.tgz", + "integrity": "sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==", + "license": "MIT", + "engines": { + "node": ">=20.18.1" + } + }, + "node_modules/undici-types": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz", + "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==", + "license": "MIT" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unrs-resolver": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.12.2.tgz", + "integrity": "sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "napi-postinstall": "^0.3.4" + }, + "funding": { + "url": "https://opencollective.com/unrs-resolver" + }, + "optionalDependencies": { + "@unrs/resolver-binding-android-arm-eabi": "1.12.2", + "@unrs/resolver-binding-android-arm64": "1.12.2", + "@unrs/resolver-binding-darwin-arm64": "1.12.2", + "@unrs/resolver-binding-darwin-x64": "1.12.2", + "@unrs/resolver-binding-freebsd-x64": "1.12.2", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.12.2", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.12.2", + "@unrs/resolver-binding-linux-arm64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-arm64-musl": "1.12.2", + "@unrs/resolver-binding-linux-loong64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-loong64-musl": "1.12.2", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-riscv64-musl": "1.12.2", + "@unrs/resolver-binding-linux-s390x-gnu": "1.12.2", + "@unrs/resolver-binding-linux-x64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-x64-musl": "1.12.2", + "@unrs/resolver-binding-openharmony-arm64": "1.12.2", + "@unrs/resolver-binding-wasm32-wasi": "1.12.2", + "@unrs/resolver-binding-win32-arm64-msvc": "1.12.2", + "@unrs/resolver-binding-win32-ia32-msvc": "1.12.2", + "@unrs/resolver-binding-win32-x64-msvc": "1.12.2" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/use-sync-external-store": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT", + "optional": true + }, + "node_modules/uuid": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-13.0.2.tgz", + "integrity": "sha512-vzi9uRZ926x4XV73S/4qQaTwPXM2JBj6/6lI/byHH1jOpCzb0zDbfytgA9LcN/hzb2l7WQSQnxITOVx5un/wGw==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist-node/bin/uuid" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/victory-vendor": { + "version": "37.3.6", + "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-37.3.6.tgz", + "integrity": "sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ==", + "license": "MIT AND ISC", + "dependencies": { + "@types/d3-array": "^3.0.3", + "@types/d3-ease": "^3.0.0", + "@types/d3-interpolate": "^3.0.1", + "@types/d3-scale": "^4.0.2", + "@types/d3-shape": "^3.1.0", + "@types/d3-time": "^3.0.0", + "@types/d3-timer": "^3.0.0", + "d3-array": "^3.1.6", + "d3-ease": "^3.0.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "d3-shape": "^3.1.0", + "d3-time": "^3.0.0", + "d3-timer": "^3.0.1" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.22", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.22.tgz", + "integrity": "sha512-fvO4ExWMFsqyhG3AiPAObMuY1lxaqgYcxbc49CNdWDDECOJNgQyvsOWVwbZc+qf3rzRtxojBK+CMEv0Ld5CYpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.9", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/wsl-utils": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.3.1.tgz", + "integrity": "sha512-g/eziiSUNBSsdDJtCLB8bdYEUMj4jR7AGeUo96p/3dTafgjHhpF4RiCFPiRILwjQoDXx5MqkBr4fwWtR3Ky4Wg==", + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0", + "powershell-utils": "^0.1.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/xml-crypto": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/xml-crypto/-/xml-crypto-6.1.2.tgz", + "integrity": "sha512-leBOVQdVi8FvPJrMYoum7Ici9qyxfE4kVi+AkpUoYCSXaQF4IlBm1cneTK9oAxR61LpYxTx7lNcsnBIeRpGW2w==", + "license": "MIT", + "dependencies": { + "@xmldom/is-dom-node": "^1.0.1", + "@xmldom/xmldom": "^0.8.10", + "xpath": "^0.0.33" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/xml-crypto/node_modules/xpath": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.33.tgz", + "integrity": "sha512-NNXnzrkDrAzalLhIUc01jO2mOzXGXh1JwPgkihcLLzw98c0WgYDmmjSh1Kl3wzaxSVWMuA+fe0WTWOBDWCBmNA==", + "license": "MIT", + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/xml-encryption": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/xml-encryption/-/xml-encryption-3.1.0.tgz", + "integrity": "sha512-PV7qnYpoAMXbf1kvQkqMScLeQpjCMixddAKq9PtqVrho8HnYbBOWNfG0kA4R7zxQDo7w9kiYAyzS/ullAyO55Q==", + "license": "MIT", + "dependencies": { + "@xmldom/xmldom": "^0.8.5", + "escape-html": "^1.0.3", + "xpath": "0.0.32" + } + }, + "node_modules/xml-encryption/node_modules/xpath": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.32.tgz", + "integrity": "sha512-rxMJhSIoiO8vXcWvSifKqhvV96GjiD5wYb8/QHdoRyQvraTpp4IEv944nhGausZZ3u7dhQXteZuZbaqfpB7uYw==", + "license": "MIT", + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/xml2js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", + "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xml2js/node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "license": "MIT", + "engines": { + "node": ">=8.0" + } + }, + "node_modules/xpath": { + "version": "0.0.34", + "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.34.tgz", + "integrity": "sha512-FxF6+rkr1rNSQrhUNYrAFJpRXNzlDoMxeXN5qI84939ylEv3qqPFKa85Oxr6tDaJKqwW6KKyo2v26TSv3k6LeA==", + "license": "MIT", + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yoctocolors": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.2.0.tgz", + "integrity": "sha512-xYqdZFUK/VYazNl/oCDYN+3WloWQwMfZxBoiNt6qNyk+xfOdi598muWE42rNZFp1kNOiqW936q5RhUdnpqElSg==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz", + "integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zod-validation-error": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-4.0.2.tgz", + "integrity": "sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "zod": "^3.25.0 || ^4.0.0" + } + }, + "node_modules/zustand": { + "version": "5.0.14", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.14.tgz", + "integrity": "sha512-/8tAspM5LMPr28b3fwLYrtdj77ECpfZviaP75CMTnwO8ISyaE4GDIG/9rDDYq/cH9D2Xw2A2RXglLInmVBQB/g==", + "license": "MIT", + "engines": { + "node": ">=12.20.0" + }, + "peerDependencies": { + "@types/react": ">=18.0.0", + "immer": ">=9.0.6", + "react": ">=18.0.0", + "use-sync-external-store": ">=1.2.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + }, + "use-sync-external-store": { + "optional": true + } + } + } + } +} From 470c8ca72cb4f9302143ad92411ee6f378d43c40 Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Sat, 15 Aug 2026 08:14:03 +0800 Subject: [PATCH 27/42] fix(docker): regenerate platform-complete lockfile (npm 10, clean resolve) --- package-lock.json | 1859 +++++++++++++++++++++++++++++++++++++++------ 1 file changed, 1644 insertions(+), 215 deletions(-) diff --git a/package-lock.json b/package-lock.json index ec22bb9f..3aeed0d2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -374,6 +374,39 @@ "react": ">=16.8.0" } }, + "node_modules/@emnapi/core": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", + "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.3.tgz", + "integrity": "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.10.1", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.10.1.tgz", @@ -616,6 +649,47 @@ "@img/sharp-libvips-darwin-arm64": "1.3.2" } }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.35.3.tgz", + "integrity": "sha512-Xo+5uFBtLN0BKqieTxiFzFPQAUlBbbH5iBKyRX/z1JrbnYsHTfKJnUfL8+p2TPXr1pXqao4eeL4Rl144uDpK9w==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.3.2" + } + }, + "node_modules/@img/sharp-freebsd-wasm32": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-freebsd-wasm32/-/sharp-freebsd-wasm32-0.35.3.tgz", + "integrity": "sha512-lUxcqWIj2wMQ9BrwNjngcr1gWUr5xgaGThBRqPPalIC2n67Cqj1uPh8NnA/ZhAg8hUbKl+kVHKwgUIwe6ZYPrg==", + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "dependencies": { + "@img/sharp-wasm32": "0.35.3" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, "node_modules/@img/sharp-libvips-darwin-arm64": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.3.2.tgz", @@ -632,6 +706,418 @@ "url": "https://opencollective.com/libvips" } }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.3.2.tgz", + "integrity": "sha512-m2pW1n6cns9VaubNwsZ+c3CRYjxNQWgJ5gPlnL1nbBcpkBvFm6SCFN5o0psFHI8w9n11NKhFkeEDns98tiqbEw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.3.2.tgz", + "integrity": "sha512-1eMLzy92I4J6rmi4mAT8yC3HxOtniyGELlzGbNMLLeqe052ahFQ0h6LFq+lh5DsDIdYViIDst08abvSbcEdLXQ==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.3.2.tgz", + "integrity": "sha512-dqVSFynCox4C/J8kT16V7SIFAns0IjgLwkvYT7p8LQVmJ5OS5b6tI9IGflxTeuBS//zXeFIUbwt5dwxyZ17cnA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.3.2.tgz", + "integrity": "sha512-3z0NHDxD6n5I9gc05U1eW1AyRm+Gznzq3naMrthPNqE6oYykcogW0l/jfpJdjYnuNl8R7yI9pNbE1XiUeyq0Aw==", + "cpu": [ + "ppc64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.3.2.tgz", + "integrity": "sha512-bsb4rI+NldGOsXuej2r8OdSS8+zXDVaCWxyWrcv6kneTOlgAHtZABRzBBCwdsPiD90J4myNJuHpg6kA20ImW/w==", + "cpu": [ + "riscv64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.3.2.tgz", + "integrity": "sha512-/ABshyj8gCpyIrNXnHn4LorDJ0HHm1VhXPBlxZ8zAtfVPAaSafXPGn+sUSIRiwaSBy0mmFjSjiXI5mkcwdChKQ==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.3.2.tgz", + "integrity": "sha512-ITPEtgffGJ0S6G9dRyw/366tJQqFRcHWPHhC+Stpg3Z8AEMrDrTr2lhdz4f/Y/HMbRh//7Z5mBzEpVdi62Oc3w==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.3.2.tgz", + "integrity": "sha512-zE9EdiUzUmg5mDT5a1rk5fYJ6GWPloTwWBYDS14naqHsL+EaMpDj1AWnpLgh3u0YCORv2Tt50wrcrpYqkP97Kw==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.3.2.tgz", + "integrity": "sha512-m0lrLiUt+lBYnCFr8qV/65yMR4E/c7/wf78I5eKTdkEakFAlZ9QlzEM3QIhhAwVeUhLAHLcCq7a7Vszq/oFNZQ==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.35.3.tgz", + "integrity": "sha512-affVWCTLooy8TSxbDx2qkzuDeaWLNVBA+P//FNBirHsXpP2fuBhk5AuboYUnrDnzoXes8GFjpTx0SBFOCRg+FA==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.3.2" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.35.3.tgz", + "integrity": "sha512-QgKDspHPnrU+GQ55XPhGwyhC8acLVOOSyAvo1oVfFmrIXLkDNmGWzAfDZ4xK8oSA1qBQrALcHX0G5UZni/SuFQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.3.2" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.35.3.tgz", + "integrity": "sha512-sMd8rDxmpLOwv/7N44klFjOD5DUO7FLdjiXDI0hoxYaf7Ar262dQIEkosE98bps+5HPLtp/EvNqeqQtOycP/IA==", + "cpu": [ + "ppc64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.3.2" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.35.3.tgz", + "integrity": "sha512-0Eob78yjlYPfL5vMNWAW55l3R9Y6BQS/gOfe0ZcP9mEz9ohhKSt4im1hayiknXgf8AWrFqMvJcKIdmLmEe7yeQ==", + "cpu": [ + "riscv64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-riscv64": "1.3.2" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.35.3.tgz", + "integrity": "sha512-KgAxQ0DxpNOq1rG2t5cgTgShJFGSuU7XO45cqC+1NVOuZnP6tlgZRuSYOfNupGkHID0o3cJOsw4DVeJpMovcGw==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.3.2" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.35.3.tgz", + "integrity": "sha512-8pqvxubL2PGdhlPy6GLqzDYMUjyRmKAwKHYKixpdJYBUK7PJ0C029XdsnpFIdgRZG68fZiGdHVWcKPvtiPB4cA==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.3.2" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.35.3.tgz", + "integrity": "sha512-Vz0iQjzzcSX3HCbfwFfCSG/9SCIqyO0mH2sXyiHaAYfBk0cRsCWXRyQYX0ovCK/PAQBbTzQ0dsPQHh5MAFL59w==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.3.2" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.35.3.tgz", + "integrity": "sha512-6O1NPKcDVj9QEdg7Hx549EX8U0rp6yXQERqru6yRN7fGBn32UvIRJUlWnk+8xDCiG76hXVBbX82NZ/ZKr0euIg==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.3.2" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.35.3.tgz", + "integrity": "sha512-cZ0XkcYGpHZkqW6iCkqTcmUC0CD9DhD5d/qeZlZkfRBn6GnHniZXLUo5+9xw8Iv76YE6LQFN9YNBlKREcCG76w==", + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.11.1" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-webcontainers-wasm32": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-webcontainers-wasm32/-/sharp-webcontainers-wasm32-0.35.3.tgz", + "integrity": "sha512-2rnq7bX3NzeR2T4YWgz8qiG4h3TSdMe+vN1iQXpJleSJ3SM5zQ8Fy2SyyXAWlbxpEZ2Y+Z4u1BePgJEYbSy80Q==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@img/sharp-wasm32": "0.35.3" + }, + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.35.3.tgz", + "integrity": "sha512-4bPwFdMbeC4JQ8L8LOyWp6nsHcboP5fxkp6iPOXz2Vg49R42TuMs2whkJ5OAP4/Ul035qOzy0AecOF9VOscn4w==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.35.3.tgz", + "integrity": "sha512-r53mXsBN6lFUDiST764SvgwUdHAqM4rPAiDzAmf4fLoB6X/rkfyTrLCg6+g17wJJiCmB3JYgHuUldCWUIRFSXw==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.35.3.tgz", + "integrity": "sha512-D4y1vNeZrIIJCN+uHaWVtH86B+aCrdMYYjicy9pXHvbGZeGYLLSd3wdVuC37FxVXlU1ARsk84eKWfWMXGYEqvA==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=20.9.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", @@ -705,10 +1191,32 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.3.tgz", + "integrity": "sha512-UMduMbqO5s5zF2NkNacMT/yK5Y5QiKvWr2+50bzIIxFDwVJ2h49b+oyjaCGPhJxd2/gC2x39EHv/gHVuu36x2Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.3" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=23.5.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1 || ^2.0.0-alpha.4", + "@emnapi/runtime": "^1.7.1 || ^2.0.0-alpha.4" + } + }, "node_modules/@next/env": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/@next/env/-/env-16.3.0.tgz", - "integrity": "sha512-o9r1S0BNiNreHP9Vs+Qnqd9kviDkJh8xIACY7UFZSmiGbbQRzPBBosvHzAU4TULHOIuOj/18RSsyz2qrREmIFw==", + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/@next/env/-/env-16.3.1.tgz", + "integrity": "sha512-35G3xwkQUb2oETSDjFXGrVugknoayLFBh7vSE+yAcl9IP2zT9wyGwq7297AYHR11kJld807t5f8AJBs6WBzXsQ==", "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { @@ -722,9 +1230,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.3.0.tgz", - "integrity": "sha512-55hpqq18bEVAlxedlTt3tFqZmKg2nUXT1kn1G/BGEy0R13h3LwtwHPVzzjG6P4LLeOHE32PFDQUVaJEWvBEZBw==", + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.3.1.tgz", + "integrity": "sha512-ABMIu2zQ7cnNIHm5ivKGwZwUrm0pAai3yiJ/gK/rF1c1VP9UOnj7XECbMKFdVKp9I9eMYq9NoDs1WXOoowxzJw==", "cpu": [ "arm64" ], @@ -737,10 +1245,122 @@ "node": ">= 10" } }, + "node_modules/@next/swc-darwin-x64": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.3.1.tgz", + "integrity": "sha512-gNG21e/UnrroeScbY/QndUEdl0mF1FRibW7BBeYUz/5ABCepjqDdEdgr592vpzMtCn/m7FTjYq3TN4TpyDnutw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.3.1.tgz", + "integrity": "sha512-6B6Lw016iwNUQuaJoraMMTLh6TwHzFUtxipSScD1F3YyymcrRWkobodRS2ftIOkF5vrs4zNlyUrTC5YZQ9Lz5w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.3.1.tgz", + "integrity": "sha512-JUiPXZKK9wOhjf4MgDiH29GZLxfqOesbLtHq2pDxwH/WwscTRV2ToymnOTh1egzaZf0ueUf8T2+CeYTGHjW0Iw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.3.1.tgz", + "integrity": "sha512-Uog9jsrmIRIL/lfvIp9htmskSNC7JcQsMVucXL2V2YY1y/D9IUN3LPEafqy0zRJ2cIU1SQ0V6F6TlffQ+pLAGg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.3.1.tgz", + "integrity": "sha512-6yy3FT13KgUFOj5H8bl8w/6nKiJwHIvbtwh1V+1acsu+7y4tJjnemSa6mhsh53BeoVrlozE+fMgZhXH46WmjMA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.3.1.tgz", + "integrity": "sha512-iOoN1QecUoGNZik536U/vtK43YwgyrCsGIkth52yIkl612n+0C9MjSnJbQAikISpb+WYRooBVhaDlUW7iZoKog==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.3.1.tgz", + "integrity": "sha512-d/k+PpAriUPaeMJJOG7HUSdqfEX46FEPWU1p3/nm2ACmXhj9hFEWdFODUBIpkuijXYkfL90qZzTqVPRp4BW/hw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, "node_modules/@next/third-parties": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/@next/third-parties/-/third-parties-16.3.0.tgz", - "integrity": "sha512-cAA96hSI9NC7083b6sEsKjgyvM/YJ2eqXs4HWv8a/z5LE12CL1sUJS+cmcTwNMY4yAFpLyyuZHrMBEfh/4Xupw==", + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/@next/third-parties/-/third-parties-16.3.1.tgz", + "integrity": "sha512-OyIUIohaQ8AkD/8Ew0yPTaxcoOwobIgBjvNnhajgJ2IWPuSjFHfKYAFmFjYmL5Jwrf2qJDWubadhPqPbFhrDNg==", "license": "MIT", "dependencies": { "third-party-capital": "1.0.20" @@ -834,100 +1454,100 @@ } }, "node_modules/@peculiar/asn1-cms": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.8.0.tgz", - "integrity": "sha512-NgekZOrSJFSBFLFoLfwePguAWAx7z1+f2TEsWFUMyiqqfntZ4+S/S5hzqME3q4pCA0iOsFKdwiQ35dwY24eVqA==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.9.0.tgz", + "integrity": "sha512-VKQz6sJYgSxtGaK6UdnNBUx7hmSdg0K331qrEWh5qxpQsyZGWBjxbq05AJ2bTWWjd7d+nJIxFzwvsR5T7DWC/A==", "license": "MIT", "dependencies": { - "@peculiar/asn1-schema": "^2.8.0", - "@peculiar/asn1-x509": "^2.8.0", - "@peculiar/asn1-x509-attr": "^2.8.0", + "@peculiar/asn1-schema": "^2.9.0", + "@peculiar/asn1-x509": "^2.9.0", + "@peculiar/asn1-x509-attr": "^2.9.0", "asn1js": "^3.0.10", "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-csr": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.8.0.tgz", - "integrity": "sha512-akbF8+uvleHs8sejNPQxwmVFuInAg6FMNHOwMILXfP518YfFJwdR3jr6oNUPOaEJfuEhn/vkNOCIT6ASUd4mbg==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.9.0.tgz", + "integrity": "sha512-SbxRzHiWnRdiDuiiji/RLsJxu2au4hmSZSKK7GQOgNr2BVvheAlFQST9qqzRchUcZ6wvcyRuPXIfYXVzLoZ/5g==", "license": "MIT", "dependencies": { - "@peculiar/asn1-schema": "^2.8.0", - "@peculiar/asn1-x509": "^2.8.0", + "@peculiar/asn1-schema": "^2.9.0", + "@peculiar/asn1-x509": "^2.9.0", "asn1js": "^3.0.10", "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-ecc": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.8.0.tgz", - "integrity": "sha512-ohwlk+u9Rv2NOAY1c6MfHj45ATVF8R1DUN/WCgABiRtLi2ZftlZWZX7KvpAbU8v9xPcmoILfELeEABj/rn18AQ==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.9.0.tgz", + "integrity": "sha512-vNspHtTd9h6e8c2lMW+B/VHEUD+HRFV0fj/Gvz7SaJbwiecA8dxd96UTFPYI1PR8k7qwjjW9AFEyI+LuyVi4Kw==", "license": "MIT", "dependencies": { - "@peculiar/asn1-schema": "^2.8.0", - "@peculiar/asn1-x509": "^2.8.0", + "@peculiar/asn1-schema": "^2.9.0", + "@peculiar/asn1-x509": "^2.9.0", "asn1js": "^3.0.10", "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-pfx": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.8.0.tgz", - "integrity": "sha512-5yof1ytoB++RQtaFbqSUJ8pxDJtZT6vbVqZ8XoJ61ph7UjNVvfFwAilnCodqkNsAodpy13gDhoxZXw00pghnyg==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.9.0.tgz", + "integrity": "sha512-A6bX+gZr69U38Pg1mWvPrM1eRba6L6kLR8iVG+bJtKj3qSv2rSNmlXLtej7ZOkEWt6xL6PiJD73uFEdQI3BXCg==", "license": "MIT", "dependencies": { - "@peculiar/asn1-cms": "^2.8.0", - "@peculiar/asn1-pkcs8": "^2.8.0", - "@peculiar/asn1-rsa": "^2.8.0", - "@peculiar/asn1-schema": "^2.8.0", + "@peculiar/asn1-cms": "^2.9.0", + "@peculiar/asn1-pkcs8": "^2.9.0", + "@peculiar/asn1-rsa": "^2.9.0", + "@peculiar/asn1-schema": "^2.9.0", "asn1js": "^3.0.10", "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-pkcs8": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.8.0.tgz", - "integrity": "sha512-qAKXtLpBEw9LqhKpjw3ajZSXlBur+ipW+y2ivVBQAG6F6qRx94yO+1ZR4mvw+YaCfKSaOzLeYEzsPaBp4SJELA==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.9.0.tgz", + "integrity": "sha512-1JH4FliKQ3trkMD17X+bKGsph5TsiM+AiiqnVKr1wxA/GoUSDHiWG/zROzLAbDIA7eclBCjQsp8hrBEJk7LRUQ==", "license": "MIT", "dependencies": { - "@peculiar/asn1-schema": "^2.8.0", - "@peculiar/asn1-x509": "^2.8.0", + "@peculiar/asn1-schema": "^2.9.0", + "@peculiar/asn1-x509": "^2.9.0", "asn1js": "^3.0.10", "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-pkcs9": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.8.0.tgz", - "integrity": "sha512-b5nDWCnkV60+cQ141D6sVVwK9nz64R5n3zSVnklGd+ECdkW2Ol3U1a6yYFlalpSOaD557yuJB64A+q42jG7lUQ==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.9.0.tgz", + "integrity": "sha512-igArY6bpCI6tOPm2EU9QPrXuKq2s1iraLCTym4UlooYdzcRDIPCRUN9TAEcqZ5rZhA+HiPdFKTbDP9vneN/tsg==", "license": "MIT", "dependencies": { - "@peculiar/asn1-cms": "^2.8.0", - "@peculiar/asn1-pfx": "^2.8.0", - "@peculiar/asn1-pkcs8": "^2.8.0", - "@peculiar/asn1-schema": "^2.8.0", - "@peculiar/asn1-x509": "^2.8.0", - "@peculiar/asn1-x509-attr": "^2.8.0", + "@peculiar/asn1-cms": "^2.9.0", + "@peculiar/asn1-pfx": "^2.9.0", + "@peculiar/asn1-pkcs8": "^2.9.0", + "@peculiar/asn1-schema": "^2.9.0", + "@peculiar/asn1-x509": "^2.9.0", + "@peculiar/asn1-x509-attr": "^2.9.0", "asn1js": "^3.0.10", "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-rsa": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.8.0.tgz", - "integrity": "sha512-zHEUlCqB2mk7x2lxDwHHJy7hWZOPdGHVlsmITWKB5/PbQo61atbu9PJ/0r9dQNMwFzbKPXZ8uK8/91eUhRznSg==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.9.0.tgz", + "integrity": "sha512-vOD7Q4UmQWhlMYuWJawS2sD+/JcPKJNtyQuFZx09r+KFhm5/HxfGak63y/m56cpBjmb5k6PeRlQf1fvLQAieUA==", "license": "MIT", "dependencies": { - "@peculiar/asn1-schema": "^2.8.0", - "@peculiar/asn1-x509": "^2.8.0", + "@peculiar/asn1-schema": "^2.9.0", + "@peculiar/asn1-x509": "^2.9.0", "asn1js": "^3.0.10", "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-schema": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.8.0.tgz", - "integrity": "sha512-7YT0U/ze0tF2QOBbE15gKZwy5tvgGyLRiRHLzhlbOpf7BT032oBSd0haZqXn5W6l26WLlu3dyxzjM+2638/z2Q==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.9.0.tgz", + "integrity": "sha512-AKvPMOM7LfK0uFe1m7o7+veOa8xQGPqsqOrKi3QKgCElzwjGp39mbhr2g7mt/v/mXQHiIvJmDj5cJS173x8Q9Q==", "license": "MIT", "dependencies": { "@peculiar/utils": "^2.0.2", @@ -936,25 +1556,25 @@ } }, "node_modules/@peculiar/asn1-x509": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.8.0.tgz", - "integrity": "sha512-N0CMuhWUzsWEVq6F1q9X6+VKUnWzSW+cSVg+aPaGGwDdbFoFWTYgin5MHwXgpWd6y9COMBxnfy/Qc+Xc7F0Zwg==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.9.0.tgz", + "integrity": "sha512-b9Na83rhRFQBd5CuMmuEqokYhmyWUbG7mNZl/thGhBwLpCdiZ85TZ3WFhF7OVgOekC5uKhLk4C3HKtdiScCMdQ==", "license": "MIT", "dependencies": { - "@peculiar/asn1-schema": "^2.8.0", + "@peculiar/asn1-schema": "^2.9.0", "@peculiar/utils": "^2.0.2", "asn1js": "^3.0.10", "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-x509-attr": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.8.0.tgz", - "integrity": "sha512-tHjkfS/qhMnmrlB2J9NhflQlQ7In3khO3CfmVrriOlpTeErY9ZIKOso1hQ5JQiyrJ7ShvqVPk7E5fQmbclkSKA==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.9.0.tgz", + "integrity": "sha512-f+u+EyGjfPvPzvr0+rlh/TFEO7LWt84mEwQynCUYr4F6urf/8s6+ESJ23qfSn1aamkZR6AuBNaC62iEsGvp0+w==", "license": "MIT", "dependencies": { - "@peculiar/asn1-schema": "^2.8.0", - "@peculiar/asn1-x509": "^2.8.0", + "@peculiar/asn1-schema": "^2.9.0", + "@peculiar/asn1-x509": "^2.9.0", "asn1js": "^3.0.10", "tslib": "^2.8.1" } @@ -1036,9 +1656,9 @@ "license": "MIT" }, "node_modules/@swc/helpers": { - "version": "0.5.15", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", - "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "version": "0.5.23", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.23.tgz", + "integrity": "sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.8.0" @@ -1084,6 +1704,23 @@ "@tailwindcss/oxide-win32-x64-msvc": "4.3.3" } }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.3.tgz", + "integrity": "sha512-Y85A2gmPSkl5Ve5qR86GL4HT509cFqQh1aes9p3sSkyTPwt0Pppf3GkwGe4JPACcRYjgJIEhQgM6dBClnr0NYw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 20" + } + }, "node_modules/@tailwindcss/oxide-darwin-arm64": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.3.tgz", @@ -1101,6 +1738,255 @@ "node": ">= 20" } }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.3.tgz", + "integrity": "sha512-fAeUqfV5ndhxRwai8cXGzdLvul9utWOmeTkv69unv4ZXixjn61Z+p9lCWdwOwA3TYboG3BwdVuN/RDjhBRl0mw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.3.tgz", + "integrity": "sha512-iyf5bV6+wnAlflVeEy7R25dupxTNECZN5QMI0qNT6eT+EgaGdZcKhGkr5SdoaWiLJ3spLqIY9VCeSGrwmtg4kw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.3.tgz", + "integrity": "sha512-aAYUprJAJQWWbRrPvtjdroZ56Md+JM8pMiopS6xGEwDfLhqj+2ver2p4nU4Mb3CRqcMmNBjo8KkUgcxhkzVQGQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.3.tgz", + "integrity": "sha512-nDxldcEENOxZRzC2uu9jrutZdAAQtb+8WWDCSnWL1zvBk1+FN+x6MtDViPB5AJMfttVCUhehGWus3XBPgatM/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.3.tgz", + "integrity": "sha512-Md44bD6veX/PC5iyF8cDVnw4HBIANZepRZZ7a8DQOvkfo5WUBwcp6iAuCUz23u+4SUkhJlD3eL7hNdW8ezd/kA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.3.tgz", + "integrity": "sha512-tx7us1muwOKAKWao2v/GaafFeQboE6aj88vC6ziN2NCGcRm8gWUhwjzg+YdVB1e4boAtdtma4L43onunI6NS4w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.3.tgz", + "integrity": "sha512-SJxX60smvHgasZoBy11dX6YRjXJFovwWBoedhbQPOBzgFWBHGB+TVPWB9BxzR7TTxU8FQZAI2AyiNCMzFm8Img==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.3.tgz", + "integrity": "sha512-jx1+rPhY/5Ympkktd656HBWEBLxP7dH06losBLjjf5vgCODXvi9KhtftWcMIwTFIDqBr7cRnQkdLnAG+IOlGvQ==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.11.1", + "@emnapi/runtime": "^1.11.1", + "@emnapi/wasi-threads": "^1.2.2", + "@napi-rs/wasm-runtime": "^1.1.4", + "@tybys/wasm-util": "^0.10.2", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/core": { + "version": "1.11.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/runtime": { + "version": "1.11.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/wasi-threads": { + "version": "1.2.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@tybys/wasm-util": { + "version": "0.10.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/tslib": { + "version": "2.8.1", + "dev": true, + "inBundle": true, + "license": "0BSD", + "optional": true + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.3.tgz", + "integrity": "sha512-3rc292Ca2ceK6Ulcc/bAVnTs/3nDtoPhyEKlgPv+yQJQi/JS/AMJlqzxvlDacL1nekbrcf6bTqp/jV4qgnPxNQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.3.tgz", + "integrity": "sha512-yJ0pwIVc/nYeGoV02WtsN8KYyLQv7kyI2wDnkezyJlGGjkd4QLwDGAwl47YpPJeuI0M0ObaXGSPjvWDPeTPggw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, "node_modules/@tailwindcss/postcss": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.3.3.tgz", @@ -1115,6 +2001,17 @@ "tailwindcss": "4.3.3" } }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", + "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@types/d3-array": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", @@ -1258,9 +2155,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "26.1.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-26.1.2.tgz", - "integrity": "sha512-Vu4a5UFA9rIIFJ7rB/Vaafh9lrCQszopTCx6KjFboXTGQbPNasehVR5TEiithSDGyd1DEiUByggTZsg8jukeIg==", + "version": "26.2.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.2.0.tgz", + "integrity": "sha512-5IviulTZeRNp2vAJ514cc/HUlY5nZ9fCbq9DMyC52BrhFZACo3nI0R7qBxhQmo/d27NFe96ur/b7Wwxklda+kg==", "license": "MIT", "dependencies": { "undici-types": "~8.3.0" @@ -1304,17 +2201,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.66.0.tgz", - "integrity": "sha512-p088eaGrzYz1s+7cov0aMOCkNGTJlVxF4jgubf28c8L0Cv9Rloj8YBHnv4hXLq6IIEE1AsjNWavO+k+8kP2Y0A==", + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.67.0.tgz", + "integrity": "sha512-Un7Heoyj65NREbKAyIrFxeM143NZpExWmy1Nep4DLeQOeLlTeumPjoNKnBrU5D5moWXbPJgRa5Uwcdu0faVNGQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.66.0", - "@typescript-eslint/type-utils": "8.66.0", - "@typescript-eslint/utils": "8.66.0", - "@typescript-eslint/visitor-keys": "8.66.0", + "@typescript-eslint/scope-manager": "8.67.0", + "@typescript-eslint/type-utils": "8.67.0", + "@typescript-eslint/utils": "8.67.0", + "@typescript-eslint/visitor-keys": "8.67.0", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" @@ -1327,7 +2224,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.66.0", + "@typescript-eslint/parser": "^8.67.0", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } @@ -1343,16 +2240,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.66.0.tgz", - "integrity": "sha512-X6ypGChaWYk6PBtUg2BwuTZEFFcHJAtGTVJ9/lCTOufhZ4i9fNolQNnktq+kkMCwMj7V8Svsq7+TxSDslmhE0g==", + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.67.0.tgz", + "integrity": "sha512-fUBfTuuEulWqX6V8+O3PtScV01tzYYRUDTAirHFKoRAt7nOzoGiPt0M/bB47wWNy0coOOcgEwAMUtBpykMxl6w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.66.0", - "@typescript-eslint/types": "8.66.0", - "@typescript-eslint/typescript-estree": "8.66.0", - "@typescript-eslint/visitor-keys": "8.66.0", + "@typescript-eslint/scope-manager": "8.67.0", + "@typescript-eslint/types": "8.67.0", + "@typescript-eslint/typescript-estree": "8.67.0", + "@typescript-eslint/visitor-keys": "8.67.0", "debug": "^4.4.3" }, "engines": { @@ -1368,14 +2265,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.66.0.tgz", - "integrity": "sha512-7MthGPTt4BP69lSryqpqq8HQqxuzynssckL/jyDyk3+TNMQ3y2jFWkptCrktWvBrP+EH787Nl5N5Qpw7WZg+5g==", + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.67.0.tgz", + "integrity": "sha512-cvE8c7ulYeXN9fYuszhCeCsbzyVEXuhrRCybnBre7TUmqb5nRmBfQAwCj0O3WJFDeyAZt4VYv51vMCC9LHSdYw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.66.0", - "@typescript-eslint/types": "^8.66.0", + "@typescript-eslint/tsconfig-utils": "^8.67.0", + "@typescript-eslint/types": "^8.67.0", "debug": "^4.4.3" }, "engines": { @@ -1390,14 +2287,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.66.0.tgz", - "integrity": "sha512-8TGcH25j9zqJ/IULB/ppyhRvxA8QYfFEZ7nfbg6/BN9spDgb8fPWQXlE5l8TWBL50EtUx007uZ1o9VOwrq2/9g==", + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.67.0.tgz", + "integrity": "sha512-EgvsleTwS4E+WzzSvem8fAUubLwatMNF1B5hHSLQxcvs7q2dtRhGyujHwLJSYlG41niJ7GP24Aha2+0mb1b2kg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.66.0", - "@typescript-eslint/visitor-keys": "8.66.0" + "@typescript-eslint/types": "8.67.0", + "@typescript-eslint/visitor-keys": "8.67.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1408,9 +2305,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.66.0.tgz", - "integrity": "sha512-9D5gLYZG4rOjcoag8MQ/fWI8WqA9wcPDyOGyWtWFhvM1lHRbliqUSPIY5J3zqCU1tvSwzXxnnjhQhz5Ne7mJ4g==", + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.67.0.tgz", + "integrity": "sha512-vV+LUSv5njUWsknE71fqKTlXUva+R76SaeORd6Zojcunk/6DvKFXONU3BrAs2H49mbygUXt6gbYunzwqNwlhdg==", "dev": true, "license": "MIT", "engines": { @@ -1425,15 +2322,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.66.0.tgz", - "integrity": "sha512-LG2dWfjZQQp0ADtAu/EWJVayefGL2UEZ3CDeI44D9v3rXB/WYUqE/jpO28KrEKul5AySrmI+Zh1v6v+xW2U9+g==", + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.67.0.tgz", + "integrity": "sha512-aVWDXbRmdXO9siTfX4ditQI1T9+zVcNazT48EJCD0v40/9RIFoUgZ05CmGEq9H2gixRpjUn/iplwvlcvutJW/Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.66.0", - "@typescript-eslint/typescript-estree": "8.66.0", - "@typescript-eslint/utils": "8.66.0", + "@typescript-eslint/types": "8.67.0", + "@typescript-eslint/typescript-estree": "8.67.0", + "@typescript-eslint/utils": "8.67.0", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, @@ -1450,9 +2347,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.66.0.tgz", - "integrity": "sha512-H6gcYaSDOyvL3AD/jHUtUFo2jqGgn/F6nuyuZSu0QTesxL+cP4dQoIMrODRofuJC09g64+WgZ6tE19Y1N2YIFQ==", + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.67.0.tgz", + "integrity": "sha512-sBtgslww8nsMYUjhdPBiSyUqSzT8uR6g93A2QXnQC8+cGdjz0CyaOdqHDRJb1AtORbZCNUJBBeFA/tNR2uQmww==", "dev": true, "license": "MIT", "engines": { @@ -1464,16 +2361,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.66.0.tgz", - "integrity": "sha512-8/x4INiiQb10jGgXYD7116/zQ+OL84ZIFn0za68wwFHCanT/VLbBEroWht8RV8fn0/ZCAoazHLQgwUC0UQcDfg==", + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.67.0.tgz", + "integrity": "sha512-EKQBCE9yNlRJYm7jdTW5AhDacDUmSwQb0FAJAmK2EKYrNXIsa2vxcSZx6PvJ/dEdI6lS+Y9W+EXckLj0iPFGcw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.66.0", - "@typescript-eslint/tsconfig-utils": "8.66.0", - "@typescript-eslint/types": "8.66.0", - "@typescript-eslint/visitor-keys": "8.66.0", + "@typescript-eslint/project-service": "8.67.0", + "@typescript-eslint/tsconfig-utils": "8.67.0", + "@typescript-eslint/types": "8.67.0", + "@typescript-eslint/visitor-keys": "8.67.0", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", @@ -1544,16 +2441,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.66.0.tgz", - "integrity": "sha512-jasearZPolBw5NJNYGMwxzHMF83niVWmMU1VdHzG1CyfI2VS7f7nZltnKtHcg20hW+7Uo5GfK4MeDPoU3qI8EA==", + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.67.0.tgz", + "integrity": "sha512-U9D1FdwEWBwok3hxxSdhclMb0twvt9QnjIQ0VfQ1AiX2epnpSgv2ubVDsayOFyY8K6FX+AQ7E0FKWVG3iKsj1A==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.66.0", - "@typescript-eslint/types": "8.66.0", - "@typescript-eslint/typescript-estree": "8.66.0" + "@typescript-eslint/scope-manager": "8.67.0", + "@typescript-eslint/types": "8.67.0", + "@typescript-eslint/typescript-estree": "8.67.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1568,13 +2465,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.66.0.tgz", - "integrity": "sha512-dkKR8q+lKciskj1Y3vthHktl+3cMLWGyVUP23bRiPZ5O9BRT++4EqDDV+TVeIKBL1VXVEqrJlz8MYbcnvJcAlg==", + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.67.0.tgz", + "integrity": "sha512-fkv8dHRDqfGtTHuJeebdrQ7cX6Ad4WAS00rgHh9UGvMycF1mjBfsxry1XsLIFhWZ6Judlh6UdzK+TYlbpCXgnA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.66.0", + "@typescript-eslint/types": "8.67.0", "eslint-visitor-keys": "^5.0.0" }, "engines": { @@ -1598,6 +2495,34 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/@unrs/resolver-binding-android-arm-eabi": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.12.2.tgz", + "integrity": "sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-android-arm64": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.12.2.tgz", + "integrity": "sha512-YGCRZv/9GLhwmz6mYDeTsm/92BAyR28l6c2ReweVW5pWgfsitWLY8upvfRlGdoyD8HjeTHSYJWyZGD4KJA/nFQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, "node_modules/@unrs/resolver-binding-darwin-arm64": { "version": "1.12.2", "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.12.2.tgz", @@ -1612,6 +2537,288 @@ "darwin" ] }, + "node_modules/@unrs/resolver-binding-darwin-x64": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.12.2.tgz", + "integrity": "sha512-f7rPLi/T1HVKZu/u6t87lroib16n8vrSzcyxI7lg4BGO9UF26KhQL44sd9eOUgrTYhvRXtWOIZT5PejdPyJfUA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-freebsd-x64": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.12.2.tgz", + "integrity": "sha512-BpcOjWCJub6nRZUS2zA20pmLvjtqAtGejETaIyRLiZiQf++cbrjltLA5NN/xaXfqeOBOSlMFbemIl5/S5tljmg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.12.2.tgz", + "integrity": "sha512-vZTDvdSISZjJx66OzJqtsOhzifbqRjbmI1Mnu49fQDwog5GtDI4QidRiEAYbZCRj9C8YZEW+3ZjqsyS9GR4k2A==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.12.2.tgz", + "integrity": "sha512-BiPI+IrIlwcW4nLLMM21+B1dFPzd55yAVgVGrdgDjNef+ch03GdxrcyaIz8X9SsQirh/kCQ7mviyWlMxdh2D7g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.12.2.tgz", + "integrity": "sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-musl": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.12.2.tgz", + "integrity": "sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-loong64-gnu": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-loong64-gnu/-/resolver-binding-linux-loong64-gnu-1.12.2.tgz", + "integrity": "sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-loong64-musl": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-loong64-musl/-/resolver-binding-linux-loong64-musl-1.12.2.tgz", + "integrity": "sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.12.2.tgz", + "integrity": "sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.12.2.tgz", + "integrity": "sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.12.2.tgz", + "integrity": "sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.12.2.tgz", + "integrity": "sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-gnu": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.12.2.tgz", + "integrity": "sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-musl": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.12.2.tgz", + "integrity": "sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-openharmony-arm64": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-openharmony-arm64/-/resolver-binding-openharmony-arm64-1.12.2.tgz", + "integrity": "sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.12.2.tgz", + "integrity": "sha512-tYFDIkMxSflfEc/h92ZWNsZlHSwgimbNHSO3PL2JWQHfCuC2q316jMyYU9TIWZsFK2bQwyK5VAdYgn8ygPj69A==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "1.10.0", + "@emnapi/runtime": "1.10.0", + "@napi-rs/wasm-runtime": "^1.1.4" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi/node_modules/@emnapi/runtime": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", + "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.12.2.tgz", + "integrity": "sha512-qzNyg3xL0VPQmCaUh+N5jSitce6k+uCBfMDesWRnlULOZaqUkaJ0ybdT+UqlAWJoQjuqfIU/0Ptx9bteN4D82g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.12.2.tgz", + "integrity": "sha512-WD9sY00OfpHVGfsnHZoA8jVT+esS/Bg8z8jzxp5BnDCjjwsuKsPQrzswwpFy4J1AUJbXPRfkpcX0mXrzeXW79g==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.12.2.tgz", + "integrity": "sha512-nAB74NfSNKknqQ1RrYj6uz8FcXEomu/MATJZxh/x+BArzN2U3JbOYC0APYzUIGhVY3m5hRxA8VPNdPBoG8txlA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@xmldom/is-dom-node": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@xmldom/is-dom-node/-/is-dom-node-1.0.1.tgz", @@ -1631,12 +2838,12 @@ } }, "node_modules/@xyflow/react": { - "version": "12.11.2", - "resolved": "https://registry.npmjs.org/@xyflow/react/-/react-12.11.2.tgz", - "integrity": "sha512-eLAlDWJfWnQEhJwGMjlWdAXO9eYllKpliUmPQlAmOLxz6mExXuzMVDUKLMquixgkrtmMFFtug3jGKmYYld12cA==", + "version": "12.11.3", + "resolved": "https://registry.npmjs.org/@xyflow/react/-/react-12.11.3.tgz", + "integrity": "sha512-G3jogHz2GWUtIOkhavUGno2YzY9u6fILIJBttfsBendb0/HWB90JG+sOTAvlIMEwyvq9zgy9V9ZQSwyQjR5QzQ==", "license": "MIT", "dependencies": { - "@xyflow/system": "0.0.79", + "@xyflow/system": "0.0.80", "classcat": "^5.0.3", "zustand": "^4.4.0" }, @@ -1684,9 +2891,9 @@ } }, "node_modules/@xyflow/system": { - "version": "0.0.79", - "resolved": "https://registry.npmjs.org/@xyflow/system/-/system-0.0.79.tgz", - "integrity": "sha512-czLyOh91NF0hIzbNzwi8I6GlqG23BHh2435OddfI6uiaLH3xdrdygO93gqgH1Bv9mhy8XPFQJOBn1FTq4LvEWA==", + "version": "0.0.80", + "resolved": "https://registry.npmjs.org/@xyflow/system/-/system-0.0.80.tgz", + "integrity": "sha512-ywc3ZqG91brzWrH1WlwMdIX4goOfrpBy6AbLdVSaof/Xx9l138ijIKRExM6EkMro2F+OImGmSiA/WKcXvKVcfA==", "license": "MIT", "dependencies": { "@types/d3-drag": "^3.0.7", @@ -1763,9 +2970,9 @@ } }, "node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.3.0.tgz", + "integrity": "sha512-WpDfL7NO6j7tH88IDBNVdUJxDh9nmCteAVW9dsep846XdwF4naCBK+/tGLX3KJgcpgMRXCFlTM2hKGoK9FsdrQ==", "license": "MIT", "engines": { "node": ">=12" @@ -2015,9 +3222,9 @@ } }, "node_modules/axe-core": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.12.1.tgz", - "integrity": "sha512-s7iGf5GaVMxEG0ENN9x+xTr7GFZCb1ZP/1uATUpCEK2X78nDB3RwbtFCo9pGAf9ru+VwoQ464DkaLEeRM08wJA==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.13.0.tgz", + "integrity": "sha512-UzGt8zg7Ny8djbYMhxl2zuEevVa7r2gJjYY5Lwr1xM7+XU2nd6CkIWFTVcCIbAP63vSz71NaVyyuSk9lHKcy0A==", "dev": true, "license": "MPL-2.0", "engines": { @@ -2063,9 +3270,9 @@ "optional": true }, "node_modules/baseline-browser-mapping": { - "version": "2.11.12", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.12.tgz", - "integrity": "sha512-r7WnVImvVCeFpf2DOXfy41aPWzeNg3H/A2X4dKmy1QL0MSyyk/e7z8ihJ3N6Nn2PsdhkVlqnEfnUE4a05P2aTA==", + "version": "2.11.14", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.14.tgz", + "integrity": "sha512-JyJ954WzuIR8/FFzX0o5krdSTrBAkcCSRfWSleRsIHSWV+cZe2FI1PKggVkFke1hBldRs+LRxUczzE9iPmgZww==", "license": "Apache-2.0", "bin": { "baseline-browser-mapping": "dist/cli.cjs" @@ -2145,9 +3352,9 @@ } }, "node_modules/body-parser/node_modules/content-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.0.0.tgz", - "integrity": "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", + "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==", "license": "MIT", "engines": { "node": ">=18" @@ -2181,9 +3388,9 @@ } }, "node_modules/browserslist": { - "version": "4.28.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.7.tgz", - "integrity": "sha512-JxV13hNrFxqjOc8alRbq9dK1MM79NEXYpma2B2J4wAtpWS5zIEIKqWPGCl7N4o7Uc7B7itylh7SuDujATRyyTw==", + "version": "4.28.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.8.tgz", + "integrity": "sha512-V2NpofLblG64mfOtSgDhOJESZEGogzDMBv/q+W6oc4LXWP/q75eOXoOaaOu1EOadB9U4Bwx/e0yzbvwKH8zalA==", "dev": true, "funding": [ { @@ -2201,11 +3408,11 @@ ], "license": "MIT", "dependencies": { - "baseline-browser-mapping": "^2.10.44", - "caniuse-lite": "^1.0.30001806", - "electron-to-chromium": "^1.5.393", - "node-releases": "^2.0.51", - "update-browserslist-db": "^1.2.3" + "baseline-browser-mapping": "^2.11.12", + "caniuse-lite": "^1.0.30001809", + "electron-to-chromium": "^1.5.402", + "node-releases": "^2.0.53", + "update-browserslist-db": "^1.3.0" }, "bin": { "browserslist": "cli.js" @@ -2331,9 +3538,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001806", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001806.tgz", - "integrity": "sha512-72Cuvd95zbSYPKq6Fhg8eDJRlzgWDf7/mtoZv6Qe/DYNCEBdNxoA3+rZAU2ZhGCpZlns3EssFavaZomckT5Uuw==", + "version": "1.0.30001809", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001809.tgz", + "integrity": "sha512-xxWVywk6a6Arlk+hymeycyn/VgqEfLDxupvhH/xiY5SJ/18kmi9o6MiO320DCUzypORHLtvh0I4i04tUhCNHNQ==", "funding": [ { "type": "opencollective", @@ -2954,9 +4161,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.401", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.401.tgz", - "integrity": "sha512-H6ViHN68nGYlChEvlIU67fn8O2/tpbWQPwck98yaJmh+08LSvHiydzDQ6oXNccLU3kNRVIRS9A4mA7CG+i6fLQ==", + "version": "1.5.406", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.406.tgz", + "integrity": "sha512-hWH5ORBi3d0IipnMh7BN5GDTaAmrSSSWmznwt2zltdiRNEWoEQyTwF0FFSBxzHO7hLSRT6loQu3IQGV0wg/Tvg==", "dev": true, "license": "ISC" }, @@ -4071,9 +5278,9 @@ } }, "node_modules/get-tsconfig": { - "version": "4.14.1", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.1.tgz", - "integrity": "sha512-Dz/6HxkrxgNehhxLVeyv8sad9UzF2xBVeaKBQNDfJ5XiSXmp2gTR0eO0RWiT2NCKS5aGP9jjkOMggTN90qU50A==", + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.2.tgz", + "integrity": "sha512-XpwZALwwl/BaKTAyC6+c5T8y6kCg2jk+XGqOVrKIQmW49pNypYLMRjCUXqa28tQgJlhS2RlzP7sc+Rx7W6qsfw==", "dev": true, "license": "MIT", "dependencies": { @@ -4360,9 +5567,9 @@ } }, "node_modules/immer": { - "version": "11.1.15", - "resolved": "https://registry.npmjs.org/immer/-/immer-11.1.15.tgz", - "integrity": "sha512-VrNANlmnWQnh5COXIIOQXM9oOJw7naGKlBT74ZOOR6lpVXc3gFEu9FJLDFcpCJ2j+NWr8TIwtWD//T6ZX6TKiQ==", + "version": "11.1.16", + "resolved": "https://registry.npmjs.org/immer/-/immer-11.1.16.tgz", + "integrity": "sha512-Xs7H9rBc+kti1J6RueUvbEBkmOz7jqj11XYgf+YMXAYzu8EeE7hwZ9poLXdVfVnGmJu7QAf41T7H2KuF6QoK6Q==", "license": "MIT", "funding": { "type": "opencollective", @@ -4434,9 +5641,9 @@ } }, "node_modules/ip-address": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.4.0.tgz", - "integrity": "sha512-oSK96Grm3aP6OrS263xVxbNDGVL7rzBtYdpGqlDG8iQdoenDoTs/nkki+DflYbAEE8Xl6o5YxhxlrKvI3nqKXQ==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.5.0.tgz", + "integrity": "sha512-R5SnVLJmgYYvf2F2ZgwSBnelz5G4q5AxIC277GDfUaNbrZKNANcBC7RHqYYePlszf4kBolVkJauG0ZjHHFh55g==", "license": "MIT", "engines": { "node": ">= 12" @@ -5195,6 +6402,27 @@ "lightningcss-win32-x64-msvc": "1.32.0" } }, + "node_modules/lightningcss-android-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, "node_modules/lightningcss-darwin-arm64": { "version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", @@ -5216,6 +6444,195 @@ "url": "https://opencollective.com/parcel" } }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -5528,13 +6945,13 @@ } }, "node_modules/next": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/next/-/next-16.3.0.tgz", - "integrity": "sha512-NEdGOzH+08eTXMUp9UYkA99Nhi5N6Thrhc1jgFOQgfgnGK/dA2hRwBpXep+exdFQrnwlRf/3Wixyp8lLBUpE2A==", + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/next/-/next-16.3.1.tgz", + "integrity": "sha512-hsAp0i7Rh+/dhe7DGIeN2YlpLM1DP4MNxti9EtDMtqcO612X81MvvEj388/oTce9U1EcEIOWDlGq0zRwrBKvuA==", "license": "MIT", "dependencies": { - "@next/env": "16.3.0", - "@swc/helpers": "0.5.15", + "@next/env": "16.3.1", + "@swc/helpers": "0.5.23", "baseline-browser-mapping": "^2.9.19", "caniuse-lite": "^1.0.30001579", "postcss": "8.5.23", @@ -5547,14 +6964,14 @@ "node": ">=20.9.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "16.3.0", - "@next/swc-darwin-x64": "16.3.0", - "@next/swc-linux-arm64-gnu": "16.3.0", - "@next/swc-linux-arm64-musl": "16.3.0", - "@next/swc-linux-x64-gnu": "16.3.0", - "@next/swc-linux-x64-musl": "16.3.0", - "@next/swc-win32-arm64-msvc": "16.3.0", - "@next/swc-win32-x64-msvc": "16.3.0", + "@next/swc-darwin-arm64": "16.3.1", + "@next/swc-darwin-x64": "16.3.1", + "@next/swc-linux-arm64-gnu": "16.3.1", + "@next/swc-linux-arm64-musl": "16.3.1", + "@next/swc-linux-x64-gnu": "16.3.1", + "@next/swc-linux-x64-musl": "16.3.1", + "@next/swc-win32-arm64-msvc": "16.3.1", + "@next/swc-win32-x64-msvc": "16.3.1", "sharp": "^0.35.3" }, "peerDependencies": { @@ -5669,9 +7086,9 @@ "license": "MIT" }, "node_modules/node-releases": { - "version": "2.0.52", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.52.tgz", - "integrity": "sha512-MRlTqhAfoMx/4mhEbPo3Hi02g9LJZaJkka69V6h67Cb1gjrAG0jsTE4CZX1eptNx+VCAwJmfpnDIF4P0Nh1A7A==", + "version": "2.0.53", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.53.tgz", + "integrity": "sha512-D9UOmYG3UH1V+ENW56t5QXBwJw1YEY18ruVeus89Rw+SyIgjPkCO84bRzO3uNIYosJbNwiabWVn48o3uJLjxFQ==", "dev": true, "license": "MIT", "engines": { @@ -5836,17 +7253,17 @@ } }, "node_modules/open": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/open/-/open-11.0.0.tgz", - "integrity": "sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/open/-/open-11.0.1.tgz", + "integrity": "sha512-NzwMUB6C1D0+Kd+9iMS/H4k+Ck3cTX6Ckyfr/gAGlmvSE1LUQZnEZvWBi4PYmMwH/S5SMeTXnE+9uAz8uF+pWw==", "license": "MIT", "dependencies": { "default-browser": "^5.4.0", "define-lazy-prop": "^3.0.0", "is-in-ssh": "^1.0.0", "is-inside-container": "^1.0.0", - "powershell-utils": "^0.1.0", - "wsl-utils": "^0.3.0" + "powershell-utils": "^0.2.0", + "wsl-utils": "^1.0.0" }, "engines": { "node": ">=20" @@ -6051,9 +7468,9 @@ } }, "node_modules/postcss": { - "version": "8.5.25", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.25.tgz", - "integrity": "sha512-DTPx3RWSSnWyzLxQnlH0rJP+EW5ekl16ZU4/psbIhA0e53kJfdgaN5vKM+xP7yJtXVu+nfdVFmlgFDEKAe4Pyw==", + "version": "8.5.26", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.26.tgz", + "integrity": "sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==", "dev": true, "funding": [ { @@ -6071,7 +7488,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.16", + "nanoid": "^3.3.17", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -6080,9 +7497,9 @@ } }, "node_modules/powershell-utils": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.1.0.tgz", - "integrity": "sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.2.0.tgz", + "integrity": "sha512-ZlsFlG7MtSFCoc5xreOvBAozCJ6Pf06opgJjh9ONEv418xpZSAzNjstD36C6+JwOnfSqOW/9uDkqKjezTdxZhw==", "license": "MIT", "engines": { "node": ">=20" @@ -7069,9 +8486,9 @@ } }, "node_modules/sql.js": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/sql.js/-/sql.js-1.14.1.tgz", - "integrity": "sha512-gcj8zBWU5cFsi9WUP+4bFNXAyF1iRpA3LLyS/DP5xlrNzGmPIizUeBggKa8DbDwdqaKwUcTEnChtd2grWo/x/A==", + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/sql.js/-/sql.js-1.14.2.tgz", + "integrity": "sha512-3ZGPovObMFrdw79zrUHbfdE/DLIsy8jdNdssmMSQuRAymedU6q84asPt0kgiqrdMYlPegDItiIMfmIXzZnYFcw==", "license": "MIT" }, "node_modules/stable-hash": { @@ -7589,9 +9006,9 @@ } }, "node_modules/type-is/node_modules/content-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.0.0.tgz", - "integrity": "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", + "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==", "license": "MIT", "engines": { "node": ">=18" @@ -7695,16 +9112,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.66.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.66.0.tgz", - "integrity": "sha512-QlEbBPz/RuJ1XUHj29nm3t0F/O/cSlEnntozqPOYHnnTGAXFamnMBu5i9Vn6vhUPHGAjR+Vl+5J8vPN/BMUrJw==", + "version": "8.67.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.67.0.tgz", + "integrity": "sha512-S2udFs8tCKEKffuJ4TB1idGUZiXdCPGi3IPBGWXarbLQ5UPXORV8QEVzJ4gCRduURMb5EkpNCdjbk0eDIuI8Yg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.66.0", - "@typescript-eslint/parser": "8.66.0", - "@typescript-eslint/typescript-estree": "8.66.0", - "@typescript-eslint/utils": "8.66.0" + "@typescript-eslint/eslint-plugin": "8.67.0", + "@typescript-eslint/parser": "8.67.0", + "@typescript-eslint/typescript-estree": "8.67.0", + "@typescript-eslint/utils": "8.67.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -7800,9 +9217,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", - "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.3.1.tgz", + "integrity": "sha512-ZZ61DsRsOnakl74HAmp3oSN4aXUmEWXf+i/yv0h7tIBfICc3VdrFErQKUUKPgu3AMsTUMbcongALEN4l6GSUrQ==", "dev": true, "funding": [ { @@ -8022,9 +9439,9 @@ "license": "ISC" }, "node_modules/wsl-utils": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.3.1.tgz", - "integrity": "sha512-g/eziiSUNBSsdDJtCLB8bdYEUMj4jR7AGeUo96p/3dTafgjHhpF4RiCFPiRILwjQoDXx5MqkBr4fwWtR3Ky4Wg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-1.0.0.tgz", + "integrity": "sha512-Hl0ZOAs672vg+06kfujwRhoS6/jehvULrlFkuF2dRu6pHgA8U06h3xqNIqNNU1LTXPcedxByAR4GS6pwQK0mgA==", "license": "MIT", "dependencies": { "is-wsl": "^3.1.0", @@ -8037,6 +9454,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/wsl-utils/node_modules/powershell-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.1.0.tgz", + "integrity": "sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/xml-crypto": { "version": "6.1.2", "resolved": "https://registry.npmjs.org/xml-crypto/-/xml-crypto-6.1.2.tgz", @@ -8176,9 +9605,9 @@ } }, "node_modules/zustand": { - "version": "5.0.14", - "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.14.tgz", - "integrity": "sha512-/8tAspM5LMPr28b3fwLYrtdj77ECpfZviaP75CMTnwO8ISyaE4GDIG/9rDDYq/cH9D2Xw2A2RXglLInmVBQB/g==", + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.15.tgz", + "integrity": "sha512-MpSEjRiBkA9crSYeOUH32rJC7SVqAbm0Fqcqge/bUi2PPoLcBWKOsG+C8mevmpr8TwXHBVkChbbJiyvkE+i/3A==", "license": "MIT", "engines": { "node": ">=12.20.0" From 2d6673db61bdc4da7740a73c7961d41aee57848b Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Sat, 15 Aug 2026 08:35:36 +0800 Subject: [PATCH 28/42] docs: rewrite README for MIBP fork (docker + manual install) --- README.md | 1603 ++--------------------------------------------------- 1 file changed, 47 insertions(+), 1556 deletions(-) diff --git a/README.md b/README.md index 4c8e4f94..7f6845d6 100644 --- a/README.md +++ b/README.md @@ -1,1578 +1,69 @@ -
      - 9Router Dashboard - - # 9Router - FREE AI Router & Token Saver - - **Never stop coding. Save 20-40% tokens with RTK + auto-fallback to FREE & cheap AI models.** - - **Connect All AI Code Tools (Claude Code, Cursor, Antigravity, Copilot, Codex, Gemini, OpenCode, Cline, OpenClaw...) to 40+ AI Providers & 100+ Models.** - - [![npm](https://img.shields.io/npm/v/9router.svg)](https://www.npmjs.com/package/9router) - [![Downloads](https://img.shields.io/npm/dm/9router.svg)](https://www.npmjs.com/package/9router) - [![Docker Pulls](https://img.shields.io/docker/pulls/decolua/9router.svg?logo=docker&label=Docker%20pulls)](https://hub.docker.com/r/decolua/9router) - [![GHCR](https://img.shields.io/badge/GHCR-decolua%2F9router-blue?logo=github)](https://github.com/decolua/9router/pkgs/container/9router) - [![License](https://img.shields.io/npm/l/9router.svg)](https://github.com/decolua/9router/blob/main/LICENSE) +# 9Router MIBP Version -decolua%2F9router | Trendshift +A local AI routing gateway with provider fallback and token-saving features. This is a fork of [decolua/9router](https://github.com/decolua/9router). -[🚀 Quick Start](#-quick-start) • [💡 Features](#-key-features) • [📖 Setup](#-setup-guide) • [🌐 Website](https://9router.com) +## Installation -[🇧🇷 Português (Brasil)](./i18n/README.pt-BR.md) • [🇻🇳 Tiếng Việt](./i18n/README.vi.md) • [🇨🇳 中文](./i18n/README.zh-CN.md) • [🇯🇵 日本語](./i18n/README.ja-JP.md) • [🇷🇺 Русский](./i18n/README.ru.md) • [🇹🇭 ไทย](./i18n/README.th.md) • [🇮🇷 فارسی](./i18n/README.fa_IR.md) • [🇮🇩 Indonesia](./i18n/README.id-ID.md) • [🇪🇸 Español](./i18n/README.es.md) • [🇫🇷 Français](./i18n/README.fr.md) +### Option 1: Docker -
      - ---- - -## New Features - -### Proxy Fitness - -Monitor proxy health and egress location to keep routed requests reliable. - -![Proxy Fitness](images/proxy-fitnes.png) - -### Smart Rotation - -Automatically rotate proxy pools and provider connections for better availability. - -![Smart Rotation](images/smart-rotation.png) - -## 🤔 Why 9Router? - -**Stop wasting money, tokens and hitting limits:** - -- ❌ Subscription quota expires unused every month -- ❌ Rate limits stop you mid-coding -- ❌ Tool outputs (git diff, grep, ls...) burn tokens fast -- ❌ Expensive APIs ($20-50/month per provider) -- ❌ Manual switching between providers - -**9Router solves this:** - -- ✅ **RTK Token Saver** - Auto-compress tool_result content, save 20-40% tokens per request -- ✅ **Maximize subscriptions** - Track quota, use every bit before reset -- ✅ **Auto fallback** - Subscription → Cheap → Free, zero downtime -- ✅ **Multi-account** - Round-robin between accounts per provider -- ✅ **Universal** - Works with Claude Code, Codex, Cursor, Cline, any CLI tool - ---- - -## 🔄 How It Works - -``` -┌─────────────┐ -│ Your CLI │ (Claude Code, Codex, OpenClaw, Cursor, Cline...) -│ Tool │ -└──────┬──────┘ - │ http://localhost:20128/v1 - ↓ -┌─────────────────────────────────────────────┐ -│ 9Router (Smart Router) │ -│ • RTK Token Saver (cut tool_result tokens) │ -│ • Format translation (OpenAI ↔ Claude) │ -│ • Quota tracking │ -│ • Auto token refresh │ -└──────┬──────────────────────────────────────┘ - │ - ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, GitHub Copilot - │ ↓ quota exhausted - ├─→ [Tier 2: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) - │ ↓ budget limit - └─→ [Tier 3: FREE] Kiro, OpenCode Free, Vertex ($300 credits) - -Result: Never stop coding, minimal cost + 20-40% token savings via RTK -``` - ---- - -## ⚡ Quick Start - -**1. Install globally:** +Pull the image: ```bash -npm install -g 9router -9router +docker pull mhiqrambhrng/9router-mibp-version:latest ``` -🎉 Dashboard opens at `http://localhost:20128` - -**2. Connect a FREE provider (no signup needed):** - -Dashboard → Providers → Connect **Kiro AI** (~50 credits/month free: Claude 4.5 + GLM-5 + MiniMax) or **OpenCode Free** (no auth) → Done! - -**3. Use in your CLI tool:** - -``` -Claude Code/Codex/OpenClaw/Cursor/Cline Settings: - Endpoint: http://localhost:20128/v1 - API Key: [copy from dashboard] - Model: kr/claude-sonnet-4.5 -``` - -**That's it!** Start coding with FREE AI models. - -**Alternative: run from source (this repository):** - -This repository package is private (`9router-app`), so source/Docker execution is the expected local development path. - -```bash -cp .env.example .env -npm install -PORT=20128 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run dev -``` - -Production mode: - -```bash -npm run build -PORT=20128 HOSTNAME=0.0.0.0 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run start -``` - -Default URLs: - -- Dashboard: `http://localhost:20128/dashboard` -- OpenAI-compatible API: `http://localhost:20128/v1` - ---- - -## Video Guides - -
      - - - - - - - - - - - - - - - - - - - - - - - -
      - - Tiết kiệm chi phí LLM với 9Router -
      - 🇻🇳 Tiếng Việt
      - Tiết kiệm chi phí LLM cho OpenClaw với 9Router
      by Mì AI
      -
      - - 9Router + Claude Code FREE Unlimited Setup -
      - 🇵🇰 اردو / हिन्दी
      - 9Router + Claude Code FREE Unlimited Setup
      by Build AI With Hamid
      -
      - - 9Router Setup Tutorial -
      - 🇺🇸 English
      - 9Router + Claude Code FREE Setup
      by Build AI With Hamid
      -
      - - 9Router Setup Tutorial -
      - 🇺🇸 English
      - 9Router + Claude Code FREE Setup
      by Build AI With Hamid
      -
      - - Claude Code FREE Forever -
      - 🇺🇸 English
      - Claude Code FREE Forever — Unlimited Models
      by Build AI With Hamid
      -
      - - Claude CLI Free Setup -
      - 🇺🇸 English
      - Claude CLI Free Setup with 9Router 🚀
      by CodeVerse Soban
      -
      - - Cài đặt OpenClaw Free A-Z -
      - 🇻🇳 Tiếng Việt
      - Cài Đặt OpenClaw Free Từ A-Z + 9Router
      by Mai Gia
      -
      - - FREE OpenClaw with Claude Opus -
      - 🇺🇸 English
      - FREE OpenClaw + Claude Opus 4.6
      by Build AI With Hamid
      -
      - - Claude CLI Free Setup -
      - 🇮🇩 Indonesia
      - Koding 24 Jam Anti Rate Limit! Hemat Token AI 65% | Tutorial Quick Setup 9Router 🚀
      by Krisswuh
      -
      - - Cara Deploy 9Router di Hugging Face GRATIS Non-Stop! | Alternatif VPS RAM 16GB -
      - 🇮🇩 Indonesia
      - Cara Deploy 9Router di Hugging Face GRATIS Non-Stop! | Alternatif VPS RAM 16GB
      by Krisswuh
      -
      - - این شکلی از هر API ای استفاده کن برای هوش مصنوعی -
      - 🇮🇷 Persian-فارسی
      - این شکلی از هر API ای استفاده کن برای هوش مصنوعی
      by Matin SenPai
      -
      - - Hướng Dẫn Setup OpenClaw + 9Router: Tạo Bot Zalo AI Tự Động Từ A-Z -
      - 🇻🇳 Tiếng Việt
      - Hướng Dẫn Setup OpenClaw + 9Router: Tạo Bot Zalo AI Tự Động Từ A-Z
      by tuanminhhole
      -
      - -
      - -> 🎬 **Made a video about 9Router?** Submit a [Pull Request](https://github.com/decolua/9router/pulls) adding your video to this section — we'll merge it! - ---- - -## 🛠️ Supported CLI Tools - -9Router works seamlessly with all major AI coding tools: - -
      - - - - - - - - - - - - - - - - - - - - - - - - - -
      - Claude Code
      - Claude-Code -
      - OpenClaw
      - OpenClaw -
      - Codex
      - Codex -
      - OpenCode
      - OpenCode -
      - Cursor
      - Cursor -
      - Antigravity
      - Antigravity -
      - Cline
      - Cline -
      - Continue
      - Continue -
      - Droid
      - Droid -
      - Roo
      - Roo -
      - Copilot
      - Copilot -
      - Kilo Code
      - Kilo Code -
      - OpenDesign
      - OpenDesign -
      - jcode
      - jcode -
      - Grok Build
      - Grok Build -
      - Devin CLI
      - Devin CLI -
      - DeepSeek TUI
      - DeepSeek TUI -
      - Qwen Code
      - Qwen Code -
      -
      - ---- - -## 🌐 Supported Providers - -### 🔐 OAuth Providers - -
      - - - - - - - - - -
      - Claude Code
      - Claude-Code -
      - Antigravity
      - Antigravity -
      - Codex
      - Codex -
      - GitHub
      - GitHub -
      - Cursor
      - Cursor -
      - Kimchi
      - Kimchi -
      -
      - -### 🆓 Free Providers - -
      - - - - - - -
      - Kiro
      - Kiro AI
      - Claude 4.5 + GLM-5 + MiniMax
      50 credits/month free
      -
      - OpenCode Free
      - OpenCode Free
      - No auth • Auto-fetch models
      Free (model list varies)
      -
      - Vertex AI
      - Vertex AI
      - Gemini 3 Pro + GLM-5 + DeepSeek
      $300 credits free
      -
      -
      - -> **Note:** iFlow, Qwen Code and Gemini CLI free tiers were discontinued in 2026. Use Kiro / OpenCode Free / Vertex instead. -> -> **Kiro AI** moved to a paid model in Sep 2025 — the free tier is now capped at **50 credits/month** (plus 500 trial credits for new accounts in the first 30 days). Paid tiers: Pro $20/mo (1,000 credits), Pro+ $40/mo (2,000), Pro Max $100/mo (5,000), Power $200/mo (10,000). -> **OpenCode Free** model list fluctuates over time (some models free only for limited promos) — subject to change without notice. -> **Vertex AI**: the $300 free credit for new GCP accounts is still valid, but since Mar 2026 the **Gemini API endpoint no longer consumes these credits** — call the **Vertex AI Studio** endpoint instead. - -### 🔑 API Key Providers (40+) - -
      - - - - - - - - - - - - - - - - - - - - - - - - - -
      - OpenRouter
      - OpenRouter -
      - GLM
      - GLM -
      - Kimi
      - Kimi -
      - MiniMax
      - MiniMax -
      - OpenAI
      - OpenAI -
      - Anthropic
      - Anthropic -
      - Gemini
      - Gemini -
      - DeepSeek
      - DeepSeek -
      - Groq
      - Groq -
      - xAI
      - xAI -
      - Mistral
      - Mistral -
      - Perplexity
      - Perplexity -
      - Together
      - Together AI -
      - Fireworks
      - Fireworks -
      - Cerebras
      - Cerebras -
      - Cohere
      - Cohere -
      - NVIDIA
      - NVIDIA -
      - SiliconFlow
      - SiliconFlow -
      -

      ...and 20+ more providers including Nebius, Chutes, Hyperbolic, and custom OpenAI/Anthropic compatible endpoints

      -
      - -### 🏠 Self-hosted Providers - -For speech and embeddings served from **your own** machine — whisper.cpp, -faster-whisper, Speaches, Kokoro-FastAPI, openedai-speech, llama.cpp/llama-server, -vLLM, Infinity, text-embeddings-inference, or anything else that speaks the OpenAI -shape. - -| Provider | Endpoint used | Typical server | -| --- | --- | --- | -| **Self-hosted STT** | `/v1/audio/transcriptions` | whisper.cpp, faster-whisper | -| **Self-hosted TTS** | `/v1/audio/speech` | Kokoro-FastAPI, openedai-speech | -| **Self-hosted Embedding** | `/v1/embeddings` | llama-server, vLLM, Infinity | - -Every other speech provider is a named cloud service with a fixed endpoint. These -three read their address from **each connection**, so one provider can front -several machines and load-balance across them like any other. - -Set it on the connection as `providerSpecificData.baseUrl`: - -| Provider | Give it | Result | -| --- | --- | --- | -| Self-hosted STT | the full URL — `http://host:8080/v1/audio/transcriptions` | used as-is | -| Self-hosted TTS | the server root — `http://host:8880` | `+ /v1/audio/speech` | -| Self-hosted Embedding | the **OpenAI base**, `/v1` included — `http://host:8080/v1` | `+ /embeddings` | - -> **Mind the `/v1` on embeddings.** The adapter appends `/embeddings`, so -> `http://host:8080` resolves to `http://host:8080/embeddings` and misses the -> OpenAI route — llama-server answers **501**. Give it the same base URL an OpenAI -> client would use. A full `.../v1/embeddings` is also accepted, so a value pasted -> from a `curl` example works too. - -The API key is not checked by most local servers, but the field must be non-empty: -it is what gives the connection a credentials record, and `baseUrl` lives there. -Any placeholder works. - -Self-hosted Embedding has **no cloud fallback by design** — a connection saved -without a `baseUrl` is reported as a configuration error rather than quietly -falling back to `api.openai.com`, which would send your input text and API key to -a third party under a provider named "Self-hosted". - ---- - -## 💡 Key Features - -| Feature | What It Does | Why It Matters | -| --------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ------------------------------------------------- | -| 🚀 **RTK Token Saver** ([RTK](https://github.com/rtk-ai/rtk) ⭐40K) | Compress tool outputs (`git diff`, `grep`, `ls`, `tree`...) before sending to LLM | Save **20-40% input tokens** per request | -| 🧠 **Headroom Token Saver** ([Headroom](https://github.com/chopratejas/headroom)) | Optional external `/v1/compress` proxy before provider routing | Save more context tokens without changing clients | -| 🪨 **Caveman Mode** ([Caveman](https://github.com/JuliusBrussee/caveman) ⭐52K) | Inject caveman-speak prompt → LLM replies terse, technical substance preserved | Save **up to 65% output tokens** | -| 🐴 **Ponytail** ([Ponytail](https://github.com/DietrichGebert/ponytail)) | Inject "lazy senior dev" prompt → LLM writes minimal, YAGNI-first code (Lite/Full/Ultra) | **Fewer output tokens, less refactoring** | -| 🎯 **Smart 3-Tier Fallback** | Auto-route: Subscription → Cheap → Free | Never stop coding, zero downtime | -| 📊 **Real-Time Quota Tracking** | Live token count + reset countdown | Maximize subscription value | -| 🔄 **Format Translation** | OpenAI ↔ Claude ↔ Gemini ↔ Cursor ↔ Kiro ↔ Vertex | Works with any CLI tool | -| 👥 **Multi-Account Support** | Multiple accounts per provider | Load balancing + redundancy | -| 🔄 **Auto Token Refresh** | OAuth tokens refresh automatically | No manual re-login needed | -| 🎨 **Custom Combos** | Create unlimited model combinations | Tailor fallback to your needs | -| 📝 **Request Logging** | Debug mode with full request/response logs | Troubleshoot issues easily | -| 💾 **Cloud Sync** | Sync config across devices | Same setup everywhere | -| 📊 **Usage Analytics** | Track tokens, cost, trends over time | Optimize spending | -| 🌐 **Deploy Anywhere** | Localhost, VPS, Docker, Cloudflare Workers | Flexible deployment options | - -Set `X-9Router-Token-Saver: off` to bypass all token savers for one chat request. - -
      -📖 Feature Details - -### 🚀 RTK Token Saver - -Tool outputs (`git diff`, `grep`, `find`, `ls`, `tree`, log dumps...) often eat 30-50% of your prompt budget. RTK detects them and applies smart, lossless compression **before** the request hits the LLM: - -- **Filters:** `git-diff`, `git-status`, `grep`, `find`, `ls`, `tree`, `dedup-log`, `smart-truncate`, `read-numbered`, `search-list` -- **Auto-detect:** No config needed — RTK peeks the first 1KB of each `tool_result` and picks the right filter. -- **Safe by design:** If a filter fails, throws, or makes output bigger, RTK silently keeps the original text. Errors never break your request. -- **Universal:** Works across all formats (OpenAI, Claude, Gemini, Cursor, Kiro, OpenAI Responses) because it runs **before** any format translation. -- **Default ON:** Toggle anytime in Dashboard → Endpoint settings. - -``` -Without RTK: 47K tokens sent to LLM -With RTK: 28K tokens sent to LLM (40% saved · same context · same answer) -``` - -### 🧠 Headroom Token Saver - -Headroom is optional and runs separately. 9Router calls Headroom's local `/v1/compress` endpoint, then keeps normal routing, fallback, auth, and usage tracking: - -``` -Client → 9Router → Headroom /v1/compress → 9Router → provider -``` - -Local setup: - -```bash -pip install "headroom-ai[proxy]" -headroom proxy --port 8787 -``` - -Enable in Dashboard → Endpoint → Token Saver → Headroom. Default URL: `http://localhost:8787`. - -Docker examples: - -```bash -# Headroom service in same Docker network -http://headroom:8787 - -# Headroom running on host machine -http://host.docker.internal:8787 -``` - -If Headroom is down or returns an error, 9Router fails open and sends the original request. - -### 🐴 Ponytail (Lazy Senior Dev) - -Ponytail injects a _"lazy senior dev"_ system prompt into every request, biasing the LLM toward minimal, YAGNI-first code — deletion over addition, stdlib over new deps, one-liners over abstractions. Adapted from [DietrichGebert/ponytail](https://github.com/DietrichGebert/ponytail). - -- **Lite** — Build what's asked, name the lazier alternative. -- **Full** — YAGNI ladder enforced: stdlib → native → existing deps → one-liner → minimal code. -- **Ultra** — YAGNI extremist: deletion first, ship the one-liner, challenge the rest of the requirement in the same response. - -``` -Without Ponytail: verbose code, extra abstractions, "just in case" scaffolding -With Ponytail: shortest working diff, no unrequested abstractions, fewer tokens -``` - -Never trades away: input validation, error handling that prevents data loss, security, accessibility, or anything explicitly requested. Enable in Dashboard → Endpoint → Ponytail. Stacks with Caveman (output terseness) and RTK (input compression). - -### 🎯 Smart 3-Tier Fallback - -Create combos with automatic fallback: - -``` -Combo: "my-coding-stack" - 1. cc/claude-opus-4-6 (your subscription) - 2. glm/glm-4.7 (cheap backup, $0.6/1M) - 3. if/kimi-k2-thinking (free fallback) - -→ Auto switches when quota runs out or errors occur -``` - -### 📊 Real-Time Quota Tracking - -- Token consumption per provider -- Reset countdown (5-hour, daily, weekly) -- Cost estimation for paid tiers -- Monthly spending reports - -### 🔄 Format Translation - -Seamless translation between formats: - -- **OpenAI** ↔ **Claude** ↔ **Gemini** ↔ **Cursor** ↔ **Kiro** ↔ **Vertex** ↔ **Antigravity** ↔ **Ollama** ↔ **OpenAI Responses** -- Your CLI tool sends OpenAI format → 9Router translates → Provider receives native format -- Works with any tool that supports custom OpenAI endpoints - -### 👥 Multi-Account Support - -- Add multiple accounts per provider -- Auto round-robin or priority-based routing -- Fallback to next account when one hits quota - -### 🔄 Auto Token Refresh - -- OAuth tokens automatically refresh before expiration -- No manual re-authentication needed -- Seamless experience across all providers - -### 🎨 Custom Combos - -- Create unlimited model combinations -- Mix subscription, cheap, and free tiers -- Name your combos for easy access -- Share combos across devices with Cloud Sync - -### 📝 Request Logging - -- Enable debug mode for full request/response logs -- Track API calls, headers, and payloads -- Troubleshoot integration issues -- Export logs for analysis - -### 💾 Cloud Sync - -- Sync providers, combos, and settings across devices -- Automatic background sync -- Secure encrypted storage -- Access your setup from anywhere - -#### Cloud Runtime Notes - -- Prefer server-side cloud variables in production: - - `BASE_URL` (internal callback URL used by sync scheduler) - - `CLOUD_URL` (cloud sync endpoint base) -- `NEXT_PUBLIC_BASE_URL` and `NEXT_PUBLIC_CLOUD_URL` are still supported for compatibility/UI, but server runtime now prioritizes `BASE_URL`/`CLOUD_URL`. -- Cloud sync requests now use timeout + fail-fast behavior to avoid UI hanging when cloud DNS/network is unavailable. - -### 📊 Usage Analytics - -- Track token usage per provider and model -- Cost estimation and spending trends -- Monthly reports and insights -- Optimize your AI spending - -> **💡 IMPORTANT - Understanding Dashboard Costs:** -> -> The "cost" displayed in Usage Analytics is **for tracking and comparison purposes only**. -> 9Router itself **never charges** you anything. You only pay providers directly (if using paid services). -> -> **Example:** If your dashboard shows "$290 total cost" while using Kiro free models, this represents -> what you would have paid using paid APIs directly. Your actual cost = **$0** (Kiro free tier: ~50 credits/mo). -> -> Think of it as a "savings tracker" showing how much you're saving by using free models or -> routing through 9Router! - -### 🌐 Deploy Anywhere - -- 💻 **Localhost** - Default, works offline -- ☁️ **VPS/Cloud** - Share across devices -- 🐳 **Docker** - One-command deployment -- 🚀 **Cloudflare Workers** - Global edge network - -
      - ---- - -## 💰 Pricing at a Glance - -| Tier | Provider | Cost | Quota Reset | Best For | -| ------------------- | --------------------- | ------------ | ---------------- | --------------------------------------- | -| **🚀 TOKEN SAVER** | **RTK (built-in)** | **FREE** | Always on | **Save 20-40% tokens on EVERY request** | -| **💳 SUBSCRIPTION** | Claude Code (Pro/Max) | $20-200/mo | 5h + weekly | Already subscribed | -| | Codex (Plus/Pro) | $20-200/mo | 5h + weekly | OpenAI users | -| | GitHub Copilot | $10-19/mo | Monthly | GitHub users | -| | Cursor IDE | $20/mo | Monthly | Cursor users | -| **💰 CHEAP** | GLM-5.1 / GLM-4.7 | $0.6/1M | Daily 10AM | Budget backup | -| | MiniMax M2.7 | $0.2/1M | 5-hour rolling | Cheapest option | -| | Kimi K2.5 | $9/mo flat | 10M tokens/mo | Predictable cost | - | **🆓 FREE** | Kiro AI | $0 | 50 credits/mo | Claude 4.5 + GLM-5 + MiniMax free (paid tiers above) | - | | OpenCode Free | $0 | Varies* | No auth, auto-fetch models (list changes over time) | - | | Vertex AI | $300 credits | New GCP accounts | Gemini 3 Pro + DeepSeek + GLM-5 (use Vertex AI Studio endpoint for free credits) | - -**💡 Pro Tip:** RTK + Kiro AI + OpenCode Free combo = **$0 cost + 20-40% token savings**! - ---- - -### 📊 Understanding 9Router Costs & Billing - -**9Router Billing Reality:** - -✅ **9Router software = FREE forever** (open source, never charges) -✅ **Dashboard "costs" = Display/tracking only** (not actual bills) -✅ **You pay providers directly** (subscriptions or API fees) -✅ **FREE providers stay FREE** (Kiro ~50 credits/mo, OpenCode Free, Vertex $300 credits = $0 within free-tier limits) — note iFlow/Qwen/Gemini CLI free tiers were discontinued in 2026 -❌ **9Router never sends invoices** or charges your card - -**How Cost Display Works:** - -The dashboard shows **estimated costs** as if you were using paid APIs directly. This is **not billing** - it's a comparison tool to show your savings. - -**Example Scenario:** - -``` -Dashboard Display: -• Total Requests: 1,662 -• Total Tokens: 47M -• Display Cost: $290 - -Reality Check: -• Provider: Kiro (free tier: ~50 credits/mo) -• Actual Payment: $0.00 -• What $290 Means: Amount you SAVED by using free models! -``` - -**Payment Rules:** - -- **Subscription providers** (Claude Code, Codex): Pay them directly via their websites -- **Cheap providers** (GLM, MiniMax): Pay them directly, 9Router just routes -- **FREE providers** (iFlow, Kiro, Qwen): Genuinely free forever, no hidden charges -- **9Router**: Never charges anything, ever - ---- - -## 🎯 Use Cases - -### Case 1: "I have Claude Pro subscription" - -**Problem:** Quota expires unused, rate limits during heavy coding - -**Solution:** - -``` -Combo: "maximize-claude" - 1. cc/claude-opus-4-7 (use subscription fully) - 2. glm/glm-5.1 (cheap backup when quota out) - 3. kr/claude-sonnet-4.5 (free emergency fallback) - -Monthly cost: $20 (subscription) + ~$5 (backup) = $25 total -vs. $20 + hitting limits = frustration -``` - -### Case 2: "I want zero cost" - -**Problem:** Can't afford subscriptions, need reliable AI coding - -**Solution:** - -``` -Combo: "free-forever" - 1. kr/claude-sonnet-4.5 (Claude 4.5 free via Kiro, ~50 credits/mo) - 2. kr/glm-5 (GLM-5 free via Kiro) - 3. oc/ (OpenCode Free, no auth) - -Monthly cost: $0 -Quality: Production-ready models + RTK saves 20-40% tokens -``` - -### Case 3: "I need 24/7 coding, no interruptions" - -**Problem:** Deadlines, can't afford downtime - -**Solution:** - -``` -Combo: "always-on" - 1. cc/claude-opus-4-7 (best quality) - 2. cx/gpt-5.5 (second subscription) - 3. glm/glm-5.1 (cheap, resets daily) - 4. minimax/MiniMax-M2.7 (cheapest, 5h reset) - 5. kr/claude-sonnet-4.5 (free via Kiro, ~50 credits/mo) - -Result: 5 layers of fallback = zero downtime -Monthly cost: $20-200 (subscriptions) + $10-20 (backup) -``` - -### Case 4: "I want FREE AI in OpenClaw" - -**Problem:** Need AI assistant in messaging apps (WhatsApp, Telegram, Slack...), completely free - -**Solution:** - -``` -Combo: "openclaw-free" - 1. kr/claude-sonnet-4.5 (Claude 4.5 free) - 2. kr/glm-5 (GLM-5 free) - 3. kr/MiniMax-M2.5 (MiniMax free) - -Monthly cost: $0 -Access via: WhatsApp, Telegram, Slack, Discord, iMessage, Signal... -``` - ---- - -## ❓ Frequently Asked Questions - -
      -📊 Why does my dashboard show high costs? - -The dashboard tracks your token usage and displays **estimated costs** as if you were using paid APIs directly. This is **not actual billing** - it's a reference to show how much you're saving by using free models or existing subscriptions through 9Router. - -**Example:** - -- **Dashboard shows:** "$290 total cost" -- **Reality:** You're using Kiro free models (~50 credits/mo) -- **Your actual cost:** **$0.00** -- **What $290 means:** Amount you **saved** by using free models instead of paid APIs! - -The cost display is a "savings tracker" to help you understand your usage patterns and optimization opportunities. - -
      - -
      -💳 Will I be charged by 9Router? - -**No.** 9Router is free, open-source software that runs on your own computer. It never charges you anything. - -**You only pay:** - -- ✅ **Subscription providers** (Claude Code $20/mo, Codex $20-200/mo) → Pay them directly on their websites -- ✅ **Cheap providers** (GLM, MiniMax) → Pay them directly, 9Router just routes your requests -- ❌ **9Router itself** → **Never charges anything, ever** - -9Router is a local proxy/router. It doesn't have your credit card, can't send invoices, and has no billing system. It's completely free software. - -
      - -
      -🆓 Are FREE providers really unlimited? - -**Mostly!** The current FREE providers (Kiro, OpenCode Free, Vertex) are genuinely free, but free tiers have limits: - -These are free services offered by those respective companies: - -- **Kiro AI**: ~50 credits/month free (plus 500 trial credits for new accounts in the first 30 days) via AWS Builder ID / Google / GitHub OAuth. Paid tiers available above that. -- **OpenCode Free**: No-auth passthrough proxy, models auto-fetched from `opencode.ai/zen/v1/models`. The free model list fluctuates over time (some models free only for limited promos) — subject to change without notice. -- **Vertex AI**: $300 free credits for new Google Cloud accounts (90 days). Since Mar 2026 the Gemini API endpoint no longer consumes these credits — use the **Vertex AI Studio** endpoint instead. - -9Router just routes your requests to them - there's no "catch" or future billing from 9Router itself. They're truly free services, and 9Router makes them easy to use with fallback support. - -**Discontinued free tiers (no longer recommended):** - -- ❌ **iFlow**: Was free unlimited, now changed to paid (2026) -- ❌ **Qwen Code**: Free OAuth tier fully discontinued by Alibaba on 2026-04-15 -- ❌ **Gemini CLI**: Service fully shut down by Google on 2026-06-18 (replaced by the closed-source Antigravity CLI). Discontinued — do not use. - -
      - -
      -💰 How do I minimize my actual AI costs? - -**Free-First Strategy:** - -1. **Start with 100% free combo:** - - ``` - 1. kr/glm-5 (GLM-5 free via Kiro, ~50 credits/mo) - 2. OpenCode Free models (no auth, auto-fetched) - 3. Vertex AI Gemini 3 Pro (using the Vertex AI Studio endpoint with $300 credits) - ``` - - **Cost: $0/month** (within Kiro's free credit cap; OpenCode/Vertex subject to their free-tier limits) - -2. **Add cheap backup** only if you need it: - - ``` - 4. glm/glm-4.7 ($0.6/1M tokens) - ``` - - **Additional cost: Only pay for what you actually use** - -3. **Use subscription providers last:** - - Only if you already have them - - 9Router helps maximize their value through quota tracking - -**Result:** Most users can operate at $0/month using only free tiers! - -
      - -
      -📈 What if my usage suddenly spikes? - -9Router's smart fallback prevents surprise charges: - -**Scenario:** You're on a coding sprint and blow through your quotas - -**Without 9Router:** - -- ❌ Hit rate limit → Work stops → Frustration -- ❌ Or: Accidentally rack up huge API bills - -**With 9Router:** - -- ✅ Subscription hits limit → Auto-fallback to cheap tier -- ✅ Cheap tier gets expensive → Auto-fallback to free tier -- ✅ Never stop coding → Predictable costs - -**You're in control:** Set spending limits per provider in dashboard, and 9Router respects them. - -
      - ---- - -## 📖 Setup Guide - -
      -🔐 Subscription Providers (Maximize Value) - -### Claude Code (Pro/Max) - -```bash -Dashboard → Providers → Connect Claude Code -→ OAuth login → Auto token refresh -→ 5-hour + weekly quota tracking - -Models: - cc/claude-opus-4-7 - cc/claude-opus-4-6 - cc/claude-sonnet-4-6 - cc/claude-haiku-4-5-20251001 -``` - -**Pro Tip:** Use Opus for complex tasks, Sonnet for speed. 9Router tracks quota per model! - -### OpenAI Codex (Plus/Pro) - -```bash -Dashboard → Providers → Connect Codex -→ OAuth login (port 1455) -→ 5-hour + weekly reset - -Models: - cx/gpt-5.5 - cx/gpt-5.4 - cx/gpt-5.3-codex - cx/gpt-5.2-codex -``` - -### GitHub Copilot - -```bash -Dashboard → Providers → Connect GitHub -→ OAuth via GitHub -→ Monthly reset (1st of month) - -Models: - gh/gpt-5.4 - gh/claude-opus-4.7 - gh/claude-sonnet-4.6 - gh/gemini-3.1-pro-preview - gh/grok-code-fast-1 -``` - -### Cursor IDE - -```bash -Dashboard → Providers → Connect Cursor -→ OAuth login -→ Monthly subscription - -Models: - cu/claude-4.6-opus-max - cu/claude-4.5-sonnet-thinking - cu/gpt-5.3-codex -``` - -
      - -
      -💰 Cheap Providers (Backup) - -### GLM-5.1 / GLM-4.7 (Daily reset, $0.6/1M) - -1. Sign up: [Zhipu AI](https://open.bigmodel.cn/) -2. Get API key from Coding Plan -3. Dashboard → Add API Key: - - Provider: `glm` - - API Key: `your-key` - -**Use:** `glm/glm-5.1`, `glm/glm-5`, `glm/glm-4.7` - -**Pro Tip:** Coding Plan offers 3× quota at 1/7 cost! Reset daily 10:00 AM. - -### MiniMax M2.7 (5h reset, $0.20/1M) - -1. Sign up: [MiniMax](https://www.minimax.io/) -2. Get API key -3. Dashboard → Add API Key - -**Use:** `minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.5` - -**Pro Tip:** Cheapest option for long context (1M tokens)! - -### Kimi K2.5 ($9/month flat) - -1. Subscribe: [Moonshot AI](https://platform.moonshot.ai/) -2. Get API key -3. Dashboard → Add API Key - -**Use:** `kimi/kimi-k2.5`, `kimi/kimi-k2.5-thinking` - -**Pro Tip:** Fixed $9/month for 10M tokens = $0.90/1M effective cost! - -
      - -
      -🆓 FREE Providers (Recommended) - -### Kiro AI (Claude 4.5 + GLM-5 + MiniMax FREE) - -```bash -Dashboard → Connect Kiro -→ AWS Builder ID, AWS IAM Identity Center, Google, or GitHub -→ Unlimited usage - -Models: - kr/claude-sonnet-4.5 - kr/claude-haiku-4.5 - kr/glm-5 - kr/MiniMax-M2.5 - kr/qwen3-coder-next - kr/deepseek-3.2 -``` - -**Pro Tip:** Best free option for Claude. No API key, no payment, fully unlimited. - -### OpenCode Free (No auth, auto-fetch models) - -```bash -Dashboard → Connect OpenCode Free -→ No login required (passthrough proxy) -→ Models auto-fetched from opencode.ai/zen/v1/models -``` - -**Pro Tip:** Fastest setup. Just connect and start coding. - -### Vertex AI ($300 free credits for new GCP accounts) - -```bash -Dashboard → Connect Vertex AI -→ Upload Google Cloud Service Account JSON -→ Enable Vertex AI API in your GCP project - -Models: - vertex/gemini-3.1-pro-preview - vertex/gemini-3-flash-preview - vertex/gemini-2.5-flash - -Vertex Partner (Anthropic / DeepSeek / GLM / Qwen via Vertex): - vertex-partner/glm-5-maas - vertex-partner/deepseek-v3.2-maas - vertex-partner/qwen3-next-80b-a3b-thinking-maas -``` - -**Pro Tip:** New Google Cloud accounts get $300 credits free for 90 days. Plenty for daily coding. - -
      - -
      -🎨 Create Combos - -### Example 1: Maximize Subscription → Cheap Backup - -``` -Dashboard → Combos → Create New - -Name: premium-coding -Models: - 1. cc/claude-opus-4-7 (Subscription primary) - 2. glm/glm-5.1 (Cheap backup, $0.6/1M) - 3. minimax/MiniMax-M2.7 (Cheapest fallback, $0.20/1M) - -Use in CLI: premium-coding - -Monthly cost example (100M tokens): - 80M via Claude (subscription): $0 extra - 15M via GLM: $9 - 5M via MiniMax: $1 - Total: $10 + your subscription -``` - -### Example 2: Free-Only (Zero Cost) - -``` -Name: free-combo -Models: - 1. kr/claude-sonnet-4.5 (Claude 4.5 free via Kiro, ~50 credits/mo) - 2. kr/glm-5 (GLM-5 free via Kiro) - 3. vertex/gemini-3.1-pro-preview ($300 free credits) - -Cost: $0 forever (+ 20-40% token savings via RTK)! -``` - -
      - -
      -🔧 CLI Integration - -### Cursor IDE - -``` -Settings → Models → Advanced: - OpenAI API Base URL: http://localhost:20128/v1 - OpenAI API Key: [from 9router dashboard] - Model: cc/claude-opus-4-7 -``` - -Or use combo: `premium-coding` - -### Claude Code - -Edit `~/.claude/config.json`: - -```json -{ - "anthropic_api_base": "http://localhost:20128/v1", - "anthropic_api_key": "your-9router-api-key" -} -``` - -### Codex CLI - -```bash -export OPENAI_BASE_URL="http://localhost:20128" -export OPENAI_API_KEY="your-9router-api-key" - -codex "your prompt" -``` - -### OpenClaw - -**Option 1 — Dashboard (recommended):** - -``` -Dashboard → CLI Tools → OpenClaw → Select Model → Apply -``` - -**Option 2 — Manual:** Edit `~/.openclaw/openclaw.json`: - -```json -{ - "agents": { - "defaults": { - "model": { - "primary": "9router/kr/claude-sonnet-4.5" - } - } - }, - "models": { - "providers": { - "9router": { - "baseUrl": "http://127.0.0.1:20128/v1", - "apiKey": "sk_9router", - "api": "openai-completions", - "models": [ - { - "id": "kr/claude-sonnet-4.5", - "name": "Claude Sonnet 4.5 (Kiro Free)" - } - ] - } - } - } -} -``` - -> **Note:** OpenClaw only works with local 9Router. Use `127.0.0.1` instead of `localhost` to avoid IPv6 resolution issues. - -### Cline / Continue / RooCode - -``` -Provider: OpenAI Compatible -Base URL: http://localhost:20128/v1 -API Key: [from dashboard] -Model: cc/claude-opus-4-7 -``` - -
      - -
      -🚀 Deployment - -### VPS Deployment - -```bash -# Clone and install -git clone https://github.com/decolua/9router.git -cd 9router -npm install -npm run build - -# Configure -export JWT_SECRET="your-secure-secret-change-this" -export INITIAL_PASSWORD="your-password" -export DATA_DIR="/var/lib/9router" -export PORT="20128" -export HOSTNAME="0.0.0.0" -export NODE_ENV="production" -export NEXT_PUBLIC_BASE_URL="http://localhost:20128" -export NEXT_PUBLIC_CLOUD_URL="https://9router.com" -export API_KEY_SECRET="endpoint-proxy-api-key-secret" -export MACHINE_ID_SALT="endpoint-proxy-salt" - -# Start -npm run start - -# Or use PM2 -npm install -g pm2 -pm2 start npm --name 9router -- start -pm2 save -pm2 startup -``` - -### Docker - -Published images (multi-platform `linux/amd64` + `linux/arm64`): - -- Docker Hub: [`decolua/9router`](https://hub.docker.com/r/decolua/9router) -- GHCR: [`ghcr.io/decolua/9router`](https://github.com/decolua/9router/pkgs/container/9router) - -**Quick start (use published image):** +Run the container: ```bash +mkdir -p 9router-data docker run -d \ --name 9router \ -p 20128:20128 \ - -v "$HOME/.9router:/app/data" \ + -v 9router-data:/app/data \ -e DATA_DIR=/app/data \ - decolua/9router:latest + -e PORT=20128 \ + -e HOSTNAME=0.0.0.0 \ + -e NODE_ENV=production \ + -e JWT_SECRET= \ + -e INITIAL_PASSWORD= \ + -e API_KEY_SECRET= \ + -e MACHINE_ID_SALT= \ + mhiqrambhrng/9router-mibp-version:latest ``` -→ Open http://localhost:20128 - -**Build from source (dev):** +Or using Docker Compose (a `docker-compose.yml` is included in this repo): ```bash -git clone https://github.com/decolua/9router.git -cd 9router/app -docker build -t 9router . -docker run -d --name 9router -p 20128:20128 \ - -v "$HOME/.9router:/app/data" -e DATA_DIR=/app/data 9router -``` - -**Container defaults:** - -- `PORT=20128` -- `HOSTNAME=0.0.0.0` - -**Useful commands:** - -```bash -docker logs -f 9router -docker restart 9router -docker stop 9router && docker rm 9router -docker pull decolua/9router:latest # update to latest -``` - -**Data persistence:** `$HOME/.9router/db/data.sqlite` on host ↔ `/app/data/db/data.sqlite` in container. - -### Environment Variables - -| Variable | Default | Description | -| ---------------------------------------------------- | ---------------------------------------- | ----------------------------------------------------------------------------------- | -| `JWT_SECRET` | Auto-generated (`~/.9router/jwt-secret`) | JWT signing secret for dashboard auth cookie (override to share across instances) | -| `INITIAL_PASSWORD` | `123456` | First login password when no saved hash exists | -| `DATA_DIR` | `~/.9router` | Main app data location (SQLite at `$DATA_DIR/db/data.sqlite`) | -| `PORT` | framework default | Service port (`20128` in examples) | -| `HOSTNAME` | framework default | Bind host (Docker defaults to `0.0.0.0`) | -| `NODE_ENV` | runtime default | Set `production` for deploy | -| `BASE_URL` | `http://localhost:20128` | Server-side internal base URL used by cloud sync jobs | -| `CLOUD_URL` | `https://9router.com` | Server-side cloud sync endpoint base URL | -| `NEXT_PUBLIC_BASE_URL` | `http://localhost:3000` | Backward-compatible/public base URL (prefer `BASE_URL` for server runtime) | -| `NEXT_PUBLIC_CLOUD_URL` | `https://9router.com` | Backward-compatible/public cloud URL (prefer `CLOUD_URL` for server runtime) | -| `API_KEY_SECRET` | `endpoint-proxy-api-key-secret` | HMAC secret for generated API keys | -| `MACHINE_ID_SALT` | `endpoint-proxy-salt` | Salt for stable machine ID hashing | -| `ENABLE_REQUEST_LOGS` | `false` | Enables request/response logs under `logs/` | -| `AUTH_COOKIE_SECURE` | `false` | Force `Secure` auth cookie (set `true` behind HTTPS reverse proxy) | -| `REQUIRE_API_KEY` | `false` | Enforce Bearer API key on `/v1/*` routes (recommended for internet-exposed deploys) | -| `HTTP_PROXY`, `HTTPS_PROXY`, `ALL_PROXY`, `NO_PROXY` | empty | Optional outbound proxy for upstream provider calls | -| `SEARXNG_URL` | `http://localhost:8888/search` | Endpoint for the built-in unauthenticated SearXNG web-search provider | - -Notes: - -- Lowercase proxy variables are also supported: `http_proxy`, `https_proxy`, `all_proxy`, `no_proxy`. -- `.env` is not baked into Docker image (`.dockerignore`); inject runtime config with `--env-file` or `-e`. -- On Windows, `APPDATA` can be used for local storage path resolution. -- `INSTANCE_NAME` appears in older docs/env templates, but is currently not used at runtime. - -### Runtime Files and Storage - -- Main app state: `${DATA_DIR}/db/data.sqlite` (SQLite — providers, combos, aliases, keys, settings, usage history) -- Auto backups: `${DATA_DIR}/db/backups/` -- Optional request/translator logs: `/logs/...` when `ENABLE_REQUEST_LOGS=true` -- Both `${DATA_DIR}` and `~/.9router` resolve to the same location in a Docker container — the symlink `/root/.9router -> /app/data` is created at build time. - -
      - ---- - -## 📊 Available Models - -
      -View all available models - -**Claude Code (`cc/`)** - Pro/Max: - -- `cc/claude-opus-4-7` -- `cc/claude-opus-4-6` -- `cc/claude-sonnet-4-6` -- `cc/claude-sonnet-4-5-20250929` -- `cc/claude-haiku-4-5-20251001` - -**Codex (`cx/`)** - Plus/Pro: - -- `cx/gpt-5.5` -- `cx/gpt-5.4` -- `cx/gpt-5.3-codex` -- `cx/gpt-5.2-codex` -- `cx/gpt-5.1-codex-max` - -**GitHub Copilot (`gh/`)**: - -- `gh/gpt-5.4` -- `gh/claude-opus-4.7` -- `gh/claude-sonnet-4.6` -- `gh/gemini-3.1-pro-preview` -- `gh/grok-code-fast-1` - -**Cursor (`cu/`)** - Subscription: - -- `cu/claude-4.6-opus-max` -- `cu/claude-4.5-sonnet-thinking` -- `cu/gpt-5.3-codex` -- `cu/kimi-k2.5` - -**GLM (`glm/`)** - $0.6/1M: - -- `glm/glm-5.1` -- `glm/glm-5` -- `glm/glm-4.7` - -**MiniMax (`minimax/`)** - $0.2/1M: - -- `minimax/MiniMax-M2.7` -- `minimax/MiniMax-M2.5` - -**Kimi (`kimi/`)** - $9/mo flat: - -- `kimi/kimi-k2.5` -- `kimi/kimi-k2.5-thinking` - -**Kiro (`kr/`)** - Free (~50 credits/month, paid tiers above): - -- `kr/claude-sonnet-4.5` -- `kr/claude-haiku-4.5` -- `kr/glm-5` -- `kr/MiniMax-M2.5` -- `kr/qwen3-coder-next` -- `kr/deepseek-3.2` - -**OpenCode Free (`oc/`)** - FREE no-auth: - -- Auto-fetched from `opencode.ai/zen/v1/models` - -**Vertex AI (`vertex/`)** - $300 free credits: - -- `vertex/gemini-3.1-pro-preview` -- `vertex/gemini-3-flash-preview` -- `vertex/gemini-2.5-flash` -- `vertex-partner/glm-5-maas` -- `vertex-partner/deepseek-v3.2-maas` - -
      - ---- - -## 🐛 Troubleshooting - -**"Language model did not provide messages"** - -- Provider quota exhausted → Check dashboard quota tracker -- Solution: Use combo fallback or switch to cheaper tier - -**Rate limiting** - -- Subscription quota out → Fallback to GLM/MiniMax -- Add combo: `cc/claude-opus-4-7 → glm/glm-5.1 → kr/claude-sonnet-4.5` - -**OAuth token expired** - -- Auto-refreshed by 9Router -- If issues persist: Dashboard → Provider → Reconnect - -**High costs** - -- Enable RTK in Dashboard → Endpoint settings (default ON, saves 20-40% tokens) -- Check usage stats in Dashboard -- Switch primary model to GLM/MiniMax -- Use free tier (Kiro, OpenCode Free, Vertex) for non-critical tasks - -**Dashboard opens on wrong port** - -- Set `PORT=20128` and `NEXT_PUBLIC_BASE_URL=http://localhost:20128` - -**First login not working** - -- Check `INITIAL_PASSWORD` in `.env` -- If unset, fallback password is `123456` - -**No request logs under `logs/`** - -- Set `ENABLE_REQUEST_LOGS=true` - ---- - -## 🛠️ Tech Stack - -- **Runtime**: Node.js 20+ -- **Framework**: Next.js 16 -- **UI**: React 19 + Tailwind CSS 4 -- **Database**: SQLite (better-sqlite3 / node:sqlite / sql.js fallback) -- **Streaming**: Server-Sent Events (SSE) -- **Auth**: OAuth 2.0 (PKCE) + JWT + API Keys - ---- - -## 📝 API Reference - -### Chat Completions - -```bash -POST http://localhost:20128/v1/chat/completions -Authorization: Bearer your-api-key -Content-Type: application/json - -{ - "model": "cc/claude-opus-4-6", - "messages": [ - {"role": "user", "content": "Write a function to..."} - ], - "stream": true -} -``` - -### List Models - -```bash -GET http://localhost:20128/v1/models -Authorization: Bearer your-api-key - -→ Returns all models + combos in OpenAI format -``` - -## 📧 Support - -- **Website**: [9router.com](https://9router.com) -- **GitHub**: [github.com/decolua/9router](https://github.com/decolua/9router) -- **Issues**: [github.com/decolua/9router/issues](https://github.com/decolua/9router/issues) - ---- - -## 👥 Contributors - -Thanks to all contributors who helped make 9Router better! - -[![Contributors](https://contrib.rocks/image?repo=decolua/9router&max=150&columns=15&anon=1&v=20260309)](https://github.com/decolua/9router/graphs/contributors) - ---- - -## 📊 Star Chart - -[![Star Chart](https://starchart.cc/decolua/9router.svg?variant=adaptive)](https://starchart.cc/decolua/9router) - -## 🔀 Forks - -**[OmniRoute](https://github.com/diegosouzapw/OmniRoute)** — A full-featured TypeScript fork of 9Router. Adds 36+ providers, 4-tier auto-fallback, multi-modal APIs (images, embeddings, audio, TTS), circuit breaker, semantic cache, LLM evaluations, and a polished dashboard. 368+ unit tests. Available via npm and Docker. - ---- - -## 🙏 Acknowledgments - -Built on the shoulders of giants: - -- **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — original Go implementation that inspired this JavaScript port. -- **[RTK](https://github.com/rtk-ai/rtk)** ![Stars](https://img.shields.io/github/stars/rtk-ai/rtk?style=flat&color=yellow) — Rust token-saver. 9Router ports its compression pipeline to JS → **−20-40% input tokens** on every request. -- **[Caveman](https://github.com/JuliusBrussee/caveman)** ![Stars](https://img.shields.io/github/stars/JuliusBrussee/caveman?style=flat&color=yellow) by **[@JuliusBrussee](https://github.com/JuliusBrussee)** — viral _"why use many token when few token do trick"_. 9Router adapts its prompt → **−65% output tokens**. -- **[Ponytail](https://github.com/DietrichGebert/ponytail)** ![Stars](https://img.shields.io/github/stars/DietrichGebert/ponytail?style=flat&color=yellow) by **[@DietrichGebert](https://github.com/DietrichGebert)** — _"lazy senior dev"_ skill. 9Router injects its YAGNI-first ladder → **fewer tokens, less code, shorter diffs**. - -Huge thanks to these authors — without their work, 9Router's token-saving features wouldn't exist. ⭐ them on GitHub! - ---- - -## 📄 License - -MIT License - see [LICENSE](LICENSE) for details. - ---- - -
      - Built with ❤️ for developers who code 24/7 -
      - ---- - -## Update This Fork - -This fork follows `decolua/9router` through the `upstream` remote. - -```bash -git fetch upstream -git checkout master -git merge upstream/master -git push origin master -``` - -To build and publish this fork's Docker image after updating the source: - -```bash -git tag v1.0.0 -git push origin v1.0.0 -``` - -The GitHub Actions workflow builds and publishes: - -```text -mhiqrambhrng/9router-mibp-version -``` - -On the server, update the running container with: - -```bash -docker compose pull 9router +cp .env.example .env # fill in JWT_SECRET, INITIAL_PASSWORD, API_KEY_SECRET, MACHINE_ID_SALT docker compose up -d ``` -## Forks (9Router) +Dashboard opens at `http://localhost:20128/dashboard`. -- [9Router upstream](https://github.com/decolua/9router) -- [9Router MIBP Version](https://github.com/mhiqrambg/9router-mibp-version) +### Option 2: Manual (from source) + +Requirements: Node.js 22 or newer. + +```bash +git clone https://github.com/mhiqrambg/9router-mibp-version.git +cd 9router-mibp-version + +cp .env.example .env +# Edit .env: set JWT_SECRET, INITIAL_PASSWORD, API_KEY_SECRET, MACHINE_ID_SALT + +npm install + +# Development server +npm run dev + +# Or production build +npm run build +npm run start +``` + +Dashboard opens at `http://localhost:20128/dashboard`. + +## More Information + +- Upstream project: [https://github.com/decolua/9router](https://github.com/decolua/9router) +- Upstream docs: [DOCKER.md](DOCKER.md) • [ARCHITECTURE.md](docs/ARCHITECTURE.md) From cdbdcd344866f5e0528a88a48694419025b293bf Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Sun, 30 Aug 2026 23:47:01 +0800 Subject: [PATCH 29/42] ci(docker): pin actions by SHA, add concurrency, exclude tests from build context --- .dockerignore | 5 +++++ .github/workflows/docker-publish.yml | 16 ++++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/.dockerignore b/.dockerignore index 5b921cd9..584c09d2 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,6 +1,11 @@ # VCS .git **/.git +.github + +# Test suites (not needed for the image build) +tests +**/tests # Editor .vscode diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 270f71b6..96c1e369 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -6,6 +6,10 @@ on: - "v*" workflow_dispatch: +concurrency: + group: docker-build-${{ github.ref }} + cancel-in-progress: true + env: GHCR_IMAGE: ghcr.io/${{ github.repository }} DOCKERHUB_IMAGE: mhiqrambhrng/9router-mibp-version @@ -18,26 +22,26 @@ jobs: packages: write steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0 - - uses: docker/setup-buildx-action@v3 + - uses: docker/setup-buildx-action@f7ce87c1d6bead3e36075b2ce75da1f6cc28aaca # v3.9.0 - name: Log in to GHCR - uses: docker/login-action@v3 + uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Log in to Docker Hub - uses: docker/login-action@v3 + uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Extract metadata id: meta - uses: docker/metadata-action@v5 + uses: docker/metadata-action@318604b99e75e41977312d83839a89be02ca4893 # v5.9.0 with: images: | ${{ env.GHCR_IMAGE }} @@ -47,7 +51,7 @@ jobs: type=raw,value=latest,enable={{is_default_branch}} - name: Build and push - uses: docker/build-push-action@v6 + uses: docker/build-push-action@4f58ea79222b3b9dc2c8bbdd6debcef730109a75 # v6.9.0 with: context: . push: true From 9cd61d585c320a10dcf8f7e3efd98d30f15df828 Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Sat, 5 Sep 2026 23:18:42 +0800 Subject: [PATCH 30/42] feat(freebuff): update model catalog + fable offer claims --- open-sse/executors/freebuff.js | 114 +++++++++++++++++++++++- open-sse/providers/registry/freebuff.js | 21 +++-- tests/unit/freebuff-provider.test.js | 98 +++++++++++++++++++- tests/unit/freebuff-usage.test.js | 6 +- 4 files changed, 225 insertions(+), 14 deletions(-) diff --git a/open-sse/executors/freebuff.js b/open-sse/executors/freebuff.js index 8efe719f..aa7079f3 100644 --- a/open-sse/executors/freebuff.js +++ b/open-sse/executors/freebuff.js @@ -40,6 +40,18 @@ const SESSION_DEFAULT_TTL_MS = 60 * 60 * 1000; // active sessions live ~1h // before retrying (mirrors the CLI's FreebuffGateErrorKind statuses). const SESSION_STALE_CODES = new Set([428, 409, 410]); +// Models the backend runs as a CAPACITY-LIMITED OFFER rather than a standing +// picker row. Claude Fable 5 is not in the client catalog at all: the server +// advertises it per-session-response (`limitedModelOffers`) only while its +// shared wave pool has sessions left, and a request without a live offer is +// refused. A claim must therefore peek at the current offers first instead of +// POSTing blind (mirrors the CLI: the "Claude Fable 5 · N of M left" row only +// renders from that payload). Offer state is per-account and cached briefly — +// the pool can reopen at any time, so a closed offer must NOT set a long +// cooldown. +const OFFER_GATED_MODELS = new Set(["anthropic/claude-fable-5"]); +const OFFER_CACHE_TTL_MS = 45_000; + // The free tier rejects requests whose first system message doesn't open with // the canonical Freebuff CLI root prompt (server gate // requestHasFreebuffSystemMarker → 403 free_mode_cli_required). The check is a @@ -103,12 +115,21 @@ function injectEndTurnTool(body) { // FREEBUFF_CLI_BASE3_AGENT_ID_BY_MODEL — the CLI harness moved from base2 to // base3, and the backend can return 404 "No endpoints found" for the old // base2 roots during the transition). +// +// Withdrawn upstream models (deepseek-v4-pro, minimax-m3, stealth/ox-alpha, +// google/gemini-3.8-flash) are deliberately absent: no new session can be +// admitted on them, so mapping them would only hide a dead pick behind a +// wrong root. z-ai/glm-5.2 stays mapped (referral-earned accounts can still +// run it) even though it is not a standing picker row. const FREE_ROOT_AGENT_BY_MODEL = { "deepseek/deepseek-v4-flash": "base3-free-deepseek-flash", - "deepseek/deepseek-v4-pro": "base3-free-deepseek", + "z-ai/glm-5.2": "base3-free-glm", + "z-ai/glm-5.3-flash": "base3-free-glm-5-3-flash", "mimo/mimo-v2.5": "base3-free-mimo", - "minimax/minimax-m3": "base3-free-minimax-m3", "openai/gpt-5.6-luna": "base3-free-luna", + "upstage/solar-pro4": "base3-free-solar-pro4", + "meta/muse-spark-1.3-contributor": "base3-free-muse-spark-1-3", + "anthropic/claude-fable-5": "base3-free-fable", }; // Per-token+model session cache (in-memory; keyed so multi-account setups @@ -122,11 +143,13 @@ const fbState = (globalThis[FB_STATE_KEY] ??= { inflight: new Map(), // dedupe concurrent claims for the same key modelLockCooldowns: new Map(), // `${token}::${model}` -> expiresAt (ms) poolLimitCooldowns: new Map(), // `${proxyKey}::${model}` -> expiresAt (ms) + offerCache: new Map(), // `${token}` -> { fetchedAt, offers: [] } (limited-offer rows) }); const sessionCache = fbState.sessionCache; const inflight = fbState.inflight; const modelLockCooldowns = fbState.modelLockCooldowns; const poolLimitCooldowns = fbState.poolLimitCooldowns; +const offerCache = fbState.offerCache; const MODEL_LOCK_COOLDOWN_MS = 10 * 60 * 1000; // session bound to another model (~1h) — re-check every 10 min const POOL_LIMITED_COOLDOWN_MS = 5 * 60 * 1000; // IP tier refuses this model — try a different pool/relay @@ -256,6 +279,10 @@ async function fetchWithNetworkRetry(url, options, proxyOptions, attempts = 3, t } async function requestSession(token, model, proxyOptions) { + // Offer-gated models (Fable) refuse claims while their wave pool is closed — + // checked before the POST so a closed offer never burns a claim attempt. + await guardOfferClaim(token, model, proxyOptions); + const response = await fetchWithNetworkRetry(`${sessionOrigin()}${SESSION_PATH}`, { method: "POST", headers: { @@ -313,6 +340,78 @@ async function requestSession(token, model, proxyOptions) { throw new Error(`Freebuff session rejected (${status || response.status}): ${JSON.stringify(data).slice(0, 200)}`); } +// Fetch the account's current limited-model offers (GET — never claims). +// Cached per token for OFFER_CACHE_TTL_MS: the wave pool changes on server +// time, not ours, and a claim only needs to know "is it open right now". +async function fetchSessionOffers(token, proxyOptions) { + const now = Date.now(); + const cached = offerCache.get(token); + if (cached && now - cached.fetchedAt < OFFER_CACHE_TTL_MS) { + return cached.offers; + } + + const response = await fetchWithNetworkRetry(`${sessionOrigin()}${SESSION_PATH}`, { + method: "GET", + headers: { + Authorization: `Bearer ${token}`, + "User-Agent": "codebuff-cli/0.0.138", + Accept: "application/json", + }, + }, proxyOptions); + + let data = {}; + try { data = await response.json(); } catch { data = {}; } + + if (response.status === 401) { + const err = new Error("Freebuff session auth failed (401) — re-login in the dashboard"); + err.status = 401; + throw err; + } + if (!response.ok) { + const err = new Error(`Freebuff offer check failed: ${response.status} ${JSON.stringify(data).slice(0, 200)}`); + err.status = response.status; + throw err; + } + + const offers = Array.isArray(data?.limitedModelOffers) + ? data.limitedModelOffers.filter((o) => o && typeof o.model === "string") + : []; + offerCache.set(token, { fetchedAt: now, offers }); + return offers; +} + +// For an offer-gated model (Fable), refuse the claim BEFORE the POST when the +// backend is not currently advertising it. Returns the matching offer when the +// claim may proceed. Throws a plain Error (no JSON tail) so the executor's +// sessionGateFromError stays null and the cooldown maps are never touched — +// a closed offer is availability, not a lock, and the pool can reopen any time. +async function guardOfferClaim(token, model, proxyOptions) { + if (!OFFER_GATED_MODELS.has(model)) return null; + + const offers = await fetchSessionOffers(token, proxyOptions); + const offer = offers.find((o) => o.model === model); + if (!offer || Number(offer.remaining) <= 0) { + const err = new Error( + `Claude Fable 5 is not being offered right now — it is a capacity-limited trial served in waves, and freebuff's shared Fable pool is currently empty. Watch the official freebuff CLI for the "Claude Fable 5 · N of M left" row, or retry later.`, + ); + err.status = 409; + err.code = "offer_closed"; + throw err; + } + const userLeft = Number(offer.userRemaining); + if (Number.isFinite(userLeft) && userLeft <= 0) { + const resetAt = Date.parse(offer.userResetAt || ""); + const err = new Error( + `Your Freebuff account has used its Claude Fable 5 sessions for today (pool: ${offer.remaining} of ${offer.total} left)${Number.isFinite(resetAt) ? ` — next slot ${new Date(resetAt).toLocaleString()}` : ""}.`, + ); + err.status = 409; + err.code = "offer_user_capped"; + if (Number.isFinite(resetAt)) err.resetsAtMs = resetAt; + throw err; + } + return offer; +} + async function ensureSession(token, model, proxyOptions, force = false) { const key = sessionCacheKey(token, model); // Lazy prune: drop stale rows so the cache never accumulates expired entries. @@ -394,6 +493,7 @@ async function finishRun(token, runId, status, proxyOptions) { export function resetSessionCache() { sessionCache.clear(); inflight.clear(); + offerCache.clear(); } // Snapshot sizes of in-memory freebuff state (for the dashboard memory panel). @@ -403,6 +503,7 @@ export function sessionStateSize() { inflight: inflight.size, modelLocks: modelLockCooldowns.size, poolLimits: poolLimitCooldowns.size, + offerCaches: offerCache.size, }; } @@ -417,6 +518,12 @@ export function pruneSessionState(now = Date.now()) { removed += 1; } } + for (const [key, entry] of offerCache) { + if (now - entry.fetchedAt >= OFFER_CACHE_TTL_MS) { + offerCache.delete(key); + removed += 1; + } + } for (const [key, until] of modelLockCooldowns) { if (until <= now) { modelLockCooldowns.delete(key); @@ -686,6 +793,9 @@ export const __test__ = { injectFreebuffMarker, injectEndTurnTool, fetchWithNetworkRetry, + fetchSessionOffers, + guardOfferClaim, + OFFER_GATED_MODELS, FREEBUFF_SYSTEM_MARKER, SESSION_STALE_CODES, }; diff --git a/open-sse/providers/registry/freebuff.js b/open-sse/providers/registry/freebuff.js index 78e8df3c..c79e3253 100644 --- a/open-sse/providers/registry/freebuff.js +++ b/open-sse/providers/registry/freebuff.js @@ -62,15 +62,24 @@ export default { features: { usage: true, }, - // Mirrors the CLI's free picker (FREEBUFF_ROOT_AGENT_ID_BY_MODEL). - // mimo/mimo-v2.5-pro is intentionally absent — it is not a free-tier model - // and would bill credits or be rejected under the base2-free agent. + // Mirrors the Freebuff waiting-room picker (upstream FREEBUFF_MODELS) as of + // 2026-09-05, plus the capacity-limited Fable trial. deepseek-v4-pro and + // minimax-m3 were withdrawn upstream (2026-08-26 / 2026-08-20) and ox-alpha + // (2026-08-27) + gemini-3.8-flash (2026-09-03) never stuck — none are + // claimable anymore. z-ai/glm-5.2 is a referral reward (not a free pick), + // luna-es / kimi-k3-eco are god-only rows, and the `-max` variants are + // provisioned per-account — all intentionally omitted. Fable is a + // capacity-limited WAVE trial: sessions only claim while the backend + // advertises it via limitedModelOffers on the session status (the executor + // auto-checks before claiming); the model is otherwise refused. models: [ + { id: "z-ai/glm-5.3-flash", name: "GLM 5.3 Flash" }, { id: "deepseek/deepseek-v4-flash", name: "DeepSeek V4 Flash" }, - { id: "deepseek/deepseek-v4-pro", name: "DeepSeek V4 Pro" }, - { id: "mimo/mimo-v2.5", name: "MiMo 2.5" }, - { id: "minimax/minimax-m3", name: "MiniMax M3" }, { id: "openai/gpt-5.6-luna", name: "GPT-5.6 Luna" }, + { id: "mimo/mimo-v2.5", name: "MiMo 2.5" }, + { id: "upstage/solar-pro4", name: "Solar Pro 4" }, + { id: "meta/muse-spark-1.3-contributor", name: "Muse Spark 1.3" }, + { id: "anthropic/claude-fable-5", name: "Claude Fable 5 (limited offer)" }, ], // Login-flow host — the CLI in freebuff mode logs in via freebuff.com, and // the server builds loginUrl from the host it was called on, so the link the diff --git a/tests/unit/freebuff-provider.test.js b/tests/unit/freebuff-provider.test.js index 7db8274f..51cbf2b9 100644 --- a/tests/unit/freebuff-provider.test.js +++ b/tests/unit/freebuff-provider.test.js @@ -16,6 +16,8 @@ const { resetSessionCache, rootAgentIdForModel, injectFreebuffMarker, + fetchSessionOffers, + guardOfferClaim, FREEBUFF_SYSTEM_MARKER, } = __test__; @@ -273,7 +275,7 @@ describe("freebuff session pre-flight", () => { fetchMock.mockResolvedValue( jsonResponse({ status: "active", instanceId: "inst-2", expiresAt: new Date(Date.now() + 3600000).toISOString() }), ); - await ensureSession("tok-1", "minimax/minimax-m3", null); + await ensureSession("tok-1", "z-ai/glm-5.3-flash", null); expect(fetchMock.mock.calls.length).toBe(2); }); @@ -305,6 +307,89 @@ describe("freebuff session pre-flight", () => { }); }); +describe("freebuff limited-offer (Claude Fable 5) claims", () => { + const FABLE = "anthropic/claude-fable-5"; + const offerRow = (over = {}) => ({ + model: FABLE, + remaining: 3, + total: 10, + userRemaining: 1, + userResetAt: new Date(Date.now() + 3600000).toISOString(), + ...over, + }); + + it("GETs limitedModelOffers (never claims) and caches them per token", async () => { + fetchMock.mockResolvedValue(jsonResponse({ status: "none", limitedModelOffers: [offerRow()] })); + const offers = await fetchSessionOffers("tok-1", null); + expect(offers.map((o) => o.model)).toEqual([FABLE]); + + const [url, opts] = fetchMock.mock.calls[0]; + expect(url).toBe("https://www.codebuff.com/api/v1/freebuff/session"); + expect(opts.method).toBe("GET"); + expect(opts.headers.Authorization).toBe("Bearer tok-1"); + expect(opts.headers.Accept).toBe("application/json"); + + // Second read within the cache TTL does not refetch. + await fetchSessionOffers("tok-1", null); + expect(fetchMock.mock.calls.length).toBe(1); + }); + + it("allows the claim while the offer is open", async () => { + fetchMock.mockResolvedValue(jsonResponse({ status: "none", limitedModelOffers: [offerRow()] })); + expect(await guardOfferClaim("tok-1", FABLE, null)).toMatchObject({ model: FABLE, remaining: 3 }); + expect(fetchMock.mock.calls.length).toBe(1); + expect(fetchMock.mock.calls[0][1].method).toBe("GET"); + }); + + it("lets non-offer models claim without any offer GET", async () => { + expect(await guardOfferClaim("tok-1", "deepseek/deepseek-v4-flash", null)).toBeNull(); + expect(fetchMock.mock.calls.length).toBe(0); + }); + + it("refuses the claim when the wave pool is closed (no offer row)", async () => { + fetchMock.mockResolvedValue(jsonResponse({ status: "none", limitedModelOffers: [] })); + await expect(guardOfferClaim("tok-1", FABLE, null)).rejects.toThrow(/not being offered right now/i); + }); + + it("refuses the claim when the account's daily Fable sessions are used up", async () => { + fetchMock.mockResolvedValue( + jsonResponse({ status: "none", limitedModelOffers: [offerRow({ userRemaining: 0 })] }), + ); + await expect(guardOfferClaim("tok-1", FABLE, null)).rejects.toThrow(/has used its Claude Fable 5 sessions/i); + }); + + it("claims a Fable session only after the offer passes: GET offers, then POST claim", async () => { + fetchMock.mockImplementation(async (url, opts = {}) => { + if (url.includes("/freebuff/session") && opts.method === "GET") { + return jsonResponse({ status: "none", limitedModelOffers: [offerRow()] }); + } + if (url.includes("/freebuff/session")) { + return jsonResponse({ status: "active", instanceId: "inst-fable", expiresAt: new Date(Date.now() + 3600000).toISOString() }); + } + return jsonResponse({ ok: false }, { status: 500, ok: false }); + }); + + const res = await ensureSession("tok-1", FABLE, null); + expect(res).toEqual({ instanceId: "inst-fable", status: "active" }); + + const methods = fetchMock.mock.calls.map(([, o]) => o.method); + expect(methods).toEqual(["GET", "POST"]); + const [, postOpts] = fetchMock.mock.calls[1]; + expect(postOpts.headers["x-freebuff-model"]).toBe(FABLE); + + // Cached claim → no further requests. + await ensureSession("tok-1", FABLE, null); + expect(fetchMock.mock.calls.length).toBe(2); + }); + + it("never POSTs a claim when the Fable wave is closed", async () => { + fetchMock.mockResolvedValue(jsonResponse({ status: "none", limitedModelOffers: [] })); + await expect(ensureSession("tok-1", FABLE, null)).rejects.toThrow(/not being offered right now/i); + const methods = fetchMock.mock.calls.map(([, o]) => o.method); + expect(methods).toEqual(["GET"]); + }); +}); + describe("freebuff free-tier system marker", () => { it("prepends the canonical marker when the first message is a system prompt", () => { const out = injectFreebuffMarker({ @@ -339,10 +424,17 @@ describe("freebuff free-tier system marker", () => { describe("freebuff run registration", () => { it("maps freebuff models to their root free agent ids", () => { expect(rootAgentIdForModel("deepseek/deepseek-v4-flash")).toBe("base3-free-deepseek-flash"); - expect(rootAgentIdForModel("deepseek/deepseek-v4-pro")).toBe("base3-free-deepseek"); + expect(rootAgentIdForModel("z-ai/glm-5.3-flash")).toBe("base3-free-glm-5-3-flash"); + expect(rootAgentIdForModel("z-ai/glm-5.2")).toBe("base3-free-glm"); expect(rootAgentIdForModel("mimo/mimo-v2.5")).toBe("base3-free-mimo"); - expect(rootAgentIdForModel("minimax/minimax-m3")).toBe("base3-free-minimax-m3"); expect(rootAgentIdForModel("openai/gpt-5.6-luna")).toBe("base3-free-luna"); + expect(rootAgentIdForModel("upstage/solar-pro4")).toBe("base3-free-solar-pro4"); + expect(rootAgentIdForModel("meta/muse-spark-1.3-contributor")).toBe("base3-free-muse-spark-1-3"); + expect(rootAgentIdForModel("anthropic/claude-fable-5")).toBe("base3-free-fable"); + // Withdrawn upstream models are unmapped — they fall back, and the backend + // refuses their sessions anyway. + expect(rootAgentIdForModel("deepseek/deepseek-v4-pro")).toBe("base2-free"); + expect(rootAgentIdForModel("minimax/minimax-m3")).toBe("base2-free"); expect(rootAgentIdForModel("some/unknown-model")).toBe("base2-free"); }); diff --git a/tests/unit/freebuff-usage.test.js b/tests/unit/freebuff-usage.test.js index 7f53a2e3..71ffb3db 100644 --- a/tests/unit/freebuff-usage.test.js +++ b/tests/unit/freebuff-usage.test.js @@ -94,7 +94,7 @@ describe("getUsageForProvider(freebuff)", () => { status: "active", accessTier: "full", instanceId: "inst-1", - model: "deepseek/deepseek-v4-pro", + model: "meta/muse-spark-1.3-contributor", expiresAt: new Date(Date.now() + 3600000).toISOString(), rateLimit: { limit: 6, @@ -112,10 +112,10 @@ describe("getUsageForProvider(freebuff)", () => { }); expect(usage.plan).toBe("Freebuff"); - expect(usage.quotas["deepseek/deepseek-v4-pro"]).toMatchObject({ + expect(usage.quotas["meta/muse-spark-1.3-contributor"]).toMatchObject({ used: 2.4, total: 6, - displayName: "DeepSeek V4 Pro", + displayName: "Muse Spark 1.3", }); }); From a2c6187aed0ceca6c1c607cc1a26f8c37d26efbf Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Sat, 5 Sep 2026 23:55:33 +0800 Subject: [PATCH 31/42] chore(deps): resync lockfile with npm 10 (docker npm ci missing @emnapi 1.11.3) --- package-lock.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3aeed0d2..b740bc13 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "9router-app", - "version": "0.5.55", + "version": "0.5.65", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "9router-app", - "version": "0.5.55", + "version": "0.5.65", "dependencies": { "@dnd-kit/core": "^6.3.1", "@dnd-kit/modifiers": "^9.0.0", From 06c66d8df83a7393cd111c4908d1016e9e99ce39 Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Sat, 5 Sep 2026 23:55:33 +0800 Subject: [PATCH 32/42] ci(docker): pin node:22-alpine by digest so npm cannot drift under npm ci --- Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index b949f8f1..5094ed2f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,7 @@ # syntax=docker/dockerfile:1.7 -ARG NODE_IMAGE=node:22-alpine +# Pinned by digest so a base-image refresh cannot silently bump npm and break +# `npm ci` against the committed lockfile (see v1.0.9 npm ci EUSAGE failure). +ARG NODE_IMAGE=node:22-alpine@sha256:c610fcdfb1d5b4740dd70c284ed3cb16bb857e0f7166196e36a5501df7a3aa32 FROM ${NODE_IMAGE} AS base WORKDIR /app From eedfdf982ba9fe9c0e447ccd7526e9f77fb5d0e1 Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Sun, 6 Sep 2026 00:45:19 +0800 Subject: [PATCH 33/42] chore(version): align app version to fork release cadence (1.0.11) --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index b740bc13..f39a4ae8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "9router-app", - "version": "0.5.65", + "version": "1.0.11", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "9router-app", - "version": "0.5.65", + "version": "1.0.11", "dependencies": { "@dnd-kit/core": "^6.3.1", "@dnd-kit/modifiers": "^9.0.0", diff --git a/package.json b/package.json index b0d95e11..d8470c8d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "9router-app", - "version": "0.5.65", + "version": "1.0.11", "description": "9Router web dashboard", "private": true, "scripts": { From 9c17c5f96c58e5867209dbe345efe14549b0ae48 Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Mon, 7 Sep 2026 22:26:28 +0800 Subject: [PATCH 34/42] feat(freebuff): enhance Freebucks handling and pricing logic across services --- open-sse/executors/freebuff.js | 22 +++- open-sse/providers/registry/freebuff.js | 26 +++-- open-sse/services/usage/freebuff.js | 88 +++++++++++++- .../components/ProviderLimits/QuotaTable.js | 19 ++- .../usage/components/ProviderLimits/index.js | 6 + .../usage/components/ProviderLimits/utils.js | 47 ++++++++ src/sse/services/auth.js | 10 +- tests/unit/freebuff-provider.test.js | 44 +++++++ tests/unit/freebuff-usage.test.js | 109 ++++++++++++++++++ 9 files changed, 352 insertions(+), 19 deletions(-) diff --git a/open-sse/executors/freebuff.js b/open-sse/executors/freebuff.js index aa7079f3..83a16519 100644 --- a/open-sse/executors/freebuff.js +++ b/open-sse/executors/freebuff.js @@ -334,8 +334,26 @@ async function requestSession(token, model, proxyOptions) { premium_slot_taken: "Freebuff premium slot is taken — try another model.", }; if (GATE_MESSAGES[status]) { - const message = data?.message ? `${GATE_MESSAGES[status]} ${data.message}` : GATE_MESSAGES[status]; - throw new Error(message); + const err = new Error(data?.message ? `${GATE_MESSAGES[status]} ${data.message}` : GATE_MESSAGES[status]); + // Freebucks / session-allowance exhaustion is a hard stop until the daily + // Pacific reset — mark the account unavailable until then so accountFallback + // SKIPS it for the rest of the day instead of retrying every 30s and getting + // refused repeatedly. resetsAtMs is honored by markAccountUnavailable; + // freebuff bypasses the generic 30-min cap (see auth.js). + if (status === "rate_limited" || status === "spend_limited") { + const resetAtMs = Date.parse(data?.resetAt || ""); + if (Number.isFinite(resetAtMs) && resetAtMs > Date.now()) { + err.resetsAtMs = resetAtMs; + err.status = 429; + } else { + const retryAfterMs = Number(data?.retryAfterMs); + if (Number.isFinite(retryAfterMs) && retryAfterMs > 0) { + err.resetsAtMs = Date.now() + retryAfterMs; + err.status = 429; + } + } + } + throw err; } throw new Error(`Freebuff session rejected (${status || response.status}): ${JSON.stringify(data).slice(0, 200)}`); } diff --git a/open-sse/providers/registry/freebuff.js b/open-sse/providers/registry/freebuff.js index c79e3253..21324ee6 100644 --- a/open-sse/providers/registry/freebuff.js +++ b/open-sse/providers/registry/freebuff.js @@ -34,7 +34,7 @@ export default { website: "https://freebuff.com", notice: { signupUrl: "https://freebuff.com", - text: "Free ad-supported coding agent by Codebuff. Sign in with your Freebuff/Codebuff account via browser login. Free tier is ad-supported and limited in some regions (limited mode: 6 x 1-hour sessions/day); full mode runs in select countries. ⚠️ One account has ONE active session locked to ONE model — requesting a different model while a session is active returns 'model_locked' (409); use a separate account per model, or wait for the session to expire.", + text: "Free ad-supported coding agent by Codebuff. Sign in with your Freebuff/Codebuff account via browser login. Each model is priced in Freebucks per hour of session, charged once when the session starts. Your daily Freebucks refill at midnight Pacific; the wallet keeps what you buy or earn. Free tier is ad-supported and limited in some regions (limited mode: 6 x 1-hour sessions/day); full mode runs in select countries. ⚠️ One account has ONE active session locked to ONE model — requesting a different model while a session is active returns 'model_locked' (409); use a separate account per model, or wait for the session to expire.", }, }, category: "free", @@ -63,15 +63,21 @@ export default { usage: true, }, // Mirrors the Freebuff waiting-room picker (upstream FREEBUFF_MODELS) as of - // 2026-09-05, plus the capacity-limited Fable trial. deepseek-v4-pro and - // minimax-m3 were withdrawn upstream (2026-08-26 / 2026-08-20) and ox-alpha - // (2026-08-27) + gemini-3.8-flash (2026-09-03) never stuck — none are - // claimable anymore. z-ai/glm-5.2 is a referral reward (not a free pick), - // luna-es / kimi-k3-eco are god-only rows, and the `-max` variants are - // provisioned per-account — all intentionally omitted. Fable is a - // capacity-limited WAVE trial: sessions only claim while the backend - // advertises it via limitedModelOffers on the session status (the executor - // auto-checks before claiming); the model is otherwise refused. + // 2026-09-07. NO per-model prices live here: Freebucks pricing is + // server-authoritative — the session response's `freebucks` block carries + // `prices` (model → Freebucks/hr) plus an announced `priceChanges` schedule + // (promos like Solar Pro 4's Labor Day run expire server-side; see + // services/usage/freebuff.js which folds both in, exactly like the upstream + // CLI which hardcodes no number). Plus the capacity-limited Fable trial. + // deepseek-v4-pro and minimax-m3 were withdrawn upstream (2026-08-26 / + // 2026-08-20) and ox-alpha (2026-08-27) + gemini-3.8-flash (2026-09-03) + // never stuck — none are claimable anymore. + // z-ai/glm-5.2 is a referral reward (not a free pick), luna-es / kimi-k3-eco + // are god-only rows, and the `-max` variants are provisioned per-account — + // all intentionally omitted. Fable is a capacity-limited WAVE trial: sessions + // only claim while the backend advertises it via limitedModelOffers on the + // session status (the executor auto-checks before claiming); the model is + // otherwise refused. models: [ { id: "z-ai/glm-5.3-flash", name: "GLM 5.3 Flash" }, { id: "deepseek/deepseek-v4-flash", name: "DeepSeek V4 Flash" }, diff --git a/open-sse/services/usage/freebuff.js b/open-sse/services/usage/freebuff.js index c90d6ae5..e8e5e333 100644 --- a/open-sse/services/usage/freebuff.js +++ b/open-sse/services/usage/freebuff.js @@ -15,6 +15,22 @@ * includes the active session's own 1.0-unit reservation. `limit` can be * raised by referral/streak rewards (entitlementBreakdown.base + referral + * streak). + * + * Freebucks-metered accounts (2026-09-02+) get NO pool rows: the server sends + * a `freebucks` block instead — { balance, daily:{limit,spent,remaining,resetAt}, + * wallet:{balance,...}, monthly?:{limitUsd,spentUsd,remainingUsd,resetAt}, + * planId, prices:{model→Freebucks/hr}, priceNotices?, priceChanges? }. The + * daily pool replaces rateLimitsByModel, so the tracker folds it in by + * replicating the pool snapshot under every priced model id, exactly as the + * official picker does. + * + * Pricing is SERVER-AUTHORITATIVE and nothing here hardcodes a number: each + * row carries the live `prices[model]` (plus its `priceNotices` tagline), and + * `applyFreebucksPriceChanges` folds the server's announced `priceChanges` + * schedule into the map — a promo (e.g. Solar Pro 4's Labor Day 0-Freebucks + * offer) expires and reverts on the server's timeline with no client release, + * mirroring upstream common/src/util/freebuff-price-changes.ts. A compact + * account summary (`freebucks`) rides the response for the card header. */ import REGISTRY from "../../providers/registry/index.js"; @@ -26,6 +42,28 @@ const MODEL_LABELS = Object.fromEntries( (freebuffRegistry.models || []).map((m) => [m.id, m.name]), ); +// Fold the server's announced price schedule into the live price map — +// mirrors upstream applyFreebucksPriceChanges: due changes override the price +// AND its picker tagline, and drop off the pending list. +function applyFreebucksPriceChanges(info) { + const now = Date.now(); + const due = (info?.priceChanges || []).filter((c) => Date.parse(c.at) <= now); + if (due.length === 0) return info; + const prices = { ...(info.prices || {}) }; + const priceNotices = { ...(info.priceNotices || {}) }; + for (const change of due.sort((a, b) => Date.parse(a.at) - Date.parse(b.at))) { + if (prices[change.modelId] === undefined) continue; + prices[change.modelId] = change.price; + priceNotices[change.modelId] = change.tagline; + } + return { + ...info, + prices, + priceNotices, + priceChanges: (info.priceChanges || []).filter((c) => Date.parse(c.at) > now), + }; +} + function sessionUrl() { return U("freebuff").url; } @@ -102,11 +140,59 @@ export async function getFreebuffUsage(accessToken, providerSpecificData, proxyO }; } + // Freebucks meter: the daily Freebucks pool is the quota for metered + // accounts, replicated under each priced model like the picker's rings. + // Prices come off the wire (prices + priceChanges folded in); each row + // carries its own price/tagline, and a compact summary rides the response + // for the account header in the UI. + let freebucksSummary = null; + const rawFreebucks = data.freebucks; + if (rawFreebucks && rawFreebucks.daily && typeof rawFreebucks.daily === "object") { + const freebucks = applyFreebucksPriceChanges(rawFreebucks); + const spent = Number(freebucks.daily.spent); + const limit = Number(freebucks.daily.limit); + for (const [model, price] of Object.entries(freebucks.prices || {})) { + quotas[model] = { + used: Number.isFinite(spent) ? spent : 0, + total: Number.isFinite(limit) ? limit : 0, + resetAt: freebucks.daily.resetAt || null, + unlimited: false, + recurring: true, + price: Number.isFinite(Number(price)) ? Number(price) : undefined, + ...(freebucks.priceNotices?.[model] ? { priceNote: freebucks.priceNotices[model] } : {}), + ...(MODEL_LABELS[model] ? { displayName: MODEL_LABELS[model] } : {}), + }; + } + freebucksSummary = { + balance: Number.isFinite(Number(freebucks.balance)) ? Number(freebucks.balance) : null, + daily: { + limit: Number.isFinite(limit) ? limit : 0, + spent: Number.isFinite(spent) ? spent : 0, + remaining: Number.isFinite(Number(freebucks.daily.remaining)) ? Number(freebucks.daily.remaining) : 0, + resetAt: freebucks.daily.resetAt || null, + }, + wallet: { + balance: Number.isFinite(Number(freebucks.wallet?.balance)) ? Number(freebucks.wallet.balance) : 0, + }, + ...(freebucks.monthly && Number.isFinite(Number(freebucks.monthly.remainingUsd)) + ? { + monthly: { + remainingUsd: Number(freebucks.monthly.remainingUsd), + limitUsd: Number.isFinite(Number(freebucks.monthly.limitUsd)) ? Number(freebucks.monthly.limitUsd) : null, + resetAt: freebucks.monthly.resetAt || null, + }, + } + : {}), + }; + } + const plan = data.accessTier === "limited" ? "Freebuff (Limited)" : "Freebuff"; if (Object.keys(quotas).length === 0) { return { plan, message: "Freebuff connected. No session quota to report right now." }; } - return { plan, quotas }; + const out = { plan, quotas }; + if (freebucksSummary) out.freebucks = freebucksSummary; + return out; } catch (error) { return { message: `Freebuff usage error: ${error.message}` }; } diff --git a/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/QuotaTable.js b/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/QuotaTable.js index 57a7a9d2..0ce41026 100644 --- a/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/QuotaTable.js +++ b/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/QuotaTable.js @@ -1,7 +1,7 @@ "use client"; import { useEffect, useMemo, useState } from "react"; -import { formatResetTime, getRemainingPercentage } from "./utils"; +import { formatFreebucksPrice, formatResetTime, getRemainingPercentage } from "./utils"; const PAGE_SIZE = 10; @@ -168,9 +168,20 @@ export default function QuotaTable({ {/* Name */}
      {colors.emoji} - - {quota.name} - +
      +
      + {quota.name} +
      + {quota.price !== undefined && ( +
      + {formatFreebucksPrice(quota.price)} + {quota.priceNote ? ` · ${quota.priceNote}` : ""} +
      + )} +
      {/* Progress + used/total */} diff --git a/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js b/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js index 683ea53d..85fed92b 100644 --- a/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js +++ b/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js @@ -9,6 +9,7 @@ import { parseQuotaData, calculatePercentage, filterQuotasByVisibility, + formatFreebucksHeader, getHiddenQuotaRows, getQuotaVisibilityKey, getConnectionLabel, @@ -1237,6 +1238,11 @@ export default function ProviderLimits() {
      + {quota?.raw?.freebucks && !error && !isLoading && ( +
      + {formatFreebucksHeader(quota.raw.freebucks)} +
      + )} {isLoading ? (
      diff --git a/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/utils.js b/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/utils.js index baf34221..f8d8b760 100644 --- a/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/utils.js +++ b/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/utils.js @@ -258,6 +258,49 @@ export function formatResetTime(date) { } } +/** + * Freebucks account header line — mirrors upstream freebucksHeaderLine: + * "10/25 Freebucks daily · resets in 4h 12m · 20 in wallet · $6.50 monthly usage left". + * Wallet shown only when non-empty; monthly only when the server sent it + * (older servers omit it — showing $0 would read as "nothing left"). + * @param {{balance: number|null, daily: {limit:number,spent:number,remaining:number,resetAt:string|null}, wallet:{balance:number}, monthly?:{remainingUsd:number,limitUsd:number|null,resetAt:string|null}}} freebucks + * @returns {string|null} + */ +export function formatFreebucksHeader(freebucks) { + if (!freebucks?.daily) return null; + const parts = [ + `${Math.max(0, Math.round(freebucks.daily.remaining))}/${Math.max(0, Math.round(freebucks.daily.limit))} Freebucks daily`, + ]; + const countdown = formatResetTime(freebucks.daily.resetAt); + if (countdown !== "-") parts.push(`resets in ${countdown}`); + if (Number(freebucks.wallet?.balance) > 0) { + parts.push(`${Math.max(0, Math.round(freebucks.wallet.balance))} in wallet`); + } + if (freebucks.monthly && Number.isFinite(Number(freebucks.monthly.remainingUsd))) { + parts.push(`${formatFreebucksUsd(freebucks.monthly.remainingUsd)} monthly usage left`); + } + return parts.join(" · "); +} + +/** + * "$25", "$4.20", "$0" — whole dollars until the figure is small enough that + * the cents are the story. Mirrors upstream formatAllowanceUsd. + */ +export function formatFreebucksUsd(usd) { + const safe = Math.max(0, Number(usd)); + if (safe >= 10) return `$${Math.round(safe)}`; + if (safe >= 1) return `$${safe.toFixed(1).replace(/\.0$/, "")}`; + return `$${safe.toFixed(2)}`; +} + +/** + * "15 Freebucks/hr" — a bare number would read as dollars; the unit is the + * hour, not the message. + */ +export function formatFreebucksPrice(price) { + return `${Math.max(0, Math.round(Number(price) || 0))} Freebucks/hr`; +} + /** * Get Tailwind color class based on percentage * @param {number} percentage - Remaining percentage (0-100) @@ -545,6 +588,8 @@ export function parseQuotaData(provider, data) { case "freebuff": // Session quotas keyed by model id — label rows with the friendly // displayName (from the registry) and keep modelKey for ordering. + // Metered rows carry the live Freebucks price (price) + promo tagline + // (priceNote), both server-authoritative. if (data.quotas) { Object.entries(data.quotas).forEach(([modelKey, quota]) => { normalizedQuotas.push({ @@ -554,6 +599,8 @@ export function parseQuotaData(provider, data) { total: quota.total || 0, resetAt: quota.resetAt || null, recurring: quota.recurring !== false, + price: quota.price, + priceNote: quota.priceNote, }); }); } diff --git a/src/sse/services/auth.js b/src/sse/services/auth.js index 53094973..ec28b194 100644 --- a/src/sse/services/auth.js +++ b/src/sse/services/auth.js @@ -287,9 +287,15 @@ export async function markAccountUnavailable(connectionId, status, errorText, pr } else if (resetsAtMs && resetsAtMs > Date.now()) { shouldFallback = true; // Antigravity quota API provides exact per-model resetAt. Do not truncate it. - cooldownMs = resolveProviderId(provider) === "antigravity" + // Freebucks exhaustion is likewise a hard stop until the daily Pacific + // reset (up to ~24h) — skip the account for the day rather than re-poke it + // every 30 min; guard at 26h so a bad server value can't lock forever. + const providerId = resolveProviderId(provider); + cooldownMs = providerId === "antigravity" ? resetsAtMs - Date.now() - : Math.min(resetsAtMs - Date.now(), MAX_RATE_LIMIT_COOLDOWN_MS); + : providerId === "freebuff" + ? Math.min(resetsAtMs - Date.now(), 26 * 60 * 60 * 1000) + : Math.min(resetsAtMs - Date.now(), MAX_RATE_LIMIT_COOLDOWN_MS); newBackoffLevel = 0; } else { ({ shouldFallback, cooldownMs, newBackoffLevel } = checkFallbackError(status, errorText, backoffLevel)); diff --git a/tests/unit/freebuff-provider.test.js b/tests/unit/freebuff-provider.test.js index 51cbf2b9..8489572f 100644 --- a/tests/unit/freebuff-provider.test.js +++ b/tests/unit/freebuff-provider.test.js @@ -294,6 +294,50 @@ describe("freebuff session pre-flight", () => { ); }); + it("rate_limited with a resetAt locks the account until the daily Pacific reset (skip the day, not retry loops)", async () => { + const resetAt = "2099-01-01T00:00:00.000Z"; + fetchMock.mockResolvedValue( + jsonResponse({ + status: "rate_limited", + resetAt, + retryAfterMs: 1234, + freebucksShortfall: { price: 15, balance: 0 }, + message: "Freebucks exhausted", + }), + ); + await expect(requestSession("tok-1", "deepseek/deepseek-v4-flash", null)).rejects.toMatchObject({ + status: 429, + resetsAtMs: Date.parse(resetAt), + }); + }); + + it("spend_limited falls back to retryAfterMs when resetAt is absent", async () => { + const retryAfterMs = 90 * 60 * 1000; + fetchMock.mockResolvedValue( + jsonResponse({ status: "spend_limited", retryAfterMs, message: "daily spend cap" }), + ); + const before = Date.now(); + try { + await requestSession("tok-1", "deepseek/deepseek-v4-flash", null); + throw new Error("should have rejected"); + } catch (error) { + expect(error.status).toBe(429); + expect(error.resetsAtMs).toBeGreaterThanOrEqual(before + retryAfterMs - 1000); + expect(error.resetsAtMs).toBeLessThanOrEqual(before + retryAfterMs + 1000); + } + }); + + it("rate_limited without any reset hint stays a plain error (transient cooldown path)", async () => { + fetchMock.mockResolvedValue(jsonResponse({ status: "rate_limited", message: "busy" })); + try { + await requestSession("tok-1", "deepseek/deepseek-v4-flash", null); + throw new Error("should have rejected"); + } catch (error) { + expect(error.status).toBeUndefined(); + expect(error.resetsAtMs).toBeUndefined(); + } + }); + it("throws a friendly error on country_blocked", async () => { fetchMock.mockResolvedValue(jsonResponse({ status: "country_blocked" })); await expect(ensureSession("tok-1", "deepseek/deepseek-v4-flash", null)).rejects.toThrow( diff --git a/tests/unit/freebuff-usage.test.js b/tests/unit/freebuff-usage.test.js index 71ffb3db..fbf99c84 100644 --- a/tests/unit/freebuff-usage.test.js +++ b/tests/unit/freebuff-usage.test.js @@ -119,6 +119,115 @@ describe("getUsageForProvider(freebuff)", () => { }); }); + it("reports the Freebucks daily pool under each priced model for metered accounts (no rateLimitsByModel)", async () => { + proxyAwareFetch.mockResolvedValueOnce( + jsonResponse({ + status: "none", + accessTier: "limited", + rateLimitsByModel: {}, + freebucks: { + balance: 10, + daily: { limit: 25, spent: 15, remaining: 10, resetAt: "2026-09-08T07:00:00.000Z" }, + wallet: { balance: 0, monthlyBonus: 0 }, + spend: { limitUsd: 4, resetAt: "2026-09-08T07:00:00.000Z" }, + monthly: { limitUsd: 10, spentUsd: 3.5, remainingUsd: 6.5, resetAt: "2026-10-01T07:00:00.000Z" }, + planId: null, + prices: { "deepseek/deepseek-v4-flash": 15, "z-ai/glm-5.3-flash": 5 }, + }, + }), + ); + + const usage = await getUsageForProvider({ + provider: "freebuff", + accessToken: "tok-1", + }); + + expect(usage.message).toBeUndefined(); + expect(usage.quotas["deepseek/deepseek-v4-flash"]).toMatchObject({ + used: 15, + total: 25, + resetAt: "2026-09-08T07:00:00.000Z", + recurring: true, + unlimited: false, + price: 15, + displayName: "DeepSeek V4 Flash", + }); + expect(usage.quotas["z-ai/glm-5.3-flash"]).toMatchObject({ + used: 15, + total: 25, + price: 5, + displayName: "GLM 5.3 Flash", + }); + // No session pools → only the freebucks-derived rows exist. + expect(Object.keys(usage.quotas)).toEqual([ + "deepseek/deepseek-v4-flash", + "z-ai/glm-5.3-flash", + ]); + // Account summary rides the response for the card header (server data, + // nothing hardcoded client-side). + expect(usage.freebucks).toEqual({ + balance: 10, + daily: { + limit: 25, + spent: 15, + remaining: 10, + resetAt: "2026-09-08T07:00:00.000Z", + }, + wallet: { balance: 0 }, + monthly: { remainingUsd: 6.5, limitUsd: 10, resetAt: "2026-10-01T07:00:00.000Z" }, + }); + }); + + it("folds the server's announced priceChanges into the live price (promos expire without a client release)", async () => { + proxyAwareFetch.mockResolvedValueOnce( + jsonResponse({ + status: "none", + accessTier: "full", + rateLimitsByModel: {}, + freebucks: { + balance: 20, + daily: { limit: 25, spent: 5, remaining: 20, resetAt: "2026-09-08T07:00:00.000Z" }, + wallet: { balance: 0, monthlyBonus: 0 }, + planId: null, + prices: { "upstage/solar-pro4": 0 }, + priceNotices: { "upstage/solar-pro4": "0 Freebucks · Labor Day weekend (through Sep 7 PT)" }, + priceChanges: [ + { + at: "2026-01-01T00:00:00.000Z", // already due + modelId: "upstage/solar-pro4", + price: 5, + tagline: "Limited-time trial", + }, + ], + }, + }), + ); + + const usage = await getUsageForProvider({ + provider: "freebuff", + accessToken: "tok-1", + }); + + // The due change is folded in: price 5 + new tagline, schedule emptied. + expect(usage.quotas["upstage/solar-pro4"]).toMatchObject({ + price: 5, + priceNote: "Limited-time trial", + displayName: "Solar Pro 4", + }); + }); + + it("attaches no price to legacy session-quota rows", async () => { + proxyAwareFetch.mockResolvedValueOnce(jsonResponse(PRE_JOIN)); + + const usage = await getUsageForProvider({ + provider: "freebuff", + accessToken: "tok-1", + }); + + expect(usage.quotas["deepseek/deepseek-v4-flash"].price).toBeUndefined(); + expect(usage.freebucks).toBeUndefined(); + }); + it("surfaces a re-login message on 401", async () => { proxyAwareFetch.mockResolvedValueOnce(jsonResponse({ error: "unauthorized" }, 401)); From 8b34cfaa449136c03e3acb597b6707dd4a5444e1 Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Mon, 7 Sep 2026 22:28:20 +0800 Subject: [PATCH 35/42] chore(version): update app version to 1.0.12 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d8470c8d..3c8a83dd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "9router-app", - "version": "1.0.11", + "version": "1.0.12", "description": "9Router web dashboard", "private": true, "scripts": { From b0505067b213e041a703784c6145db405d6c68df Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Fri, 11 Sep 2026 12:21:35 +0800 Subject: [PATCH 36/42] feat(providers): add Cline free-tier models and sync Freebuff catalog MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Cline: 6 free models, cline-cli product headers, API-key auth, {data} envelope unwrap, workos: prefix handling - Freebuff: muse-spark 1.3 → 1.2 (upstream withdrawal 2026-09-07), DeepSeek V4.1 Flash rename --- jsconfig.json | 1 + open-sse/executors/default.js | 11 ++- open-sse/executors/freebuff.js | 58 ++++++++------- open-sse/handlers/chatCore.js | 6 +- .../handlers/chatCore/nonStreamingHandler.js | 18 +++++ open-sse/providers/capabilities.js | 6 ++ open-sse/providers/registry/cline.js | 16 +++++ open-sse/providers/registry/clinepass.js | 3 + open-sse/providers/registry/freebuff.js | 13 +++- open-sse/services/clinepassModels.js | 12 +--- open-sse/shared/clineAuth.js | 35 ++++++--- package.json | 2 +- tests/__baseline__/providers-baseline.json | 72 ++++++++++++++++++- tests/unit/cline-data-envelope.test.js | 66 +++++++++++++++++ tests/unit/freebuff-provider.test.js | 50 ++++++++++++- tests/unit/freebuff-usage.test.js | 14 ++-- 16 files changed, 319 insertions(+), 64 deletions(-) create mode 100644 tests/unit/cline-data-envelope.test.js diff --git a/jsconfig.json b/jsconfig.json index e8d49426..f1731d92 100644 --- a/jsconfig.json +++ b/jsconfig.json @@ -1,5 +1,6 @@ { "compilerOptions": { + "ignoreDeprecations": "6.0", "baseUrl": ".", "paths": { "@/*": ["./src/*"], diff --git a/open-sse/executors/default.js b/open-sse/executors/default.js index 92c78e92..dcb98eb1 100644 --- a/open-sse/executors/default.js +++ b/open-sse/executors/default.js @@ -25,8 +25,13 @@ function setAuth(headers, spec, token) { // Resolve auth onto headers from a descriptor. function applyAuth(headers, desc, credentials) { if (desc.combined) { - // combined providers always set the header (legacy behavior, incl. noAuth → "Bearer undefined") - setAuth(headers, desc, credentials.apiKey || credentials.accessToken); + // combined providers always set the header (legacy behavior, incl. noAuth → "Bearer undefined") — + // unless the descriptor opts into preserveHookAuth: a hook then owns the + // Authorization value (e.g. Cline needs workos:-prefixed OAuth tokens but + // plain API keys, which a single merged token can't express). + if (!(desc.preserveHookAuth && headers[desc.header])) { + setAuth(headers, desc, credentials.apiKey || credentials.accessToken); + } if (desc.anthropicVersion && !headers["anthropic-version"]) headers["anthropic-version"] = ANTHROPIC_API_VERSION; return; } @@ -40,7 +45,7 @@ function applyAuth(headers, desc, credentials) { const HEADER_HOOKS = { // Stable device_id from OAuth connection (CLIProxyAPI KimiTokenStorage.DeviceID) kimiHeaders: (h, c) => Object.assign(h, buildKimiHeaders(c?.providerSpecificData?.deviceId)), - clineHeaders: (h, c) => Object.assign(h, buildClineHeaders(c.apiKey || c.accessToken)), + clineHeaders: (h, c) => Object.assign(h, buildClineHeaders(c.apiKey || c.accessToken, {}, { isApiKey: !!c.apiKey })), kilocodeOrg: (h, c) => { if (c.providerSpecificData?.orgId) h["X-Kilocode-OrganizationID"] = c.providerSpecificData.orgId; }, }; diff --git a/open-sse/executors/freebuff.js b/open-sse/executors/freebuff.js index 83a16519..f801be79 100644 --- a/open-sse/executors/freebuff.js +++ b/open-sse/executors/freebuff.js @@ -117,10 +117,11 @@ function injectEndTurnTool(body) { // base2 roots during the transition). // // Withdrawn upstream models (deepseek-v4-pro, minimax-m3, stealth/ox-alpha, -// google/gemini-3.8-flash) are deliberately absent: no new session can be -// admitted on them, so mapping them would only hide a dead pick behind a -// wrong root. z-ai/glm-5.2 stays mapped (referral-earned accounts can still -// run it) even though it is not a standing picker row. +// google/gemini-3.8-flash, meta/muse-spark-1.3-contributor) are deliberately +// absent: no new session can be admitted on them, so mapping them would only +// hide a dead pick behind a wrong root. z-ai/glm-5.2 stays mapped +// (referral-earned accounts can still run it) even though it is not a +// standing picker row. const FREE_ROOT_AGENT_BY_MODEL = { "deepseek/deepseek-v4-flash": "base3-free-deepseek-flash", "z-ai/glm-5.2": "base3-free-glm", @@ -128,7 +129,7 @@ const FREE_ROOT_AGENT_BY_MODEL = { "mimo/mimo-v2.5": "base3-free-mimo", "openai/gpt-5.6-luna": "base3-free-luna", "upstage/solar-pro4": "base3-free-solar-pro4", - "meta/muse-spark-1.3-contributor": "base3-free-muse-spark-1-3", + "meta/muse-spark-1.2-contributor": "base3-free-muse-spark", "anthropic/claude-fable-5": "base3-free-fable", }; @@ -301,28 +302,7 @@ async function requestSession(token, model, proxyOptions) { err.status = 401; throw err; } - if (!response.ok) { - const err = new Error(`Freebuff session request failed: ${response.status} ${JSON.stringify(data).slice(0, 200)}`); - err.status = response.status; - throw err; - } - const status = data?.status; - if (status === "active") { - const parsedExp = Date.parse(data.expiresAt || ""); - const entry = { - instanceId: data.instanceId, - expiresAt: Number.isFinite(parsedExp) ? parsedExp : Date.now() + SESSION_DEFAULT_TTL_MS, - }; - sessionCache.set(sessionCacheKey(token, model), entry); - return { instanceId: data.instanceId, status: "active" }; - } - if (status === "none") { - // Not session-gated right now — proceed without an instance id; a 428 on - // chat tells us the admission gate actually requires a session. - return { instanceId: null, status: "none" }; - } - const GATE_MESSAGES = { country_blocked: "Freebuff is not available in your region (country blocked).", banned: "Your Freebuff account has been banned.", @@ -333,6 +313,10 @@ async function requestSession(token, model, proxyOptions) { model_unavailable: "This model is not available on Freebuff right now.", premium_slot_taken: "Freebuff premium slot is taken — try another model.", }; + // Gate statuses ride BOTH 200 (pre-join refusals) and 4xx — the backend + // sends spend_limited/rate_limited as HTTP 429 with the gate in the body. + // Handle them BEFORE the generic !response.ok throw so exhaustion carries + // resetsAtMs (skip-until-reset) instead of a bare status. if (GATE_MESSAGES[status]) { const err = new Error(data?.message ? `${GATE_MESSAGES[status]} ${data.message}` : GATE_MESSAGES[status]); // Freebucks / session-allowance exhaustion is a hard stop until the daily @@ -355,6 +339,28 @@ async function requestSession(token, model, proxyOptions) { } throw err; } + + if (!response.ok) { + const err = new Error(`Freebuff session request failed: ${response.status} ${JSON.stringify(data).slice(0, 200)}`); + err.status = response.status; + throw err; + } + + if (status === "active") { + const parsedExp = Date.parse(data.expiresAt || ""); + const entry = { + instanceId: data.instanceId, + expiresAt: Number.isFinite(parsedExp) ? parsedExp : Date.now() + SESSION_DEFAULT_TTL_MS, + }; + sessionCache.set(sessionCacheKey(token, model), entry); + return { instanceId: data.instanceId, status: "active" }; + } + if (status === "none") { + // Not session-gated right now — proceed without an instance id; a 428 on + // chat tells us the admission gate actually requires a session. + return { instanceId: null, status: "none" }; + } + throw new Error(`Freebuff session rejected (${status || response.status}): ${JSON.stringify(data).slice(0, 200)}`); } diff --git a/open-sse/handlers/chatCore.js b/open-sse/handlers/chatCore.js index 5b1d4024..60c1cee6 100644 --- a/open-sse/handlers/chatCore.js +++ b/open-sse/handlers/chatCore.js @@ -468,9 +468,11 @@ export async function handleChatCore({ body, modelInfo, credentials, log, onCred } const errMsg = formatProviderError(error, provider, model, HTTP_STATUS.BAD_GATEWAY); if (log?.errorLine) { - log.errorLine(reqTag, "✗", `ERROR 502 · ${provider}/${model} · ${Date.now() - requestStartTime}ms\n ${errMsg}`); + log.errorLine(reqTag, "✗", `ERROR ${error?.status || HTTP_STATUS.BAD_GATEWAY} · ${provider}/${model} · ${Date.now() - requestStartTime}ms\n ${errMsg}`); } - return createErrorResult(HTTP_STATUS.BAD_GATEWAY, errMsg, error?.resetsAtMs || undefined); + // Carry the executor's own status (429/409 quota gates) when it threw one; + // fall back to 502 for generic throws. + return createErrorResult(error?.status || HTTP_STATUS.BAD_GATEWAY, errMsg, error?.resetsAtMs || undefined); } // Handle 401/403 - try token refresh (skip for noAuth providers) diff --git a/open-sse/handlers/chatCore/nonStreamingHandler.js b/open-sse/handlers/chatCore/nonStreamingHandler.js index becc0842..1b4e262c 100644 --- a/open-sse/handlers/chatCore/nonStreamingHandler.js +++ b/open-sse/handlers/chatCore/nonStreamingHandler.js @@ -138,6 +138,21 @@ function openAICompletionToResponses(responseBody, customToolNames = null) { }; } +/** + * Unwrap gateway envelopes around an OpenAI Chat Completions body. + * Some OpenAI-compatible gateways wrap the body in a `data` envelope + * (Cline: {data, success}) — without this, choices/usage don't resolve at + * top level downstream and surface as "no completion choices". + * Generic guard, no provider hardcode: only fires when the OpenAI body is + * nested under `data`. + */ +export function unwrapDataEnvelope(responseBody) { + if (responseBody && !responseBody.choices && responseBody.data?.choices) { + return responseBody.data; + } + return responseBody; +} + /** * Translate non-streaming response body from provider format → OpenAI format. */ @@ -305,6 +320,9 @@ export async function handleNonStreamingResponse({ providerResponse, provider, m } reqLogger.logProviderResponse(providerResponse.status, providerResponse.statusText, providerResponse.headers, responseBody); + // Unwrap AFTER logging (raw envelope stays in the log for forensics) but + // BEFORE usage extraction/translation so choices/usage resolve downstream. + responseBody = unwrapDataEnvelope(responseBody); if (onRequestSuccess) { Promise.resolve() .then(onRequestSuccess) diff --git a/open-sse/providers/capabilities.js b/open-sse/providers/capabilities.js index 5a0b7271..a69d9bbf 100644 --- a/open-sse/providers/capabilities.js +++ b/open-sse/providers/capabilities.js @@ -258,6 +258,12 @@ export const PATTERN_CAPABILITIES = [ { pattern: "*gpt-3.5*", caps: { contextWindow: 16385, maxOutput: 4096 } }, { pattern: "*gpt-oss*", caps: { reasoning: true, thinkingFormat: "openai", contextWindow: 128000 } }, + // ── Cline free tier: Upstage Solar Pro + LongCat (agentic coding models; + // windows unverified — 200K/32K conservative, same as laguna:free). + // NOTE: placed before the o-series catch-alls — "solar-pro4" contains "o4". + { pattern: "*solar-pro*", caps: { reasoning: true, thinkingFormat: "openai", contextWindow: 200000, maxOutput: 32000 } }, + { pattern: "*longcat*", caps: { reasoning: true, thinkingFormat: "openai", contextWindow: 200000, maxOutput: 32000 } }, + // ── OpenAI o-series (reasoning, vision) ────────────────────────── { pattern: "*o1-mini*", caps: { reasoning: true, thinkingFormat: "openai", contextWindow: 128000 } }, { pattern: "*o1*", caps: { vision: true, reasoning: true, thinkingFormat: "openai", contextWindow: 200000, maxOutput: 100000 } }, diff --git a/open-sse/providers/registry/cline.js b/open-sse/providers/registry/cline.js index cfa788c4..6e40d6cf 100644 --- a/open-sse/providers/registry/cline.js +++ b/open-sse/providers/registry/cline.js @@ -14,6 +14,9 @@ export default { }, }, category: "oauth", + authModes: ["oauth", "apikey"], + hasOAuth: true, + authHint: "API key dari app.cline.bot → Settings > API Keys, atau login OAuth via browser.", transport: { baseUrl: "https://api.cline.bot/api/v1/chat/completions", headers: { @@ -26,6 +29,9 @@ export default { combined: true, header: "Authorization", scheme: "bearer", + // Hook owns Authorization: workos:-prefixed OAuth vs plain API key + // (a merged token can't express both) — see applyAuth. + preserveHookAuth: true, hooks: [ "clineHeaders", ], @@ -40,6 +46,16 @@ export default { { id: "google/gemini-3.1-pro-preview", name: "Gemini 3.1 Pro Preview" }, { id: "google/gemini-3.1-flash-lite-preview", name: "Gemini 3.1 Flash Lite Preview" }, { id: "kwaipilot/kat-coder-pro", name: "KAT Coder Pro" }, + // Free tier (verified live via GET /api/v1/ai/cline/recommended-models): + // billed $0 on usage, limited quota separate from ClinePass. The + // cline-free/* aliases require Cline product headers (see shared/clineAuth.js) + // or upstream 403s with "only available via Cline product surfaces". + { id: "cline-free/muse-spark-1.3-contributor", name: "Muse Spark 1.3 (Free)" }, + { id: "deepseek/deepseek-v4-flash", name: "DeepSeek V4 Flash (Free)" }, + { id: "z-ai/glm-5.3-flash", name: "GLM 5.3 Flash (Free)" }, + { id: "cline-free/solar-pro4", name: "Solar Pro 4 (Free)" }, + { id: "cline-free/longcat-2.0", name: "LongCat 2.0 (Free)" }, + { id: "poolside/laguna-s-2.1:free", name: "Laguna S 2.1 (Free)" }, ], oauth: { appBaseUrl: "https://app.cline.bot", diff --git a/open-sse/providers/registry/clinepass.js b/open-sse/providers/registry/clinepass.js index 702054ac..8f458b1f 100644 --- a/open-sse/providers/registry/clinepass.js +++ b/open-sse/providers/registry/clinepass.js @@ -26,6 +26,9 @@ export default { combined: true, header: "Authorization", scheme: "bearer", + // Hook owns Authorization: workos:-prefixed OAuth vs plain API key + // (a merged token can't express both) — see applyAuth. + preserveHookAuth: true, hooks: [ "clineHeaders", ], diff --git a/open-sse/providers/registry/freebuff.js b/open-sse/providers/registry/freebuff.js index 21324ee6..fffee205 100644 --- a/open-sse/providers/registry/freebuff.js +++ b/open-sse/providers/registry/freebuff.js @@ -63,7 +63,7 @@ export default { usage: true, }, // Mirrors the Freebuff waiting-room picker (upstream FREEBUFF_MODELS) as of - // 2026-09-07. NO per-model prices live here: Freebucks pricing is + // 2026-09-11. NO per-model prices live here: Freebucks pricing is // server-authoritative — the session response's `freebucks` block carries // `prices` (model → Freebucks/hr) plus an announced `priceChanges` schedule // (promos like Solar Pro 4's Labor Day run expire server-side; see @@ -78,13 +78,20 @@ export default { // only claim while the backend advertises it via limitedModelOffers on the // session status (the executor auto-checks before claiming); the model is // otherwise refused. + // meta/muse-spark-1.3-contributor was withdrawn upstream 2026-09-07 (Meta + // returns 404 model_not_found on every key) and replaced in the picker by + // meta/muse-spark-1.2-contributor — same Contributor terms/pool. 1.3 is + // intentionally NOT listed: 9Router has no server-side coercion, so a dead + // pick would only fail. + // deepseek/deepseek-v4-flash was RENAMED upstream 2026-09-10 to DeepSeek + // V4.1 Flash (same undated wire id, new build) — display label follows. models: [ { id: "z-ai/glm-5.3-flash", name: "GLM 5.3 Flash" }, - { id: "deepseek/deepseek-v4-flash", name: "DeepSeek V4 Flash" }, + { id: "deepseek/deepseek-v4-flash", name: "DeepSeek V4.1 Flash" }, { id: "openai/gpt-5.6-luna", name: "GPT-5.6 Luna" }, { id: "mimo/mimo-v2.5", name: "MiMo 2.5" }, { id: "upstage/solar-pro4", name: "Solar Pro 4" }, - { id: "meta/muse-spark-1.3-contributor", name: "Muse Spark 1.3" }, + { id: "meta/muse-spark-1.2-contributor", name: "Muse Spark 1.2" }, { id: "anthropic/claude-fable-5", name: "Claude Fable 5 (limited offer)" }, ], // Login-flow host — the CLI in freebuff mode logs in via freebuff.com, and diff --git a/open-sse/services/clinepassModels.js b/open-sse/services/clinepassModels.js index 4208a4b6..8543999c 100644 --- a/open-sse/services/clinepassModels.js +++ b/open-sse/services/clinepassModels.js @@ -5,17 +5,11 @@ const FETCH_TIMEOUT_MS = 5000; /** * Build request headers for the ClinePass /models endpoint (Cline's upstream API). - * - API keys are sent as plain Bearer tokens. - * - OAuth access tokens must carry the WorkOS `workos:` prefix (handled by buildClineHeaders). + * Auth shape lives in shared/clineAuth: API keys ride plain Bearer, OAuth + * access tokens carry the WorkOS `workos:` prefix. */ function buildModelListHeaders(token, isApiKey) { - if (isApiKey) { - return { - Accept: "application/json", - Authorization: `Bearer ${token}`, - }; - } - return buildClineHeaders(token, { Accept: "application/json" }); + return buildClineHeaders(token, { Accept: "application/json" }, { isApiKey }); } /** diff --git a/open-sse/shared/clineAuth.js b/open-sse/shared/clineAuth.js index 1b2b7df6..a7e7e407 100644 --- a/open-sse/shared/clineAuth.js +++ b/open-sse/shared/clineAuth.js @@ -1,6 +1,10 @@ -import pkg from "../../package.json" with { type: "json" }; - -const APP_VERSION = pkg.version || "0.0.0"; +// Cline CLI identity (mirrors apps/cli + sdk/packages/llms request-headers.ts +// in cline/cline). Upstream gates the cline-free/* model aliases to Cline +// product surfaces + recent client versions — requests sent as +// X-CLIENT-TYPE 9router are 403'd with "only available via Cline product +// surfaces". Verified live 2026-09-11: cline-cli/3.0.61 passes the gate. +const CLINE_CLIENT_TYPE = "cline-cli"; +const CLINE_CLIENT_VERSION = "3.0.61"; export function getClineAccessToken(token) { if (typeof token !== "string") return ""; @@ -14,17 +18,26 @@ export function getClineAuthorizationHeader(token) { return accessToken ? `Bearer ${accessToken}` : ""; } -export function buildClineHeaders(token, extraHeaders = {}) { - const authorization = getClineAuthorizationHeader(token); +export function buildClineHeaders(token, extraHeaders = {}, opts = {}) { + // API keys ride plain Bearer; OAuth access tokens must carry the WorkOS + // `workos:` prefix so the backend routes verification to WorkOS + // (cline/cline: "Prefixed with 'workos:'..."). Verified live 2026-09-11: + // plain sk_* works, workos:sk_* → 401. + const trimmed = typeof token === "string" ? token.trim() : ""; + const authorization = !trimmed + ? "" + : opts.isApiKey + ? `Bearer ${trimmed}` + : getClineAuthorizationHeader(trimmed); const headers = { "HTTP-Referer": "https://cline.bot", "X-Title": "Cline", - "User-Agent": `9Router/${APP_VERSION}`, - "X-PLATFORM": process.platform || "unknown", - "X-PLATFORM-VERSION": process.version || "unknown", - "X-CLIENT-TYPE": "9router", - "X-CLIENT-VERSION": APP_VERSION, - "X-CORE-VERSION": APP_VERSION, + "User-Agent": `Cline/${CLINE_CLIENT_VERSION}`, + "X-PLATFORM": "cli", + "X-PLATFORM-VERSION": CLINE_CLIENT_VERSION, + "X-CLIENT-TYPE": CLINE_CLIENT_TYPE, + "X-CLIENT-VERSION": CLINE_CLIENT_VERSION, + "X-CORE-VERSION": CLINE_CLIENT_VERSION, "X-IS-MULTIROOT": "false", ...extraHeaders, }; diff --git a/package.json b/package.json index 3c8a83dd..f15d49a6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "9router-app", - "version": "1.0.12", + "version": "1.0.13", "description": "9Router web dashboard", "private": true, "scripts": { diff --git a/tests/__baseline__/providers-baseline.json b/tests/__baseline__/providers-baseline.json index db0b8bad..9d9122b6 100644 --- a/tests/__baseline__/providers-baseline.json +++ b/tests/__baseline__/providers-baseline.json @@ -137,6 +137,7 @@ "combined": true, "header": "Authorization", "scheme": "bearer", + "preserveHookAuth": true, "hooks": [ "clineHeaders" ] @@ -153,6 +154,7 @@ "combined": true, "header": "Authorization", "scheme": "bearer", + "preserveHookAuth": true, "hooks": [ "clineHeaders" ] @@ -276,6 +278,26 @@ "validateUrl": "https://api.fireworks.ai/inference/v1/models", "format": "openai" }, + "freebuff": { + "baseUrl": "https://www.codebuff.com/api/v1/chat/completions", + "format": "openai", + "headers": { + "User-Agent": "ai-sdk/openai-compatible/1.0/codebuff" + }, + "retry": { + "429": { + "attempts": 2, + "delayMs": 2000 + }, + "503": { + "attempts": 2, + "delayMs": 1500 + } + }, + "usage": { + "url": "https://www.codebuff.com/api/v1/freebuff/session" + } + }, "gemini-cli": { "baseUrl": "https://cloudcode-pa.googleapis.com/v1internal", "format": "gemini-cli", @@ -437,6 +459,9 @@ "groq": { "baseUrl": "https://api.groq.com/openai/v1/chat/completions", "validateUrl": "https://api.groq.com/openai/v1/models", + "usage": { + "url": "https://api.groq.com/openai/v1/models" + }, "format": "openai" }, "hyperbolic": { @@ -924,6 +949,32 @@ "format": "openai", "tokenUrl": "https://www.codebuddy.ai/v2/plugin/auth/token" }, + "trae": { + "baseUrl": "https://core-normal.trae.ai/api/remote/v1", + "format": "openai", + "headers": { + "X-Trae-Client-Type": "web", + "X-Preferenced-Language": "en", + "Referer": "https://solo.trae.ai/" + }, + "auth": { + "combined": true, + "header": "Authorization", + "scheme": "Cloud-IDE-JWT" + }, + "usage": { + "url": "https://api.marscode.com/cloudide/api/v3/trae/GetUserInfo" + }, + "regions": { + "cn": "https://api.marscode.com", + "sg": "https://api.trae.ai", + "us": "https://www.trae.ai" + }, + "defaultRegion": "cn", + "clientId": "ono9krqynydwx5", + "clientSecret": "-", + "tokenUrl": "https://api.marscode.com/cloudide/api/v3/trae/oauth/ExchangeToken" + }, "zed": { "baseUrl": "https://cloud.zed.dev/completions", "format": "openai", @@ -990,6 +1041,25 @@ "validateUrl": "https://api.morphllm.com/v1/models", "format": "openai" }, + "devin-cli": { + "baseUrl": "devin://acp/stdio", + "format": "openai" + }, + "windsurf": { + "baseUrl": "https://server.codeium.com/exa.language_server_pb.LanguageServerService/GetChatMessage", + "format": "openai", + "headers": { + "Content-Type": "application/grpc-web+proto", + "Accept": "application/grpc-web+proto", + "X-Grpc-Web": "1" + }, + "auth": { + "combined": true, + "header": "Authorization", + "scheme": "Bearer" + }, + "clientId": "3GUryQ7ldAeKEuD2obYnppsnmj58eP5u" + }, "poolside": { "baseUrl": "https://inference.poolside.ai/v1/chat/completions", "validateUrl": "https://inference.poolside.ai/v1/models", @@ -1009,4 +1079,4 @@ }, "format": "openai" } -} +} \ No newline at end of file diff --git a/tests/unit/cline-data-envelope.test.js b/tests/unit/cline-data-envelope.test.js new file mode 100644 index 00000000..cecbac36 --- /dev/null +++ b/tests/unit/cline-data-envelope.test.js @@ -0,0 +1,66 @@ +import { describe, expect, it, vi } from "vitest"; + +vi.mock("@/lib/usageDb.js", () => ({ + appendRequestLog: vi.fn(async () => {}), + saveRequestDetail: vi.fn(async () => {}), + saveRequestUsage: vi.fn(async () => {}) +})); + +const { unwrapDataEnvelope } = await import("../../open-sse/handlers/chatCore/nonStreamingHandler.js"); +const { buildClineHeaders } = await import("../../open-sse/shared/clineAuth.js"); + +// Cline gateway wraps non-streaming Chat Completions in {data, success}. +// handleNonStreamingResponse calls unwrapDataEnvelope unconditionally (it runs +// before the needsTranslation gate, which openai→openai never passes). +const ENVELOPED = { + data: { + id: "gen-123", + object: "chat.completion", + created: 1789056634, + model: "deepseek/deepseek-v4-flash-0731", + choices: [{ index: 0, message: { role: "assistant", content: "Hi there!" }, finish_reason: "stop" }], + usage: { prompt_tokens: 9, completion_tokens: 29, total_tokens: 38 }, + }, + success: true, +}; + +describe("cline {data} envelope unwrap", () => { + it("unwraps choices/usage to top level", () => { + const out = unwrapDataEnvelope(structuredClone(ENVELOPED)); + expect(out.choices?.[0]?.message?.content).toBe("Hi there!"); + expect(out.usage?.prompt_tokens).toBe(9); + }); + + it("leaves plain OpenAI bodies untouched", () => { + const out = unwrapDataEnvelope(structuredClone(ENVELOPED.data)); + expect(out.choices?.[0]?.message?.content).toBe("Hi there!"); + }); + + it("prefers top-level choices when both exist", () => { + const body = { ...structuredClone(ENVELOPED), choices: [{ index: 0, message: { role: "assistant", content: "top" }, finish_reason: "stop" }] }; + const out = unwrapDataEnvelope(body); + expect(out.choices?.[0]?.message?.content).toBe("top"); + }); + + it("ignores non-envelope bodies", () => { + expect(unwrapDataEnvelope(null)).toBe(null); + expect(unwrapDataEnvelope({ error: "x" })).toEqual({ error: "x" }); + }); +}); + +describe("cline auth header shape", () => { + it("sends API keys as plain Bearer", () => { + expect(buildClineHeaders("sk_abc", {}, { isApiKey: true }).Authorization).toBe("Bearer sk_abc"); + }); + + it("prefixes OAuth tokens with workos:", () => { + expect(buildClineHeaders("tok123").Authorization).toBe("Bearer workos:tok123"); + expect(buildClineHeaders("workos:tok123").Authorization).toBe("Bearer workos:tok123"); + }); + + it("sends Cline product identity headers (free-model gate)", () => { + const h = buildClineHeaders("tok123"); + expect(h["X-CLIENT-TYPE"]).toBe("cline-cli"); + expect(h["User-Agent"]).toMatch(/^Cline\//); + }); +}); diff --git a/tests/unit/freebuff-provider.test.js b/tests/unit/freebuff-provider.test.js index 8489572f..e937cd3e 100644 --- a/tests/unit/freebuff-provider.test.js +++ b/tests/unit/freebuff-provider.test.js @@ -327,6 +327,53 @@ describe("freebuff session pre-flight", () => { } }); + it("handles spend_limited arriving as HTTP 429 (the actual wire shape) — still skips until reset", async () => { + const resetAt = "2099-01-01T00:00:00.000Z"; + fetchMock.mockResolvedValue( + jsonResponse( + { + status: "spend_limited", + accessTier: "full", + upgrade: { url: "https://freebuff.com/plans", message: "Get 150 Freebucks a day from $8/mo." }, + message: "This account hit today's hard usage cap.", + resetAt, + }, + { status: 429, ok: false }, + ), + ); + await expect(requestSession("tok-1", "deepseek/deepseek-v4-flash", null)).rejects.toMatchObject({ + status: 429, + resetsAtMs: Date.parse(resetAt), + }); + }); + + it("handles rate_limited arriving as HTTP 429 with only retryAfterMs", async () => { + const retryAfterMs = 15 * 60 * 1000; + fetchMock.mockResolvedValue( + jsonResponse({ status: "rate_limited", retryAfterMs, message: "limit" }, { status: 429, ok: false }), + ); + const before = Date.now(); + try { + await requestSession("tok-1", "deepseek/deepseek-v4-flash", null); + throw new Error("should have rejected"); + } catch (error) { + expect(error.status).toBe(429); + expect(error.resetsAtMs).toBeGreaterThanOrEqual(before + retryAfterMs - 1000); + expect(error.resetsAtMs).toBeLessThanOrEqual(before + retryAfterMs + 1000); + } + }); + + it("keeps an unknown HTTP 429 as a generic failure (no gate status → no resetsAtMs)", async () => { + fetchMock.mockResolvedValue(jsonResponse({ error: "nope" }, { status: 429, ok: false })); + try { + await requestSession("tok-1", "deepseek/deepseek-v4-flash", null); + throw new Error("should have rejected"); + } catch (error) { + expect(error.status).toBe(429); + expect(error.resetsAtMs).toBeUndefined(); + } + }); + it("rate_limited without any reset hint stays a plain error (transient cooldown path)", async () => { fetchMock.mockResolvedValue(jsonResponse({ status: "rate_limited", message: "busy" })); try { @@ -473,10 +520,11 @@ describe("freebuff run registration", () => { expect(rootAgentIdForModel("mimo/mimo-v2.5")).toBe("base3-free-mimo"); expect(rootAgentIdForModel("openai/gpt-5.6-luna")).toBe("base3-free-luna"); expect(rootAgentIdForModel("upstage/solar-pro4")).toBe("base3-free-solar-pro4"); - expect(rootAgentIdForModel("meta/muse-spark-1.3-contributor")).toBe("base3-free-muse-spark-1-3"); + expect(rootAgentIdForModel("meta/muse-spark-1.2-contributor")).toBe("base3-free-muse-spark"); expect(rootAgentIdForModel("anthropic/claude-fable-5")).toBe("base3-free-fable"); // Withdrawn upstream models are unmapped — they fall back, and the backend // refuses their sessions anyway. + expect(rootAgentIdForModel("meta/muse-spark-1.3-contributor")).toBe("base2-free"); expect(rootAgentIdForModel("deepseek/deepseek-v4-pro")).toBe("base2-free"); expect(rootAgentIdForModel("minimax/minimax-m3")).toBe("base2-free"); expect(rootAgentIdForModel("some/unknown-model")).toBe("base2-free"); diff --git a/tests/unit/freebuff-usage.test.js b/tests/unit/freebuff-usage.test.js index fbf99c84..efa02aed 100644 --- a/tests/unit/freebuff-usage.test.js +++ b/tests/unit/freebuff-usage.test.js @@ -73,7 +73,7 @@ describe("getUsageForProvider(freebuff)", () => { resetAt: "2026-08-06T07:00:00.000Z", recurring: true, unlimited: false, - displayName: "DeepSeek V4 Flash", + displayName: "DeepSeek V4.1 Flash", }); expect(usage.quotas["openai/gpt-5.6-luna"]).toMatchObject({ used: 1, @@ -94,7 +94,7 @@ describe("getUsageForProvider(freebuff)", () => { status: "active", accessTier: "full", instanceId: "inst-1", - model: "meta/muse-spark-1.3-contributor", + model: "meta/muse-spark-1.2-contributor", expiresAt: new Date(Date.now() + 3600000).toISOString(), rateLimit: { limit: 6, @@ -112,10 +112,10 @@ describe("getUsageForProvider(freebuff)", () => { }); expect(usage.plan).toBe("Freebuff"); - expect(usage.quotas["meta/muse-spark-1.3-contributor"]).toMatchObject({ + expect(usage.quotas["meta/muse-spark-1.2-contributor"]).toMatchObject({ used: 2.4, total: 6, - displayName: "Muse Spark 1.3", + displayName: "Muse Spark 1.2", }); }); @@ -150,7 +150,7 @@ describe("getUsageForProvider(freebuff)", () => { recurring: true, unlimited: false, price: 15, - displayName: "DeepSeek V4 Flash", + displayName: "DeepSeek V4.1 Flash", }); expect(usage.quotas["z-ai/glm-5.3-flash"]).toMatchObject({ used: 15, @@ -297,14 +297,14 @@ describe("parseQuotaData(freebuff)", () => { used: 4.1, total: 6, resetAt: "2026-08-06T07:00:00.000Z", - displayName: "DeepSeek V4 Flash", + displayName: "DeepSeek V4.1 Flash", }, }, }); expect(rows).toHaveLength(1); expect(rows[0]).toMatchObject({ - name: "DeepSeek V4 Flash", + name: "DeepSeek V4.1 Flash", modelKey: "deepseek/deepseek-v4-flash", used: 4.1, total: 6, From 9342aa5fb92be01608c213bc20fc3dba830852d0 Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Sat, 19 Sep 2026 11:36:17 +0800 Subject: [PATCH 37/42] chore(version): bump app version to 1.0.14 (upstream v0.5.81 sync) --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4564afba..70de0508 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "9router-app", - "version": "1.0.13", + "version": "1.0.14", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "9router-app", - "version": "1.0.13", + "version": "1.0.14", "dependencies": { "@dnd-kit/core": "^6.3.1", "@dnd-kit/modifiers": "^9.0.0", diff --git a/package.json b/package.json index f15d49a6..49e45fdc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "9router-app", - "version": "1.0.13", + "version": "1.0.14", "description": "9Router web dashboard", "private": true, "scripts": { From 1884e3a063262f611a7e679795ef6a016eafce8d Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Sat, 19 Sep 2026 11:47:15 +0800 Subject: [PATCH 38/42] test(cline): align auth-header test with upstream WorkOS-JWT-only prefixing Upstream f6e7cabe stopped workos:-prefixing opaque tokens (ClinePass API keys like clp_...), so getClineAccessToken now only prefixes WorkOS JWTs. The fork's test asserted the old unconditional-prefix behavior. --- tests/unit/cline-data-envelope.test.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tests/unit/cline-data-envelope.test.js b/tests/unit/cline-data-envelope.test.js index cecbac36..e6c7bb33 100644 --- a/tests/unit/cline-data-envelope.test.js +++ b/tests/unit/cline-data-envelope.test.js @@ -53,9 +53,15 @@ describe("cline auth header shape", () => { expect(buildClineHeaders("sk_abc", {}, { isApiKey: true }).Authorization).toBe("Bearer sk_abc"); }); - it("prefixes OAuth tokens with workos:", () => { - expect(buildClineHeaders("tok123").Authorization).toBe("Bearer workos:tok123"); - expect(buildClineHeaders("workos:tok123").Authorization).toBe("Bearer workos:tok123"); + it("prefixes WorkOS JWT OAuth tokens with workos:", () => { + const jwt = "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxIn0.sig"; + expect(buildClineHeaders(jwt).Authorization).toBe(`Bearer workos:${jwt}`); + expect(buildClineHeaders(`workos:${jwt}`).Authorization).toBe(`Bearer workos:${jwt}`); + }); + + it("does not workos:-prefix opaque tokens (API keys, clp_…)", () => { + expect(buildClineHeaders("tok123").Authorization).toBe("Bearer tok123"); + expect(buildClineHeaders("clp_abc123").Authorization).toBe("Bearer clp_abc123"); }); it("sends Cline product identity headers (free-model gate)", () => { From 604b4d85d55780dddd680aa101d80dbaa46eca67 Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Sat, 19 Sep 2026 12:14:21 +0800 Subject: [PATCH 39/42] fix(codebuddy-intl): probe token in connection test + name OAuth by identity Two bugs on codebuddy-intl connections: 1. Test Connection always failed with "Provider test not supported": codebuddy-intl was missing from OAUTH_TEST_CONFIG, so testOAuthConnection bailed before probing. Add a real probe against the Keycloak realm's userinfo endpoint (URL derived from the token's iss claim), and wire refreshable so an expired token is rotated via refreshCodebuddyIntlToken. 2. OAuth logins were named "Account N" with no email: mapTokens returned no identity, even though the access token is a Keycloak JWT carrying email/name claims. Extract email + displayName in mapTokens (new shared extractDisplayNameFromAccessToken helper) so fresh logins are named and deduped by identity. Also add a run-once backfill (backfillCodeBuddyIntlIdentity) invoked from GET /api/providers and /api/providers/client to self-heal existing rows (backfill email/displayName, rename the generic "Account N" placeholder). Verified live: the real connection now returns valid:true and the row is renamed to the account email. --- src/app/api/providers/[id]/test/testUtils.js | 20 +++- src/app/api/providers/client/route.js | 3 +- src/app/api/providers/route.js | 4 + src/lib/oauth/providerHelpers.js | 16 +++ src/lib/oauth/providers/codebuddy-intl.js | 6 + src/lib/oauth/providers/index.js | 39 +++++- tests/unit/codebuddy-intl-backfill.test.js | 119 ++++++++++++++++++ tests/unit/codebuddy-intl-connection.test.js | 120 +++++++++++++++++++ 8 files changed, 324 insertions(+), 3 deletions(-) create mode 100644 tests/unit/codebuddy-intl-backfill.test.js create mode 100644 tests/unit/codebuddy-intl-connection.test.js diff --git a/src/app/api/providers/[id]/test/testUtils.js b/src/app/api/providers/[id]/test/testUtils.js index 75d6a965..246e9983 100644 --- a/src/app/api/providers/[id]/test/testUtils.js +++ b/src/app/api/providers/[id]/test/testUtils.js @@ -19,6 +19,7 @@ import { KIMCHI_CONFIG, } from "@/lib/oauth/constants/oauth"; import { buildClineHeaders } from "@/shared/utils/clineAuth"; +import { decodeJwtPayload } from "@/lib/oauth/providerHelpers"; // OAuth provider test endpoints const OAUTH_TEST_CONFIG = { @@ -92,6 +93,23 @@ const OAUTH_TEST_CONFIG = { authPrefix: "Bearer ", }, "codebuddy-cn": { tokenExists: true }, + // CodeBuddy Intl access tokens are Keycloak JWTs (iss .../auth/realms/copilot); + // probe the realm's userinfo endpoint so a revoked/expired token is caught. + // Derive the realm URL from the token's `iss` claim, falling back to the + // known copilot realm. 200 = valid, 401 = invalid/revoked. + "codebuddy-intl": { + buildUrl: (token) => { + const iss = decodeJwtPayload(token)?.iss; + const base = typeof iss === "string" && iss.startsWith("https://") + ? iss.replace(/\/$/, "") + : "https://www.codebuddy.ai/auth/realms/copilot"; + return `${base}/protocol/openid-connect/userinfo`; + }, + method: "GET", + authHeader: "Authorization", + authPrefix: "Bearer ", + refreshable: true, + }, kimchi: { url: KIMCHI_CONFIG.validationUrl || "https://api.cast.ai/v1/llm/openai/supported-providers", method: "GET", @@ -254,7 +272,7 @@ async function refreshOAuthToken(connection) { return { accessToken: data.access_token, expiresIn: data.expires_in, refreshToken: data.refresh_token || refreshToken }; } - if (provider === "codex" || provider === "grok-cli" || provider === "xai") { + if (provider === "codex" || provider === "grok-cli" || provider === "xai" || provider === "codebuddy-intl") { return await refreshProviderCredentials(provider, connection, console); } diff --git a/src/app/api/providers/client/route.js b/src/app/api/providers/client/route.js index be5342c1..9aff702f 100644 --- a/src/app/api/providers/client/route.js +++ b/src/app/api/providers/client/route.js @@ -1,6 +1,6 @@ import { NextResponse } from "next/server"; import { getProviderConnections } from "@/lib/localDb"; -import { backfillCodexEmails } from "@/lib/oauth/providers"; +import { backfillCodexEmails, backfillCodeBuddyIntlIdentity } from "@/lib/oauth/providers"; import { USAGE_APIKEY_PROVIDERS, USAGE_SUPPORTED_PROVIDERS } from "@/shared/constants/providers"; const SAFE_FIELDS = [ @@ -77,6 +77,7 @@ function sortConnections(connections, sort) { export async function GET(request) { try { await backfillCodexEmails(); + await backfillCodeBuddyIntlIdentity(); const { searchParams } = new URL(request.url); const provider = searchParams.get("provider") || "all"; diff --git a/src/app/api/providers/route.js b/src/app/api/providers/route.js index 5885472b..76b7438a 100644 --- a/src/app/api/providers/route.js +++ b/src/app/api/providers/route.js @@ -9,6 +9,7 @@ import { import { APIKEY_PROVIDERS } from "@/shared/constants/config"; import { AI_PROVIDERS, FREE_TIER_PROVIDERS, WEB_COOKIE_PROVIDERS, isOpenAICompatibleProvider, isAnthropicCompatibleProvider, isCustomEmbeddingProvider } from "@/shared/constants/providers"; import { normalizeProviderId, normalizeProviderSpecificData } from "@/lib/providerNormalization"; +import { backfillCodeBuddyIntlIdentity } from "@/lib/oauth/providers"; export const dynamic = "force-dynamic"; @@ -49,6 +50,9 @@ async function normalizeProxyPoolId(proxyPoolId) { // GET /api/providers - List all connections export async function GET() { try { + // Self-heal legacy CodeBuddy Intl OAuth rows that predate identity capture + // (they show as "Account N" with no email). Runs once per process. + await backfillCodeBuddyIntlIdentity(); const connections = await getProviderConnections(); // Build nodeNameMap for compatible providers (id → name) diff --git a/src/lib/oauth/providerHelpers.js b/src/lib/oauth/providerHelpers.js index 0cb46933..c2a7fdd7 100644 --- a/src/lib/oauth/providerHelpers.js +++ b/src/lib/oauth/providerHelpers.js @@ -50,6 +50,21 @@ function extractEmailFromAccessToken(accessToken) { return payload.email || payload.preferred_username || payload.sub || undefined; } +// Human display name from OIDC-style JWT claims. +// Preference: full `name` → given+family → email local-part. +function extractDisplayNameFromAccessToken(accessToken) { + const payload = decodeJwtPayload(accessToken); + if (!payload) return undefined; + const full = typeof payload.name === "string" ? payload.name.trim() : ""; + if (full) return full; + const given = typeof payload.given_name === "string" ? payload.given_name.trim() : ""; + const family = typeof payload.family_name === "string" ? payload.family_name.trim() : ""; + const combined = [given, family].filter(Boolean).join(" ").trim(); + if (combined) return combined; + const email = typeof payload.email === "string" ? payload.email.trim() : ""; + return email ? email.split("@")[0] : undefined; +} + export async function fetchKiroProfileArn(accessToken) { if (!accessToken) return null; try { @@ -87,4 +102,5 @@ export { decodeXaiIdTokenEmail, decodeJwtPayload, extractEmailFromAccessToken, + extractDisplayNameFromAccessToken, }; diff --git a/src/lib/oauth/providers/codebuddy-intl.js b/src/lib/oauth/providers/codebuddy-intl.js index e82e430f..7bb114be 100644 --- a/src/lib/oauth/providers/codebuddy-intl.js +++ b/src/lib/oauth/providers/codebuddy-intl.js @@ -1,4 +1,5 @@ import { CODEBUDDY_INTL_CONFIG } from "../constants/oauth.js"; +import { extractEmailFromAccessToken, extractDisplayNameFromAccessToken } from "../providerHelpers.js"; // CodeBuddy International — mirrors codebuddy-cn flow against the .ai domain. const codebuddyIntl = { @@ -67,6 +68,11 @@ const codebuddyIntl = { accessToken: tokens.access_token, refreshToken: tokens.refresh_token, expiresIn: tokens.expires_in || 86400, + // The CodeBuddy access token is a Keycloak JWT carrying email/name claims; + // surface them so a fresh OAuth login is named by identity (and deduped on + // re-login) instead of falling back to "Account N". + email: extractEmailFromAccessToken(tokens.access_token) || null, + displayName: extractDisplayNameFromAccessToken(tokens.access_token) || null, providerSpecificData: {}, }), }; diff --git a/src/lib/oauth/providers/index.js b/src/lib/oauth/providers/index.js index b4a392f3..a592a15e 100644 --- a/src/lib/oauth/providers/index.js +++ b/src/lib/oauth/providers/index.js @@ -2,7 +2,7 @@ import "open-sse/index.js"; import { generatePKCE } from "../utils/pkce.js"; -import { extractCodexAccountInfo, fetchKiroProfileArn } from "../providerHelpers.js"; +import { extractCodexAccountInfo, fetchKiroProfileArn, extractEmailFromAccessToken, extractDisplayNameFromAccessToken } from "../providerHelpers.js"; import claude from "./claude.js"; import codex from "./codex.js"; @@ -209,6 +209,43 @@ export async function pollForToken(providerName, deviceCode, codeVerifier, extra // Run-once guard across the process lifetime let codexBackfillDone = false; +let codebuddyIntlBackfillDone = false; + +// Backfill email + displayName for existing CodeBuddy Intl OAuth connections +// created before mapTokens surfaced identity (they show up as "Account N"). +// The access token is a Keycloak JWT carrying email/name claims. +export async function backfillCodeBuddyIntlIdentity() { + if (codebuddyIntlBackfillDone) return; + codebuddyIntlBackfillDone = true; + try { + const { getProviderConnections, updateProviderConnection } = await import("@/lib/localDb"); + const connections = await getProviderConnections(); + const targets = connections.filter((c) => { + if (c.provider !== "codebuddy-intl" || c.authType !== "oauth" || !c.accessToken) return false; + // Also re-heal rows whose name is still the generic "Account N" placeholder. + const genericName = typeof c.name === "string" && /^Account \d+$/.test(c.name.trim()); + return !c.email || !c.displayName || genericName; + }); + for (const conn of targets) { + const patch = {}; + const email = conn.email || extractEmailFromAccessToken(conn.accessToken); + const displayName = conn.displayName || extractDisplayNameFromAccessToken(conn.accessToken); + if (!conn.email && email) patch.email = email; + if (!conn.displayName && displayName) patch.displayName = displayName; + // Rename the generic placeholder to the identity (email preferred, matching + // deriveConnectionName's behavior for new logins). + if (/^Account \d+$/.test((conn.name || "").trim()) && (email || displayName)) { + patch.name = email || displayName; + } + if (Object.keys(patch).length) { + await updateProviderConnection(conn.id, patch); + } + } + } catch (err) { + codebuddyIntlBackfillDone = false; + console.log("backfillCodeBuddyIntlIdentity failed:", err?.message || err); + } +} // Backfill email + chatgpt account info for existing codex OAuth connections missing them export async function backfillCodexEmails() { diff --git a/tests/unit/codebuddy-intl-backfill.test.js b/tests/unit/codebuddy-intl-backfill.test.js new file mode 100644 index 00000000..a44b33b2 --- /dev/null +++ b/tests/unit/codebuddy-intl-backfill.test.js @@ -0,0 +1,119 @@ +// Existing CodeBuddy Intl OAuth connections created before mapTokens surfaced +// identity show up as "Account N" with no email. The self-healing backfill must +// fill email + displayName from the access-token JWT so the dashboard shows the +// real identity without forcing a re-login. +// +// backfillCodeBuddyIntlIdentity has a module-level run-once guard, so each test +// re-imports a fresh module instance via vi.resetModules() + dynamic import. +import { describe, it, expect, beforeEach, vi } from "vitest"; + +const mocks = vi.hoisted(() => ({ + getProviderConnections: vi.fn(), + updateProviderConnection: vi.fn(), +})); + +vi.mock("@/lib/localDb", () => ({ + getProviderConnections: mocks.getProviderConnections, + updateProviderConnection: mocks.updateProviderConnection, +})); + +// The providers index imports open-sse/index.js for proxy-aware fetch; stub it. +vi.mock("open-sse/index.js", () => ({})); + +function makeJwt(payload) { + const b64 = (obj) => Buffer.from(JSON.stringify(obj)).toString("base64url"); + return `${b64({ alg: "RS256", typ: "JWT" })}.${b64(payload)}.sig`; +} + +const JWT = makeJwt({ + iss: "https://www.codebuddy.ai/auth/realms/copilot", + email: "aghiyaramadh@gmail.com", + name: "aghiya ramadh", +}); + +async function loadBackfill() { + vi.resetModules(); + const mod = await import("../../src/lib/oauth/providers/index.js"); + return mod.backfillCodeBuddyIntlIdentity; +} + +describe("backfillCodeBuddyIntlIdentity", () => { + beforeEach(() => { + vi.clearAllMocks(); + mocks.updateProviderConnection.mockResolvedValue({}); + }); + + it("fills email + displayName for a legacy 'Account N' connection", async () => { + mocks.getProviderConnections.mockResolvedValue([ + { + id: "conn-legacy", + provider: "codebuddy-intl", + authType: "oauth", + name: "Account 1", + email: null, + displayName: null, + accessToken: JWT, + }, + ]); + + const backfill = await loadBackfill(); + await backfill(); + + expect(mocks.updateProviderConnection).toHaveBeenCalledTimes(1); + const [id, patch] = mocks.updateProviderConnection.mock.calls[0]; + expect(id).toBe("conn-legacy"); + expect(patch.email).toBe("aghiyaramadh@gmail.com"); + expect(patch.displayName).toBe("aghiya ramadh"); + // Generic placeholder name is replaced by the identity. + expect(patch.name).toBe("aghiyaramadh@gmail.com"); + }); + + it("keeps a user-customized name (does not overwrite non-generic names)", async () => { + mocks.getProviderConnections.mockResolvedValue([ + { + id: "conn-custom", + provider: "codebuddy-intl", + authType: "oauth", + name: "My Work Account", + email: null, + displayName: null, + accessToken: JWT, + }, + ]); + + const backfill = await loadBackfill(); + await backfill(); + + expect(mocks.updateProviderConnection).toHaveBeenCalledTimes(1); + const [, patch] = mocks.updateProviderConnection.mock.calls[0]; + expect(patch.email).toBe("aghiyaramadh@gmail.com"); + expect(patch.name).toBeUndefined(); + }); + + it("leaves connections that already have identity untouched", async () => { + mocks.getProviderConnections.mockResolvedValue([ + { + id: "conn-ok", + provider: "codebuddy-intl", + authType: "oauth", + name: "aghiya ramadh", + email: "aghiyaramadh@gmail.com", + displayName: "aghiya ramadh", + accessToken: JWT, + }, + ]); + + const backfill = await loadBackfill(); + await backfill(); + expect(mocks.updateProviderConnection).not.toHaveBeenCalled(); + }); + it("ignores other providers", async () => { + mocks.getProviderConnections.mockResolvedValue([ + { id: "c1", provider: "codex", authType: "oauth", email: null, accessToken: JWT }, + ]); + + const backfill = await loadBackfill(); + await backfill(); + expect(mocks.updateProviderConnection).not.toHaveBeenCalled(); + }); +}); diff --git a/tests/unit/codebuddy-intl-connection.test.js b/tests/unit/codebuddy-intl-connection.test.js new file mode 100644 index 00000000..ff6445ce --- /dev/null +++ b/tests/unit/codebuddy-intl-connection.test.js @@ -0,0 +1,120 @@ +// CodeBuddy Intl (.ai) OAuth connections: +// 1. The connection test must actually probe the token (was "Provider test not supported" +// because codebuddy-intl was missing from OAUTH_TEST_CONFIG). +// 2. mapTokens must surface email/displayName from the access token JWT so a fresh OAuth +// login is named by identity instead of falling back to "Account N". +import { describe, it, expect, beforeEach, afterEach, vi } from "vitest"; + +const mocks = vi.hoisted(() => ({ + getProviderConnectionById: vi.fn(), + updateProviderConnection: vi.fn(), + resolveConnectionProxyConfig: vi.fn(), +})); + +vi.mock("@/lib/localDb", () => ({ + getProviderConnectionById: mocks.getProviderConnectionById, + updateProviderConnection: mocks.updateProviderConnection, +})); + +vi.mock("@/lib/network/connectionProxy", () => ({ + resolveConnectionProxyConfig: mocks.resolveConnectionProxyConfig, +})); + +import codebuddyIntl from "../../src/lib/oauth/providers/codebuddy-intl.js"; +import { testSingleConnection } from "../../src/app/api/providers/[id]/test/testUtils.js"; + +// Minimal unsigned JWT (header.payload.sig) — mapTokens only decodes the payload. +function makeJwt(payload) { + const b64 = (obj) => Buffer.from(JSON.stringify(obj)).toString("base64url"); + return `${b64({ alg: "RS256", typ: "JWT" })}.${b64(payload)}.sig`; +} + +const originalFetch = global.fetch; + +describe("codebuddy-intl mapTokens identity", () => { + it("extracts email and display name from the access token JWT", () => { + const token = makeJwt({ + iss: "https://www.codebuddy.ai/auth/realms/copilot", + email: "aghiyaramadh@gmail.com", + name: "aghiya ramadh", + preferred_username: "aghiyaramadh@gmail.com", + }); + + const out = codebuddyIntl.mapTokens({ + access_token: token, + refresh_token: "rt", + expires_in: 3600, + }); + + expect(out.accessToken).toBe(token); + expect(out.refreshToken).toBe("rt"); + expect(out.email).toBe("aghiyaramadh@gmail.com"); + expect(out.displayName).toBe("aghiya ramadh"); + }); + + it("falls back to given/family name when name is absent", () => { + const token = makeJwt({ email: "a@b.com", given_name: "Aghiya", family_name: "Ramadh" }); + const out = codebuddyIntl.mapTokens({ access_token: token, expires_in: 3600 }); + expect(out.email).toBe("a@b.com"); + expect(out.displayName).toBe("Aghiya Ramadh"); + }); + + it("does not throw and leaves identity null for an opaque (non-JWT) token", () => { + const out = codebuddyIntl.mapTokens({ access_token: "opaque-token", expires_in: 3600 }); + expect(out.accessToken).toBe("opaque-token"); + expect(out.email).toBeNull(); + expect(out.displayName).toBeNull(); + }); +}); + +describe("codebuddy-intl connection test", () => { + beforeEach(() => { + vi.clearAllMocks(); + mocks.resolveConnectionProxyConfig.mockResolvedValue({}); + mocks.updateProviderConnection.mockResolvedValue({}); + mocks.getProviderConnectionById.mockResolvedValue({ + id: "conn-cb-intl", + provider: "codebuddy-intl", + authType: "oauth", + accessToken: makeJwt({ email: "aghiyaramadh@gmail.com", name: "aghiya ramadh" }), + refreshToken: "rt", + expiresAt: new Date(Date.now() + 3600_000).toISOString(), + providerSpecificData: {}, + }); + }); + + afterEach(() => { + global.fetch = originalFetch; + }); + + it("probes the token instead of returning 'Provider test not supported'", async () => { + const calls = []; + global.fetch = vi.fn((url) => { + calls.push(String(url)); + return Promise.resolve( + new Response(JSON.stringify({ email: "aghiyaramadh@gmail.com" }), { + status: 200, + headers: { "Content-Type": "application/json" }, + }), + ); + }); + + const result = await testSingleConnection("conn-cb-intl"); + + expect(result.error).not.toBe("Provider test not supported"); + expect(result.valid).toBe(true); + expect(calls.length).toBeGreaterThan(0); + // Must hit a real identity/usage endpoint on the codebuddy.ai domain. + expect(calls.some((u) => u.includes("codebuddy.ai"))).toBe(true); + }); + + it("marks the connection invalid on 401", async () => { + global.fetch = vi.fn(() => + Promise.resolve(new Response("unauthorized", { status: 401 })), + ); + + const result = await testSingleConnection("conn-cb-intl"); + expect(result.valid).toBe(false); + expect(result.error).toMatch(/invalid|revoked/i); + }); +}); From 9d7821bdcc4a132801e1fa92edc745d47ccf15a0 Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Sat, 19 Sep 2026 12:21:14 +0800 Subject: [PATCH 40/42] fix(usage): stop leaking hidden noAuth providers (devin-cli, mimo-free) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Usage page auto-adds every noAuth free provider so connectionless providers (opencode) still appear. It did not filter the registry's hidden flag, so devin-cli and mimo-free — both category:"free" with noAuth:true and hidden:true — showed up in Usage despite having no connection and being absent from the Providers page (which does filter hidden). Extract the list assembly into buildUsageProviderList (shared/utils/ usageProviders.js) and skip hidden free providers there. Behavior for visible noAuth providers (opencode) and dedup of active connections is unchanged; covered by tests/unit/usage-provider-list.test.js. --- src/shared/components/UsageStats.js | 20 ++----- src/shared/utils/usageProviders.js | 35 +++++++++++ tests/unit/usage-provider-list.test.js | 80 ++++++++++++++++++++++++++ 3 files changed, 121 insertions(+), 14 deletions(-) create mode 100644 src/shared/utils/usageProviders.js create mode 100644 tests/unit/usage-provider-list.test.js diff --git a/src/shared/components/UsageStats.js b/src/shared/components/UsageStats.js index ecab40b1..a76b80ea 100644 --- a/src/shared/components/UsageStats.js +++ b/src/shared/components/UsageStats.js @@ -3,6 +3,7 @@ import { useState, useEffect, useMemo, useCallback, useRef } from "react"; import { useSearchParams, useRouter } from "next/navigation"; import { FREE_PROVIDERS, AI_PROVIDERS } from "@/shared/constants/providers"; +import { buildUsageProviderList } from "@/shared/utils/usageProviders"; // Keep providers without serviceKinds (default LLM) or with "llm" in serviceKinds function isLLMProvider(id) { @@ -232,21 +233,12 @@ export default function UsageStats({ period: periodProp, setPeriod: setPeriodPro for (const node of (nodesData?.nodes || [])) { nodeNameMap[node.id] = node.name; } - const seen = new Set(); - const unique = (d?.connections || []).filter((c) => { - if (c.isActive === false) return false; - if (!isLLMProvider(c.provider)) return false; - if (seen.has(c.provider)) return false; - seen.add(c.provider); - return true; - }).map((c) => ({ - ...c, - nodeName: nodeNameMap[c.provider] || null, + setProviders(buildUsageProviderList({ + connections: d?.connections || [], + freeProviders: FREE_PROVIDERS, + nodeNameMap, + isLLMProvider, })); - const noAuthProviders = Object.values(FREE_PROVIDERS) - .filter((p) => p.noAuth && !seen.has(p.id) && isLLMProvider(p.id)) - .map((p) => ({ provider: p.id, name: p.name })); - setProviders([...unique, ...noAuthProviders]); }) .catch(() => {}); }, []); diff --git a/src/shared/utils/usageProviders.js b/src/shared/utils/usageProviders.js new file mode 100644 index 00000000..2432df70 --- /dev/null +++ b/src/shared/utils/usageProviders.js @@ -0,0 +1,35 @@ +// Provider list for the Usage page. +// +// Two sources, deduped by provider id: +// 1. Active LLM connections (one entry per provider). +// 2. noAuth free providers that need no connection (e.g. opencode). +// +// Hidden providers are excluded — the Providers page filters `hidden`, so a +// hidden noAuth provider (devin-cli, mimo-free) must not leak into Usage with +// zero connections and zero traffic. +export function buildUsageProviderList({ + connections = [], + freeProviders = {}, + nodeNameMap = {}, + isLLMProvider = () => true, +} = {}) { + const seen = new Set(); + const unique = connections + .filter((c) => { + if (c.isActive === false) return false; + if (!isLLMProvider(c.provider)) return false; + if (seen.has(c.provider)) return false; + seen.add(c.provider); + return true; + }) + .map((c) => ({ + ...c, + nodeName: nodeNameMap[c.provider] || null, + })); + + const noAuthProviders = Object.values(freeProviders) + .filter((p) => p.noAuth && !p.hidden && !seen.has(p.id) && isLLMProvider(p.id)) + .map((p) => ({ provider: p.id, name: p.name })); + + return [...unique, ...noAuthProviders]; +} diff --git a/tests/unit/usage-provider-list.test.js b/tests/unit/usage-provider-list.test.js new file mode 100644 index 00000000..bcfeaefd --- /dev/null +++ b/tests/unit/usage-provider-list.test.js @@ -0,0 +1,80 @@ +// The Usage page lists providers from two sources: +// 1. active LLM connections (deduped by provider id), and +// 2. noAuth free providers that need no connection (e.g. opencode). +// +// Hidden providers (devin-cli, mimo-free) must NOT be auto-added — they are +// excluded from the Providers page, so surfacing them in Usage (with zero +// connections and zero traffic) is a leak. Regression: devin-cli showed up in +// Usage but nowhere in Providers. +import { describe, it, expect } from "vitest"; +import { buildUsageProviderList } from "../../src/shared/utils/usageProviders.js"; + +const isLLM = () => true; + +describe("buildUsageProviderList", () => { + it("does not auto-add hidden noAuth free providers", () => { + const freeProviders = { + opencode: { id: "opencode", name: "OpenCode", noAuth: true }, + "devin-cli": { id: "devin-cli", name: "Devin CLI", noAuth: true, hidden: true }, + "mimo-free": { id: "mimo-free", name: "MiMo Free", noAuth: true, hidden: true }, + }; + + const list = buildUsageProviderList({ + connections: [], + freeProviders, + isLLMProvider: isLLM, + }); + + const ids = list.map((p) => p.provider); + expect(ids).toContain("opencode"); + expect(ids).not.toContain("devin-cli"); + expect(ids).not.toContain("mimo-free"); + }); + + it("includes active LLM connections, deduped by provider", () => { + const list = buildUsageProviderList({ + connections: [ + { provider: "codex", isActive: true }, + { provider: "codex", isActive: true }, + { provider: "zed", isActive: true }, + ], + freeProviders: {}, + isLLMProvider: isLLM, + }); + expect(list.map((p) => p.provider)).toEqual(["codex", "zed"]); + }); + + it("skips inactive connections and non-LLM providers", () => { + const list = buildUsageProviderList({ + connections: [ + { provider: "codex", isActive: false }, + { provider: "whisper", isActive: true }, + ], + freeProviders: {}, + isLLMProvider: (id) => id !== "whisper", + }); + expect(list).toEqual([]); + }); + + it("does not duplicate a free provider that already has a connection", () => { + const freeProviders = { + opencode: { id: "opencode", name: "OpenCode", noAuth: true }, + }; + const list = buildUsageProviderList({ + connections: [{ provider: "opencode", isActive: true }], + freeProviders, + isLLMProvider: isLLM, + }); + expect(list.map((p) => p.provider)).toEqual(["opencode"]); + }); + + it("attaches nodeName from the lookup when present", () => { + const list = buildUsageProviderList({ + connections: [{ provider: "node-1", isActive: true }], + freeProviders: {}, + nodeNameMap: { "node-1": "My Node" }, + isLLMProvider: isLLM, + }); + expect(list[0].nodeName).toBe("My Node"); + }); +}); From 9c37af90a9cb9abc47181abfdc2bd4acd099dfdc Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Sat, 19 Sep 2026 12:37:57 +0800 Subject: [PATCH 41/42] test(harness): isolate DATA_DIR so tests never write to the real DB MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Root cause of fake connections in Usage (zed-live-*@example.com, guard-*@example.com, zed "Account N", kimchi-nope): route-level tests (zed-live-models, zed-native-auth) call createProviderConnection, which persists to $DATA_DIR/db/data.sqlite. With DATA_DIR unset — the default for `npx vitest run` — that resolved to the user's real ~/.9router DB, appending test rows on every run. Both files documented "RUN WITH AN ISOLATED DB" but never enforced it. Add tests/setup/isolateDataDir.js (wired via vitest setupFiles) that points DATA_DIR at a throwaway temp dir before src/lib/dataDir.js is imported. Opt out with RUN_REAL=1 or an explicit DATA_DIR (used by the *.real.test.js suites that read live credentials). Verified: a full suite run now leaves the real DB byte-count unchanged; new guard test tests/unit/test-data-dir-isolation.test.js locks it in. --- tests/setup/isolateDataDir.js | 26 +++++++++++++++++++++ tests/unit/test-data-dir-isolation.test.js | 27 ++++++++++++++++++++++ tests/vitest.config.js | 4 ++++ 3 files changed, 57 insertions(+) create mode 100644 tests/setup/isolateDataDir.js create mode 100644 tests/unit/test-data-dir-isolation.test.js diff --git a/tests/setup/isolateDataDir.js b/tests/setup/isolateDataDir.js new file mode 100644 index 00000000..06e11bbd --- /dev/null +++ b/tests/setup/isolateDataDir.js @@ -0,0 +1,26 @@ +// Global test isolation: never let the unit/translator suite write to the user's +// real database (~/.9router). Some tests (e.g. zed-live-models, zed-native-auth) +// exercise real route handlers that call createProviderConnection — without this +// they append test rows ("zed-live-*@example.com", "guard-*@example.com", +// "Account N") straight into the live DB. +// +// DATA_DIR must be set before src/lib/dataDir.js is imported (it reads the env +// at module-eval time), which is exactly what a vitest setupFile guarantees. +// +// Escape hatches: +// - RUN_REAL=1 → keep the real DATA_DIR so *.real.test.js can read it. +// - DATA_DIR= → respect an explicit override (CI / manual isolation). +import fs from "node:fs"; +import os from "node:os"; +import path from "node:path"; + +const RUN_REAL = process.env.RUN_REAL === "1"; +const explicit = process.env.DATA_DIR; + +if (!RUN_REAL && !explicit) { + const dir = fs.mkdtempSync(path.join(os.tmpdir(), "9router-test-")); + process.env.DATA_DIR = dir; + process.on("exit", () => { + try { fs.rmSync(dir, { recursive: true, force: true }); } catch { /* best effort */ } + }); +} diff --git a/tests/unit/test-data-dir-isolation.test.js b/tests/unit/test-data-dir-isolation.test.js new file mode 100644 index 00000000..7b0dbeda --- /dev/null +++ b/tests/unit/test-data-dir-isolation.test.js @@ -0,0 +1,27 @@ +// Guard: the test harness must never write into the user's real DB. +// +// Root cause this locks down: route-level tests (zed-live-models, +// zed-native-auth) call createProviderConnection, which persists to +// $DATA_DIR/db/data.sqlite. With no DATA_DIR set, that resolved to ~/.9router — +// polluting the live DB with "zed-live-*@example.com", "guard-*@example.com" +// and "Account N" rows on every `npx vitest run`. +// +// tests/setup/isolateDataDir.js redirects DATA_DIR to a temp dir unless the +// caller opts out via RUN_REAL=1 or an explicit DATA_DIR. +import { describe, it, expect } from "vitest"; +import os from "node:os"; +import path from "node:path"; + +// When the caller opts into the real DB (RUN_REAL=1) or supplies DATA_DIR, +// isolation is intentionally disabled — this guard only applies to the default. +const ISOLATED = !process.env.RUN_REAL && !process.env.EXPECT_REAL_DATA_DIR; + +describe.skipIf(!ISOLATED)("test DATA_DIR isolation", () => { + it("points DATA_DIR at a temp dir, not ~/.9router", () => { + const dir = process.env.DATA_DIR; + expect(dir).toBeTruthy(); + const home = path.join(os.homedir(), ".9router"); + expect(path.resolve(dir)).not.toBe(path.resolve(home)); + expect(dir.startsWith(os.tmpdir())).toBe(true); + }); +}); diff --git a/tests/vitest.config.js b/tests/vitest.config.js index d53d85e0..3db8a4ea 100644 --- a/tests/vitest.config.js +++ b/tests/vitest.config.js @@ -9,6 +9,10 @@ export default defineConfig({ environment: "node", globals: true, include: ["**/*.test.js"], + // Redirect DATA_DIR to a throwaway temp dir so route-level tests that call + // createProviderConnection never touch the user's real ~/.9router DB. + // RUN_REAL=1 or an explicit DATA_DIR opts out (see setup/isolateDataDir.js). + setupFiles: ["./setup/isolateDataDir.js"], // Don't scan into git worktrees nested under .claude/ — they carry their // own copies of the test files but lack an installed node_modules (open-sse, // etc.), which makes provider imports fail during collection. From 25df5e6a9d209906dc8a3d8691fba99a1094b05f Mon Sep 17 00:00:00 2001 From: "MUH. IQRAM BAHRING" Date: Sat, 19 Sep 2026 12:52:19 +0800 Subject: [PATCH 42/42] chore(guards): add durable markers so fixes aren't silently dropped Introduce AGENTS.md (root, primary agent instruction file) documenting six hard-won fixes with explicit DO NOT / WHY, plus executable enforcement so a future AI cannot delete or reintroduce them: 1. package-lock.json must be generated with npm 10 (Docker's npm 10.9.8). npm 11 drops the top-level @emnapi/core + @emnapi/runtime entries npm 10 needs, breaking the tag-triggered Docker build at `npm ci` (happened on v1.0.14). Add scripts/verify-lockfile-npm10.mjs + .npmrc + a Dockerfile fail-fast check + a CI step + tests/unit/lockfile-npm10-guard.test.js. Also re-fix the lockfile itself (regenerated with npm 10.9.8). 2. Tests must never write to the real ~/.9router DB (isolateDataDir). 3. Hidden providers must not leak into Usage (usageProviders !p.hidden). 4. codebuddy-intl connection test + OAuth identity. 5. Fork-only features that must survive upstream syncs. 6. Upstream sync procedure. Each marker cross-references AGENTS.md and the covering test. CLAUDE.md now points to AGENTS.md at the top. Verified: build ok, guard script passes, full suite leaves the real DB count unchanged (38), 0 new regressions. --- .github/workflows/docker-publish.yml | 6 + .npmrc | 17 ++ AGENTS.md | 160 +++++++++++++++++++ CLAUDE.md | 6 + Dockerfile | 7 + package-lock.json | 67 +++++--- package.json | 4 +- scripts/verify-lockfile-npm10.mjs | 71 ++++++++ src/app/api/providers/[id]/test/testUtils.js | 11 +- src/lib/oauth/providers/codebuddy-intl.js | 7 +- src/shared/utils/usageProviders.js | 3 + tests/setup/isolateDataDir.js | 3 + tests/unit/lockfile-npm10-guard.test.js | 31 ++++ 13 files changed, 365 insertions(+), 28 deletions(-) create mode 100644 .npmrc create mode 100644 AGENTS.md create mode 100755 scripts/verify-lockfile-npm10.mjs create mode 100644 tests/unit/lockfile-npm10-guard.test.js diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 96c1e369..815c188b 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -24,6 +24,12 @@ jobs: steps: - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0 + # Guard: the committed package-lock.json must be npm-10-compatible (the + # Docker image ships npm 10.9.8). Fails fast with a fix hint instead of a + # cryptic `npm ci` EUSAGE error. See AGENTS.md §1. + - name: Verify lockfile is npm-10-compatible + run: node scripts/verify-lockfile-npm10.mjs + - uses: docker/setup-buildx-action@f7ce87c1d6bead3e36075b2ce75da1f6cc28aaca # v3.9.0 - name: Log in to GHCR diff --git a/.npmrc b/.npmrc new file mode 100644 index 00000000..40aef747 --- /dev/null +++ b/.npmrc @@ -0,0 +1,17 @@ +# MIBP fork — npm behavior pin. +# +# DO NOT DELETE. See AGENTS.md §1. +# +# The Docker image (node:22-alpine, pinned by digest) ships npm 10.9.8 and runs +# `npm ci` against the committed package-lock.json. Regenerating the lockfile +# with npm 11+ drops the top-level @emnapi/core + @emnapi/runtime entries npm 10 +# needs, which breaks the tag-triggered Docker build ("Build and Push Docker +# Image") at `npm ci`. +# +# Regenerate the lockfile with npm 10 only: +# npx -y npm@10.9.8 install --package-lock-only +# node scripts/verify-lockfile-npm10.mjs +# +# Keep install output quiet; never let audit/fund noise hide a lockfile error. +audit=false +fund=false diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 00000000..27217bf6 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,160 @@ +# AGENTS.md — MIBP fork guardrails + +> **READ THIS BEFORE EDITING.** This is the **MIBP fork** of `decolua/9router` +> (`github.com/mhiqrambg/9router-mibp-version`). Upstream is tracked as the +> `upstream` git remote. This file records hard-won fixes that are easy to +> silently delete or reintroduce. Each entry has a **DO NOT** and a **WHY**. +> +> If you are about to change something listed here, stop and read the whole +> entry first. If you believe an entry is obsolete, say so explicitly and get +> confirmation before removing it — do **not** quietly drop it. + +--- + +## 1. `package-lock.json` MUST be generated with npm 10 (Docker's npm) + +**DO NOT** regenerate `package-lock.json` with your global `npm` (npm 11+). +**DO NOT** delete `package-lock.json` or add it to `.gitignore`. + +**WHY:** The Docker image pins `node:22-alpine` by digest (see `Dockerfile` +`ARG NODE_IMAGE`), which ships **npm 10.9.8**. The `Dockerfile` runs `npm ci` +against the committed lockfile. npm 11 **drops the top-level optional entries** +`@emnapi/core` and `@emnapi/runtime` that npm 10's platform-complete resolve +requires. The tag-triggered **"Build and Push Docker Image"** workflow then +fails at `npm ci`: + +``` +npm error `npm ci` can only install packages when your package.json and package-lock.json are in sync. +npm error Missing: @emnapi/runtime@1.11.3 from lock file +npm error Missing: @emnapi/core@1.11.3 from lock file +``` + +This **already happened on tag `v1.0.14`** (run 35422006940) and on earlier +releases (`a2c6187a`, `470c8ca7`, `79294644`, `76b139b3`). + +**Correct way to (re)generate the lockfile:** + +```bash +npx -y npm@10.9.8 install --package-lock-only +node scripts/verify-lockfile-npm10.mjs # must print ✅ +``` + +**Enforcement:** `scripts/verify-lockfile-npm10.mjs` fails (exit 1) if the +top-level `@emnapi/core` / `@emnapi/runtime` entries are missing. Run it after +any dependency change; CI runs it before the Docker build. + +--- + +## 2. Tests must NEVER write to the real database (`~/.9router`) + +**DO NOT** remove `tests/setup/isolateDataDir.js` from `tests/vitest.config.js` +`setupFiles`. **DO NOT** delete `tests/unit/test-data-dir-isolation.test.js`. + +**WHY:** Route-level tests (e.g. `zed-live-models.test.js`, +`zed-native-auth.test.js`) call the real `createProviderConnection`, which +persists to `$DATA_DIR/db/data.sqlite`. With `DATA_DIR` unset — the default for +`npx vitest run` — that resolved to the developer's **real** `~/.9router` DB and +appended fake connections on every run: `zed-live-*@example.com`, +`guard-*@example.com`, `zed "Account N"` (token `decrypted-token-xyz`), and the +fake provider `kimchi-nope`. These then showed up in the Usage dashboard. 42 +such rows had to be cleaned out of the live DB once. + +**Isolation contract:** +- Default: `DATA_DIR` → throwaway temp dir (auto-removed on exit). +- `RUN_REAL=1` or an explicit `DATA_DIR` → opt out (used by `*.real.test.js` + suites that intentionally read live credentials). + +**Verify a change is safe:** run the suite, then confirm the real DB is +untouched: + +```bash +node -e 'const D=require("better-sqlite3");const db=new D(process.env.HOME+"/.9router/db/data.sqlite",{readonly:true});console.log(db.prepare("SELECT COUNT(*) c FROM providerConnections").get().c)' +``` + +The count must be identical before and after `npx vitest run`. + +--- + +## 3. Hidden providers must not leak into the Usage page + +**DO NOT** remove the `!p.hidden` filter in `src/shared/utils/usageProviders.js` +(`buildUsageProviderList`). **DO NOT** inline the old unfiltered +`Object.values(FREE_PROVIDERS).filter(p => p.noAuth && ...)` logic back into +`src/shared/components/UsageStats.js`. + +**WHY:** The Usage page auto-adds every `noAuth` free provider so connectionless +providers (e.g. `opencode`) still appear. It must also honor the registry +`hidden` flag, matching the Providers page (`providers/page.js` filters +`!info.hidden`). Without it, `devin-cli` and `mimo-free` (both +`category:"free"`, `noAuth:true`, `hidden:true`) appear in Usage with zero +connections and zero traffic. + +**Covered by:** `tests/unit/usage-provider-list.test.js`. + +--- + +## 4. `codebuddy-intl` connection test + OAuth identity + +**DO NOT** remove the `"codebuddy-intl"` entry from `OAUTH_TEST_CONFIG` in +`src/app/api/providers/[id]/test/testUtils.js`. +**DO NOT** remove `email` / `displayName` from `codebuddy-intl`'s `mapTokens` +(`src/lib/oauth/providers/codebuddy-intl.js`). +**DO NOT** remove `backfillCodeBuddyIntlIdentity` or its calls in +`GET /api/providers` and `/api/providers/client`. + +**WHY (two bugs, both fixed 2026-09-19):** +1. **Test Connection** returned `"Provider test not supported"` because + `codebuddy-intl` was missing from `OAUTH_TEST_CONFIG`, so + `testOAuthConnection` bailed before probing. It now probes the Keycloak + realm's `userinfo` endpoint (URL derived from the token's `iss` claim). +2. **OAuth logins** were named `"Account N"` with no email. The access token is + a Keycloak JWT carrying `email`/`name`; `mapTokens` now extracts them, and a + run-once backfill self-heals pre-existing rows. + +**Covered by:** `tests/unit/codebuddy-intl-connection.test.js`, +`tests/unit/codebuddy-intl-backfill.test.js`. + +--- + +## 5. Fork-only features — NEVER drop during an upstream sync + +When merging `upstream/master`, these fork additions must survive conflict +resolution. If a merge conflict touches them, **resolve fork-priority** and +re-verify after. + +| Area | Key files / markers | +|---|---| +| **Freebuff provider** | `open-sse/executors/freebuff.js`, `open-sse/providers/registry/freebuff.js`, `open-sse/services/usage/freebuff.js`, `src/lib/oauth/providers/freebuff.js`, `public/providers/freebuff.png`, and its entries in `open-sse/executors/index.js` + `open-sse/providers/registry/index.js` | +| **Proxy-pool fitness** | `open-sse/services/proxyPoolFitness.js`, `open-sse/services/poolGeo.js`, `src/lib/network/poolEgressProbe.js`, `src/lib/network/stateSweeper.js`, `src/app/(dashboard)/dashboard/proxy-fitness/`, `src/app/api/proxy-pools/**` | +| **Docker hardening** | `Dockerfile`: digest-pinned `NODE_IMAGE`, tracked `package-lock.json`, `npm ci`, `HEALTHCHECK`. `.github/workflows/docker-publish.yml`. | +| **dompurify security override** | `package.json` `overrides.dompurify` + the direct `dompurify` dependency | +| **MIBP branding** | `README.md`, `docker-compose.yml`, `.env.example`, the `MIBP Edition` link in `src/app/(dashboard)/dashboard/profile/page.js` | +| **Cline free-tier models** | `open-sse/providers/registry/cline.js` `authModes: ["oauth","apikey"]` + `cline-free/*` models; `open-sse/shared/clineAuth.js` product headers | + +--- + +## 6. Upstream sync procedure + +- Remote layout: `origin` = this fork, `upstream` = `decolua/9router`. +- **Merge, do not rebase** — the fork already has merge-based history; rebasing + rewrites public history. +- Work on a branch (`sync/upstream-`), tag a rollback point + (`backup/pre-sync-`), then fast-forward `master`. +- After resolving conflicts: `npm run build`, `npx vitest run`, and the + baseline scripts (`tests/__baseline__/verify-providers.mjs`, + `verify-oauth-urls.mjs`, `verify-alias.mjs`). +- The suite is **not** expected to be all-green (see `CLAUDE.md`). Judge only + for **new** regressions vs. a pre-merge run; a handful of upstream test-drift + failures are known. +- Bump `package.json` version (fork cadence `1.0.x`); `CHANGELOG.md` mirrors + upstream and is **not** edited by the fork. +- Regenerate the lockfile with npm 10 (see §1) after any dependency change. + +--- + +## 7. Do not re-add `package-lock.json` to `.gitignore` + +**WHY:** Upstream does not track a lockfile, but this fork **must** — the +Docker build depends on `npm ci` against a committed, npm-10-compatible +lockfile. The fork explicitly removed `package-lock.json` from `.gitignore` +(commit `76b139b3`). diff --git a/CLAUDE.md b/CLAUDE.md index d7c21345..0121a47c 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -2,6 +2,12 @@ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. +> ⚠️ **MIBP fork — read [`AGENTS.md`](AGENTS.md) first.** It lists fixes that are +> easy to silently delete or reintroduce (npm-10 lockfile rule, test DB +> isolation, hidden-provider filtering, codebuddy-intl behavior, fork-only +> features that must survive upstream syncs). Do not remove anything listed +> there without explicit confirmation. + ## What this is 9Router (`9router-app`) — a local AI routing gateway + Next.js dashboard. It exposes one OpenAI-compatible endpoint (`/v1/*`) and routes traffic across 40+ upstream providers with format translation, model-combo fallback, multi-account fallback, OAuth/API-key credential management, token refresh, quota/usage tracking, and optional cloud sync. diff --git a/Dockerfile b/Dockerfile index 5094ed2f..be1211d4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,9 @@ # syntax=docker/dockerfile:1.7 # Pinned by digest so a base-image refresh cannot silently bump npm and break # `npm ci` against the committed lockfile (see v1.0.9 npm ci EUSAGE failure). +# DO NOT unpin. This image ships npm 10.9.8 — the lockfile MUST be regenerated +# with npm 10 (`npx -y npm@10.9.8 install --package-lock-only`), never npm 11+. +# See AGENTS.md §1 and scripts/verify-lockfile-npm10.mjs. ARG NODE_IMAGE=node:22-alpine@sha256:c610fcdfb1d5b4740dd70c284ed3cb16bb857e0f7166196e36a5501df7a3aa32 FROM ${NODE_IMAGE} AS base WORKDIR /app @@ -10,6 +13,10 @@ FROM base AS builder RUN apk --no-cache upgrade && apk --no-cache add python3 make g++ linux-headers COPY package.json package-lock.json ./ +# Fail fast with an actionable message if the lockfile was regenerated with +# npm 11+ (drops the top-level @emnapi entries npm 10 requires). Without this, +# `npm ci` still fails but with a cryptic "Missing: @emnapi/..." EUSAGE error. +RUN node -e "const l=require('./package-lock.json');const p=l.packages||{};const miss=['node_modules/@emnapi/core','node_modules/@emnapi/runtime'].filter(k=>!p[k]);if(miss.length){console.error('LOCKFILE NOT npm-10-COMPATIBLE — missing: '+miss.join(', '));console.error('Regenerate with: npx -y npm@10.9.8 install --package-lock-only');console.error('See AGENTS.md §1.');process.exit(1)}" RUN --mount=type=cache,target=/root/.npm \ npm ci diff --git a/package-lock.json b/package-lock.json index 70de0508..d73b75ee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -98,7 +98,6 @@ "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.29.7", "@babel/generator": "^7.29.7", @@ -325,7 +324,6 @@ "resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.3.1.tgz", "integrity": "sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==", "license": "MIT", - "peer": true, "dependencies": { "@dnd-kit/accessibility": "^3.1.1", "@dnd-kit/utilities": "^3.2.2", @@ -376,6 +374,29 @@ "react": ">=16.8.0" } }, + "node_modules/@emnapi/core": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.3.tgz", + "integrity": "sha512-zLpS5asjEb7lq8jYLq37N6XKaE41DIexlY1rF/z4/tIl3wo13Sqm28fRyfIsKZD+NZ8mM5RoKkpW/rBcuoSZSg==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.3", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.3.tgz", + "integrity": "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@emnapi/wasi-threads": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.3.tgz", @@ -383,6 +404,7 @@ "dev": true, "license": "MIT", "optional": true, + "peer": true, "dependencies": { "tslib": "^2.4.0" } @@ -1867,6 +1889,27 @@ "node": ">=14.0.0" } }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/core": { + "version": "1.11.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/runtime": { + "version": "1.11.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/wasi-threads": { "version": "1.2.2", "dev": true, @@ -2204,7 +2247,6 @@ "integrity": "sha512-fUBfTuuEulWqX6V8+O3PtScV01tzYYRUDTAirHFKoRAt7nOzoGiPt0M/bB47wWNy0coOOcgEwAMUtBpykMxl6w==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.67.0", "@typescript-eslint/types": "8.67.0", @@ -2909,7 +2951,6 @@ "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -3391,7 +3432,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.11.12", "caniuse-lite": "^1.0.30001809", @@ -3807,7 +3847,6 @@ "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", "license": "ISC", - "peer": true, "engines": { "node": ">=12" } @@ -4435,7 +4474,6 @@ "integrity": "sha512-DgZS62aPLXKlnxILS/AYCoRvHaZeXceIzlXPkkGGzJWSow1aEk0lbTlxUSlyjC8jcaKxAdOnTDz+o1JFSBsyjw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -4621,7 +4659,6 @@ "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.9", @@ -5559,7 +5596,6 @@ "resolved": "https://registry.npmjs.org/immer/-/immer-11.1.16.tgz", "integrity": "sha512-Xs7H9rBc+kti1J6RueUvbEBkmOz7jqj11XYgf+YMXAYzu8EeE7hwZ9poLXdVfVnGmJu7QAf41T7H2KuF6QoK6Q==", "license": "MIT", - "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/immer" @@ -6853,7 +6889,6 @@ "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.56.0.tgz", "integrity": "sha512-sXboRm3BeBeLm938eaiyLMe0OxzfXIlZvbv4ir/jVgQy1zDhWjgmny0WoN45fuDKhCCQsYMbBJrv/A6jd8aCUg==", "license": "MIT", - "peer": true, "dependencies": { "dompurify": "3.4.8", "marked": "14.0.0" @@ -6939,7 +6974,6 @@ "resolved": "https://registry.npmjs.org/next/-/next-16.3.1.tgz", "integrity": "sha512-hsAp0i7Rh+/dhe7DGIeN2YlpLM1DP4MNxti9EtDMtqcO612X81MvvEj388/oTce9U1EcEIOWDlGq0zRwrBKvuA==", "license": "MIT", - "peer": true, "dependencies": { "@next/env": "16.3.1", "@swc/helpers": "0.5.23", @@ -7696,7 +7730,6 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -7706,7 +7739,6 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz", "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==", "license": "MIT", - "peer": true, "dependencies": { "scheduler": "^0.27.0" }, @@ -7718,15 +7750,13 @@ "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/react-redux": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.3.0.tgz", "integrity": "sha512-KQopgqFo/p/fgmAs5qz6p5RWaNAzq40WAu7fJIXnQpYxFPbJYtsJPWvGeF2rOBaY/kEuV77AVsX8TsQzKm+A/g==", "license": "MIT", - "peer": true, "dependencies": { "@types/use-sync-external-store": "^0.0.6", "use-sync-external-store": "^1.4.0" @@ -7800,8 +7830,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/redux-thunk": { "version": "3.1.0", @@ -8866,7 +8895,6 @@ "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -9584,7 +9612,6 @@ "integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==", "dev": true, "license": "MIT", - "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/package.json b/package.json index 49e45fdc..6db5efae 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,9 @@ "build:bun": "bun --bun next build --webpack", "start:bun": "bun ./.next/standalone/custom-server.js", "cli:pack": "npm --prefix cli run pack:cli", - "cli:publish": "npm --prefix cli run publish:cli" + "cli:publish": "npm --prefix cli run publish:cli", + "verify:lockfile": "node scripts/verify-lockfile-npm10.mjs", + "lockfile:regen": "npx -y npm@10.9.8 install --package-lock-only" }, "dependencies": { "@dnd-kit/core": "^6.3.1", diff --git a/scripts/verify-lockfile-npm10.mjs b/scripts/verify-lockfile-npm10.mjs new file mode 100755 index 00000000..10ddcd18 --- /dev/null +++ b/scripts/verify-lockfile-npm10.mjs @@ -0,0 +1,71 @@ +#!/usr/bin/env node +/** + * verify-lockfile-npm10.mjs + * + * GUARD — DO NOT DELETE. + * + * Why this exists (root cause, 2026-09-19): + * The Docker image pins `node:22-alpine` by digest, which ships npm 10.9.8. + * The repo's `package-lock.json` is tracked (upstream does NOT track it) and + * the Dockerfile runs `npm ci`. If the lockfile is regenerated with npm 11+, + * npm 11 DROPS the top-level optional entries `@emnapi/core` and + * `@emnapi/runtime` that npm 10 requires for its platform-complete resolve. + * The tag-triggered "Build and Push Docker Image" workflow then fails at + * `npm ci` with: + * Missing: @emnapi/runtime@ from lock file + * Missing: @emnapi/core@ from lock file + * This already happened once on tag v1.0.14. + * + * Rule: ALWAYS regenerate package-lock.json with npm 10.x (the version Docker + * uses), never with the developer's global npm 11+. + * + * Correct: npx -y npm@10.9.8 install --package-lock-only + * Wrong: npm install # global npm 11+ silently breaks Docker + * + * This script asserts the lockfile still carries the entries npm 10 needs. + * Wire it into CI / pre-commit; exit 1 = lockfile will break the Docker build. + * + * Usage: node scripts/verify-lockfile-npm10.mjs + */ +import { readFileSync } from "node:fs"; +import { fileURLToPath } from "node:url"; +import { dirname, join } from "node:path"; + +const here = dirname(fileURLToPath(import.meta.url)); +const lockPath = join(here, "..", "package-lock.json"); + +let lock; +try { + lock = JSON.parse(readFileSync(lockPath, "utf8")); +} catch (err) { + console.error(`❌ Cannot read ${lockPath}: ${err.message}`); + process.exit(1); +} + +const packages = lock.packages || {}; +const required = ["node_modules/@emnapi/core", "node_modules/@emnapi/runtime"]; +const missing = required.filter((key) => !packages[key]); + +if (missing.length > 0) { + console.error( + [ + "❌ package-lock.json is NOT npm-10-compatible — the Docker build will fail at `npm ci`.", + "", + ` Missing top-level entries: ${missing.join(", ")}`, + "", + " Cause: the lockfile was regenerated with npm 11+, which drops the", + " top-level @emnapi entries that npm 10 (node:22-alpine in the Docker image) requires.", + "", + " Fix (run from repo root):", + " npx -y npm@10.9.8 install --package-lock-only", + " Then re-run: node scripts/verify-lockfile-npm10.mjs", + "", + " Do NOT use your global `npm install` to regenerate the lockfile.", + ].join("\n"), + ); + process.exit(1); +} + +console.log( + `✅ package-lock.json is npm-10-compatible (found ${required.join(", ")}). Docker \`npm ci\` will succeed.`, +); diff --git a/src/app/api/providers/[id]/test/testUtils.js b/src/app/api/providers/[id]/test/testUtils.js index 246e9983..1ccd2c0b 100644 --- a/src/app/api/providers/[id]/test/testUtils.js +++ b/src/app/api/providers/[id]/test/testUtils.js @@ -93,10 +93,13 @@ const OAUTH_TEST_CONFIG = { authPrefix: "Bearer ", }, "codebuddy-cn": { tokenExists: true }, - // CodeBuddy Intl access tokens are Keycloak JWTs (iss .../auth/realms/copilot); - // probe the realm's userinfo endpoint so a revoked/expired token is caught. - // Derive the realm URL from the token's `iss` claim, falling back to the - // known copilot realm. 200 = valid, 401 = invalid/revoked. + // GUARD — DO NOT REMOVE. See AGENTS.md §4. Without this entry, Test Connection + // returns "Provider test not supported". codebuddy-intl access tokens are + // Keycloak JWTs (iss .../auth/realms/copilot); probe the realm's userinfo + // endpoint so a revoked/expired token is caught. Derive the realm URL from the + // token's `iss` claim, falling back to the known copilot realm. + // 200 = valid, 401 = invalid/revoked. + // Covered by tests/unit/codebuddy-intl-connection.test.js. "codebuddy-intl": { buildUrl: (token) => { const iss = decodeJwtPayload(token)?.iss; diff --git a/src/lib/oauth/providers/codebuddy-intl.js b/src/lib/oauth/providers/codebuddy-intl.js index 7bb114be..66bd3905 100644 --- a/src/lib/oauth/providers/codebuddy-intl.js +++ b/src/lib/oauth/providers/codebuddy-intl.js @@ -68,9 +68,10 @@ const codebuddyIntl = { accessToken: tokens.access_token, refreshToken: tokens.refresh_token, expiresIn: tokens.expires_in || 86400, - // The CodeBuddy access token is a Keycloak JWT carrying email/name claims; - // surface them so a fresh OAuth login is named by identity (and deduped on - // re-login) instead of falling back to "Account N". + // GUARD — DO NOT REMOVE. See AGENTS.md §4. The CodeBuddy access token is a + // Keycloak JWT carrying email/name claims; surface them so a fresh OAuth + // login is named by identity (and deduped on re-login) instead of falling + // back to "Account N". Covered by tests/unit/codebuddy-intl-connection.test.js. email: extractEmailFromAccessToken(tokens.access_token) || null, displayName: extractDisplayNameFromAccessToken(tokens.access_token) || null, providerSpecificData: {}, diff --git a/src/shared/utils/usageProviders.js b/src/shared/utils/usageProviders.js index 2432df70..9c166289 100644 --- a/src/shared/utils/usageProviders.js +++ b/src/shared/utils/usageProviders.js @@ -1,5 +1,7 @@ // Provider list for the Usage page. // +// GUARD — DO NOT DELETE the `!p.hidden` filter below. See AGENTS.md §3. +// // Two sources, deduped by provider id: // 1. Active LLM connections (one entry per provider). // 2. noAuth free providers that need no connection (e.g. opencode). @@ -7,6 +9,7 @@ // Hidden providers are excluded — the Providers page filters `hidden`, so a // hidden noAuth provider (devin-cli, mimo-free) must not leak into Usage with // zero connections and zero traffic. +// Covered by tests/unit/usage-provider-list.test.js. export function buildUsageProviderList({ connections = [], freeProviders = {}, diff --git a/tests/setup/isolateDataDir.js b/tests/setup/isolateDataDir.js index 06e11bbd..fa207952 100644 --- a/tests/setup/isolateDataDir.js +++ b/tests/setup/isolateDataDir.js @@ -4,6 +4,9 @@ // they append test rows ("zed-live-*@example.com", "guard-*@example.com", // "Account N") straight into the live DB. // +// GUARD — DO NOT DELETE this file or remove it from vitest.config.js setupFiles. +// See AGENTS.md §2. Covered by tests/unit/test-data-dir-isolation.test.js. +// // DATA_DIR must be set before src/lib/dataDir.js is imported (it reads the env // at module-eval time), which is exactly what a vitest setupFile guarantees. // diff --git a/tests/unit/lockfile-npm10-guard.test.js b/tests/unit/lockfile-npm10-guard.test.js new file mode 100644 index 00000000..c05a1106 --- /dev/null +++ b/tests/unit/lockfile-npm10-guard.test.js @@ -0,0 +1,31 @@ +// GUARD — DO NOT DELETE. See AGENTS.md §1. +// +// The Docker image (node:22-alpine, pinned by digest) ships npm 10.9.8 and runs +// `npm ci` against the committed package-lock.json. Regenerating the lockfile +// with npm 11+ drops the top-level @emnapi/core + @emnapi/runtime entries npm 10 +// requires, breaking the tag-triggered Docker build at `npm ci` (already +// happened on tag v1.0.14). +// +// Regenerate the lockfile with npm 10 only: +// npx -y npm@10.9.8 install --package-lock-only +import { describe, it, expect } from "vitest"; +import { readFileSync } from "node:fs"; +import { fileURLToPath } from "node:url"; +import { dirname, join } from "node:path"; + +const here = dirname(fileURLToPath(import.meta.url)); +const lock = JSON.parse(readFileSync(join(here, "..", "..", "package-lock.json"), "utf8")); + +describe("package-lock.json is npm-10-compatible (Docker npm ci)", () => { + it("keeps the top-level @emnapi/core entry npm 10 requires", () => { + expect(lock.packages?.["node_modules/@emnapi/core"]).toBeTruthy(); + }); + + it("keeps the top-level @emnapi/runtime entry npm 10 requires", () => { + expect(lock.packages?.["node_modules/@emnapi/runtime"]).toBeTruthy(); + }); + + it("stays on lockfileVersion 3", () => { + expect(lock.lockfileVersion).toBe(3); + }); +});