From ff25c2fef739b5500d08c134cc2b57122befff31 Mon Sep 17 00:00:00 2001 From: baiyanyun Date: Mon, 8 Jun 2026 11:57:47 +0800 Subject: [PATCH] feat(client): project plan and task agents --- .../src/lib/qimingclawAdapter.ts | 128 ++++++++++++++++++ .../src/pages/digital/CommandDeck.tsx | 14 +- .../embedded/sgrobot-digital/src/types/api.ts | 36 +++++ .../sgrobot-digital/assets/index-C9vE8PTK.js | 128 ++++++++++++++++++ .../sgrobot-digital/assets/index-DALQvQtr.js | 128 ------------------ .../public/sgrobot-digital/index.html | 2 +- ...ital-employee-frontend-integration-plan.md | 9 ++ 7 files changed, 315 insertions(+), 130 deletions(-) create mode 100644 qimingclaw/crates/agent-electron-client/public/sgrobot-digital/assets/index-C9vE8PTK.js delete mode 100644 qimingclaw/crates/agent-electron-client/public/sgrobot-digital/assets/index-DALQvQtr.js diff --git a/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/lib/qimingclawAdapter.ts b/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/lib/qimingclawAdapter.ts index 83c1523c..89c5158c 100644 --- a/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/lib/qimingclawAdapter.ts +++ b/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/lib/qimingclawAdapter.ts @@ -11,7 +11,9 @@ import type { DigitalEmployeeDecision, DigitalEmployeeDuty, DigitalEmployeeManagedService, + DigitalEmployeePlanAgentState, DigitalEmployeeRunDetail, + DigitalEmployeeTaskAgentState, DigitalEmployeeTaskExecutionSummary, DigitalEmployeeWorkEvent, DigitalEmployeeWorkdayActionRequest, @@ -829,6 +831,63 @@ function planRecordStatus(plan: QimingclawPlanRecord, tasks: QimingclawTaskRecor return plan.status || 'pending'; } +function buildPlanAgents(snapshot: QimingclawSnapshot | null): DigitalEmployeePlanAgentState[] { + return runtimePlans(snapshot).map((plan) => { + const tasks = runtimePlanTasks(snapshot, plan.id); + const status = planRecordStatus(plan, tasks); + const tone = planStatusTone(status); + const failedTaskCount = tasks.filter((task) => taskStatusTone(task.status) === 'danger').length; + const runningTaskCount = tasks.filter((task) => taskStatusTone(task.status) === 'running').length; + return { + agent_id: `plan-agent-${slugifyIdPart(plan.id)}`, + plan_id: plan.id, + title: plan.title, + lifecycle: status, + status_label: planStatusLabel(status), + status_tone: tone, + managed_task_count: tasks.length, + running_task_count: runningTaskCount, + failed_task_count: failedTaskCount, + next_action: failedTaskCount > 0 ? 'review_failures' : runningTaskCount > 0 ? 'monitor_runs' : tone === 'success' ? 'archive_results' : 'activate_plan', + can_replan: failedTaskCount > 0, + can_pause: runningTaskCount > 0, + can_resume: status === 'paused', + updated_at: latestRuntimeTime(plan, tasks), + }; + }); +} + +function buildTaskAgents(snapshot: QimingclawSnapshot | null): DigitalEmployeeTaskAgentState[] { + const runs = runtimeRuns(snapshot); + return runtimeTasks(snapshot).map((task) => { + const latestRun = latestRunForTask(runs, task.id); + const tone = taskStatusTone(task.status); + return { + agent_id: `task-agent-${slugifyIdPart(task.id)}`, + task_id: task.id, + plan_id: task.planId ?? null, + title: task.title, + execution_state: task.status, + status_label: taskStatusLabel(task.status), + status_tone: tone, + assigned_skill_id: task.assignedSkillId ?? null, + latest_run_id: latestRun?.id ?? null, + can_retry: tone === 'danger', + can_skip: tone === 'danger' || tone === 'waiting', + can_cancel: tone === 'running', + next_action: tone === 'danger' ? 'retry_or_skip' : tone === 'running' ? 'watch_progress' : tone === 'success' ? 'collect_artifacts' : 'start_run', + updated_at: latestRun?.updatedAt ?? task.updatedAt, + }; + }); +} + +function latestRunForTask(runs: QimingclawRunRecord[], taskId: string): QimingclawRunRecord | null { + const sorted = runs + .filter((run) => run.taskId === taskId) + .sort((left, right) => (right.updatedAt || right.createdAt).localeCompare(left.updatedAt || left.createdAt)); + return sorted[0] ?? null; +} + function runtimePlanToDebugPlan(plan: QimingclawPlanRecord, snapshot: QimingclawSnapshot | null): DebugPlan { const tasks = runtimePlanTasks(snapshot, plan.id); const status = planRecordStatus(plan, tasks); @@ -1800,6 +1859,9 @@ function buildWorkday(date: string, snapshot: QimingclawSnapshot | null): Digita const managedServices = buildManagedServices(snapshot); const managedServiceIssues = managedServices.filter((service) => service.requires_human_action || service.status === 'degraded'); const runningManagedServiceCount = managedServices.filter((service) => service.running).length; + const planAgents = buildPlanAgents(snapshot); + const taskAgents = buildTaskAgents(snapshot); + const actionableTaskAgents = taskAgents.filter((agent) => agent.can_retry || agent.can_skip || agent.can_cancel); return { source: 'live', @@ -1852,9 +1914,14 @@ function buildWorkday(date: string, snapshot: QimingclawSnapshot | null): Digita { label: '同步异常', value: String(sync?.failed ?? 0) }, { label: '服务运行', value: `${runningManagedServiceCount}/${managedServices.length}` }, { label: '需处理服务', value: String(managedServiceIssues.length) }, + { label: 'Plan Agent', value: String(planAgents.length) }, + { label: 'Task Agent', value: String(taskAgents.length) }, + { label: '可治理任务', value: String(actionableTaskAgents.length) }, ], }, managed_services: managedServices, + plan_agents: planAgents, + task_agents: taskAgents, duties, events, execution_summaries: executionSummaries, @@ -1875,6 +1942,10 @@ function buildWorkday(date: string, snapshot: QimingclawSnapshot | null): Digita serviceLine(snapshot, 'computerServer', 'Computer Server'), managedServiceSummary(managedServices), ...managedServiceIssues.slice(0, 3).map(managedServiceLine), + `Plan Agent:${planAgents.length} 个计划代理,Task Agent:${taskAgents.length} 个任务代理。`, + actionableTaskAgents[0] + ? `待治理任务:${actionableTaskAgents[0].title},下一步 ${actionableTaskAgents[0].next_action}。` + : 'Task Agent:暂无需要重试、跳过或取消的任务。', syncLine(snapshot), `活跃会话:${snapshot?.sessions.active ?? 0} / ${snapshot?.sessions.total ?? 0}`, ], @@ -2054,6 +2125,9 @@ async function handleGovernanceCommand( const planId = stringFromUnknown(body.context_refs?.plan_id) || stringFromUnknown(body.payload?.plan_id) || stringFromUnknown(body.payload?.original_plan_id); + const taskId = stringFromUnknown(body.context_refs?.task_id) + || stringFromUnknown(body.payload?.task_id) + || stringFromUnknown(body.payload?.original_task_id); const scheduleId = stringFromUnknown(body.context_refs?.schedule_id) || stringFromUnknown(body.payload?.schedule_id); @@ -2108,6 +2182,20 @@ async function handleGovernanceCommand( return response; } + if (['retry_task', 'skip_task', 'pause_task', 'resume_task', 'provide_task_input', 'cancel_task', 'start_run', 'cancel_run'].includes(body.command_kind)) { + const targetTask = taskId || runtimeTasks(snapshot)[0]?.id || 'qimingclaw-task-agent'; + const response = governanceAccepted(commandId, correlationId, `已接受 ${body.command_kind},并记录到 qimingclaw Task Agent 控制平面。`, { + plan_id: planId || runtimeTasks(snapshot).find((task) => task.id === targetTask)?.planId || 'qimingclaw-task-agent-plan', + task_id: targetTask, + task_agent_id: `task-agent-${slugifyIdPart(targetTask)}`, + status: taskGovernanceStatus(body.command_kind), + next_action: taskGovernanceNextAction(body.command_kind), + source: 'qimingclaw-task-agent', + }); + await recordGovernanceCommand(body, response); + return response; + } + const response = { command_id: commandId, accepted: false, @@ -2134,6 +2222,46 @@ function governanceAccepted( }; } +function taskGovernanceStatus(commandKind: string): string { + switch (commandKind) { + case 'retry_task': + case 'start_run': + case 'resume_task': + return 'running'; + case 'skip_task': + return 'skipped'; + case 'cancel_task': + case 'cancel_run': + return 'cancelled'; + case 'pause_task': + return 'paused'; + default: + return 'accepted'; + } +} + +function taskGovernanceNextAction(commandKind: string): string { + switch (commandKind) { + case 'retry_task': + return 'start_retry_run'; + case 'skip_task': + return 'continue_next_task'; + case 'pause_task': + return 'await_resume'; + case 'resume_task': + return 'watch_progress'; + case 'provide_task_input': + return 'resume_with_input'; + case 'cancel_task': + case 'cancel_run': + return 'close_execution'; + case 'start_run': + return 'watch_progress'; + default: + return 'record_control_event'; + } +} + function stringFromUnknown(value: unknown): string { return typeof value === 'string' && value.trim() ? value.trim() : ''; } diff --git a/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/pages/digital/CommandDeck.tsx b/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/pages/digital/CommandDeck.tsx index 207a1b39..317ace7d 100644 --- a/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/pages/digital/CommandDeck.tsx +++ b/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/pages/digital/CommandDeck.tsx @@ -18,6 +18,7 @@ import type { DigitalEmployeeDuty, DigitalEmployeeManagedService, DigitalEmployeeRunDetail, + DigitalEmployeeTaskAgentState, DigitalEmployeeTaskExecutionSummary, DigitalEmployeeWorkEvent, DigitalEmployeeWorkdayProjection, @@ -717,6 +718,11 @@ function managedServiceSummary(service: DigitalEmployeeManagedService): string { return `${service.name} ${service.status_label}${service.error ? `:${service.error}` : deps}`; } +function taskAgentSummary(agent: DigitalEmployeeTaskAgentState): string { + const next = agent.next_action === 'retry_or_skip' ? '重试或跳过' : agent.next_action === 'watch_progress' ? '观察进度' : agent.next_action; + return `${agent.title} ${agent.status_label},下一步 ${next}`; +} + function isDecisionOpen(status?: string): boolean { return ['pending', 'requested'].includes(String(status || '').toLowerCase()); } @@ -998,6 +1004,8 @@ export default function CommandDeck({ onNavigate }: { onNavigate: (target: Digit const delivery = workdayProjection?.delivery; const managedServices = isLiveProjection ? (workdayProjection?.managed_services ?? []) : []; const managedServiceIssues = managedServices.filter((service) => service.requires_human_action || service.status === 'degraded'); + const taskAgents = isLiveProjection ? (workdayProjection?.task_agents ?? []) : []; + const actionableTaskAgents = taskAgents.filter((agent) => agent.can_retry || agent.can_skip || agent.can_cancel); const dailyReport = isLiveProjection ? workdayProjection?.daily_report : undefined; const runDetails = isLiveProjection ? (workdayProjection?.run_details?.length ? workdayProjection.run_details : allEvents.map(runDetailFromEvent)) @@ -1055,14 +1063,18 @@ export default function CommandDeck({ onNavigate }: { onNavigate: (target: Digit ? `已加载 ${totalDuties.length} 项任务,当前选择 ${selectedDuties.length} 项;右侧展示真实执行状态、运行明细和日报。` : (workday?.summary ?? '等待同步当天任务计划。'); const currentActionTitle = currentEvent?.task_title - ?? (managedServiceIssues[0] ? managedServiceIssues[0].name : workday?.confirmed ? '等待下一条执行事件' : '等待确认任务设置'); + ?? (actionableTaskAgents[0] ? actionableTaskAgents[0].title : managedServiceIssues[0] ? managedServiceIssues[0].name : workday?.confirmed ? '等待下一条执行事件' : '等待确认任务设置'); const currentActionDetail = currentEvent ? `${currentEvent.plan_title}:${eventBusinessResult(currentEvent)}(${eventTimingSummary(currentEvent)})` + : actionableTaskAgents[0] + ? taskAgentSummary(actionableTaskAgents[0]) : managedServiceIssues[0] ? managedServiceSummary(managedServiceIssues[0]) : '任务执行后会显示正在处理的任务、步骤或汇总动作。'; const nextStepText = pendingDecisions[0] ? `等待人工确认:${pendingDecisions[0].title}` + : actionableTaskAgents[0] + ? `Task Agent:${taskAgentSummary(actionableTaskAgents[0])}` : managedServiceIssues[0] ? `处理服务状态:${managedServiceSummary(managedServiceIssues[0])}` : workday?.confirmed diff --git a/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/types/api.ts b/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/types/api.ts index ecf0b8a4..3fd77828 100644 --- a/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/types/api.ts +++ b/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/types/api.ts @@ -605,6 +605,40 @@ export interface DigitalEmployeeManagedService { lease?: Record; } +export interface DigitalEmployeePlanAgentState { + agent_id: string; + plan_id: string; + title: string; + lifecycle: string; + status_label: string; + status_tone: string; + managed_task_count: number; + running_task_count: number; + failed_task_count: number; + next_action: string; + can_replan: boolean; + can_pause: boolean; + can_resume: boolean; + updated_at?: string | null; +} + +export interface DigitalEmployeeTaskAgentState { + agent_id: string; + task_id: string; + plan_id?: string | null; + title: string; + execution_state: string; + status_label: string; + status_tone: string; + assigned_skill_id?: string | null; + latest_run_id?: string | null; + can_retry: boolean; + can_skip: boolean; + can_cancel: boolean; + next_action: string; + updated_at?: string | null; +} + export interface DigitalEmployeeWorkEvent { id: string; time: string; @@ -728,6 +762,8 @@ export interface DigitalEmployeeWorkdayProjection { workday: DigitalEmployeeWorkdayState; overview: DigitalEmployeeOverview; managed_services?: DigitalEmployeeManagedService[]; + plan_agents?: DigitalEmployeePlanAgentState[]; + task_agents?: DigitalEmployeeTaskAgentState[]; duties: DigitalEmployeeDuty[]; events: DigitalEmployeeWorkEvent[]; execution_summaries?: DigitalEmployeeTaskExecutionSummary[]; diff --git a/qimingclaw/crates/agent-electron-client/public/sgrobot-digital/assets/index-C9vE8PTK.js b/qimingclaw/crates/agent-electron-client/public/sgrobot-digital/assets/index-C9vE8PTK.js new file mode 100644 index 00000000..3159fe14 --- /dev/null +++ b/qimingclaw/crates/agent-electron-client/public/sgrobot-digital/assets/index-C9vE8PTK.js @@ -0,0 +1,128 @@ +(function(){const i=document.createElement("link").relList;if(i&&i.supports&&i.supports("modulepreload"))return;for(const d of document.querySelectorAll('link[rel="modulepreload"]'))c(d);new MutationObserver(d=>{for(const f of d)if(f.type==="childList")for(const g of f.addedNodes)g.tagName==="LINK"&&g.rel==="modulepreload"&&c(g)}).observe(document,{childList:!0,subtree:!0});function r(d){const f={};return d.integrity&&(f.integrity=d.integrity),d.referrerPolicy&&(f.referrerPolicy=d.referrerPolicy),d.crossOrigin==="use-credentials"?f.credentials="include":d.crossOrigin==="anonymous"?f.credentials="omit":f.credentials="same-origin",f}function c(d){if(d.ep)return;d.ep=!0;const f=r(d);fetch(d.href,f)}})();function Dv(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var Uo={exports:{}},xs={};/** + * @license React + * react-jsx-runtime.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var _g;function Mv(){if(_g)return xs;_g=1;var a=Symbol.for("react.transitional.element"),i=Symbol.for("react.fragment");function r(c,d,f){var g=null;if(f!==void 0&&(g=""+f),d.key!==void 0&&(g=""+d.key),"key"in d){f={};for(var _ in d)_!=="key"&&(f[_]=d[_])}else f=d;return d=f.ref,{$$typeof:a,type:c,key:g,ref:d!==void 0?d:null,props:f}}return xs.Fragment=i,xs.jsx=r,xs.jsxs=r,xs}var vg;function zv(){return vg||(vg=1,Uo.exports=Mv()),Uo.exports}var u=zv(),Bo={exports:{}},ye={};/** + * @license React + * react.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var bg;function Rv(){if(bg)return ye;bg=1;var a=Symbol.for("react.transitional.element"),i=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),c=Symbol.for("react.strict_mode"),d=Symbol.for("react.profiler"),f=Symbol.for("react.consumer"),g=Symbol.for("react.context"),_=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),w=Symbol.for("react.lazy"),S=Symbol.for("react.activity"),k=Symbol.iterator;function z(j){return j===null||typeof j!="object"?null:(j=k&&j[k]||j["@@iterator"],typeof j=="function"?j:null)}var T={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},q=Object.assign,O={};function G(j,$,Z){this.props=j,this.context=$,this.refs=O,this.updater=Z||T}G.prototype.isReactComponent={},G.prototype.setState=function(j,$){if(typeof j!="object"&&typeof j!="function"&&j!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,j,$,"setState")},G.prototype.forceUpdate=function(j){this.updater.enqueueForceUpdate(this,j,"forceUpdate")};function I(){}I.prototype=G.prototype;function J(j,$,Z){this.props=j,this.context=$,this.refs=O,this.updater=Z||T}var ne=J.prototype=new I;ne.constructor=J,q(ne,G.prototype),ne.isPureReactComponent=!0;var se=Array.isArray;function ce(){}var Q={H:null,A:null,T:null,S:null},ee=Object.prototype.hasOwnProperty;function P(j,$,Z){var W=Z.ref;return{$$typeof:a,type:j,key:$,ref:W!==void 0?W:null,props:Z}}function rt(j,$){return P(j.type,$,j.props)}function Fe(j){return typeof j=="object"&&j!==null&&j.$$typeof===a}function me(j){var $={"=":"=0",":":"=2"};return"$"+j.replace(/[=:]/g,function(Z){return $[Z]})}var X=/\/+/g;function ue(j,$){return typeof j=="object"&&j!==null&&j.key!=null?me(""+j.key):$.toString(36)}function B(j){switch(j.status){case"fulfilled":return j.value;case"rejected":throw j.reason;default:switch(typeof j.status=="string"?j.then(ce,ce):(j.status="pending",j.then(function($){j.status==="pending"&&(j.status="fulfilled",j.value=$)},function($){j.status==="pending"&&(j.status="rejected",j.reason=$)})),j.status){case"fulfilled":return j.value;case"rejected":throw j.reason}}throw j}function C(j,$,Z,W,oe){var _e=typeof j;(_e==="undefined"||_e==="boolean")&&(j=null);var Ne=!1;if(j===null)Ne=!0;else switch(_e){case"bigint":case"string":case"number":Ne=!0;break;case"object":switch(j.$$typeof){case a:case i:Ne=!0;break;case w:return Ne=j._init,C(Ne(j._payload),$,Z,W,oe)}}if(Ne)return oe=oe(j),Ne=W===""?"."+ue(j,0):W,se(oe)?(Z="",Ne!=null&&(Z=Ne.replace(X,"$&/")+"/"),C(oe,$,Z,"",function(F){return F})):oe!=null&&(Fe(oe)&&(oe=rt(oe,Z+(oe.key==null||j&&j.key===oe.key?"":(""+oe.key).replace(X,"$&/")+"/")+Ne)),$.push(oe)),1;Ne=0;var Pe=W===""?".":W+":";if(se(j))for(var K=0;K>>1,Se=C[ge];if(0>>1;ged(Z,ae))Wd(oe,Z)?(C[ge]=oe,C[W]=ae,ge=W):(C[ge]=Z,C[$]=ae,ge=$);else if(Wd(oe,ae))C[ge]=oe,C[W]=ae,ge=W;else break e}}return Y}function d(C,Y){var ae=C.sortIndex-Y.sortIndex;return ae!==0?ae:C.id-Y.id}if(a.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var f=performance;a.unstable_now=function(){return f.now()}}else{var g=Date,_=g.now();a.unstable_now=function(){return g.now()-_}}var h=[],p=[],w=1,S=null,k=3,z=!1,T=!1,q=!1,O=!1,G=typeof setTimeout=="function"?setTimeout:null,I=typeof clearTimeout=="function"?clearTimeout:null,J=typeof setImmediate<"u"?setImmediate:null;function ne(C){for(var Y=r(p);Y!==null;){if(Y.callback===null)c(p);else if(Y.startTime<=C)c(p),Y.sortIndex=Y.expirationTime,i(h,Y);else break;Y=r(p)}}function se(C){if(q=!1,ne(C),!T)if(r(h)!==null)T=!0,ce||(ce=!0,me());else{var Y=r(p);Y!==null&&B(se,Y.startTime-C)}}var ce=!1,Q=-1,ee=5,P=-1;function rt(){return O?!0:!(a.unstable_now()-PC&&rt());){var ge=S.callback;if(typeof ge=="function"){S.callback=null,k=S.priorityLevel;var Se=ge(S.expirationTime<=C);if(C=a.unstable_now(),typeof Se=="function"){S.callback=Se,ne(C),Y=!0;break t}S===r(h)&&c(h),ne(C)}else c(h);S=r(h)}if(S!==null)Y=!0;else{var j=r(p);j!==null&&B(se,j.startTime-C),Y=!1}}break e}finally{S=null,k=ae,z=!1}Y=void 0}}finally{Y?me():ce=!1}}}var me;if(typeof J=="function")me=function(){J(Fe)};else if(typeof MessageChannel<"u"){var X=new MessageChannel,ue=X.port2;X.port1.onmessage=Fe,me=function(){ue.postMessage(null)}}else me=function(){G(Fe,0)};function B(C,Y){Q=G(function(){C(a.unstable_now())},Y)}a.unstable_IdlePriority=5,a.unstable_ImmediatePriority=1,a.unstable_LowPriority=4,a.unstable_NormalPriority=3,a.unstable_Profiling=null,a.unstable_UserBlockingPriority=2,a.unstable_cancelCallback=function(C){C.callback=null},a.unstable_forceFrameRate=function(C){0>C||125ge?(C.sortIndex=ae,i(p,C),r(h)===null&&C===r(p)&&(q?(I(Q),Q=-1):q=!0,B(se,ae-ge))):(C.sortIndex=Se,i(h,C),T||z||(T=!0,ce||(ce=!0,me()))),C},a.unstable_shouldYield=rt,a.unstable_wrapCallback=function(C){var Y=k;return function(){var ae=k;k=Y;try{return C.apply(this,arguments)}finally{k=ae}}}})(Yo)),Yo}var jg;function $v(){return jg||(jg=1,Go.exports=qv()),Go.exports}var Qo={exports:{}},At={};/** + * @license React + * react-dom.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var wg;function Lv(){if(wg)return At;wg=1;var a=Sd();function i(h){var p="https://react.dev/errors/"+h;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(a)}catch(i){console.error(i)}}return a(),Qo.exports=Lv(),Qo.exports}/** + * @license React + * react-dom-client.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var kg;function Bv(){if(kg)return js;kg=1;var a=$v(),i=Sd(),r=Uv();function c(e){var t="https://react.dev/errors/"+e;if(1Se||(e.current=ge[Se],ge[Se]=null,Se--)}function Z(e,t){Se++,ge[Se]=e.current,e.current=t}var W=j(null),oe=j(null),_e=j(null),Ne=j(null);function Pe(e,t){switch(Z(_e,t),Z(oe,e),Z(W,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Hh(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Hh(t),e=Gh(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}$(W),Z(W,e)}function K(){$(W),$(oe),$(_e)}function F(e){e.memoizedState!==null&&Z(Ne,e);var t=W.current,n=Gh(t,e.type);t!==n&&(Z(oe,e),Z(W,n))}function pe(e){oe.current===e&&($(W),$(oe)),Ne.current===e&&($(Ne),_s._currentValue=ae)}var Oe,et;function ct(e){if(Oe===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);Oe=t&&t[1]||"",et=-1)":-1s||x[l]!==D[s]){var L=` +`+x[l].replace(" at new "," at ");return e.displayName&&L.includes("")&&(L=L.replace("",e.displayName)),L}while(1<=l&&0<=s);break}}}finally{Tt=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?ct(n):""}function wt(e,t){switch(e.tag){case 26:case 27:case 5:return ct(e.type);case 16:return ct("Lazy");case 13:return e.child!==t&&t!==null?ct("Suspense Fallback"):ct("Suspense");case 19:return ct("SuspenseList");case 0:case 15:return qe(e.type,!1);case 11:return qe(e.type.render,!1);case 1:return qe(e.type,!0);case 31:return ct("Activity");default:return""}}function Bn(e){try{var t="",n=null;do t+=wt(e,n),n=e,e=e.return;while(e);return t}catch(l){return` +Error generating stack: `+l.message+` +`+l.stack}}var Ia=Object.prototype.hasOwnProperty,xi=a.unstable_scheduleCallback,vt=a.unstable_cancelCallback,Us=a.unstable_shouldYield,Ce=a.unstable_requestPaint,ht=a.unstable_now,En=a.unstable_getCurrentPriorityLevel,Pt=a.unstable_ImmediatePriority,Wa=a.unstable_UserBlockingPriority,Mt=a.unstable_NormalPriority,Nt=a.unstable_LowPriority,Pa=a.unstable_IdlePriority,Hn=a.log,el=a.unstable_setDisableYieldValue,Gn=null,Ye=null;function kn(e){if(typeof Hn=="function"&&el(e),Ye&&typeof Ye.setStrictMode=="function")try{Ye.setStrictMode(Gn,e)}catch{}}var Et=Math.clz32?Math.clz32:ji,ha=Math.log,Oc=Math.LN2;function ji(e){return e>>>=0,e===0?32:31-(ha(e)/Oc|0)|0}var Tl=256,Nl=262144,Cl=4194304;function Yn(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function zt(e,t,n){var l=e.pendingLanes;if(l===0)return 0;var s=0,o=e.suspendedLanes,m=e.pingedLanes;e=e.warmLanes;var y=l&134217727;return y!==0?(l=y&~o,l!==0?s=Yn(l):(m&=y,m!==0?s=Yn(m):n||(n=y&~e,n!==0&&(s=Yn(n))))):(y=l&~o,y!==0?s=Yn(y):m!==0?s=Yn(m):n||(n=l&~e,n!==0&&(s=Yn(n)))),s===0?0:t!==0&&t!==s&&(t&o)===0&&(o=s&-s,n=t&-t,o>=n||o===32&&(n&4194048)!==0)?t:s}function ze(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function ke(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Dl(){var e=Cl;return Cl<<=1,(Cl&62914560)===0&&(Cl=4194304),e}function Bs(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function en(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Hd(e,t,n,l,s,o){var m=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var y=e.entanglements,x=e.expirationTimes,D=e.hiddenUpdates;for(n=m&~n;0"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var Ks=/[\n"\\]/g;function Ot(e){return e.replace(Ks,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function Di(e,t,n,l,s,o,m,y){e.name="",m!=null&&typeof m!="function"&&typeof m!="symbol"&&typeof m!="boolean"?e.type=m:e.removeAttribute("type"),t!=null?m==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+Rt(t)):e.value!==""+Rt(t)&&(e.value=""+Rt(t)):m!=="submit"&&m!=="reset"||e.removeAttribute("value"),t!=null?Mi(e,m,Rt(t)):n!=null?Mi(e,m,Rt(n)):l!=null&&e.removeAttribute("value"),s==null&&o!=null&&(e.defaultChecked=!!o),s!=null&&(e.checked=s&&typeof s!="function"&&typeof s!="symbol"),y!=null&&typeof y!="function"&&typeof y!="symbol"&&typeof y!="boolean"?e.name=""+Rt(y):e.removeAttribute("name")}function Xs(e,t,n,l,s,o,m,y){if(o!=null&&typeof o!="function"&&typeof o!="symbol"&&typeof o!="boolean"&&(e.type=o),t!=null||n!=null){if(!(o!=="submit"&&o!=="reset"||t!=null)){Ni(e);return}n=n!=null?""+Rt(n):"",t=t!=null?""+Rt(t):n,y||t===e.value||(e.value=t),e.defaultValue=t}l=l??s,l=typeof l!="function"&&typeof l!="symbol"&&!!l,e.checked=y?e.checked:!!l,e.defaultChecked=!!l,m!=null&&typeof m!="function"&&typeof m!="symbol"&&typeof m!="boolean"&&(e.name=m),Ni(e)}function Mi(e,t,n){t==="number"&&tl(e.ownerDocument)===e||e.defaultValue===""+n||(e.defaultValue=""+n)}function ba(e,t,n,l){if(e=e.options,t){t={};for(var s=0;s"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),$l=!1;if(nn)try{var v={};Object.defineProperty(v,"passive",{get:function(){$l=!0}}),window.addEventListener("test",v,v),window.removeEventListener("test",v,v)}catch{$l=!1}var V=null,fe=null,Ke=null;function yt(){if(Ke)return Ke;var e,t=fe,n=t.length,l,s="value"in V?V.value:V.textContent,o=s.length;for(e=0;e=Ui),Zd=" ",Vd=!1;function Jd(e,t){switch(e){case"keyup":return Py.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Fd(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Ll=!1;function t_(e,t){switch(e){case"compositionend":return Fd(t);case"keypress":return t.which!==32?null:(Vd=!0,Zd);case"textInput":return e=t.data,e===Zd&&Vd?null:e;default:return null}}function n_(e,t){if(Ll)return e==="compositionend"||!Qc&&Jd(e,t)?(e=yt(),Ke=fe=V=null,Ll=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=l}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=lf(n)}}function rf(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?rf(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function cf(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=tl(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=tl(e.document)}return t}function Zc(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var o_=nn&&"documentMode"in document&&11>=document.documentMode,Ul=null,Vc=null,Yi=null,Jc=!1;function uf(e,t,n){var l=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Jc||Ul==null||Ul!==tl(l)||(l=Ul,"selectionStart"in l&&Zc(l)?l={start:l.selectionStart,end:l.selectionEnd}:(l=(l.ownerDocument&&l.ownerDocument.defaultView||window).getSelection(),l={anchorNode:l.anchorNode,anchorOffset:l.anchorOffset,focusNode:l.focusNode,focusOffset:l.focusOffset}),Yi&&Gi(Yi,l)||(Yi=l,l=Hr(Vc,"onSelect"),0>=m,s-=m,Rn=1<<32-Et(t)+s|n<be?(Ee=le,le=null):Ee=le.sibling;var Me=M(A,le,N[be],U);if(Me===null){le===null&&(le=Ee);break}e&&le&&Me.alternate===null&&t(A,le),E=o(Me,E,be),De===null?re=Me:De.sibling=Me,De=Me,le=Ee}if(be===N.length)return n(A,le),Ae&&Zn(A,be),re;if(le===null){for(;bebe?(Ee=le,le=null):Ee=le.sibling;var Za=M(A,le,Me.value,U);if(Za===null){le===null&&(le=Ee);break}e&&le&&Za.alternate===null&&t(A,le),E=o(Za,E,be),De===null?re=Za:De.sibling=Za,De=Za,le=Ee}if(Me.done)return n(A,le),Ae&&Zn(A,be),re;if(le===null){for(;!Me.done;be++,Me=N.next())Me=H(A,Me.value,U),Me!==null&&(E=o(Me,E,be),De===null?re=Me:De.sibling=Me,De=Me);return Ae&&Zn(A,be),re}for(le=l(le);!Me.done;be++,Me=N.next())Me=R(le,A,be,Me.value,U),Me!==null&&(e&&Me.alternate!==null&&le.delete(Me.key===null?be:Me.key),E=o(Me,E,be),De===null?re=Me:De.sibling=Me,De=Me);return e&&le.forEach(function(Cv){return t(A,Cv)}),Ae&&Zn(A,be),re}function He(A,E,N,U){if(typeof N=="object"&&N!==null&&N.type===q&&N.key===null&&(N=N.props.children),typeof N=="object"&&N!==null){switch(N.$$typeof){case z:e:{for(var re=N.key;E!==null;){if(E.key===re){if(re=N.type,re===q){if(E.tag===7){n(A,E.sibling),U=s(E,N.props.children),U.return=A,A=U;break e}}else if(E.elementType===re||typeof re=="object"&&re!==null&&re.$$typeof===ee&&dl(re)===E.type){n(A,E.sibling),U=s(E,N.props),Ji(U,N),U.return=A,A=U;break e}n(A,E);break}else t(A,E);E=E.sibling}N.type===q?(U=sl(N.props.children,A.mode,U,N.key),U.return=A,A=U):(U=lr(N.type,N.key,N.props,null,A.mode,U),Ji(U,N),U.return=A,A=U)}return m(A);case T:e:{for(re=N.key;E!==null;){if(E.key===re)if(E.tag===4&&E.stateNode.containerInfo===N.containerInfo&&E.stateNode.implementation===N.implementation){n(A,E.sibling),U=s(E,N.children||[]),U.return=A,A=U;break e}else{n(A,E);break}else t(A,E);E=E.sibling}U=nu(N,A.mode,U),U.return=A,A=U}return m(A);case ee:return N=dl(N),He(A,E,N,U)}if(B(N))return te(A,E,N,U);if(me(N)){if(re=me(N),typeof re!="function")throw Error(c(150));return N=re.call(N),de(A,E,N,U)}if(typeof N.then=="function")return He(A,E,dr(N),U);if(N.$$typeof===J)return He(A,E,rr(A,N),U);fr(A,N)}return typeof N=="string"&&N!==""||typeof N=="number"||typeof N=="bigint"?(N=""+N,E!==null&&E.tag===6?(n(A,E.sibling),U=s(E,N),U.return=A,A=U):(n(A,E),U=tu(N,A.mode,U),U.return=A,A=U),m(A)):n(A,E)}return function(A,E,N,U){try{Vi=0;var re=He(A,E,N,U);return Fl=null,re}catch(le){if(le===Jl||le===ur)throw le;var De=Qt(29,le,null,A.mode);return De.lanes=U,De.return=A,De}finally{}}}var ml=Mf(!0),zf=Mf(!1),Ca=!1;function hu(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function gu(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Da(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Ma(e,t,n){var l=e.updateQueue;if(l===null)return null;if(l=l.shared,(Re&2)!==0){var s=l.pending;return s===null?t.next=t:(t.next=s.next,s.next=t),l.pending=t,t=ar(e),pf(e,null,n),t}return nr(e,l,t,n),ar(e)}function Fi(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194048)!==0)){var l=t.lanes;l&=e.pendingLanes,n|=l,t.lanes=n,he(e,n)}}function pu(e,t){var n=e.updateQueue,l=e.alternate;if(l!==null&&(l=l.updateQueue,n===l)){var s=null,o=null;if(n=n.firstBaseUpdate,n!==null){do{var m={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};o===null?s=o=m:o=o.next=m,n=n.next}while(n!==null);o===null?s=o=t:o=o.next=t}else s=o=t;n={baseState:l.baseState,firstBaseUpdate:s,lastBaseUpdate:o,shared:l.shared,callbacks:l.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var yu=!1;function Ii(){if(yu){var e=Vl;if(e!==null)throw e}}function Wi(e,t,n,l){yu=!1;var s=e.updateQueue;Ca=!1;var o=s.firstBaseUpdate,m=s.lastBaseUpdate,y=s.shared.pending;if(y!==null){s.shared.pending=null;var x=y,D=x.next;x.next=null,m===null?o=D:m.next=D,m=x;var L=e.alternate;L!==null&&(L=L.updateQueue,y=L.lastBaseUpdate,y!==m&&(y===null?L.firstBaseUpdate=D:y.next=D,L.lastBaseUpdate=x))}if(o!==null){var H=s.baseState;m=0,L=D=x=null,y=o;do{var M=y.lane&-536870913,R=M!==y.lane;if(R?(we&M)===M:(l&M)===M){M!==0&&M===Zl&&(yu=!0),L!==null&&(L=L.next={lane:0,tag:y.tag,payload:y.payload,callback:null,next:null});e:{var te=e,de=y;M=t;var He=n;switch(de.tag){case 1:if(te=de.payload,typeof te=="function"){H=te.call(He,H,M);break e}H=te;break e;case 3:te.flags=te.flags&-65537|128;case 0:if(te=de.payload,M=typeof te=="function"?te.call(He,H,M):te,M==null)break e;H=S({},H,M);break e;case 2:Ca=!0}}M=y.callback,M!==null&&(e.flags|=64,R&&(e.flags|=8192),R=s.callbacks,R===null?s.callbacks=[M]:R.push(M))}else R={lane:M,tag:y.tag,payload:y.payload,callback:y.callback,next:null},L===null?(D=L=R,x=H):L=L.next=R,m|=M;if(y=y.next,y===null){if(y=s.shared.pending,y===null)break;R=y,y=R.next,R.next=null,s.lastBaseUpdate=R,s.shared.pending=null}}while(!0);L===null&&(x=H),s.baseState=x,s.firstBaseUpdate=D,s.lastBaseUpdate=L,o===null&&(s.shared.lanes=0),$a|=m,e.lanes=m,e.memoizedState=H}}function Rf(e,t){if(typeof e!="function")throw Error(c(191,e));e.call(t)}function Of(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;eo?o:8;var m=C.T,y={};C.T=y,qu(e,!1,t,n);try{var x=s(),D=C.S;if(D!==null&&D(y,x),x!==null&&typeof x=="object"&&typeof x.then=="function"){var L=v_(x,l);ts(e,t,L,Jt(e))}else ts(e,t,l,Jt(e))}catch(H){ts(e,t,{then:function(){},status:"rejected",reason:H},Jt())}finally{Y.p=o,m!==null&&y.types!==null&&(m.types=y.types),C.T=m}}function E_(){}function Ru(e,t,n,l){if(e.tag!==5)throw Error(c(476));var s=mm(e).queue;fm(e,s,t,ae,n===null?E_:function(){return hm(e),n(l)})}function mm(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:ae,baseState:ae,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:In,lastRenderedState:ae},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:In,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function hm(e){var t=mm(e);t.next===null&&(t=e.alternate.memoizedState),ts(e,t.next.queue,{},Jt())}function Ou(){return St(_s)}function gm(){return st().memoizedState}function pm(){return st().memoizedState}function k_(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=Jt();e=Da(n);var l=Ma(t,e,n);l!==null&&(Bt(l,t,n),Fi(l,t,n)),t={cache:ou()},e.payload=t;return}t=t.return}}function A_(e,t,n){var l=Jt();n={lane:l,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},xr(e)?_m(t,n):(n=Pc(e,t,n,l),n!==null&&(Bt(n,e,l),vm(n,t,l)))}function ym(e,t,n){var l=Jt();ts(e,t,n,l)}function ts(e,t,n,l){var s={lane:l,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(xr(e))_m(t,s);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var m=t.lastRenderedState,y=o(m,n);if(s.hasEagerState=!0,s.eagerState=y,Yt(y,m))return nr(e,t,s,0),Xe===null&&tr(),!1}catch{}finally{}if(n=Pc(e,t,s,l),n!==null)return Bt(n,e,l),vm(n,t,l),!0}return!1}function qu(e,t,n,l){if(l={lane:2,revertLane:go(),gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},xr(e)){if(t)throw Error(c(479))}else t=Pc(e,n,l,2),t!==null&&Bt(t,e,2)}function xr(e){var t=e.alternate;return e===ve||t!==null&&t===ve}function _m(e,t){Wl=gr=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function vm(e,t,n){if((n&4194048)!==0){var l=t.lanes;l&=e.pendingLanes,n|=l,t.lanes=n,he(e,n)}}var ns={readContext:St,use:_r,useCallback:nt,useContext:nt,useEffect:nt,useImperativeHandle:nt,useLayoutEffect:nt,useInsertionEffect:nt,useMemo:nt,useReducer:nt,useRef:nt,useState:nt,useDebugValue:nt,useDeferredValue:nt,useTransition:nt,useSyncExternalStore:nt,useId:nt,useHostTransitionStatus:nt,useFormState:nt,useActionState:nt,useOptimistic:nt,useMemoCache:nt,useCacheRefresh:nt};ns.useEffectEvent=nt;var bm={readContext:St,use:_r,useCallback:function(e,t){return Ct().memoizedState=[e,t===void 0?null:t],e},useContext:St,useEffect:am,useImperativeHandle:function(e,t,n){n=n!=null?n.concat([e]):null,br(4194308,4,rm.bind(null,t,e),n)},useLayoutEffect:function(e,t){return br(4194308,4,e,t)},useInsertionEffect:function(e,t){br(4,2,e,t)},useMemo:function(e,t){var n=Ct();t=t===void 0?null:t;var l=e();if(hl){kn(!0);try{e()}finally{kn(!1)}}return n.memoizedState=[l,t],l},useReducer:function(e,t,n){var l=Ct();if(n!==void 0){var s=n(t);if(hl){kn(!0);try{n(t)}finally{kn(!1)}}}else s=t;return l.memoizedState=l.baseState=s,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:s},l.queue=e,e=e.dispatch=A_.bind(null,ve,e),[l.memoizedState,e]},useRef:function(e){var t=Ct();return e={current:e},t.memoizedState=e},useState:function(e){e=Nu(e);var t=e.queue,n=ym.bind(null,ve,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:Mu,useDeferredValue:function(e,t){var n=Ct();return zu(n,e,t)},useTransition:function(){var e=Nu(!1);return e=fm.bind(null,ve,e.queue,!0,!1),Ct().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var l=ve,s=Ct();if(Ae){if(n===void 0)throw Error(c(407));n=n()}else{if(n=t(),Xe===null)throw Error(c(349));(we&127)!==0||Hf(l,t,n)}s.memoizedState=n;var o={value:n,getSnapshot:t};return s.queue=o,am(Yf.bind(null,l,o,e),[e]),l.flags|=2048,ei(9,{destroy:void 0},Gf.bind(null,l,o,n,t),null),n},useId:function(){var e=Ct(),t=Xe.identifierPrefix;if(Ae){var n=On,l=Rn;n=(l&~(1<<32-Et(l)-1)).toString(32)+n,t="_"+t+"R_"+n,n=pr++,0<\/script>",o=o.removeChild(o.firstChild);break;case"select":o=typeof l.is=="string"?m.createElement("select",{is:l.is}):m.createElement("select"),l.multiple?o.multiple=!0:l.size&&(o.size=l.size);break;default:o=typeof l.is=="string"?m.createElement(s,{is:l.is}):m.createElement(s)}}o[gt]=t,o[Qe]=l;e:for(m=t.child;m!==null;){if(m.tag===5||m.tag===6)o.appendChild(m.stateNode);else if(m.tag!==4&&m.tag!==27&&m.child!==null){m.child.return=m,m=m.child;continue}if(m===t)break e;for(;m.sibling===null;){if(m.return===null||m.return===t)break e;m=m.return}m.sibling.return=m.return,m=m.sibling}t.stateNode=o;e:switch(jt(o,s,l),s){case"button":case"input":case"select":case"textarea":l=!!l.autoFocus;break e;case"img":l=!0;break e;default:l=!1}l&&Pn(t)}}return Ve(t),Fu(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==l&&Pn(t);else{if(typeof l!="string"&&t.stateNode===null)throw Error(c(166));if(e=_e.current,Kl(t)){if(e=t.stateNode,n=t.memoizedProps,l=null,s=bt,s!==null)switch(s.tag){case 27:case 5:l=s.memoizedProps}e[gt]=t,e=!!(e.nodeValue===n||l!==null&&l.suppressHydrationWarning===!0||Uh(e.nodeValue,n)),e||Ta(t,!0)}else e=Gr(e).createTextNode(l),e[gt]=t,t.stateNode=e}return Ve(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(l=Kl(t),n!==null){if(e===null){if(!l)throw Error(c(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(c(557));e[gt]=t}else rl(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Ve(t),e=!1}else n=su(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(Xt(t),t):(Xt(t),null);if((t.flags&128)!==0)throw Error(c(558))}return Ve(t),null;case 13:if(l=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(s=Kl(t),l!==null&&l.dehydrated!==null){if(e===null){if(!s)throw Error(c(318));if(s=t.memoizedState,s=s!==null?s.dehydrated:null,!s)throw Error(c(317));s[gt]=t}else rl(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Ve(t),s=!1}else s=su(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=s),s=!0;if(!s)return t.flags&256?(Xt(t),t):(Xt(t),null)}return Xt(t),(t.flags&128)!==0?(t.lanes=n,t):(n=l!==null,e=e!==null&&e.memoizedState!==null,n&&(l=t.child,s=null,l.alternate!==null&&l.alternate.memoizedState!==null&&l.alternate.memoizedState.cachePool!==null&&(s=l.alternate.memoizedState.cachePool.pool),o=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(o=l.memoizedState.cachePool.pool),o!==s&&(l.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Ar(t,t.updateQueue),Ve(t),null);case 4:return K(),e===null&&vo(t.stateNode.containerInfo),Ve(t),null;case 10:return Jn(t.type),Ve(t),null;case 19:if($(it),l=t.memoizedState,l===null)return Ve(t),null;if(s=(t.flags&128)!==0,o=l.rendering,o===null)if(s)ls(l,!1);else{if(at!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(o=hr(e),o!==null){for(t.flags|=128,ls(l,!1),e=o.updateQueue,t.updateQueue=e,Ar(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)yf(n,e),n=n.sibling;return Z(it,it.current&1|2),Ae&&Zn(t,l.treeForkCount),t.child}e=e.sibling}l.tail!==null&&ht()>Mr&&(t.flags|=128,s=!0,ls(l,!1),t.lanes=4194304)}else{if(!s)if(e=hr(o),e!==null){if(t.flags|=128,s=!0,e=e.updateQueue,t.updateQueue=e,Ar(t,e),ls(l,!0),l.tail===null&&l.tailMode==="hidden"&&!o.alternate&&!Ae)return Ve(t),null}else 2*ht()-l.renderingStartTime>Mr&&n!==536870912&&(t.flags|=128,s=!0,ls(l,!1),t.lanes=4194304);l.isBackwards?(o.sibling=t.child,t.child=o):(e=l.last,e!==null?e.sibling=o:t.child=o,l.last=o)}return l.tail!==null?(e=l.tail,l.rendering=e,l.tail=e.sibling,l.renderingStartTime=ht(),e.sibling=null,n=it.current,Z(it,s?n&1|2:n&1),Ae&&Zn(t,l.treeForkCount),e):(Ve(t),null);case 22:case 23:return Xt(t),vu(),l=t.memoizedState!==null,e!==null?e.memoizedState!==null!==l&&(t.flags|=8192):l&&(t.flags|=8192),l?(n&536870912)!==0&&(t.flags&128)===0&&(Ve(t),t.subtreeFlags&6&&(t.flags|=8192)):Ve(t),n=t.updateQueue,n!==null&&Ar(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),l=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(l=t.memoizedState.cachePool.pool),l!==n&&(t.flags|=2048),e!==null&&$(ol),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Jn(ot),Ve(t),null;case 25:return null;case 30:return null}throw Error(c(156,t.tag))}function M_(e,t){switch(lu(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Jn(ot),K(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return pe(t),null;case 31:if(t.memoizedState!==null){if(Xt(t),t.alternate===null)throw Error(c(340));rl()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(Xt(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(c(340));rl()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return $(it),null;case 4:return K(),null;case 10:return Jn(t.type),null;case 22:case 23:return Xt(t),vu(),e!==null&&$(ol),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Jn(ot),null;case 25:return null;default:return null}}function Qm(e,t){switch(lu(t),t.tag){case 3:Jn(ot),K();break;case 26:case 27:case 5:pe(t);break;case 4:K();break;case 31:t.memoizedState!==null&&Xt(t);break;case 13:Xt(t);break;case 19:$(it);break;case 10:Jn(t.type);break;case 22:case 23:Xt(t),vu(),e!==null&&$(ol);break;case 24:Jn(ot)}}function is(e,t){try{var n=t.updateQueue,l=n!==null?n.lastEffect:null;if(l!==null){var s=l.next;n=s;do{if((n.tag&e)===e){l=void 0;var o=n.create,m=n.inst;l=o(),m.destroy=l}n=n.next}while(n!==s)}}catch(y){Le(t,t.return,y)}}function Oa(e,t,n){try{var l=t.updateQueue,s=l!==null?l.lastEffect:null;if(s!==null){var o=s.next;l=o;do{if((l.tag&e)===e){var m=l.inst,y=m.destroy;if(y!==void 0){m.destroy=void 0,s=t;var x=n,D=y;try{D()}catch(L){Le(s,x,L)}}}l=l.next}while(l!==o)}}catch(L){Le(t,t.return,L)}}function Km(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Of(t,n)}catch(l){Le(e,e.return,l)}}}function Xm(e,t,n){n.props=gl(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(l){Le(e,t,l)}}function ss(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var l=e.stateNode;break;case 30:l=e.stateNode;break;default:l=e.stateNode}typeof n=="function"?e.refCleanup=n(l):n.current=l}}catch(s){Le(e,t,s)}}function qn(e,t){var n=e.ref,l=e.refCleanup;if(n!==null)if(typeof l=="function")try{l()}catch(s){Le(e,t,s)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n=="function")try{n(null)}catch(s){Le(e,t,s)}else n.current=null}function Zm(e){var t=e.type,n=e.memoizedProps,l=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":n.autoFocus&&l.focus();break e;case"img":n.src?l.src=n.src:n.srcSet&&(l.srcset=n.srcSet)}}catch(s){Le(e,e.return,s)}}function Iu(e,t,n){try{var l=e.stateNode;ev(l,e.type,n,t),l[Qe]=t}catch(s){Le(e,e.return,s)}}function Vm(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Ga(e.type)||e.tag===4}function Wu(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Vm(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Ga(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Pu(e,t,n){var l=e.tag;if(l===5||l===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=tn));else if(l!==4&&(l===27&&Ga(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Pu(e,t,n),e=e.sibling;e!==null;)Pu(e,t,n),e=e.sibling}function Tr(e,t,n){var l=e.tag;if(l===5||l===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(l!==4&&(l===27&&Ga(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(Tr(e,t,n),e=e.sibling;e!==null;)Tr(e,t,n),e=e.sibling}function Jm(e){var t=e.stateNode,n=e.memoizedProps;try{for(var l=e.type,s=t.attributes;s.length;)t.removeAttributeNode(s[0]);jt(t,l,n),t[gt]=e,t[Qe]=n}catch(o){Le(e,e.return,o)}}var ea=!1,mt=!1,eo=!1,Fm=typeof WeakSet=="function"?WeakSet:Set,_t=null;function z_(e,t){if(e=e.containerInfo,xo=Jr,e=cf(e),Zc(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var l=n.getSelection&&n.getSelection();if(l&&l.rangeCount!==0){n=l.anchorNode;var s=l.anchorOffset,o=l.focusNode;l=l.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var m=0,y=-1,x=-1,D=0,L=0,H=e,M=null;t:for(;;){for(var R;H!==n||s!==0&&H.nodeType!==3||(y=m+s),H!==o||l!==0&&H.nodeType!==3||(x=m+l),H.nodeType===3&&(m+=H.nodeValue.length),(R=H.firstChild)!==null;)M=H,H=R;for(;;){if(H===e)break t;if(M===n&&++D===s&&(y=m),M===o&&++L===l&&(x=m),(R=H.nextSibling)!==null)break;H=M,M=H.parentNode}H=R}n=y===-1||x===-1?null:{start:y,end:x}}else n=null}n=n||{start:0,end:0}}else n=null;for(jo={focusedElem:e,selectionRange:n},Jr=!1,_t=t;_t!==null;)if(t=_t,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,_t=e;else for(;_t!==null;){switch(t=_t,o=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.updateQueue,e=e!==null?e.events:null,e!==null))for(n=0;n title"))),jt(o,l,n),o[gt]=e,lt(o),l=o;break e;case"link":var m=ng("link","href",s).get(l+(n.href||""));if(m){for(var y=0;yHe&&(m=He,He=de,de=m);var A=sf(y,de),E=sf(y,He);if(A&&E&&(R.rangeCount!==1||R.anchorNode!==A.node||R.anchorOffset!==A.offset||R.focusNode!==E.node||R.focusOffset!==E.offset)){var N=H.createRange();N.setStart(A.node,A.offset),R.removeAllRanges(),de>He?(R.addRange(N),R.extend(E.node,E.offset)):(N.setEnd(E.node,E.offset),R.addRange(N))}}}}for(H=[],R=y;R=R.parentNode;)R.nodeType===1&&H.push({element:R,left:R.scrollLeft,top:R.scrollTop});for(typeof y.focus=="function"&&y.focus(),y=0;yn?32:n,C.T=null,n=ro,ro=null;var o=Ua,m=ia;if(pt=0,ii=Ua=null,ia=0,(Re&6)!==0)throw Error(c(331));var y=Re;if(Re|=4,rh(o.current),lh(o,o.current,m,n),Re=y,fs(0,!1),Ye&&typeof Ye.onPostCommitFiberRoot=="function")try{Ye.onPostCommitFiberRoot(Gn,o)}catch{}return!0}finally{Y.p=s,C.T=l,Eh(e,t)}}function Ah(e,t,n){t=sn(n,t),t=Bu(e.stateNode,t,2),e=Ma(e,t,2),e!==null&&(en(e,2),$n(e))}function Le(e,t,n){if(e.tag===3)Ah(e,e,n);else for(;t!==null;){if(t.tag===3){Ah(t,e,n);break}else if(t.tag===1){var l=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof l.componentDidCatch=="function"&&(La===null||!La.has(l))){e=sn(n,e),n=Tm(2),l=Ma(t,n,2),l!==null&&(Nm(n,l,t,e),en(l,2),$n(l));break}}t=t.return}}function fo(e,t,n){var l=e.pingCache;if(l===null){l=e.pingCache=new q_;var s=new Set;l.set(t,s)}else s=l.get(t),s===void 0&&(s=new Set,l.set(t,s));s.has(n)||(ao=!0,s.add(n),e=H_.bind(null,e,t,n),t.then(e,e))}function H_(e,t,n){var l=e.pingCache;l!==null&&l.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Xe===e&&(we&n)===n&&(at===4||at===3&&(we&62914560)===we&&300>ht()-Dr?(Re&2)===0&&si(e,0):lo|=n,li===we&&(li=0)),$n(e)}function Th(e,t){t===0&&(t=Dl()),e=il(e,t),e!==null&&(en(e,t),$n(e))}function G_(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Th(e,n)}function Y_(e,t){var n=0;switch(e.tag){case 31:case 13:var l=e.stateNode,s=e.memoizedState;s!==null&&(n=s.retryLane);break;case 19:l=e.stateNode;break;case 22:l=e.stateNode._retryCache;break;default:throw Error(c(314))}l!==null&&l.delete(t),Th(e,n)}function Q_(e,t){return xi(e,t)}var Lr=null,ci=null,mo=!1,Ur=!1,ho=!1,Ha=0;function $n(e){e!==ci&&e.next===null&&(ci===null?Lr=ci=e:ci=ci.next=e),Ur=!0,mo||(mo=!0,X_())}function fs(e,t){if(!ho&&Ur){ho=!0;do for(var n=!1,l=Lr;l!==null;){if(e!==0){var s=l.pendingLanes;if(s===0)var o=0;else{var m=l.suspendedLanes,y=l.pingedLanes;o=(1<<31-Et(42|e)+1)-1,o&=s&~(m&~y),o=o&201326741?o&201326741|1:o?o|2:0}o!==0&&(n=!0,Mh(l,o))}else o=we,o=zt(l,l===Xe?o:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),(o&3)===0||ze(l,o)||(n=!0,Mh(l,o));l=l.next}while(n);ho=!1}}function K_(){Nh()}function Nh(){Ur=mo=!1;var e=0;Ha!==0&&nv()&&(e=Ha);for(var t=ht(),n=null,l=Lr;l!==null;){var s=l.next,o=Ch(l,t);o===0?(l.next=null,n===null?Lr=s:n.next=s,s===null&&(ci=n)):(n=l,(e!==0||(o&3)!==0)&&(Ur=!0)),l=s}pt!==0&&pt!==5||fs(e),Ha!==0&&(Ha=0)}function Ch(e,t){for(var n=e.suspendedLanes,l=e.pingedLanes,s=e.expirationTimes,o=e.pendingLanes&-62914561;0y)break;var L=x.transferSize,H=x.initiatorType;L&&Bh(H)&&(x=x.responseEnd,m+=L*(x"u"?null:document;function Wh(e,t,n){var l=ui;if(l&&typeof t=="string"&&t){var s=Ot(t);s='link[rel="'+e+'"][href="'+s+'"]',typeof n=="string"&&(s+='[crossorigin="'+n+'"]'),Ih.has(s)||(Ih.add(s),e={rel:e,crossOrigin:n,href:t},l.querySelector(s)===null&&(t=l.createElement("link"),jt(t,"link",e),lt(t),l.head.appendChild(t)))}}function dv(e){sa.D(e),Wh("dns-prefetch",e,null)}function fv(e,t){sa.C(e,t),Wh("preconnect",e,t)}function mv(e,t,n){sa.L(e,t,n);var l=ui;if(l&&e&&t){var s='link[rel="preload"][as="'+Ot(t)+'"]';t==="image"&&n&&n.imageSrcSet?(s+='[imagesrcset="'+Ot(n.imageSrcSet)+'"]',typeof n.imageSizes=="string"&&(s+='[imagesizes="'+Ot(n.imageSizes)+'"]')):s+='[href="'+Ot(e)+'"]';var o=s;switch(t){case"style":o=oi(e);break;case"script":o=di(e)}fn.has(o)||(e=S({rel:"preload",href:t==="image"&&n&&n.imageSrcSet?void 0:e,as:t},n),fn.set(o,e),l.querySelector(s)!==null||t==="style"&&l.querySelector(ps(o))||t==="script"&&l.querySelector(ys(o))||(t=l.createElement("link"),jt(t,"link",e),lt(t),l.head.appendChild(t)))}}function hv(e,t){sa.m(e,t);var n=ui;if(n&&e){var l=t&&typeof t.as=="string"?t.as:"script",s='link[rel="modulepreload"][as="'+Ot(l)+'"][href="'+Ot(e)+'"]',o=s;switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":o=di(e)}if(!fn.has(o)&&(e=S({rel:"modulepreload",href:e},t),fn.set(o,e),n.querySelector(s)===null)){switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector(ys(o)))return}l=n.createElement("link"),jt(l,"link",e),lt(l),n.head.appendChild(l)}}}function gv(e,t,n){sa.S(e,t,n);var l=ui;if(l&&e){var s=Cn(l).hoistableStyles,o=oi(e);t=t||"default";var m=s.get(o);if(!m){var y={loading:0,preload:null};if(m=l.querySelector(ps(o)))y.loading=5;else{e=S({rel:"stylesheet",href:e,"data-precedence":t},n),(n=fn.get(o))&&Co(e,n);var x=m=l.createElement("link");lt(x),jt(x,"link",e),x._p=new Promise(function(D,L){x.onload=D,x.onerror=L}),x.addEventListener("load",function(){y.loading|=1}),x.addEventListener("error",function(){y.loading|=2}),y.loading|=4,Qr(m,t,l)}m={type:"stylesheet",instance:m,count:1,state:y},s.set(o,m)}}}function pv(e,t){sa.X(e,t);var n=ui;if(n&&e){var l=Cn(n).hoistableScripts,s=di(e),o=l.get(s);o||(o=n.querySelector(ys(s)),o||(e=S({src:e,async:!0},t),(t=fn.get(s))&&Do(e,t),o=n.createElement("script"),lt(o),jt(o,"link",e),n.head.appendChild(o)),o={type:"script",instance:o,count:1,state:null},l.set(s,o))}}function yv(e,t){sa.M(e,t);var n=ui;if(n&&e){var l=Cn(n).hoistableScripts,s=di(e),o=l.get(s);o||(o=n.querySelector(ys(s)),o||(e=S({src:e,async:!0,type:"module"},t),(t=fn.get(s))&&Do(e,t),o=n.createElement("script"),lt(o),jt(o,"link",e),n.head.appendChild(o)),o={type:"script",instance:o,count:1,state:null},l.set(s,o))}}function Ph(e,t,n,l){var s=(s=_e.current)?Yr(s):null;if(!s)throw Error(c(446));switch(e){case"meta":case"title":return null;case"style":return typeof n.precedence=="string"&&typeof n.href=="string"?(t=oi(n.href),n=Cn(s).hoistableStyles,l=n.get(t),l||(l={type:"style",instance:null,count:0,state:null},n.set(t,l)),l):{type:"void",instance:null,count:0,state:null};case"link":if(n.rel==="stylesheet"&&typeof n.href=="string"&&typeof n.precedence=="string"){e=oi(n.href);var o=Cn(s).hoistableStyles,m=o.get(e);if(m||(s=s.ownerDocument||s,m={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},o.set(e,m),(o=s.querySelector(ps(e)))&&!o._p&&(m.instance=o,m.state.loading=5),fn.has(e)||(n={rel:"preload",as:"style",href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},fn.set(e,n),o||_v(s,e,n,m.state))),t&&l===null)throw Error(c(528,""));return m}if(t&&l!==null)throw Error(c(529,""));return null;case"script":return t=n.async,n=n.src,typeof n=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=di(n),n=Cn(s).hoistableScripts,l=n.get(t),l||(l={type:"script",instance:null,count:0,state:null},n.set(t,l)),l):{type:"void",instance:null,count:0,state:null};default:throw Error(c(444,e))}}function oi(e){return'href="'+Ot(e)+'"'}function ps(e){return'link[rel="stylesheet"]['+e+"]"}function eg(e){return S({},e,{"data-precedence":e.precedence,precedence:null})}function _v(e,t,n,l){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?l.loading=1:(t=e.createElement("link"),l.preload=t,t.addEventListener("load",function(){return l.loading|=1}),t.addEventListener("error",function(){return l.loading|=2}),jt(t,"link",n),lt(t),e.head.appendChild(t))}function di(e){return'[src="'+Ot(e)+'"]'}function ys(e){return"script[async]"+e}function tg(e,t,n){if(t.count++,t.instance===null)switch(t.type){case"style":var l=e.querySelector('style[data-href~="'+Ot(n.href)+'"]');if(l)return t.instance=l,lt(l),l;var s=S({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return l=(e.ownerDocument||e).createElement("style"),lt(l),jt(l,"style",s),Qr(l,n.precedence,e),t.instance=l;case"stylesheet":s=oi(n.href);var o=e.querySelector(ps(s));if(o)return t.state.loading|=4,t.instance=o,lt(o),o;l=eg(n),(s=fn.get(s))&&Co(l,s),o=(e.ownerDocument||e).createElement("link"),lt(o);var m=o;return m._p=new Promise(function(y,x){m.onload=y,m.onerror=x}),jt(o,"link",l),t.state.loading|=4,Qr(o,n.precedence,e),t.instance=o;case"script":return o=di(n.src),(s=e.querySelector(ys(o)))?(t.instance=s,lt(s),s):(l=n,(s=fn.get(o))&&(l=S({},n),Do(l,s)),e=e.ownerDocument||e,s=e.createElement("script"),lt(s),jt(s,"link",l),e.head.appendChild(s),t.instance=s);case"void":return null;default:throw Error(c(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(l=t.instance,t.state.loading|=4,Qr(l,n.precedence,e));return t.instance}function Qr(e,t,n){for(var l=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),s=l.length?l[l.length-1]:null,o=s,m=0;m title"):null)}function vv(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;switch(t.rel){case"stylesheet":return e=t.disabled,typeof t.precedence=="string"&&e==null;default:return!0}case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function lg(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function bv(e,t,n,l){if(n.type==="stylesheet"&&(typeof l.media!="string"||matchMedia(l.media).matches!==!1)&&(n.state.loading&4)===0){if(n.instance===null){var s=oi(l.href),o=t.querySelector(ps(s));if(o){t=o._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=Xr.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=o,lt(o);return}o=t.ownerDocument||t,l=eg(l),(s=fn.get(s))&&Co(l,s),o=o.createElement("link"),lt(o);var m=o;m._p=new Promise(function(y,x){m.onload=y,m.onerror=x}),jt(o,"link",l),n.instance=o}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&(n.state.loading&3)===0&&(e.count++,n=Xr.bind(e),t.addEventListener("load",n),t.addEventListener("error",n))}}var Mo=0;function Sv(e,t){return e.stylesheets&&e.count===0&&Vr(e,e.stylesheets),0Mo?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(l),clearTimeout(s)}}:null}function Xr(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Vr(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Zr=null;function Vr(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Zr=new Map,t.forEach(xv,e),Zr=null,Xr.call(e))}function xv(e,t){if(!(t.state.loading&4)){var n=Zr.get(e);if(n)var l=n.get(null);else{n=new Map,Zr.set(e,n);for(var s=e.querySelectorAll("link[data-precedence],style[data-precedence]"),o=0;o"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(a)}catch(i){console.error(i)}}return a(),Ho.exports=Bv(),Ho.exports}var Gv=Hv();/** + * react-router v7.17.0 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */var Tg="popstate";function Ng(a){return typeof a=="object"&&a!=null&&"pathname"in a&&"search"in a&&"hash"in a&&"state"in a&&"key"in a}function Yv(a={}){function i(d,f){let{pathname:g="/",search:_="",hash:h=""}=wl(d.location.hash.substring(1));return!g.startsWith("/")&&!g.startsWith(".")&&(g="/"+g),cd("",{pathname:g,search:_,hash:h},f.state&&f.state.usr||null,f.state&&f.state.key||"default")}function r(d,f){let g=d.document.querySelector("base"),_="";if(g&&g.getAttribute("href")){let h=d.location.href,p=h.indexOf("#");_=p===-1?h:h.slice(0,p)}return _+"#"+(typeof f=="string"?f:Ds(f))}function c(d,f){mn(d.pathname.charAt(0)==="/",`relative pathnames are not supported in hash history.push(${JSON.stringify(f)})`)}return Kv(i,r,c,a)}function We(a,i){if(a===!1||a===null||typeof a>"u")throw new Error(i)}function mn(a,i){if(!a){typeof console<"u"&&console.warn(i);try{throw new Error(i)}catch{}}}function Qv(){return Math.random().toString(36).substring(2,10)}function Cg(a,i){return{usr:a.state,key:a.key,idx:i,masked:a.mask?{pathname:a.pathname,search:a.search,hash:a.hash}:void 0}}function cd(a,i,r=null,c,d){return{pathname:typeof a=="string"?a:a.pathname,search:"",hash:"",...typeof i=="string"?wl(i):i,state:r,key:i&&i.key||c||Qv(),mask:d}}function Ds({pathname:a="/",search:i="",hash:r=""}){return i&&i!=="?"&&(a+=i.charAt(0)==="?"?i:"?"+i),r&&r!=="#"&&(a+=r.charAt(0)==="#"?r:"#"+r),a}function wl(a){let i={};if(a){let r=a.indexOf("#");r>=0&&(i.hash=a.substring(r),a=a.substring(0,r));let c=a.indexOf("?");c>=0&&(i.search=a.substring(c),a=a.substring(0,c)),a&&(i.pathname=a)}return i}function Kv(a,i,r,c={}){let{window:d=document.defaultView,v5Compat:f=!1}=c,g=d.history,_="POP",h=null,p=w();p==null&&(p=0,g.replaceState({...g.state,idx:p},""));function w(){return(g.state||{idx:null}).idx}function S(){_="POP";let O=w(),G=O==null?null:O-p;p=O,h&&h({action:_,location:q.location,delta:G})}function k(O,G){_="PUSH";let I=Ng(O)?O:cd(q.location,O,G);r&&r(I,O),p=w()+1;let J=Cg(I,p),ne=q.createHref(I.mask||I);try{g.pushState(J,"",ne)}catch(se){if(se instanceof DOMException&&se.name==="DataCloneError")throw se;d.location.assign(ne)}f&&h&&h({action:_,location:q.location,delta:1})}function z(O,G){_="REPLACE";let I=Ng(O)?O:cd(q.location,O,G);r&&r(I,O),p=w();let J=Cg(I,p),ne=q.createHref(I.mask||I);g.replaceState(J,"",ne),f&&h&&h({action:_,location:q.location,delta:0})}function T(O){return Xv(d,O)}let q={get action(){return _},get location(){return a(d,g)},listen(O){if(h)throw new Error("A history only accepts one active listener");return d.addEventListener(Tg,S),h=O,()=>{d.removeEventListener(Tg,S),h=null}},createHref(O){return i(d,O)},createURL:T,encodeLocation(O){let G=T(O);return{pathname:G.pathname,search:G.search,hash:G.hash}},push:k,replace:z,go(O){return g.go(O)}};return q}function Xv(a,i,r=!1){let c="http://localhost";a&&(c=a.location.origin!=="null"?a.location.origin:a.location.href),We(c,"No window.location.(origin|href) available to create URL");let d=typeof i=="string"?i:Ds(i);return d=d.replace(/ $/,"%20"),!r&&d.startsWith("//")&&(d=c+d),new URL(d,c)}function Sp(a,i,r="/"){return Zv(a,i,r,!1)}function Zv(a,i,r,c,d){let f=typeof i=="string"?wl(i):i,g=oa(f.pathname||"/",r);if(g==null)return null;let _=Vv(a),h=null,p=sb(g);for(let w=0;h==null&&w<_.length;++w)h=lb(_[w],p,c);return h}function Vv(a){let i=xp(a);return Jv(i),i}function xp(a,i=[],r=[],c="",d=!1){let f=(g,_,h=d,p)=>{let w={relativePath:p===void 0?g.path||"":p,caseSensitive:g.caseSensitive===!0,childrenIndex:_,route:g};if(w.relativePath.startsWith("/")){if(!w.relativePath.startsWith(c)&&h)return;We(w.relativePath.startsWith(c),`Absolute route path "${w.relativePath}" nested under path "${c}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),w.relativePath=w.relativePath.slice(c.length)}let S=xn([c,w.relativePath]),k=r.concat(w);g.children&&g.children.length>0&&(We(g.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${S}".`),xp(g.children,i,k,S,h)),!(g.path==null&&!g.index)&&i.push({path:S,score:nb(S,g.index),routesMeta:k})};return a.forEach((g,_)=>{var h;if(g.path===""||!((h=g.path)!=null&&h.includes("?")))f(g,_);else for(let p of jp(g.path))f(g,_,!0,p)}),i}function jp(a){let i=a.split("/");if(i.length===0)return[];let[r,...c]=i,d=r.endsWith("?"),f=r.replace(/\?$/,"");if(c.length===0)return d?[f,""]:[f];let g=jp(c.join("/")),_=[];return _.push(...g.map(h=>h===""?f:[f,h].join("/"))),d&&_.push(...g),_.map(h=>a.startsWith("/")&&h===""?"/":h)}function Jv(a){a.sort((i,r)=>i.score!==r.score?r.score-i.score:ab(i.routesMeta.map(c=>c.childrenIndex),r.routesMeta.map(c=>c.childrenIndex)))}var Fv=/^:[\w-]+$/,Iv=3,Wv=2,Pv=1,eb=10,tb=-2,Dg=a=>a==="*";function nb(a,i){let r=a.split("/"),c=r.length;return r.some(Dg)&&(c+=tb),i&&(c+=Wv),r.filter(d=>!Dg(d)).reduce((d,f)=>d+(Fv.test(f)?Iv:f===""?Pv:eb),c)}function ab(a,i){return a.length===i.length&&a.slice(0,-1).every((c,d)=>c===i[d])?a[a.length-1]-i[i.length-1]:0}function lb(a,i,r=!1){let{routesMeta:c}=a,d={},f="/",g=[];for(let _=0;_{if(w==="*"){let T=_[k]||"";g=f.slice(0,f.length-T.length).replace(/(.)\/+$/,"$1")}const z=_[k];return S&&!z?p[w]=void 0:p[w]=(z||"").replace(/%2F/g,"/"),p},{}),pathname:f,pathnameBase:g,pattern:a}}function ib(a,i=!1,r=!0){mn(a==="*"||!a.endsWith("*")||a.endsWith("/*"),`Route path "${a}" will be treated as if it were "${a.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${a.replace(/\*$/,"/*")}".`);let c=[],d="^"+a.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(g,_,h,p,w)=>{if(c.push({paramName:_,isOptional:h!=null}),h){let S=w.charAt(p+g.length);return S&&S!=="/"?"/([^\\/]*)":"(?:/([^\\/]*))?"}return"/([^\\/]+)"}).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return a.endsWith("*")?(c.push({paramName:"*"}),d+=a==="*"||a==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?d+="\\/*$":a!==""&&a!=="/"&&(d+="(?:(?=\\/|$))"),[new RegExp(d,i?void 0:"i"),c]}function sb(a){try{return a.split("/").map(i=>decodeURIComponent(i).replace(/\//g,"%2F")).join("/")}catch(i){return mn(!1,`The URL path "${a}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${i}).`),a}}function oa(a,i){if(i==="/")return a;if(!a.toLowerCase().startsWith(i.toLowerCase()))return null;let r=i.endsWith("/")?i.length-1:i.length,c=a.charAt(r);return c&&c!=="/"?null:a.slice(r)||"/"}var rb=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;function cb(a,i="/"){let{pathname:r,search:c="",hash:d=""}=typeof a=="string"?wl(a):a,f;return r?(r=wp(r),r.startsWith("/")?f=Mg(r.substring(1),"/"):f=Mg(r,i)):f=i,{pathname:f,search:db(c),hash:fb(d)}}function Mg(a,i){let r=yc(i).split("/");return a.split("/").forEach(d=>{d===".."?r.length>1&&r.pop():d!=="."&&r.push(d)}),r.length>1?r.join("/"):"/"}function Ko(a,i,r,c){return`Cannot include a '${a}' character in a manually specified \`to.${i}\` field [${JSON.stringify(c)}]. Please separate it out to the \`to.${r}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function ub(a){return a.filter((i,r)=>r===0||i.route.path&&i.route.path.length>0)}function xd(a){let i=ub(a);return i.map((r,c)=>c===i.length-1?r.pathname:r.pathnameBase)}function wc(a,i,r,c=!1){let d;typeof a=="string"?d=wl(a):(d={...a},We(!d.pathname||!d.pathname.includes("?"),Ko("?","pathname","search",d)),We(!d.pathname||!d.pathname.includes("#"),Ko("#","pathname","hash",d)),We(!d.search||!d.search.includes("#"),Ko("#","search","hash",d)));let f=a===""||d.pathname==="",g=f?"/":d.pathname,_;if(g==null)_=r;else{let S=i.length-1;if(!c&&g.startsWith("..")){let k=g.split("/");for(;k[0]==="..";)k.shift(),S-=1;d.pathname=k.join("/")}_=S>=0?i[S]:"/"}let h=cb(d,_),p=g&&g!=="/"&&g.endsWith("/"),w=(f||g===".")&&r.endsWith("/");return!h.pathname.endsWith("/")&&(p||w)&&(h.pathname+="/"),h}var wp=a=>a.replace(/\/\/+/g,"/"),xn=a=>wp(a.join("/")),yc=a=>a.replace(/\/+$/,""),ob=a=>yc(a).replace(/^\/*/,"/"),db=a=>!a||a==="?"?"":a.startsWith("?")?a:"?"+a,fb=a=>!a||a==="#"?"":a.startsWith("#")?a:"#"+a,mb=class{constructor(a,i,r,c=!1){this.status=a,this.statusText=i||"",this.internal=c,r instanceof Error?(this.data=r.toString(),this.error=r):this.data=r}};function hb(a){return a!=null&&typeof a.status=="number"&&typeof a.statusText=="string"&&typeof a.internal=="boolean"&&"data"in a}function gb(a){let i=a.map(r=>r.route.path).filter(Boolean);return xn(i)||"/"}var Ep=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function kp(a,i){let r=a;if(typeof r!="string"||!rb.test(r))return{absoluteURL:void 0,isExternal:!1,to:r};let c=r,d=!1;if(Ep)try{let f=new URL(window.location.href),g=r.startsWith("//")?new URL(f.protocol+r):new URL(r),_=oa(g.pathname,i);g.origin===f.origin&&_!=null?r=_+g.search+g.hash:d=!0}catch{mn(!1,` contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:c,isExternal:d,to:r}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var Ap=["POST","PUT","PATCH","DELETE"];new Set(Ap);var pb=["GET",...Ap];new Set(pb);var vi=b.createContext(null);vi.displayName="DataRouter";var Ec=b.createContext(null);Ec.displayName="DataRouterState";var Tp=b.createContext(!1);function yb(){return b.useContext(Tp)}var Np=b.createContext({isTransitioning:!1});Np.displayName="ViewTransition";var _b=b.createContext(new Map);_b.displayName="Fetchers";var vb=b.createContext(null);vb.displayName="Await";var Wt=b.createContext(null);Wt.displayName="Navigation";var Rs=b.createContext(null);Rs.displayName="Location";var Un=b.createContext({outlet:null,matches:[],isDataRoute:!1});Un.displayName="Route";var jd=b.createContext(null);jd.displayName="RouteError";var Cp="REACT_ROUTER_ERROR",bb="REDIRECT",Sb="ROUTE_ERROR_RESPONSE";function xb(a){if(a.startsWith(`${Cp}:${bb}:{`))try{let i=JSON.parse(a.slice(28));if(typeof i=="object"&&i&&typeof i.status=="number"&&typeof i.statusText=="string"&&typeof i.location=="string"&&typeof i.reloadDocument=="boolean"&&typeof i.replace=="boolean")return i}catch{}}function jb(a){if(a.startsWith(`${Cp}:${Sb}:{`))try{let i=JSON.parse(a.slice(40));if(typeof i=="object"&&i&&typeof i.status=="number"&&typeof i.statusText=="string")return new mb(i.status,i.statusText,i.data)}catch{}}function wb(a,{relative:i}={}){We(bi(),"useHref() may be used only in the context of a component.");let{basename:r,navigator:c}=b.useContext(Wt),{hash:d,pathname:f,search:g}=Os(a,{relative:i}),_=f;return r!=="/"&&(_=f==="/"?r:xn([r,f])),c.createHref({pathname:_,search:g,hash:d})}function bi(){return b.useContext(Rs)!=null}function wn(){return We(bi(),"useLocation() may be used only in the context of a component."),b.useContext(Rs).location}var Dp="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Mp(a){b.useContext(Wt).static||b.useLayoutEffect(a)}function wd(){let{isDataRoute:a}=b.useContext(Un);return a?$b():Eb()}function Eb(){We(bi(),"useNavigate() may be used only in the context of a component.");let a=b.useContext(vi),{basename:i,navigator:r}=b.useContext(Wt),{matches:c}=b.useContext(Un),{pathname:d}=wn(),f=JSON.stringify(xd(c)),g=b.useRef(!1);return Mp(()=>{g.current=!0}),b.useCallback((h,p={})=>{if(mn(g.current,Dp),!g.current)return;if(typeof h=="number"){r.go(h);return}let w=wc(h,JSON.parse(f),d,p.relative==="path");a==null&&i!=="/"&&(w.pathname=w.pathname==="/"?i:xn([i,w.pathname])),(p.replace?r.replace:r.push)(w,p.state,p)},[i,r,f,d,a])}b.createContext(null);function Os(a,{relative:i}={}){let{matches:r}=b.useContext(Un),{pathname:c}=wn(),d=JSON.stringify(xd(r));return b.useMemo(()=>wc(a,JSON.parse(d),c,i==="path"),[a,d,c,i])}function kb(a,i){return zp(a,i)}function zp(a,i,r){var O;We(bi(),"useRoutes() may be used only in the context of a component.");let{navigator:c}=b.useContext(Wt),{matches:d}=b.useContext(Un),f=d[d.length-1],g=f?f.params:{},_=f?f.pathname:"/",h=f?f.pathnameBase:"/",p=f&&f.route;{let G=p&&p.path||"";Op(_,!p||G.endsWith("*")||G.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${_}" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render. + +Please change the parent to .`)}let w=wn(),S;if(i){let G=typeof i=="string"?wl(i):i;We(h==="/"||((O=G.pathname)==null?void 0:O.startsWith(h)),`When overriding the location using \`\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${h}" but pathname "${G.pathname}" was given in the \`location\` prop.`),S=G}else S=w;let k=S.pathname||"/",z=k;if(h!=="/"){let G=h.replace(/^\//,"").split("/");z="/"+k.replace(/^\//,"").split("/").slice(G.length).join("/")}let T=r&&r.state.matches.length?r.state.matches.map(G=>Object.assign(G,{route:r.manifest[G.route.id]||G.route})):Sp(a,{pathname:z});mn(p||T!=null,`No routes matched location "${S.pathname}${S.search}${S.hash}" `),mn(T==null||T[T.length-1].route.element!==void 0||T[T.length-1].route.Component!==void 0||T[T.length-1].route.lazy!==void 0,`Matched leaf route at location "${S.pathname}${S.search}${S.hash}" does not have an element or Component. This means it will render an with a null value by default resulting in an "empty" page.`);let q=Db(T&&T.map(G=>Object.assign({},G,{params:Object.assign({},g,G.params),pathname:xn([h,c.encodeLocation?c.encodeLocation(G.pathname.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:G.pathname]),pathnameBase:G.pathnameBase==="/"?h:xn([h,c.encodeLocation?c.encodeLocation(G.pathnameBase.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:G.pathnameBase])})),d,r);return i&&q?b.createElement(Rs.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",mask:void 0,...S},navigationType:"POP"}},q):q}function Ab(){let a=qb(),i=hb(a)?`${a.status} ${a.statusText}`:a instanceof Error?a.message:JSON.stringify(a),r=a instanceof Error?a.stack:null,c="rgba(200,200,200, 0.5)",d={padding:"0.5rem",backgroundColor:c},f={padding:"2px 4px",backgroundColor:c},g=null;return console.error("Error handled by React Router default ErrorBoundary:",a),g=b.createElement(b.Fragment,null,b.createElement("p",null,"💿 Hey developer 👋"),b.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",b.createElement("code",{style:f},"ErrorBoundary")," or"," ",b.createElement("code",{style:f},"errorElement")," prop on your route.")),b.createElement(b.Fragment,null,b.createElement("h2",null,"Unexpected Application Error!"),b.createElement("h3",{style:{fontStyle:"italic"}},i),r?b.createElement("pre",{style:d},r):null,g)}var Tb=b.createElement(Ab,null),Rp=class extends b.Component{constructor(a){super(a),this.state={location:a.location,revalidation:a.revalidation,error:a.error}}static getDerivedStateFromError(a){return{error:a}}static getDerivedStateFromProps(a,i){return i.location!==a.location||i.revalidation!=="idle"&&a.revalidation==="idle"?{error:a.error,location:a.location,revalidation:a.revalidation}:{error:a.error!==void 0?a.error:i.error,location:i.location,revalidation:a.revalidation||i.revalidation}}componentDidCatch(a,i){this.props.onError?this.props.onError(a,i):console.error("React Router caught the following error during render",a)}render(){let a=this.state.error;if(this.context&&typeof a=="object"&&a&&"digest"in a&&typeof a.digest=="string"){const r=jb(a.digest);r&&(a=r)}let i=a!==void 0?b.createElement(Un.Provider,{value:this.props.routeContext},b.createElement(jd.Provider,{value:a,children:this.props.component})):this.props.children;return this.context?b.createElement(Nb,{error:a},i):i}};Rp.contextType=Tp;var Xo=new WeakMap;function Nb({children:a,error:i}){let{basename:r}=b.useContext(Wt);if(typeof i=="object"&&i&&"digest"in i&&typeof i.digest=="string"){let c=xb(i.digest);if(c){let d=Xo.get(i);if(d)throw d;let f=kp(c.location,r);if(Ep&&!Xo.get(i))if(f.isExternal||c.reloadDocument)window.location.href=f.absoluteURL||f.to;else{const g=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(f.to,{replace:c.replace}));throw Xo.set(i,g),g}return b.createElement("meta",{httpEquiv:"refresh",content:`0;url=${f.absoluteURL||f.to}`})}}return a}function Cb({routeContext:a,match:i,children:r}){let c=b.useContext(vi);return c&&c.static&&c.staticContext&&(i.route.errorElement||i.route.ErrorBoundary)&&(c.staticContext._deepestRenderedBoundaryId=i.route.id),b.createElement(Un.Provider,{value:a},r)}function Db(a,i=[],r){let c=r==null?void 0:r.state;if(a==null){if(!c)return null;if(c.errors)a=c.matches;else if(i.length===0&&!c.initialized&&c.matches.length>0)a=c.matches;else return null}let d=a,f=c==null?void 0:c.errors;if(f!=null){let w=d.findIndex(S=>S.route.id&&(f==null?void 0:f[S.route.id])!==void 0);We(w>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(f).join(",")}`),d=d.slice(0,Math.min(d.length,w+1))}let g=!1,_=-1;if(r&&c){g=c.renderFallback;for(let w=0;w=0?d=d.slice(0,_+1):d=[d[0]];break}}}}let h=r==null?void 0:r.onError,p=c&&h?(w,S)=>{var k,z;h(w,{location:c.location,params:((z=(k=c.matches)==null?void 0:k[0])==null?void 0:z.params)??{},pattern:gb(c.matches),errorInfo:S})}:void 0;return d.reduceRight((w,S,k)=>{let z,T=!1,q=null,O=null;c&&(z=f&&S.route.id?f[S.route.id]:void 0,q=S.route.errorElement||Tb,g&&(_<0&&k===0?(Op("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),T=!0,O=null):_===k&&(T=!0,O=S.route.hydrateFallbackElement||null)));let G=i.concat(d.slice(0,k+1)),I=()=>{let J;return z?J=q:T?J=O:S.route.Component?J=b.createElement(S.route.Component,null):S.route.element?J=S.route.element:J=w,b.createElement(Cb,{match:S,routeContext:{outlet:w,matches:G,isDataRoute:c!=null},children:J})};return c&&(S.route.ErrorBoundary||S.route.errorElement||k===0)?b.createElement(Rp,{location:c.location,revalidation:c.revalidation,component:q,error:z,children:I(),routeContext:{outlet:null,matches:G,isDataRoute:!0},onError:p}):I()},null)}function Ed(a){return`${a} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Mb(a){let i=b.useContext(vi);return We(i,Ed(a)),i}function zb(a){let i=b.useContext(Ec);return We(i,Ed(a)),i}function Rb(a){let i=b.useContext(Un);return We(i,Ed(a)),i}function kd(a){let i=Rb(a),r=i.matches[i.matches.length-1];return We(r.route.id,`${a} can only be used on routes that contain a unique "id"`),r.route.id}function Ob(){return kd("useRouteId")}function qb(){var c;let a=b.useContext(jd),i=zb("useRouteError"),r=kd("useRouteError");return a!==void 0?a:(c=i.errors)==null?void 0:c[r]}function $b(){let{router:a}=Mb("useNavigate"),i=kd("useNavigate"),r=b.useRef(!1);return Mp(()=>{r.current=!0}),b.useCallback(async(d,f={})=>{mn(r.current,Dp),r.current&&(typeof d=="number"?await a.navigate(d):await a.navigate(d,{fromRouteId:i,...f}))},[a,i])}var zg={};function Op(a,i,r){!i&&!zg[a]&&(zg[a]=!0,mn(!1,r))}b.memo(Lb);function Lb({routes:a,manifest:i,future:r,state:c,isStatic:d,onError:f}){return zp(a,void 0,{manifest:i,state:c,isStatic:d,onError:f})}function Ub({to:a,replace:i,state:r,relative:c}){We(bi()," may be used only in the context of a component.");let{static:d}=b.useContext(Wt);mn(!d," must not be used on the initial render in a . This is a no-op, but you should modify your code so the is only ever rendered in response to some user interaction or state change.");let{matches:f}=b.useContext(Un),{pathname:g}=wn(),_=wd(),h=wc(a,xd(f),g,c==="path"),p=JSON.stringify(h);return b.useEffect(()=>{_(JSON.parse(p),{replace:i,state:r,relative:c})},[_,p,c,i,r]),null}function ud(a){We(!1,"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .")}function Bb({basename:a="/",children:i=null,location:r,navigationType:c="POP",navigator:d,static:f=!1,useTransitions:g}){We(!bi(),"You cannot render a inside another . You should never have more than one in your app.");let _=a.replace(/^\/*/,"/"),h=b.useMemo(()=>({basename:_,navigator:d,static:f,useTransitions:g,future:{}}),[_,d,f,g]);typeof r=="string"&&(r=wl(r));let{pathname:p="/",search:w="",hash:S="",state:k=null,key:z="default",mask:T}=r,q=b.useMemo(()=>{let O=oa(p,_);return O==null?null:{location:{pathname:O,search:w,hash:S,state:k,key:z,mask:T},navigationType:c}},[_,p,w,S,k,z,c,T]);return mn(q!=null,` is not able to match the URL "${p}${w}${S}" because it does not start with the basename, so the won't render anything.`),q==null?null:b.createElement(Wt.Provider,{value:h},b.createElement(Rs.Provider,{children:i,value:q}))}function Hb({children:a,location:i}){return kb(od(a),i)}function od(a,i=[]){let r=[];return b.Children.forEach(a,(c,d)=>{if(!b.isValidElement(c))return;let f=[...i,d];if(c.type===b.Fragment){r.push.apply(r,od(c.props.children,f));return}We(c.type===ud,`[${typeof c.type=="string"?c.type:c.type.name}] is not a component. All component children of must be a or `),We(!c.props.index||!c.props.children,"An index route cannot have child routes.");let g={id:c.props.id||f.join("-"),caseSensitive:c.props.caseSensitive,element:c.props.element,Component:c.props.Component,index:c.props.index,path:c.props.path,middleware:c.props.middleware,loader:c.props.loader,action:c.props.action,hydrateFallbackElement:c.props.hydrateFallbackElement,HydrateFallback:c.props.HydrateFallback,errorElement:c.props.errorElement,ErrorBoundary:c.props.ErrorBoundary,hasErrorBoundary:c.props.hasErrorBoundary===!0||c.props.ErrorBoundary!=null||c.props.errorElement!=null,shouldRevalidate:c.props.shouldRevalidate,handle:c.props.handle,lazy:c.props.lazy};c.props.children&&(g.children=od(c.props.children,f)),r.push(g)}),r}var uc="get",oc="application/x-www-form-urlencoded";function kc(a){return typeof HTMLElement<"u"&&a instanceof HTMLElement}function Gb(a){return kc(a)&&a.tagName.toLowerCase()==="button"}function Yb(a){return kc(a)&&a.tagName.toLowerCase()==="form"}function Qb(a){return kc(a)&&a.tagName.toLowerCase()==="input"}function Kb(a){return!!(a.metaKey||a.altKey||a.ctrlKey||a.shiftKey)}function Xb(a,i){return a.button===0&&(!i||i==="_self")&&!Kb(a)}var nc=null;function Zb(){if(nc===null)try{new FormData(document.createElement("form"),0),nc=!1}catch{nc=!0}return nc}var Vb=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Zo(a){return a!=null&&!Vb.has(a)?(mn(!1,`"${a}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${oc}"`),null):a}function Jb(a,i){let r,c,d,f,g;if(Yb(a)){let _=a.getAttribute("action");c=_?oa(_,i):null,r=a.getAttribute("method")||uc,d=Zo(a.getAttribute("enctype"))||oc,f=new FormData(a)}else if(Gb(a)||Qb(a)&&(a.type==="submit"||a.type==="image")){let _=a.form;if(_==null)throw new Error('Cannot submit a