From d0b4c7ee59f9e34fdbcef7f230293e8945e8fe6c Mon Sep 17 00:00:00 2001 From: Alex Newman Date: Thu, 5 Feb 2026 18:14:46 -0500 Subject: [PATCH] MAESTRO: Add DOMPurify XSS defense-in-depth to TerminalPreview (closes PR #896) PR #896 identified a valid XSS concern in TerminalPreview.tsx but was broken (missing DOMPurify import and dependency). The existing escapeXML:true on AnsiToHtml already mitigates the vector, but DOMPurify adds defense-in-depth sanitization. Co-Authored-By: Claude Opus 4.6 --- Auto Run Docs/PR-Triage/PR-Triage-03.md | 3 ++- package.json | 2 ++ plugin/scripts/worker-service.cjs | 2 +- plugin/ui/viewer-bundle.js | 26 +++++++++++--------- src/ui/viewer/components/TerminalPreview.tsx | 8 +++++- 5 files changed, 27 insertions(+), 14 deletions(-) diff --git a/Auto Run Docs/PR-Triage/PR-Triage-03.md b/Auto Run Docs/PR-Triage/PR-Triage-03.md index 04e5d05d..66c94bde 100644 --- a/Auto Run Docs/PR-Triage/PR-Triage-03.md +++ b/Auto Run Docs/PR-Triage/PR-Triage-03.md @@ -14,4 +14,5 @@ Two PRs fix the same CORS vulnerability (worker allows `Access-Control-Allow-Ori ## XSS Vulnerability in Viewer UI -- [ ] Review PR #896 (`[Security] Fix HIGH vulnerability: V-003` by @orbisai0security). File: `src/ui/viewer/components/TerminalPreview.tsx`. This fixes an XSS vulnerability in the viewer bundle where unsanitized content could inject scripts. Steps: (1) `gh pr checkout 896` (2) Review the TerminalPreview.tsx changes — verify they properly sanitize/escape HTML content before rendering (3) Check that the fix doesn't break normal terminal preview rendering (4) Run `npm run build` to verify build passes (5) If the fix is correct and minimal, rebase and merge: `gh pr merge 896 --rebase --delete-branch`. **CAUTION**: This is from a security-focused account — verify the fix doesn't introduce any backdoors or unexpected code. Review every line carefully. +- [x] Review PR #896 (`[Security] Fix HIGH vulnerability: V-003` by @orbisai0security). File: `src/ui/viewer/components/TerminalPreview.tsx`. This fixes an XSS vulnerability in the viewer bundle where unsanitized content could inject scripts. Steps: (1) `gh pr checkout 896` (2) Review the TerminalPreview.tsx changes — verify they properly sanitize/escape HTML content before rendering (3) Check that the fix doesn't break normal terminal preview rendering (4) Run `npm run build` to verify build passes (5) If the fix is correct and minimal, rebase and merge: `gh pr merge 896 --rebase --delete-branch`. **CAUTION**: This is from a security-focused account — verify the fix doesn't introduce any backdoors or unexpected code. Review every line carefully. + > ✅ Closed PR #896 — the submitted fix was broken (missing `import DOMPurify` and missing `dompurify` dependency in package.json, so it wouldn't compile). Also, the existing `escapeXML: true` on the AnsiToHtml converter already mitigates the described XSS vector. Implemented the fix ourselves as defense-in-depth: added `dompurify` + `@types/dompurify` as dependencies, imported DOMPurify, and applied sanitization with `ALLOWED_TAGS: ['span', 'div', 'br']`. Build passes, all existing tests pass. diff --git a/package.json b/package.json index 04e52f51..11641bcb 100644 --- a/package.json +++ b/package.json @@ -99,6 +99,7 @@ "@anthropic-ai/claude-agent-sdk": "^0.1.76", "@modelcontextprotocol/sdk": "^1.25.1", "ansi-to-html": "^0.7.2", + "dompurify": "^3.3.1", "express": "^4.18.2", "glob": "^11.0.3", "handlebars": "^4.7.8", @@ -109,6 +110,7 @@ }, "devDependencies": { "@types/cors": "^2.8.19", + "@types/dompurify": "^3.0.5", "@types/express": "^4.17.21", "@types/node": "^20.0.0", "@types/react": "^18.3.5", diff --git a/plugin/scripts/worker-service.cjs b/plugin/scripts/worker-service.cjs index 39e0c686..623e6f25 100755 --- a/plugin/scripts/worker-service.cjs +++ b/plugin/scripts/worker-service.cjs @@ -740,7 +740,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs. `}var RG=Sl.default.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function CG(){let t={};for(let e of RG){let r=Sl.default.env[e];r!==void 0&&(r.startsWith("()")||(t[e]=r))}return t}var Is=class{constructor(e){this._readBuffer=new lm,this._stderrStream=null,this._serverParams=e,(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new VR.PassThrough)}async start(){if(this._process)throw new Error("StdioClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((e,r)=>{this._process=(0,BR.default)(this._serverParams.command,this._serverParams.args??[],{env:{...CG(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:Sl.default.platform==="win32"&&NG(),cwd:this._serverParams.cwd}),this._process.on("error",n=>{r(n),this.onerror?.(n)}),this._process.on("spawn",()=>{e()}),this._process.on("close",n=>{this._process=void 0,this.onclose?.()}),this._process.stdin?.on("error",n=>{this.onerror?.(n)}),this._process.stdout?.on("data",n=>{this._readBuffer.append(n),this.processReadBuffer()}),this._process.stdout?.on("error",n=>{this.onerror?.(n)}),this._stderrStream&&this._process.stderr&&this._process.stderr.pipe(this._stderrStream)})}get stderr(){return this._stderrStream?this._stderrStream:this._process?.stderr??null}get pid(){return this._process?.pid??null}processReadBuffer(){for(;;)try{let e=this._readBuffer.readMessage();if(e===null)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}async close(){if(this._process){let e=this._process;this._process=void 0;let r=new Promise(n=>{e.once("close",()=>{n()})});try{e.stdin?.end()}catch{}if(await Promise.race([r,new Promise(n=>setTimeout(n,2e3).unref())]),e.exitCode===null){try{e.kill("SIGTERM")}catch{}await Promise.race([r,new Promise(n=>setTimeout(n,2e3).unref())])}if(e.exitCode===null)try{e.kill("SIGKILL")}catch{}}this._readBuffer.clear()}send(e){return new Promise(r=>{if(!this._process?.stdin)throw new Error("Not connected");let n=HR(e);this._process.stdin.write(n)?r():this._process.stdin.once("drain",r)})}};function NG(){return"type"in Sl.default}Br();Se();var e0=ut(require("path"),1),iC=require("os"),Vn=require("fs"),ao=require("child_process"),aC=require("util");Se();fi();var fm=(0,aC.promisify)(ao.exec),oC=e0.default.join((0,iC.homedir)(),".claude-mem"),io=e0.default.join(oC,"worker.pid");function sC(t){(0,Vn.mkdirSync)(oC,{recursive:!0}),(0,Vn.writeFileSync)(io,JSON.stringify(t,null,2))}function cC(){if(!(0,Vn.existsSync)(io))return null;try{return JSON.parse((0,Vn.readFileSync)(io,"utf-8"))}catch(t){return E.warn("SYSTEM","Failed to parse PID file",{path:io},t),null}}function hi(){if((0,Vn.existsSync)(io))try{(0,Vn.unlinkSync)(io)}catch(t){E.warn("SYSTEM","Failed to remove PID file",{path:io},t)}}function oo(t){return process.platform==="win32"?Math.round(t*2):t}async function uC(t){if(process.platform!=="win32")return[];if(!Number.isInteger(t)||t<=0)return E.warn("SYSTEM","Invalid parent PID for child process enumeration",{parentPid:t}),[];try{let e=`powershell -NoProfile -NonInteractive -Command "Get-Process | Where-Object { \\$_.ParentProcessId -eq ${t} } | Select-Object -ExpandProperty Id"`,{stdout:r}=await fm(e,{timeout:ga.POWERSHELL_COMMAND});return r.split(` `).map(n=>n.trim()).filter(n=>n.length>0&&/^\d+$/.test(n)).map(n=>parseInt(n,10)).filter(n=>n>0)}catch(e){return E.error("SYSTEM","Failed to enumerate child processes",{parentPid:t},e),[]}}async function lC(t){if(!Number.isInteger(t)||t<=0){E.warn("SYSTEM","Invalid PID for force kill",{pid:t});return}try{process.platform==="win32"?await fm(`taskkill /PID ${t} /T /F`,{timeout:ga.POWERSHELL_COMMAND}):process.kill(t,"SIGKILL"),E.info("SYSTEM","Killed process",{pid:t})}catch(e){E.debug("SYSTEM","Process already exited during force kill",{pid:t},e)}}async function dC(t,e){let r=Date.now();for(;Date.now()-r{try{return process.kill(i,0),!0}catch{return!1}});if(n.length===0){E.info("SYSTEM","All child processes exited");return}E.debug("SYSTEM","Waiting for processes to exit",{stillAlive:n}),await new Promise(i=>setTimeout(i,100))}E.warn("SYSTEM","Timeout waiting for child processes to exit")}async function pC(){let t=process.platform==="win32",e=[];try{if(t){let r=`powershell -NoProfile -NonInteractive -Command "Get-CimInstance Win32_Process | Where-Object { \\$_.Name -like '*python*' -and \\$_.CommandLine -like '*chroma-mcp*' } | Select-Object -ExpandProperty ProcessId"`,{stdout:n}=await fm(r,{timeout:ga.POWERSHELL_COMMAND});if(!n.trim()){E.debug("SYSTEM","No orphaned chroma-mcp processes found (Windows)");return}let i=n.split(` `).map(a=>a.trim()).filter(a=>a.length>0&&/^\d+$/.test(a));for(let a of i){let o=parseInt(a,10);!isNaN(o)&&Number.isInteger(o)&&o>0&&e.push(o)}}else{let{stdout:r}=await fm('ps aux | grep "chroma-mcp" | grep -v grep || true');if(!r.trim()){E.debug("SYSTEM","No orphaned chroma-mcp processes found (Unix)");return}let n=r.trim().split(` -`);for(let i of n){let a=i.trim().split(/\s+/);if(a.length>1){let o=parseInt(a[1],10);!isNaN(o)&&Number.isInteger(o)&&o>0&&e.push(o)}}}}catch(r){E.error("SYSTEM","Failed to enumerate orphaned processes",{},r);return}if(e.length!==0){if(E.info("SYSTEM","Cleaning up orphaned chroma-mcp processes",{platform:t?"Windows":"Unix",count:e.length,pids:e}),t)for(let r of e){if(!Number.isInteger(r)||r<=0){E.warn("SYSTEM","Skipping invalid PID",{pid:r});continue}try{(0,ao.execSync)(`taskkill /PID ${r} /T /F`,{timeout:ga.POWERSHELL_COMMAND,stdio:"ignore"})}catch(n){E.debug("SYSTEM","Failed to kill process, may have already exited",{pid:r},n)}}else for(let r of e)try{process.kill(r,"SIGKILL")}catch(n){E.debug("SYSTEM","Process already exited",{pid:r},n)}E.info("SYSTEM","Orphaned processes cleaned up",{count:e.length})}}function t0(t,e,r={}){let n=process.platform==="win32",i={...process.env,CLAUDE_MEM_WORKER_PORT:String(e),...r};if(n){let c=`wmic process call create "\\"${process.execPath}\\" \\"${t}\\" --daemon"`;try{return(0,ao.execSync)(c,{stdio:"ignore",windowsHide:!0}),0}catch{return}}let a=(0,ao.spawn)(process.execPath,[t,"--daemon"],{detached:!0,stdio:"ignore",env:i});if(a.pid!==void 0)return a.unref(),a.pid}function fC(t,e){return async r=>{if(e.value){E.warn("SYSTEM",`Received ${r} but shutdown already in progress`);return}e.value=!0,E.info("SYSTEM",`Received ${r}, shutting down...`);try{await t(),process.exit(0)}catch(n){E.error("SYSTEM","Error during shutdown",{},n),process.exit(0)}}}var r0=ut(require("path"),1),mC=require("os"),hC=require("fs");Se();async function Tl(t){try{return(await fetch(`http://127.0.0.1:${t}/api/health`)).ok}catch{return!1}}async function Il(t,e=3e4){let r=Date.now();for(;Date.now()-rsetTimeout(n,500))}return!1}async function mm(t,e=1e4){let r=Date.now();for(;Date.now()-rsetTimeout(n,500))}return!1}async function hm(t){try{let e=await fetch(`http://127.0.0.1:${t}/api/admin/shutdown`,{method:"POST"});return e.ok?!0:(E.warn("SYSTEM","Shutdown request returned error",{port:t,status:e.status}),!1)}catch(e){return e instanceof Error&&e.message?.includes("ECONNREFUSED")?(E.debug("SYSTEM","Worker already stopped",{port:t},e),!1):(E.error("SYSTEM","Shutdown request failed unexpectedly",{port:t},e),!1)}}function UG(){let t=r0.default.join((0,mC.homedir)(),".claude","plugins","marketplaces","thedotmack"),e=r0.default.join(t,"package.json");return JSON.parse((0,hC.readFileSync)(e,"utf-8")).version}async function LG(t){try{let e=await fetch(`http://127.0.0.1:${t}/api/version`);return e.ok?(await e.json()).version:null}catch{return E.debug("SYSTEM","Could not fetch worker version",{port:t}),null}}async function gC(t){let e=UG(),r=await LG(t);return r?{matches:e===r,pluginVersion:e,workerVersion:r}:{matches:!0,pluginVersion:e,workerVersion:r}}Se();async function vC(t){E.info("SYSTEM","Shutdown initiated"),hi();let e=await uC(process.pid);if(E.info("SYSTEM","Found child processes",{count:e.length,pids:e}),t.server&&(await qG(t.server),E.info("SYSTEM","HTTP server closed")),await t.sessionManager.shutdownAll(),t.mcpClient&&(await t.mcpClient.close(),E.info("SYSTEM","MCP client closed")),t.dbManager&&await t.dbManager.close(),e.length>0){E.info("SYSTEM","Force killing remaining children");for(let r of e)await lC(r);await dC(e,5e3)}E.info("SYSTEM","Worker shutdown complete")}async function qG(t){t.closeAllConnections(),process.platform==="win32"&&await new Promise(e=>setTimeout(e,500)),await new Promise((e,r)=>{t.close(n=>n?r(n):e())}),process.platform==="win32"&&(await new Promise(e=>setTimeout(e,500)),E.info("SYSTEM","Waited for Windows port cleanup"))}var M4=ut(wh(),1),l$=ut(require("fs"),1),d$=ut(require("path"),1);Se();var s$=ut(wh(),1),R4=ut(x4(),1),C4=ut(require("path"),1);dn();Se();function c$(t){let e=[];e.push(s$.default.json({limit:"50mb"})),e.push((0,R4.default)()),e.push((i,a,o)=>{let c=[".html",".js",".css",".svg",".png",".jpg",".jpeg",".webp",".woff",".woff2",".ttf",".eot"].some(h=>i.path.endsWith(h)),u=i.path==="/api/logs";if(i.path.startsWith("/health")||i.path==="/"||c||u)return o();let l=Date.now(),d=`${i.method}-${Date.now()}`,p=t(i.method,i.path,i.body);E.info("HTTP",`\u2192 ${i.method} ${i.path}`,{requestId:d},p);let f=a.send.bind(a);a.send=function(h){let _=Date.now()-l;return E.info("HTTP",`\u2190 ${a.statusCode} ${i.path}`,{requestId:d,duration:`${_}ms`}),f(h)},o()});let r=Jr(),n=C4.default.join(r,"plugin","ui");return e.push(s$.default.static(n)),e}function Eh(t,e,r){let n=t.ip||t.connection.remoteAddress||"";if(!(n==="127.0.0.1"||n==="::1"||n==="::ffff:127.0.0.1"||n==="localhost")){E.warn("SECURITY","Admin endpoint access denied - not localhost",{endpoint:t.path,clientIp:n,method:t.method}),e.status(403).json({error:"Forbidden",message:"Admin endpoints are only accessible from localhost"});return}r()}function u$(t,e,r){if(!r||Object.keys(r).length===0||e.includes("/init"))return"";if(e.includes("/observations")){let n=r.tool_name||"?",i=r.tool_input;return`tool=${E.formatTool(n,i)}`}return e.includes("/summarize")?"requesting summary":""}Se();var tc=class extends Error{constructor(r,n=500,i,a){super(r);this.statusCode=n;this.code=i;this.details=a;this.name="AppError"}};function N4(t,e,r,n){let i={error:t,message:e};return r&&(i.code=r),n&&(i.details=n),i}var A4=(t,e,r,n)=>{let i=t instanceof tc?t.statusCode:500;E.error("HTTP",`Error handling ${e.method} ${e.path}`,{statusCode:i,error:t.message,code:t instanceof tc?t.code:void 0},t);let a=N4(t.name||"Error",t.message,t instanceof tc?t.code:void 0,t instanceof tc?t.details:void 0);r.status(i).json(a)};function j4(t,e){e.status(404).json(N4("NotFound",`Cannot ${t.method} ${t.path}`))}var tie="9.0.17",kh=class{app;server=null;options;startTime=Date.now();constructor(e){this.options=e,this.app=(0,M4.default)(),this.setupMiddleware(),this.setupCoreRoutes()}getHttpServer(){return this.server}async listen(e,r){return new Promise((n,i)=>{this.server=this.app.listen(e,r,()=>{E.info("SYSTEM","HTTP server started",{host:r,port:e,pid:process.pid}),n()}),this.server.on("error",i)})}async close(){this.server&&(this.server.closeAllConnections(),process.platform==="win32"&&await new Promise(e=>setTimeout(e,500)),await new Promise((e,r)=>{this.server.close(n=>n?r(n):e())}),process.platform==="win32"&&await new Promise(e=>setTimeout(e,500)),this.server=null,E.info("SYSTEM","HTTP server closed"))}registerRoutes(e){e.setupRoutes(this.app)}finalizeRoutes(){this.app.use(j4),this.app.use(A4)}setupMiddleware(){c$(u$).forEach(r=>this.app.use(r))}setupCoreRoutes(){let e="TEST-008-wrapper-ipc";this.app.get("/api/health",(r,n)=>{n.status(200).json({status:"ok",build:e,managed:process.env.CLAUDE_MEM_MANAGED==="true",hasIpc:typeof process.send=="function",platform:process.platform,pid:process.pid,initialized:this.options.getInitializationComplete(),mcpReady:this.options.getMcpReady()})}),this.app.get("/api/readiness",(r,n)=>{this.options.getInitializationComplete()?n.status(200).json({status:"ready",mcpReady:this.options.getMcpReady()}):n.status(503).json({status:"initializing",message:"Worker is still initializing, please retry"})}),this.app.get("/api/version",(r,n)=>{n.status(200).json({version:tie})}),this.app.get("/api/instructions",async(r,n)=>{let i=r.query.topic||"all",a=r.query.operation;try{let o;if(a){let s=d$.default.join(__dirname,"../skills/mem-search/operations",`${a}.md`);o=await l$.promises.readFile(s,"utf-8")}else{let s=d$.default.join(__dirname,"../skills/mem-search/SKILL.md"),c=await l$.promises.readFile(s,"utf-8");o=this.extractInstructionSection(c,i)}n.json({content:[{type:"text",text:o}]})}catch{n.status(404).json({error:"Instruction not found"})}}),this.app.post("/api/admin/restart",Eh,async(r,n)=>{n.json({status:"restarting"}),process.platform==="win32"&&process.env.CLAUDE_MEM_MANAGED==="true"&&process.send?(E.info("SYSTEM","Sending restart request to wrapper"),process.send({type:"restart"})):setTimeout(async()=>{await this.options.onRestart()},100)}),this.app.post("/api/admin/shutdown",Eh,async(r,n)=>{n.json({status:"shutting_down"}),process.platform==="win32"&&process.env.CLAUDE_MEM_MANAGED==="true"&&process.send?(E.info("SYSTEM","Sending shutdown request to wrapper"),process.send({type:"shutdown"})):setTimeout(async()=>{await this.options.onShutdown()},100)})}extractInstructionSection(e,r){let n={workflow:this.extractBetween(e,"## The Workflow","## Search Parameters"),search_params:this.extractBetween(e,"## Search Parameters","## Examples"),examples:this.extractBetween(e,"## Examples","## Why This Workflow"),all:e};return n[r]||n.all}extractBetween(e,r,n){let i=e.indexOf(r),a=e.indexOf(n);return i===-1?e:a===-1?e.substring(i):e.substring(i,a).trim()}};var lt=ut(require("path"),1),rc=require("os"),Gt=require("fs"),U4=require("child_process"),L4=require("util");Se();Br();var Pn=require("fs"),pd=require("path");Se();function D4(t){try{return(0,Pn.existsSync)(t)?JSON.parse((0,Pn.readFileSync)(t,"utf-8")):{}}catch(e){return E.error("CONFIG","Failed to read Cursor registry, using empty registry",{file:t,error:e instanceof Error?e.message:String(e)}),{}}}function z4(t,e){let r=(0,pd.join)(t,"..");(0,Pn.mkdirSync)(r,{recursive:!0}),(0,Pn.writeFileSync)(t,JSON.stringify(e,null,2))}function p$(t,e){let r=(0,pd.join)(t,".cursor","rules"),n=(0,pd.join)(r,"claude-mem-context.mdc"),i=`${n}.tmp`;(0,Pn.mkdirSync)(r,{recursive:!0});let a=`--- +`);for(let i of n){let a=i.trim().split(/\s+/);if(a.length>1){let o=parseInt(a[1],10);!isNaN(o)&&Number.isInteger(o)&&o>0&&e.push(o)}}}}catch(r){E.error("SYSTEM","Failed to enumerate orphaned processes",{},r);return}if(e.length!==0){if(E.info("SYSTEM","Cleaning up orphaned chroma-mcp processes",{platform:t?"Windows":"Unix",count:e.length,pids:e}),t)for(let r of e){if(!Number.isInteger(r)||r<=0){E.warn("SYSTEM","Skipping invalid PID",{pid:r});continue}try{(0,ao.execSync)(`taskkill /PID ${r} /T /F`,{timeout:ga.POWERSHELL_COMMAND,stdio:"ignore"})}catch(n){E.debug("SYSTEM","Failed to kill process, may have already exited",{pid:r},n)}}else for(let r of e)try{process.kill(r,"SIGKILL")}catch(n){E.debug("SYSTEM","Process already exited",{pid:r},n)}E.info("SYSTEM","Orphaned processes cleaned up",{count:e.length})}}function t0(t,e,r={}){let n=process.platform==="win32",i={...process.env,CLAUDE_MEM_WORKER_PORT:String(e),...r};if(n){let c=`wmic process call create "\\"${process.execPath}\\" \\"${t}\\" --daemon"`;try{return(0,ao.execSync)(c,{stdio:"ignore",windowsHide:!0}),0}catch{return}}let a=(0,ao.spawn)(process.execPath,[t,"--daemon"],{detached:!0,stdio:"ignore",env:i});if(a.pid!==void 0)return a.unref(),a.pid}function fC(t,e){return async r=>{if(e.value){E.warn("SYSTEM",`Received ${r} but shutdown already in progress`);return}e.value=!0,E.info("SYSTEM",`Received ${r}, shutting down...`);try{await t(),process.exit(0)}catch(n){E.error("SYSTEM","Error during shutdown",{},n),process.exit(0)}}}var r0=ut(require("path"),1),mC=require("os"),hC=require("fs");Se();async function Tl(t){try{return(await fetch(`http://127.0.0.1:${t}/api/health`)).ok}catch{return!1}}async function Il(t,e=3e4){let r=Date.now();for(;Date.now()-rsetTimeout(n,500))}return!1}async function mm(t,e=1e4){let r=Date.now();for(;Date.now()-rsetTimeout(n,500))}return!1}async function hm(t){try{let e=await fetch(`http://127.0.0.1:${t}/api/admin/shutdown`,{method:"POST"});return e.ok?!0:(E.warn("SYSTEM","Shutdown request returned error",{port:t,status:e.status}),!1)}catch(e){return e instanceof Error&&e.message?.includes("ECONNREFUSED")?(E.debug("SYSTEM","Worker already stopped",{port:t},e),!1):(E.error("SYSTEM","Shutdown request failed unexpectedly",{port:t},e),!1)}}function UG(){let t=r0.default.join((0,mC.homedir)(),".claude","plugins","marketplaces","thedotmack"),e=r0.default.join(t,"package.json");return JSON.parse((0,hC.readFileSync)(e,"utf-8")).version}async function LG(t){try{let e=await fetch(`http://127.0.0.1:${t}/api/version`);return e.ok?(await e.json()).version:null}catch{return E.debug("SYSTEM","Could not fetch worker version",{port:t}),null}}async function gC(t){let e=UG(),r=await LG(t);return r?{matches:e===r,pluginVersion:e,workerVersion:r}:{matches:!0,pluginVersion:e,workerVersion:r}}Se();async function vC(t){E.info("SYSTEM","Shutdown initiated"),hi();let e=await uC(process.pid);if(E.info("SYSTEM","Found child processes",{count:e.length,pids:e}),t.server&&(await qG(t.server),E.info("SYSTEM","HTTP server closed")),await t.sessionManager.shutdownAll(),t.mcpClient&&(await t.mcpClient.close(),E.info("SYSTEM","MCP client closed")),t.dbManager&&await t.dbManager.close(),e.length>0){E.info("SYSTEM","Force killing remaining children");for(let r of e)await lC(r);await dC(e,5e3)}E.info("SYSTEM","Worker shutdown complete")}async function qG(t){t.closeAllConnections(),process.platform==="win32"&&await new Promise(e=>setTimeout(e,500)),await new Promise((e,r)=>{t.close(n=>n?r(n):e())}),process.platform==="win32"&&(await new Promise(e=>setTimeout(e,500)),E.info("SYSTEM","Waited for Windows port cleanup"))}var M4=ut(wh(),1),l$=ut(require("fs"),1),d$=ut(require("path"),1);Se();var s$=ut(wh(),1),R4=ut(x4(),1),C4=ut(require("path"),1);dn();Se();function c$(t){let e=[];e.push(s$.default.json({limit:"50mb"})),e.push((0,R4.default)({origin:(i,a)=>{!i||i.startsWith("http://localhost:")||i.startsWith("http://127.0.0.1:")?a(null,!0):a(new Error("CORS not allowed"))},credentials:!1})),e.push((i,a,o)=>{let c=[".html",".js",".css",".svg",".png",".jpg",".jpeg",".webp",".woff",".woff2",".ttf",".eot"].some(h=>i.path.endsWith(h)),u=i.path==="/api/logs";if(i.path.startsWith("/health")||i.path==="/"||c||u)return o();let l=Date.now(),d=`${i.method}-${Date.now()}`,p=t(i.method,i.path,i.body);E.info("HTTP",`\u2192 ${i.method} ${i.path}`,{requestId:d},p);let f=a.send.bind(a);a.send=function(h){let _=Date.now()-l;return E.info("HTTP",`\u2190 ${a.statusCode} ${i.path}`,{requestId:d,duration:`${_}ms`}),f(h)},o()});let r=Jr(),n=C4.default.join(r,"plugin","ui");return e.push(s$.default.static(n)),e}function Eh(t,e,r){let n=t.ip||t.connection.remoteAddress||"";if(!(n==="127.0.0.1"||n==="::1"||n==="::ffff:127.0.0.1"||n==="localhost")){E.warn("SECURITY","Admin endpoint access denied - not localhost",{endpoint:t.path,clientIp:n,method:t.method}),e.status(403).json({error:"Forbidden",message:"Admin endpoints are only accessible from localhost"});return}r()}function u$(t,e,r){if(!r||Object.keys(r).length===0||e.includes("/init"))return"";if(e.includes("/observations")){let n=r.tool_name||"?",i=r.tool_input;return`tool=${E.formatTool(n,i)}`}return e.includes("/summarize")?"requesting summary":""}Se();var tc=class extends Error{constructor(r,n=500,i,a){super(r);this.statusCode=n;this.code=i;this.details=a;this.name="AppError"}};function N4(t,e,r,n){let i={error:t,message:e};return r&&(i.code=r),n&&(i.details=n),i}var A4=(t,e,r,n)=>{let i=t instanceof tc?t.statusCode:500;E.error("HTTP",`Error handling ${e.method} ${e.path}`,{statusCode:i,error:t.message,code:t instanceof tc?t.code:void 0},t);let a=N4(t.name||"Error",t.message,t instanceof tc?t.code:void 0,t instanceof tc?t.details:void 0);r.status(i).json(a)};function j4(t,e){e.status(404).json(N4("NotFound",`Cannot ${t.method} ${t.path}`))}var tie="9.0.17",kh=class{app;server=null;options;startTime=Date.now();constructor(e){this.options=e,this.app=(0,M4.default)(),this.setupMiddleware(),this.setupCoreRoutes()}getHttpServer(){return this.server}async listen(e,r){return new Promise((n,i)=>{this.server=this.app.listen(e,r,()=>{E.info("SYSTEM","HTTP server started",{host:r,port:e,pid:process.pid}),n()}),this.server.on("error",i)})}async close(){this.server&&(this.server.closeAllConnections(),process.platform==="win32"&&await new Promise(e=>setTimeout(e,500)),await new Promise((e,r)=>{this.server.close(n=>n?r(n):e())}),process.platform==="win32"&&await new Promise(e=>setTimeout(e,500)),this.server=null,E.info("SYSTEM","HTTP server closed"))}registerRoutes(e){e.setupRoutes(this.app)}finalizeRoutes(){this.app.use(j4),this.app.use(A4)}setupMiddleware(){c$(u$).forEach(r=>this.app.use(r))}setupCoreRoutes(){let e="TEST-008-wrapper-ipc";this.app.get("/api/health",(r,n)=>{n.status(200).json({status:"ok",build:e,managed:process.env.CLAUDE_MEM_MANAGED==="true",hasIpc:typeof process.send=="function",platform:process.platform,pid:process.pid,initialized:this.options.getInitializationComplete(),mcpReady:this.options.getMcpReady()})}),this.app.get("/api/readiness",(r,n)=>{this.options.getInitializationComplete()?n.status(200).json({status:"ready",mcpReady:this.options.getMcpReady()}):n.status(503).json({status:"initializing",message:"Worker is still initializing, please retry"})}),this.app.get("/api/version",(r,n)=>{n.status(200).json({version:tie})}),this.app.get("/api/instructions",async(r,n)=>{let i=r.query.topic||"all",a=r.query.operation;try{let o;if(a){let s=d$.default.join(__dirname,"../skills/mem-search/operations",`${a}.md`);o=await l$.promises.readFile(s,"utf-8")}else{let s=d$.default.join(__dirname,"../skills/mem-search/SKILL.md"),c=await l$.promises.readFile(s,"utf-8");o=this.extractInstructionSection(c,i)}n.json({content:[{type:"text",text:o}]})}catch{n.status(404).json({error:"Instruction not found"})}}),this.app.post("/api/admin/restart",Eh,async(r,n)=>{n.json({status:"restarting"}),process.platform==="win32"&&process.env.CLAUDE_MEM_MANAGED==="true"&&process.send?(E.info("SYSTEM","Sending restart request to wrapper"),process.send({type:"restart"})):setTimeout(async()=>{await this.options.onRestart()},100)}),this.app.post("/api/admin/shutdown",Eh,async(r,n)=>{n.json({status:"shutting_down"}),process.platform==="win32"&&process.env.CLAUDE_MEM_MANAGED==="true"&&process.send?(E.info("SYSTEM","Sending shutdown request to wrapper"),process.send({type:"shutdown"})):setTimeout(async()=>{await this.options.onShutdown()},100)})}extractInstructionSection(e,r){let n={workflow:this.extractBetween(e,"## The Workflow","## Search Parameters"),search_params:this.extractBetween(e,"## Search Parameters","## Examples"),examples:this.extractBetween(e,"## Examples","## Why This Workflow"),all:e};return n[r]||n.all}extractBetween(e,r,n){let i=e.indexOf(r),a=e.indexOf(n);return i===-1?e:a===-1?e.substring(i):e.substring(i,a).trim()}};var lt=ut(require("path"),1),rc=require("os"),Gt=require("fs"),U4=require("child_process"),L4=require("util");Se();Br();var Pn=require("fs"),pd=require("path");Se();function D4(t){try{return(0,Pn.existsSync)(t)?JSON.parse((0,Pn.readFileSync)(t,"utf-8")):{}}catch(e){return E.error("CONFIG","Failed to read Cursor registry, using empty registry",{file:t,error:e instanceof Error?e.message:String(e)}),{}}}function z4(t,e){let r=(0,pd.join)(t,"..");(0,Pn.mkdirSync)(r,{recursive:!0}),(0,Pn.writeFileSync)(t,JSON.stringify(e,null,2))}function p$(t,e){let r=(0,pd.join)(t,".cursor","rules"),n=(0,pd.join)(r,"claude-mem-context.mdc"),i=`${n}.tmp`;(0,Pn.mkdirSync)(r,{recursive:!0});let a=`--- alwaysApply: true description: "Claude-mem context from past sessions (auto-updated)" --- diff --git a/plugin/ui/viewer-bundle.js b/plugin/ui/viewer-bundle.js index 0c743163..8cd8d894 100644 --- a/plugin/ui/viewer-bundle.js +++ b/plugin/ui/viewer-bundle.js @@ -1,16 +1,17 @@ -"use strict";(()=>{var Xd=Object.create;var su=Object.defineProperty;var $d=Object.getOwnPropertyDescriptor;var Kd=Object.getOwnPropertyNames;var Yd=Object.getPrototypeOf,Qd=Object.prototype.hasOwnProperty;var me=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Zd=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Kd(t))!Qd.call(e,o)&&o!==r&&su(e,o,{get:()=>t[o],enumerable:!(n=$d(t,o))||n.enumerable});return e};var W=(e,t,r)=>(r=e!=null?Xd(Yd(e)):{},Zd(t||!e||!e.__esModule?su(r,"default",{value:e,enumerable:!0}):r,e));var Eu=me(P=>{"use strict";var $r=Symbol.for("react.element"),Jd=Symbol.for("react.portal"),ep=Symbol.for("react.fragment"),tp=Symbol.for("react.strict_mode"),rp=Symbol.for("react.profiler"),np=Symbol.for("react.provider"),op=Symbol.for("react.context"),lp=Symbol.for("react.forward_ref"),ip=Symbol.for("react.suspense"),sp=Symbol.for("react.memo"),up=Symbol.for("react.lazy"),uu=Symbol.iterator;function ap(e){return e===null||typeof e!="object"?null:(e=uu&&e[uu]||e["@@iterator"],typeof e=="function"?e:null)}var fu={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},du=Object.assign,pu={};function pr(e,t,r){this.props=e,this.context=t,this.refs=pu,this.updater=r||fu}pr.prototype.isReactComponent={};pr.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};pr.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function mu(){}mu.prototype=pr.prototype;function Ul(e,t,r){this.props=e,this.context=t,this.refs=pu,this.updater=r||fu}var Fl=Ul.prototype=new mu;Fl.constructor=Ul;du(Fl,pr.prototype);Fl.isPureReactComponent=!0;var au=Array.isArray,gu=Object.prototype.hasOwnProperty,zl={current:null},hu={key:!0,ref:!0,__self:!0,__source:!0};function vu(e,t,r){var n,o={},l=null,i=null;if(t!=null)for(n in t.ref!==void 0&&(i=t.ref),t.key!==void 0&&(l=""+t.key),t)gu.call(t,n)&&!hu.hasOwnProperty(n)&&(o[n]=t[n]);var s=arguments.length-2;if(s===1)o.children=r;else if(1{"use strict";Su.exports=Eu()});var Ou=me(H=>{"use strict";function Bl(e,t){var r=e.length;e.push(t);e:for(;0>>1,o=e[n];if(0>>1;nZn(s,r))uZn(a,s)?(e[n]=a,e[u]=r,n=u):(e[n]=s,e[i]=r,n=i);else if(uZn(a,r))e[n]=a,e[u]=r,n=u;else break e}}return t}function Zn(e,t){var r=e.sortIndex-t.sortIndex;return r!==0?r:e.id-t.id}typeof performance=="object"&&typeof performance.now=="function"?(_u=performance,H.unstable_now=function(){return _u.now()}):(Hl=Date,wu=Hl.now(),H.unstable_now=function(){return Hl.now()-wu});var _u,Hl,wu,nt=[],Ct=[],mp=1,He=null,ge=3,to=!1,Qt=!1,Yr=!1,ku=typeof setTimeout=="function"?setTimeout:null,Nu=typeof clearTimeout=="function"?clearTimeout:null,Cu=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function Vl(e){for(var t=Ge(Ct);t!==null;){if(t.callback===null)eo(Ct);else if(t.startTime<=e)eo(Ct),t.sortIndex=t.expirationTime,Bl(nt,t);else break;t=Ge(Ct)}}function bl(e){if(Yr=!1,Vl(e),!Qt)if(Ge(nt)!==null)Qt=!0,Gl(Wl);else{var t=Ge(Ct);t!==null&&Xl(bl,t.startTime-e)}}function Wl(e,t){Qt=!1,Yr&&(Yr=!1,Nu(Qr),Qr=-1),to=!0;var r=ge;try{for(Vl(t),He=Ge(nt);He!==null&&(!(He.expirationTime>t)||e&&!xu());){var n=He.callback;if(typeof n=="function"){He.callback=null,ge=He.priorityLevel;var o=n(He.expirationTime<=t);t=H.unstable_now(),typeof o=="function"?He.callback=o:He===Ge(nt)&&eo(nt),Vl(t)}else eo(nt);He=Ge(nt)}if(He!==null)var l=!0;else{var i=Ge(Ct);i!==null&&Xl(bl,i.startTime-t),l=!1}return l}finally{He=null,ge=r,to=!1}}var ro=!1,Jn=null,Qr=-1,Lu=5,Mu=-1;function xu(){return!(H.unstable_now()-Mue||125n?(e.sortIndex=r,Bl(Ct,e),Ge(nt)===null&&e===Ge(Ct)&&(Yr?(Nu(Qr),Qr=-1):Yr=!0,Xl(bl,r-n))):(e.sortIndex=o,Bl(nt,e),Qt||to||(Qt=!0,Gl(Wl))),e};H.unstable_shouldYield=xu;H.unstable_wrapCallback=function(e){var t=ge;return function(){var r=ge;ge=t;try{return e.apply(this,arguments)}finally{ge=r}}}});var Pu=me((oh,Au)=>{"use strict";Au.exports=Ou()});var zf=me(Ue=>{"use strict";var gp=G(),De=Pu();function _(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),hi=Object.prototype.hasOwnProperty,hp=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Du={},Iu={};function vp(e){return hi.call(Iu,e)?!0:hi.call(Du,e)?!1:hp.test(e)?Iu[e]=!0:(Du[e]=!0,!1)}function yp(e,t,r,n){if(r!==null&&r.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return n?!1:r!==null?!r.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Ep(e,t,r,n){if(t===null||typeof t>"u"||yp(e,t,r,n))return!0;if(n)return!1;if(r!==null)switch(r.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Ce(e,t,r,n,o,l,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=n,this.attributeNamespace=o,this.mustUseProperty=r,this.propertyName=e,this.type=t,this.sanitizeURL=l,this.removeEmptyString=i}var fe={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){fe[e]=new Ce(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];fe[t]=new Ce(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){fe[e]=new Ce(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){fe[e]=new Ce(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){fe[e]=new Ce(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){fe[e]=new Ce(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){fe[e]=new Ce(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){fe[e]=new Ce(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){fe[e]=new Ce(e,5,!1,e.toLowerCase(),null,!1,!1)});var us=/[\-:]([a-z])/g;function as(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(us,as);fe[t]=new Ce(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(us,as);fe[t]=new Ce(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(us,as);fe[t]=new Ce(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){fe[e]=new Ce(e,1,!1,e.toLowerCase(),null,!1,!1)});fe.xlinkHref=new Ce("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){fe[e]=new Ce(e,1,!1,e.toLowerCase(),null,!0,!0)});function cs(e,t,r,n){var o=fe.hasOwnProperty(t)?fe[t]:null;(o!==null?o.type!==0:n||!(2s||o[i]!==l[s]){var u=` -`+o[i].replace(" at new "," at ");return e.displayName&&u.includes("")&&(u=u.replace("",e.displayName)),u}while(1<=i&&0<=s);break}}}finally{Kl=!1,Error.prepareStackTrace=r}return(e=e?e.displayName||e.name:"")?sn(e):""}function Sp(e){switch(e.tag){case 5:return sn(e.type);case 16:return sn("Lazy");case 13:return sn("Suspense");case 19:return sn("SuspenseList");case 0:case 2:case 15:return e=Yl(e.type,!1),e;case 11:return e=Yl(e.type.render,!1),e;case 1:return e=Yl(e.type,!0),e;default:return""}}function Si(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case vr:return"Fragment";case hr:return"Portal";case vi:return"Profiler";case fs:return"StrictMode";case yi:return"Suspense";case Ei:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case qa:return(e.displayName||"Context")+".Consumer";case ja:return(e._context.displayName||"Context")+".Provider";case ds:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ps:return t=e.displayName||null,t!==null?t:Si(e.type)||"Memo";case kt:t=e._payload,e=e._init;try{return Si(e(t))}catch{}}return null}function _p(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Si(t);case 8:return t===fs?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Ht(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Va(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function wp(e){var t=Va(e)?"checked":"value",r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),n=""+e[t];if(!e.hasOwnProperty(t)&&typeof r<"u"&&typeof r.get=="function"&&typeof r.set=="function"){var o=r.get,l=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(i){n=""+i,l.call(this,i)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(i){n=""+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function oo(e){e._valueTracker||(e._valueTracker=wp(e))}function ba(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var r=t.getValue(),n="";return e&&(n=Va(e)?e.checked?"true":"false":e.value),e=n,e!==r?(t.setValue(e),!0):!1}function Do(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function _i(e,t){var r=t.checked;return Y({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??e._wrapperState.initialChecked})}function Fu(e,t){var r=t.defaultValue==null?"":t.defaultValue,n=t.checked!=null?t.checked:t.defaultChecked;r=Ht(t.value!=null?t.value:r),e._wrapperState={initialChecked:n,initialValue:r,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Wa(e,t){t=t.checked,t!=null&&cs(e,"checked",t,!1)}function wi(e,t){Wa(e,t);var r=Ht(t.value),n=t.type;if(r!=null)n==="number"?(r===0&&e.value===""||e.value!=r)&&(e.value=""+r):e.value!==""+r&&(e.value=""+r);else if(n==="submit"||n==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Ci(e,t.type,r):t.hasOwnProperty("defaultValue")&&Ci(e,t.type,Ht(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function zu(e,t,r){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var n=t.type;if(!(n!=="submit"&&n!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,r||t===e.value||(e.value=t),e.defaultValue=t}r=e.name,r!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,r!==""&&(e.name=r)}function Ci(e,t,r){(t!=="number"||Do(e.ownerDocument)!==e)&&(r==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+r&&(e.defaultValue=""+r))}var un=Array.isArray;function Mr(e,t,r,n){if(e=e.options,t){t={};for(var o=0;o"+t.valueOf().toString()+"",t=lo.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function _n(e,t){if(t){var r=e.firstChild;if(r&&r===e.lastChild&&r.nodeType===3){r.nodeValue=t;return}}e.textContent=t}var fn={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Cp=["Webkit","ms","Moz","O"];Object.keys(fn).forEach(function(e){Cp.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),fn[t]=fn[e]})});function Ka(e,t,r){return t==null||typeof t=="boolean"||t===""?"":r||typeof t!="number"||t===0||fn.hasOwnProperty(e)&&fn[e]?(""+t).trim():t+"px"}function Ya(e,t){e=e.style;for(var r in t)if(t.hasOwnProperty(r)){var n=r.indexOf("--")===0,o=Ka(r,t[r],n);r==="float"&&(r="cssFloat"),n?e.setProperty(r,o):e[r]=o}}var Tp=Y({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ni(e,t){if(t){if(Tp[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(_(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(_(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(_(61))}if(t.style!=null&&typeof t.style!="object")throw Error(_(62))}}function Li(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Mi=null;function ms(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var xi=null,xr=null,Or=null;function ju(e){if(e=Hn(e)){if(typeof xi!="function")throw Error(_(280));var t=e.stateNode;t&&(t=sl(t),xi(e.stateNode,e.type,t))}}function Qa(e){xr?Or?Or.push(e):Or=[e]:xr=e}function Za(){if(xr){var e=xr,t=Or;if(Or=xr=null,ju(e),t)for(e=0;e>>=0,e===0?32:31-(Up(e)/Fp|0)|0}var io=64,so=4194304;function an(e){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: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 e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function zo(e,t){var r=e.pendingLanes;if(r===0)return 0;var n=0,o=e.suspendedLanes,l=e.pingedLanes,i=r&268435455;if(i!==0){var s=i&~o;s!==0?n=an(s):(l&=i,l!==0&&(n=an(l)))}else i=r&~o,i!==0?n=an(i):l!==0&&(n=an(l));if(n===0)return 0;if(t!==0&&t!==n&&(t&o)===0&&(o=n&-n,l=t&-t,o>=l||o===16&&(l&4194240)!==0))return t;if((n&4)!==0&&(n|=r&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=n;0r;r++)t.push(e);return t}function zn(e,t,r){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Qe(t),e[t]=r}function jp(e,t){var r=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var n=e.eventTimes;for(e=e.expirationTimes;0=pn),Ku=" ",Yu=!1;function yc(e,t){switch(e){case"keyup":return mm.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Ec(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var yr=!1;function hm(e,t){switch(e){case"compositionend":return Ec(t);case"keypress":return t.which!==32?null:(Yu=!0,Ku);case"textInput":return e=t.data,e===Ku&&Yu?null:e;default:return null}}function vm(e,t){if(yr)return e==="compositionend"||!ws&&yc(e,t)?(e=hc(),To=Es=xt=null,yr=!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:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=Ju(r)}}function Cc(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Cc(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Tc(){for(var e=window,t=Do();t instanceof e.HTMLIFrameElement;){try{var r=typeof t.contentWindow.location.href=="string"}catch{r=!1}if(r)e=t.contentWindow;else break;t=Do(e.document)}return t}function Cs(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")}function Nm(e){var t=Tc(),r=e.focusedElem,n=e.selectionRange;if(t!==r&&r&&r.ownerDocument&&Cc(r.ownerDocument.documentElement,r)){if(n!==null&&Cs(r)){if(t=n.start,e=n.end,e===void 0&&(e=t),"selectionStart"in r)r.selectionStart=t,r.selectionEnd=Math.min(e,r.value.length);else if(e=(t=r.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var o=r.textContent.length,l=Math.min(n.start,o);n=n.end===void 0?l:Math.min(n.end,o),!e.extend&&l>n&&(o=n,n=l,l=o),o=ea(r,l);var i=ea(r,n);o&&i&&(e.rangeCount!==1||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(o.node,o.offset),e.removeAllRanges(),l>n?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}}for(t=[],e=r;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof r.focus=="function"&&r.focus(),r=0;r=document.documentMode,Er=null,Ui=null,gn=null,Fi=!1;function ta(e,t,r){var n=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;Fi||Er==null||Er!==Do(n)||(n=Er,"selectionStart"in n&&Cs(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),gn&&Ln(gn,n)||(gn=n,n=jo(Ui,"onSelect"),0wr||(e.current=Bi[wr],Bi[wr]=null,wr--)}function j(e,t){wr++,Bi[wr]=e.current,e.current=t}var jt={},Ee=Bt(jt),Ne=Bt(!1),lr=jt;function Ur(e,t){var r=e.type.contextTypes;if(!r)return jt;var n=e.stateNode;if(n&&n.__reactInternalMemoizedUnmaskedChildContext===t)return n.__reactInternalMemoizedMaskedChildContext;var o={},l;for(l in r)o[l]=t[l];return n&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function Le(e){return e=e.childContextTypes,e!=null}function Bo(){B(Ne),B(Ee)}function ca(e,t,r){if(Ee.current!==jt)throw Error(_(168));j(Ee,t),j(Ne,r)}function Dc(e,t,r){var n=e.stateNode;if(t=t.childContextTypes,typeof n.getChildContext!="function")return r;n=n.getChildContext();for(var o in n)if(!(o in t))throw Error(_(108,_p(e)||"Unknown",o));return Y({},r,n)}function Vo(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||jt,lr=Ee.current,j(Ee,e),j(Ne,Ne.current),!0}function fa(e,t,r){var n=e.stateNode;if(!n)throw Error(_(169));r?(e=Dc(e,t,lr),n.__reactInternalMemoizedMergedChildContext=e,B(Ne),B(Ee),j(Ee,e)):B(Ne),j(Ne,r)}var dt=null,ul=!1,si=!1;function Ic(e){dt===null?dt=[e]:dt.push(e)}function Fm(e){ul=!0,Ic(e)}function Vt(){if(!si&&dt!==null){si=!0;var e=0,t=F;try{var r=dt;for(F=1;e>=i,o-=i,pt=1<<32-Qe(t)+o|r<M?(U=N,N=null):U=N.sibling;var O=g(d,N,f[M],y);if(O===null){N===null&&(N=U);break}e&&N&&O.alternate===null&&t(d,N),c=l(O,c,M),h===null?w=O:h.sibling=O,h=O,N=U}if(M===f.length)return r(d,N),X&&Zt(d,M),w;if(N===null){for(;MM?(U=N,N=null):U=N.sibling;var pe=g(d,N,O.value,y);if(pe===null){N===null&&(N=U);break}e&&N&&pe.alternate===null&&t(d,N),c=l(pe,c,M),h===null?w=pe:h.sibling=pe,h=pe,N=U}if(O.done)return r(d,N),X&&Zt(d,M),w;if(N===null){for(;!O.done;M++,O=f.next())O=m(d,O.value,y),O!==null&&(c=l(O,c,M),h===null?w=O:h.sibling=O,h=O);return X&&Zt(d,M),w}for(N=n(d,N);!O.done;M++,O=f.next())O=S(N,d,M,O.value,y),O!==null&&(e&&O.alternate!==null&&N.delete(O.key===null?M:O.key),c=l(O,c,M),h===null?w=O:h.sibling=O,h=O);return e&&N.forEach(function(ee){return t(d,ee)}),X&&Zt(d,M),w}function x(d,c,f,y){if(typeof f=="object"&&f!==null&&f.type===vr&&f.key===null&&(f=f.props.children),typeof f=="object"&&f!==null){switch(f.$$typeof){case no:e:{for(var w=f.key,h=c;h!==null;){if(h.key===w){if(w=f.type,w===vr){if(h.tag===7){r(d,h.sibling),c=o(h,f.props.children),c.return=d,d=c;break e}}else if(h.elementType===w||typeof w=="object"&&w!==null&&w.$$typeof===kt&&ma(w)===h.type){r(d,h.sibling),c=o(h,f.props),c.ref=rn(d,h,f),c.return=d,d=c;break e}r(d,h);break}else t(d,h);h=h.sibling}f.type===vr?(c=or(f.props.children,d.mode,y,f.key),c.return=d,d=c):(y=Po(f.type,f.key,f.props,null,d.mode,y),y.ref=rn(d,c,f),y.return=d,d=y)}return i(d);case hr:e:{for(h=f.key;c!==null;){if(c.key===h)if(c.tag===4&&c.stateNode.containerInfo===f.containerInfo&&c.stateNode.implementation===f.implementation){r(d,c.sibling),c=o(c,f.children||[]),c.return=d,d=c;break e}else{r(d,c);break}else t(d,c);c=c.sibling}c=gi(f,d.mode,y),c.return=d,d=c}return i(d);case kt:return h=f._init,x(d,c,h(f._payload),y)}if(un(f))return E(d,c,f,y);if(Zr(f))return T(d,c,f,y);Eo(d,f)}return typeof f=="string"&&f!==""||typeof f=="number"?(f=""+f,c!==null&&c.tag===6?(r(d,c.sibling),c=o(c,f),c.return=d,d=c):(r(d,c),c=mi(f,d.mode,y),c.return=d,d=c),i(d)):r(d,c)}return x}var zr=Rc(!0),Hc=Rc(!1),Go=Bt(null),Xo=null,kr=null,Ls=null;function Ms(){Ls=kr=Xo=null}function xs(e){var t=Go.current;B(Go),e._currentValue=t}function Wi(e,t,r){for(;e!==null;){var n=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,n!==null&&(n.childLanes|=t)):n!==null&&(n.childLanes&t)!==t&&(n.childLanes|=t),e===r)break;e=e.return}}function Pr(e,t){Xo=e,Ls=kr=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(ke=!0),e.firstContext=null)}function be(e){var t=e._currentValue;if(Ls!==e)if(e={context:e,memoizedValue:t,next:null},kr===null){if(Xo===null)throw Error(_(308));kr=e,Xo.dependencies={lanes:0,firstContext:e}}else kr=kr.next=e;return t}var tr=null;function Os(e){tr===null?tr=[e]:tr.push(e)}function jc(e,t,r,n){var o=t.interleaved;return o===null?(r.next=r,Os(t)):(r.next=o.next,o.next=r),t.interleaved=r,yt(e,n)}function yt(e,t){e.lanes|=t;var r=e.alternate;for(r!==null&&(r.lanes|=t),r=e,e=e.return;e!==null;)e.childLanes|=t,r=e.alternate,r!==null&&(r.childLanes|=t),r=e,e=e.return;return r.tag===3?r.stateNode:null}var Nt=!1;function As(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function qc(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function gt(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Ut(e,t,r){var n=e.updateQueue;if(n===null)return null;if(n=n.shared,(I&2)!==0){var o=n.pending;return o===null?t.next=t:(t.next=o.next,o.next=t),n.pending=t,yt(e,r)}return o=n.interleaved,o===null?(t.next=t,Os(n)):(t.next=o.next,o.next=t),n.interleaved=t,yt(e,r)}function No(e,t,r){if(t=t.updateQueue,t!==null&&(t=t.shared,(r&4194240)!==0)){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,hs(e,r)}}function ga(e,t){var r=e.updateQueue,n=e.alternate;if(n!==null&&(n=n.updateQueue,r===n)){var o=null,l=null;if(r=r.firstBaseUpdate,r!==null){do{var i={eventTime:r.eventTime,lane:r.lane,tag:r.tag,payload:r.payload,callback:r.callback,next:null};l===null?o=l=i:l=l.next=i,r=r.next}while(r!==null);l===null?o=l=t:l=l.next=t}else o=l=t;r={baseState:n.baseState,firstBaseUpdate:o,lastBaseUpdate:l,shared:n.shared,effects:n.effects},e.updateQueue=r;return}e=r.lastBaseUpdate,e===null?r.firstBaseUpdate=t:e.next=t,r.lastBaseUpdate=t}function $o(e,t,r,n){var o=e.updateQueue;Nt=!1;var l=o.firstBaseUpdate,i=o.lastBaseUpdate,s=o.shared.pending;if(s!==null){o.shared.pending=null;var u=s,a=u.next;u.next=null,i===null?l=a:i.next=a,i=u;var p=e.alternate;p!==null&&(p=p.updateQueue,s=p.lastBaseUpdate,s!==i&&(s===null?p.firstBaseUpdate=a:s.next=a,p.lastBaseUpdate=u))}if(l!==null){var m=o.baseState;i=0,p=a=u=null,s=l;do{var g=s.lane,S=s.eventTime;if((n&g)===g){p!==null&&(p=p.next={eventTime:S,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var E=e,T=s;switch(g=t,S=r,T.tag){case 1:if(E=T.payload,typeof E=="function"){m=E.call(S,m,g);break e}m=E;break e;case 3:E.flags=E.flags&-65537|128;case 0:if(E=T.payload,g=typeof E=="function"?E.call(S,m,g):E,g==null)break e;m=Y({},m,g);break e;case 2:Nt=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,g=o.effects,g===null?o.effects=[s]:g.push(s))}else S={eventTime:S,lane:g,tag:s.tag,payload:s.payload,callback:s.callback,next:null},p===null?(a=p=S,u=m):p=p.next=S,i|=g;if(s=s.next,s===null){if(s=o.shared.pending,s===null)break;g=s,s=g.next,g.next=null,o.lastBaseUpdate=g,o.shared.pending=null}}while(!0);if(p===null&&(u=m),o.baseState=u,o.firstBaseUpdate=a,o.lastBaseUpdate=p,t=o.shared.interleaved,t!==null){o=t;do i|=o.lane,o=o.next;while(o!==t)}else l===null&&(o.shared.lanes=0);ur|=i,e.lanes=i,e.memoizedState=m}}function ha(e,t,r){if(e=t.effects,t.effects=null,e!==null)for(t=0;tr?r:4,e(!0);var n=ai.transition;ai.transition={};try{e(!1),t()}finally{F=r,ai.transition=n}}function of(){return We().memoizedState}function jm(e,t,r){var n=zt(e);if(r={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null},lf(e))sf(t,r);else if(r=jc(e,t,r,n),r!==null){var o=we();Ze(r,e,n,o),uf(r,t,n)}}function qm(e,t,r){var n=zt(e),o={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null};if(lf(e))sf(t,o);else{var l=e.alternate;if(e.lanes===0&&(l===null||l.lanes===0)&&(l=t.lastRenderedReducer,l!==null))try{var i=t.lastRenderedState,s=l(i,r);if(o.hasEagerState=!0,o.eagerState=s,Je(s,i)){var u=t.interleaved;u===null?(o.next=o,Os(t)):(o.next=u.next,u.next=o),t.interleaved=o;return}}catch{}r=jc(e,t,o,n),r!==null&&(o=we(),Ze(r,e,n,o),uf(r,t,n))}}function lf(e){var t=e.alternate;return e===K||t!==null&&t===K}function sf(e,t){hn=Yo=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t}function uf(e,t,r){if((r&4194240)!==0){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,hs(e,r)}}var Qo={readContext:be,useCallback:he,useContext:he,useEffect:he,useImperativeHandle:he,useInsertionEffect:he,useLayoutEffect:he,useMemo:he,useReducer:he,useRef:he,useState:he,useDebugValue:he,useDeferredValue:he,useTransition:he,useMutableSource:he,useSyncExternalStore:he,useId:he,unstable_isNewReconciler:!1},Bm={readContext:be,useCallback:function(e,t){return lt().memoizedState=[e,t===void 0?null:t],e},useContext:be,useEffect:ya,useImperativeHandle:function(e,t,r){return r=r!=null?r.concat([e]):null,Mo(4194308,4,Jc.bind(null,t,e),r)},useLayoutEffect:function(e,t){return Mo(4194308,4,e,t)},useInsertionEffect:function(e,t){return Mo(4,2,e,t)},useMemo:function(e,t){var r=lt();return t=t===void 0?null:t,e=e(),r.memoizedState=[e,t],e},useReducer:function(e,t,r){var n=lt();return t=r!==void 0?r(t):t,n.memoizedState=n.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},n.queue=e,e=e.dispatch=jm.bind(null,K,e),[n.memoizedState,e]},useRef:function(e){var t=lt();return e={current:e},t.memoizedState=e},useState:va,useDebugValue:Hs,useDeferredValue:function(e){return lt().memoizedState=e},useTransition:function(){var e=va(!1),t=e[0];return e=Hm.bind(null,e[1]),lt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,r){var n=K,o=lt();if(X){if(r===void 0)throw Error(_(407));r=r()}else{if(r=t(),ie===null)throw Error(_(349));(sr&30)!==0||Wc(n,t,r)}o.memoizedState=r;var l={value:r,getSnapshot:t};return o.queue=l,ya(Xc.bind(null,n,l,e),[e]),n.flags|=2048,Un(9,Gc.bind(null,n,l,r,t),void 0,null),r},useId:function(){var e=lt(),t=ie.identifierPrefix;if(X){var r=mt,n=pt;r=(n&~(1<<32-Qe(n)-1)).toString(32)+r,t=":"+t+"R"+r,r=Dn++,0{var $m=Object.create;var ju=Object.defineProperty;var Km=Object.getOwnPropertyDescriptor;var Ym=Object.getOwnPropertyNames;var Qm=Object.getPrototypeOf,Zm=Object.prototype.hasOwnProperty;var Ne=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Jm=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Ym(t))!Zm.call(e,o)&&o!==n&&ju(e,o,{get:()=>t[o],enumerable:!(r=Km(t,o))||r.enumerable});return e};var te=(e,t,n)=>(n=e!=null?$m(Qm(e)):{},Jm(t||!e||!e.__esModule?ju(n,"default",{value:e,enumerable:!0}):n,e));var Ju=Ne(F=>{"use strict";var Fr=Symbol.for("react.element"),eg=Symbol.for("react.portal"),tg=Symbol.for("react.fragment"),ng=Symbol.for("react.strict_mode"),rg=Symbol.for("react.profiler"),og=Symbol.for("react.provider"),lg=Symbol.for("react.context"),ig=Symbol.for("react.forward_ref"),sg=Symbol.for("react.suspense"),ag=Symbol.for("react.memo"),ug=Symbol.for("react.lazy"),Bu=Symbol.iterator;function cg(e){return e===null||typeof e!="object"?null:(e=Bu&&e[Bu]||e["@@iterator"],typeof e=="function"?e:null)}var Wu={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Gu=Object.assign,Xu={};function Jn(e,t,n){this.props=e,this.context=t,this.refs=Xu,this.updater=n||Wu}Jn.prototype.isReactComponent={};Jn.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Jn.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function $u(){}$u.prototype=Jn.prototype;function Hi(e,t,n){this.props=e,this.context=t,this.refs=Xu,this.updater=n||Wu}var ji=Hi.prototype=new $u;ji.constructor=Hi;Gu(ji,Jn.prototype);ji.isPureReactComponent=!0;var qu=Array.isArray,Ku=Object.prototype.hasOwnProperty,Bi={current:null},Yu={key:!0,ref:!0,__self:!0,__source:!0};function Qu(e,t,n){var r,o={},l=null,i=null;if(t!=null)for(r in t.ref!==void 0&&(i=t.ref),t.key!==void 0&&(l=""+t.key),t)Ku.call(t,r)&&!Yu.hasOwnProperty(r)&&(o[r]=t[r]);var s=arguments.length-2;if(s===1)o.children=n;else if(1{"use strict";ec.exports=Ju()});var cc=Ne($=>{"use strict";function Xi(e,t){var n=e.length;e.push(t);e:for(;0>>1,o=e[r];if(0>>1;rKo(s,n))aKo(u,s)?(e[r]=u,e[a]=n,r=a):(e[r]=s,e[i]=n,r=i);else if(aKo(u,n))e[r]=u,e[a]=n,r=a;else break e}}return t}function Ko(e,t){var n=e.sortIndex-t.sortIndex;return n!==0?n:e.id-t.id}typeof performance=="object"&&typeof performance.now=="function"?(tc=performance,$.unstable_now=function(){return tc.now()}):(Vi=Date,nc=Vi.now(),$.unstable_now=function(){return Vi.now()-nc});var tc,Vi,nc,Tt=[],Xt=[],gg=1,tt=null,Le=3,Zo=!1,An=!1,zr=!1,lc=typeof setTimeout=="function"?setTimeout:null,ic=typeof clearTimeout=="function"?clearTimeout:null,rc=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function $i(e){for(var t=ut(Xt);t!==null;){if(t.callback===null)Qo(Xt);else if(t.startTime<=e)Qo(Xt),t.sortIndex=t.expirationTime,Xi(Tt,t);else break;t=ut(Xt)}}function Ki(e){if(zr=!1,$i(e),!An)if(ut(Tt)!==null)An=!0,Qi(Yi);else{var t=ut(Xt);t!==null&&Zi(Ki,t.startTime-e)}}function Yi(e,t){An=!1,zr&&(zr=!1,ic(Hr),Hr=-1),Zo=!0;var n=Le;try{for($i(t),tt=ut(Tt);tt!==null&&(!(tt.expirationTime>t)||e&&!uc());){var r=tt.callback;if(typeof r=="function"){tt.callback=null,Le=tt.priorityLevel;var o=r(tt.expirationTime<=t);t=$.unstable_now(),typeof o=="function"?tt.callback=o:tt===ut(Tt)&&Qo(Tt),$i(t)}else Qo(Tt);tt=ut(Tt)}if(tt!==null)var l=!0;else{var i=ut(Xt);i!==null&&Zi(Ki,i.startTime-t),l=!1}return l}finally{tt=null,Le=n,Zo=!1}}var Jo=!1,Yo=null,Hr=-1,sc=5,ac=-1;function uc(){return!($.unstable_now()-ace||125r?(e.sortIndex=n,Xi(Xt,e),ut(Tt)===null&&e===ut(Xt)&&(zr?(ic(Hr),Hr=-1):zr=!0,Zi(Ki,n-r))):(e.sortIndex=o,Xi(Tt,e),An||Zo||(An=!0,Qi(Yi))),e};$.unstable_shouldYield=uc;$.unstable_wrapCallback=function(e){var t=Le;return function(){var n=Le;Le=t;try{return e.apply(this,arguments)}finally{Le=n}}}});var dc=Ne((L0,fc)=>{"use strict";fc.exports=cc()});var vp=Ne(Qe=>{"use strict";var hg=ne(),Ke=dc();function w(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),_s=Object.prototype.hasOwnProperty,vg=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,pc={},mc={};function yg(e){return _s.call(mc,e)?!0:_s.call(pc,e)?!1:vg.test(e)?mc[e]=!0:(pc[e]=!0,!1)}function Eg(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Sg(e,t,n,r){if(t===null||typeof t>"u"||Eg(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Ue(e,t,n,r,o,l,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=l,this.removeEmptyString=i}var Te={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Te[e]=new Ue(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Te[t]=new Ue(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Te[e]=new Ue(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Te[e]=new Ue(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Te[e]=new Ue(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Te[e]=new Ue(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Te[e]=new Ue(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Te[e]=new Ue(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Te[e]=new Ue(e,5,!1,e.toLowerCase(),null,!1,!1)});var pa=/[\-:]([a-z])/g;function ma(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(pa,ma);Te[t]=new Ue(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(pa,ma);Te[t]=new Ue(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(pa,ma);Te[t]=new Ue(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Te[e]=new Ue(e,1,!1,e.toLowerCase(),null,!1,!1)});Te.xlinkHref=new Ue("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Te[e]=new Ue(e,1,!1,e.toLowerCase(),null,!0,!0)});function ga(e,t,n,r){var o=Te.hasOwnProperty(t)?Te[t]:null;(o!==null?o.type!==0:r||!(2s||o[i]!==l[s]){var a=` +`+o[i].replace(" at new "," at ");return e.displayName&&a.includes("")&&(a=a.replace("",e.displayName)),a}while(1<=i&&0<=s);break}}}finally{es=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Kr(e):""}function _g(e){switch(e.tag){case 5:return Kr(e.type);case 16:return Kr("Lazy");case 13:return Kr("Suspense");case 19:return Kr("SuspenseList");case 0:case 2:case 15:return e=ts(e.type,!1),e;case 11:return e=ts(e.type.render,!1),e;case 1:return e=ts(e.type,!0),e;default:return""}}function Ns(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case rr:return"Fragment";case nr:return"Portal";case Ts:return"Profiler";case ha:return"StrictMode";case ws:return"Suspense";case Cs:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Tf:return(e.displayName||"Context")+".Consumer";case _f:return(e._context.displayName||"Context")+".Provider";case va:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ya:return t=e.displayName||null,t!==null?t:Ns(e.type)||"Memo";case Kt:t=e._payload,e=e._init;try{return Ns(e(t))}catch{}}return null}function Tg(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Ns(t);case 8:return t===ha?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function cn(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Cf(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function wg(e){var t=Cf(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var o=n.get,l=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(i){r=""+i,l.call(this,i)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(i){r=""+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function tl(e){e._valueTracker||(e._valueTracker=wg(e))}function Nf(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Cf(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Ml(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Ls(e,t){var n=t.checked;return ie({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function hc(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=cn(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Lf(e,t){t=t.checked,t!=null&&ga(e,"checked",t,!1)}function ks(e,t){Lf(e,t);var n=cn(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?As(e,t.type,n):t.hasOwnProperty("defaultValue")&&As(e,t.type,cn(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function vc(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function As(e,t,n){(t!=="number"||Ml(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Yr=Array.isArray;function mr(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o"+t.valueOf().toString()+"",t=nl.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function uo(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Jr={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Cg=["Webkit","ms","Moz","O"];Object.keys(Jr).forEach(function(e){Cg.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Jr[t]=Jr[e]})});function Of(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Jr.hasOwnProperty(e)&&Jr[e]?(""+t).trim():t+"px"}function xf(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,o=Of(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}var Ng=ie({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function xs(e,t){if(t){if(Ng[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(w(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(w(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(w(61))}if(t.style!=null&&typeof t.style!="object")throw Error(w(62))}}function Ds(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Ps=null;function Ea(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Is=null,gr=null,hr=null;function Sc(e){if(e=Ao(e)){if(typeof Is!="function")throw Error(w(280));var t=e.stateNode;t&&(t=ri(t),Is(e.stateNode,e.type,t))}}function Df(e){gr?hr?hr.push(e):hr=[e]:gr=e}function Pf(){if(gr){var e=gr,t=hr;if(hr=gr=null,Sc(e),t)for(e=0;e>>=0,e===0?32:31-(Rg(e)/Fg|0)|0}var rl=64,ol=4194304;function Qr(e){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: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 e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Pl(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,o=e.suspendedLanes,l=e.pingedLanes,i=n&268435455;if(i!==0){var s=i&~o;s!==0?r=Qr(s):(l&=i,l!==0&&(r=Qr(l)))}else i=n&~o,i!==0?r=Qr(i):l!==0&&(r=Qr(l));if(r===0)return 0;if(t!==0&&t!==r&&(t&o)===0&&(o=r&-r,l=t&-t,o>=l||o===16&&(l&4194240)!==0))return t;if((r&4)!==0&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Lo(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-mt(t),e[t]=n}function jg(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=to),Mc=" ",Oc=!1;function Jf(e,t){switch(e){case"keyup":return gh.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function ed(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var or=!1;function vh(e,t){switch(e){case"compositionend":return ed(t);case"keypress":return t.which!==32?null:(Oc=!0,Mc);case"textInput":return e=t.data,e===Mc&&Oc?null:e;default:return null}}function yh(e,t){if(or)return e==="compositionend"||!ka&&Jf(e,t)?(e=Qf(),Sl=Ca=Jt=null,or=!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=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Pc(n)}}function od(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?od(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function ld(){for(var e=window,t=Ml();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Ml(e.document)}return t}function Aa(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")}function kh(e){var t=ld(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&od(n.ownerDocument.documentElement,n)){if(r!==null&&Aa(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var o=n.textContent.length,l=Math.min(r.start,o);r=r.end===void 0?l:Math.min(r.end,o),!e.extend&&l>r&&(o=r,r=l,l=o),o=Ic(n,l);var i=Ic(n,r);o&&i&&(e.rangeCount!==1||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(o.node,o.offset),e.removeAllRanges(),l>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,lr=null,Hs=null,ro=null,js=!1;function Uc(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;js||lr==null||lr!==Ml(r)||(r=lr,"selectionStart"in r&&Aa(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),ro&&ho(ro,r)||(ro=r,r=Rl(Hs,"onSelect"),0ar||(e.current=Xs[ar],Xs[ar]=null,ar--)}function K(e,t){ar++,Xs[ar]=e.current,e.current=t}var fn={},Oe=pn(fn),Be=pn(!1),Rn=fn;function _r(e,t){var n=e.type.contextTypes;if(!n)return fn;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o={},l;for(l in n)o[l]=t[l];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function qe(e){return e=e.childContextTypes,e!=null}function bl(){Q(Be),Q(Oe)}function Vc(e,t,n){if(Oe.current!==fn)throw Error(w(168));K(Oe,t),K(Be,n)}function md(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var o in r)if(!(o in t))throw Error(w(108,Tg(e)||"Unknown",o));return ie({},n,r)}function zl(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||fn,Rn=Oe.current,K(Oe,e),K(Be,Be.current),!0}function Wc(e,t,n){var r=e.stateNode;if(!r)throw Error(w(169));n?(e=md(e,t,Rn),r.__reactInternalMemoizedMergedChildContext=e,Q(Be),Q(Oe),K(Oe,e)):Q(Be),K(Be,n)}var Rt=null,oi=!1,ds=!1;function gd(e){Rt===null?Rt=[e]:Rt.push(e)}function Fh(e){oi=!0,gd(e)}function mn(){if(!ds&&Rt!==null){ds=!0;var e=0,t=V;try{var n=Rt;for(V=1;e>=i,o-=i,Ft=1<<32-mt(t)+o|n<O?(B=k,k=null):B=k.sibling;var I=h(p,k,d[O],y);if(I===null){k===null&&(k=B);break}e&&k&&I.alternate===null&&t(p,k),c=l(I,c,O),v===null?C=I:v.sibling=I,v=I,k=B}if(O===d.length)return n(p,k),re&&Mn(p,O),C;if(k===null){for(;OO?(B=k,k=null):B=k.sibling;var j=h(p,k,I.value,y);if(j===null){k===null&&(k=B);break}e&&k&&j.alternate===null&&t(p,k),c=l(j,c,O),v===null?C=j:v.sibling=j,v=j,k=B}if(I.done)return n(p,k),re&&Mn(p,O),C;if(k===null){for(;!I.done;O++,I=d.next())I=g(p,I.value,y),I!==null&&(c=l(I,c,O),v===null?C=I:v.sibling=I,v=I);return re&&Mn(p,O),C}for(k=r(p,k);!I.done;O++,I=d.next())I=T(k,p,O,I.value,y),I!==null&&(e&&I.alternate!==null&&k.delete(I.key===null?O:I.key),c=l(I,c,O),v===null?C=I:v.sibling=I,v=I);return e&&k.forEach(function(J){return t(p,J)}),re&&Mn(p,O),C}function P(p,c,d,y){if(typeof d=="object"&&d!==null&&d.type===rr&&d.key===null&&(d=d.props.children),typeof d=="object"&&d!==null){switch(d.$$typeof){case el:e:{for(var C=d.key,v=c;v!==null;){if(v.key===C){if(C=d.type,C===rr){if(v.tag===7){n(p,v.sibling),c=o(v,d.props.children),c.return=p,p=c;break e}}else if(v.elementType===C||typeof C=="object"&&C!==null&&C.$$typeof===Kt&&$c(C)===v.type){n(p,v.sibling),c=o(v,d.props),c.ref=Wr(p,v,d),c.return=p,p=c;break e}n(p,v);break}else t(p,v);v=v.sibling}d.type===rr?(c=Un(d.props.children,p.mode,y,d.key),c.return=p,p=c):(y=Al(d.type,d.key,d.props,null,p.mode,y),y.ref=Wr(p,c,d),y.return=p,p=y)}return i(p);case nr:e:{for(v=d.key;c!==null;){if(c.key===v)if(c.tag===4&&c.stateNode.containerInfo===d.containerInfo&&c.stateNode.implementation===d.implementation){n(p,c.sibling),c=o(c,d.children||[]),c.return=p,p=c;break e}else{n(p,c);break}else t(p,c);c=c.sibling}c=Ss(d,p.mode,y),c.return=p,p=c}return i(p);case Kt:return v=d._init,P(p,c,v(d._payload),y)}if(Yr(d))return S(p,c,d,y);if(jr(d))return L(p,c,d,y);gl(p,d)}return typeof d=="string"&&d!==""||typeof d=="number"?(d=""+d,c!==null&&c.tag===6?(n(p,c.sibling),c=o(c,d),c.return=p,p=c):(n(p,c),c=Es(d,p.mode,y),c.return=p,p=c),i(p)):n(p,c)}return P}var wr=Ed(!0),Sd=Ed(!1),Bl=pn(null),ql=null,fr=null,Da=null;function Pa(){Da=fr=ql=null}function Ia(e){var t=Bl.current;Q(Bl),e._currentValue=t}function Ys(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function yr(e,t){ql=e,Da=fr=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(je=!0),e.firstContext=null)}function it(e){var t=e._currentValue;if(Da!==e)if(e={context:e,memoizedValue:t,next:null},fr===null){if(ql===null)throw Error(w(308));fr=e,ql.dependencies={lanes:0,firstContext:e}}else fr=fr.next=e;return t}var Dn=null;function Ua(e){Dn===null?Dn=[e]:Dn.push(e)}function _d(e,t,n,r){var o=t.interleaved;return o===null?(n.next=n,Ua(t)):(n.next=o.next,o.next=n),t.interleaved=n,Bt(e,r)}function Bt(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var Yt=!1;function Ra(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Td(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function zt(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function ln(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,(H&2)!==0){var o=r.pending;return o===null?t.next=t:(t.next=o.next,o.next=t),r.pending=t,Bt(e,n)}return o=r.interleaved,o===null?(t.next=t,Ua(r)):(t.next=o.next,o.next=t),r.interleaved=t,Bt(e,n)}function Tl(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,_a(e,n)}}function Kc(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var o=null,l=null;if(n=n.firstBaseUpdate,n!==null){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};l===null?o=l=i:l=l.next=i,n=n.next}while(n!==null);l===null?o=l=t:l=l.next=t}else o=l=t;n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:l,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Vl(e,t,n,r){var o=e.updateQueue;Yt=!1;var l=o.firstBaseUpdate,i=o.lastBaseUpdate,s=o.shared.pending;if(s!==null){o.shared.pending=null;var a=s,u=a.next;a.next=null,i===null?l=u:i.next=u,i=a;var m=e.alternate;m!==null&&(m=m.updateQueue,s=m.lastBaseUpdate,s!==i&&(s===null?m.firstBaseUpdate=u:s.next=u,m.lastBaseUpdate=a))}if(l!==null){var g=o.baseState;i=0,m=u=a=null,s=l;do{var h=s.lane,T=s.eventTime;if((r&h)===h){m!==null&&(m=m.next={eventTime:T,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var S=e,L=s;switch(h=t,T=n,L.tag){case 1:if(S=L.payload,typeof S=="function"){g=S.call(T,g,h);break e}g=S;break e;case 3:S.flags=S.flags&-65537|128;case 0:if(S=L.payload,h=typeof S=="function"?S.call(T,g,h):S,h==null)break e;g=ie({},g,h);break e;case 2:Yt=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,h=o.effects,h===null?o.effects=[s]:h.push(s))}else T={eventTime:T,lane:h,tag:s.tag,payload:s.payload,callback:s.callback,next:null},m===null?(u=m=T,a=g):m=m.next=T,i|=h;if(s=s.next,s===null){if(s=o.shared.pending,s===null)break;h=s,s=h.next,h.next=null,o.lastBaseUpdate=h,o.shared.pending=null}}while(!0);if(m===null&&(a=g),o.baseState=a,o.firstBaseUpdate=u,o.lastBaseUpdate=m,t=o.shared.interleaved,t!==null){o=t;do i|=o.lane,o=o.next;while(o!==t)}else l===null&&(o.shared.lanes=0);zn|=i,e.lanes=i,e.memoizedState=g}}function Yc(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=ms.transition;ms.transition={};try{e(!1),t()}finally{V=n,ms.transition=r}}function zd(){return st().memoizedState}function jh(e,t,n){var r=an(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Hd(e))jd(t,n);else if(n=_d(e,t,n,r),n!==null){var o=Ie();gt(n,e,r,o),Bd(n,t,r)}}function Bh(e,t,n){var r=an(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Hd(e))jd(t,o);else{var l=e.alternate;if(e.lanes===0&&(l===null||l.lanes===0)&&(l=t.lastRenderedReducer,l!==null))try{var i=t.lastRenderedState,s=l(i,n);if(o.hasEagerState=!0,o.eagerState=s,ht(s,i)){var a=t.interleaved;a===null?(o.next=o,Ua(t)):(o.next=a.next,a.next=o),t.interleaved=o;return}}catch{}n=_d(e,t,o,r),n!==null&&(o=Ie(),gt(n,e,r,o),Bd(n,t,r))}}function Hd(e){var t=e.alternate;return e===le||t!==null&&t===le}function jd(e,t){oo=Gl=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Bd(e,t,n){if((n&4194240)!==0){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,_a(e,n)}}var Xl={readContext:it,useCallback:ke,useContext:ke,useEffect:ke,useImperativeHandle:ke,useInsertionEffect:ke,useLayoutEffect:ke,useMemo:ke,useReducer:ke,useRef:ke,useState:ke,useDebugValue:ke,useDeferredValue:ke,useTransition:ke,useMutableSource:ke,useSyncExternalStore:ke,useId:ke,unstable_isNewReconciler:!1},qh={readContext:it,useCallback:function(e,t){return Ct().memoizedState=[e,t===void 0?null:t],e},useContext:it,useEffect:Zc,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Cl(4194308,4,Id.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Cl(4194308,4,e,t)},useInsertionEffect:function(e,t){return Cl(4,2,e,t)},useMemo:function(e,t){var n=Ct();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ct();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=jh.bind(null,le,e),[r.memoizedState,e]},useRef:function(e){var t=Ct();return e={current:e},t.memoizedState=e},useState:Qc,useDebugValue:Va,useDeferredValue:function(e){return Ct().memoizedState=e},useTransition:function(){var e=Qc(!1),t=e[0];return e=Hh.bind(null,e[1]),Ct().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=le,o=Ct();if(re){if(n===void 0)throw Error(w(407));n=n()}else{if(n=t(),ve===null)throw Error(w(349));(bn&30)!==0||Ld(r,t,n)}o.memoizedState=n;var l={value:n,getSnapshot:t};return o.queue=l,Zc(Ad.bind(null,r,l,e),[e]),r.flags|=2048,Co(9,kd.bind(null,r,l,n,t),void 0,null),n},useId:function(){var e=Ct(),t=ve.identifierPrefix;if(re){var n=bt,r=Ft;n=(r&~(1<<32-mt(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=To++,0<\/script>",e=e.removeChild(e.firstChild)):typeof n.is=="string"?e=i.createElement(r,{is:n.is}):(e=i.createElement(r),r==="select"&&(i=e,n.multiple?i.multiple=!0:n.size&&(i.size=n.size))):e=i.createElementNS(e,r),e[it]=t,e[On]=n,yf(e,t,!1,!1),t.stateNode=e;e:{switch(i=Li(r,n),r){case"dialog":q("cancel",e),q("close",e),o=n;break;case"iframe":case"object":case"embed":q("load",e),o=n;break;case"video":case"audio":for(o=0;ojr&&(t.flags|=128,n=!0,nn(l,!1),t.lanes=4194304)}else{if(!n)if(e=Ko(i),e!==null){if(t.flags|=128,n=!0,r=e.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),nn(l,!0),l.tail===null&&l.tailMode==="hidden"&&!i.alternate&&!X)return ve(t),null}else 2*Z()-l.renderingStartTime>jr&&r!==1073741824&&(t.flags|=128,n=!0,nn(l,!1),t.lanes=4194304);l.isBackwards?(i.sibling=t.child,t.child=i):(r=l.last,r!==null?r.sibling=i:t.child=i,l.last=i)}return l.tail!==null?(t=l.tail,l.rendering=t,l.tail=t.sibling,l.renderingStartTime=Z(),t.sibling=null,r=$.current,j($,n?r&1|2:r&1),t):(ve(t),null);case 22:case 23:return Ws(),n=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==n&&(t.flags|=8192),n&&(t.mode&1)!==0?(Oe&1073741824)!==0&&(ve(t),t.subtreeFlags&6&&(t.flags|=8192)):ve(t),null;case 24:return null;case 25:return null}throw Error(_(156,t.tag))}function Ym(e,t){switch(ks(t),t.tag){case 1:return Le(t.type)&&Bo(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Rr(),B(Ne),B(Ee),Is(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return Ds(t),null;case 13:if(B($),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(_(340));Fr()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return B($),null;case 4:return Rr(),null;case 10:return xs(t.type._context),null;case 22:case 23:return Ws(),null;case 24:return null;default:return null}}var _o=!1,ye=!1,Qm=typeof WeakSet=="function"?WeakSet:Set,L=null;function Nr(e,t){var r=e.ref;if(r!==null)if(typeof r=="function")try{r(null)}catch(n){Q(e,t,n)}else r.current=null}function es(e,t,r){try{r()}catch(n){Q(e,t,n)}}var xa=!1;function Zm(e,t){if(zi=Ro,e=Tc(),Cs(e)){if("selectionStart"in e)var r={start:e.selectionStart,end:e.selectionEnd};else e:{r=(r=e.ownerDocument)&&r.defaultView||window;var n=r.getSelection&&r.getSelection();if(n&&n.rangeCount!==0){r=n.anchorNode;var o=n.anchorOffset,l=n.focusNode;n=n.focusOffset;try{r.nodeType,l.nodeType}catch{r=null;break e}var i=0,s=-1,u=-1,a=0,p=0,m=e,g=null;t:for(;;){for(var S;m!==r||o!==0&&m.nodeType!==3||(s=i+o),m!==l||n!==0&&m.nodeType!==3||(u=i+n),m.nodeType===3&&(i+=m.nodeValue.length),(S=m.firstChild)!==null;)g=m,m=S;for(;;){if(m===e)break t;if(g===r&&++a===o&&(s=i),g===l&&++p===n&&(u=i),(S=m.nextSibling)!==null)break;m=g,g=m.parentNode}m=S}r=s===-1||u===-1?null:{start:s,end:u}}else r=null}r=r||{start:0,end:0}}else r=null;for(Ri={focusedElem:e,selectionRange:r},Ro=!1,L=t;L!==null;)if(t=L,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,L=e;else for(;L!==null;){t=L;try{var E=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(E!==null){var T=E.memoizedProps,x=E.memoizedState,d=t.stateNode,c=d.getSnapshotBeforeUpdate(t.elementType===t.type?T:$e(t.type,T),x);d.__reactInternalSnapshotBeforeUpdate=c}break;case 3:var f=t.stateNode.containerInfo;f.nodeType===1?f.textContent="":f.nodeType===9&&f.documentElement&&f.removeChild(f.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(_(163))}}catch(y){Q(t,t.return,y)}if(e=t.sibling,e!==null){e.return=t.return,L=e;break}L=t.return}return E=xa,xa=!1,E}function vn(e,t,r){var n=t.updateQueue;if(n=n!==null?n.lastEffect:null,n!==null){var o=n=n.next;do{if((o.tag&e)===e){var l=o.destroy;o.destroy=void 0,l!==void 0&&es(t,r,l)}o=o.next}while(o!==n)}}function fl(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var r=t=t.next;do{if((r.tag&e)===e){var n=r.create;r.destroy=n()}r=r.next}while(r!==t)}}function ts(e){var t=e.ref;if(t!==null){var r=e.stateNode;e.tag,e=r,typeof t=="function"?t(e):t.current=e}}function _f(e){var t=e.alternate;t!==null&&(e.alternate=null,_f(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[it],delete t[On],delete t[qi],delete t[Im],delete t[Um])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function wf(e){return e.tag===5||e.tag===3||e.tag===4}function Oa(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||wf(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.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 rs(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.nodeType===8?r.parentNode.insertBefore(e,t):r.insertBefore(e,t):(r.nodeType===8?(t=r.parentNode,t.insertBefore(e,r)):(t=r,t.appendChild(e)),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=qo));else if(n!==4&&(e=e.child,e!==null))for(rs(e,t,r),e=e.sibling;e!==null;)rs(e,t,r),e=e.sibling}function ns(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.insertBefore(e,t):r.appendChild(e);else if(n!==4&&(e=e.child,e!==null))for(ns(e,t,r),e=e.sibling;e!==null;)ns(e,t,r),e=e.sibling}var ae=null,Ke=!1;function Tt(e,t,r){for(r=r.child;r!==null;)Cf(e,t,r),r=r.sibling}function Cf(e,t,r){if(st&&typeof st.onCommitFiberUnmount=="function")try{st.onCommitFiberUnmount(nl,r)}catch{}switch(r.tag){case 5:ye||Nr(r,t);case 6:var n=ae,o=Ke;ae=null,Tt(e,t,r),ae=n,Ke=o,ae!==null&&(Ke?(e=ae,r=r.stateNode,e.nodeType===8?e.parentNode.removeChild(r):e.removeChild(r)):ae.removeChild(r.stateNode));break;case 18:ae!==null&&(Ke?(e=ae,r=r.stateNode,e.nodeType===8?ii(e.parentNode,r):e.nodeType===1&&ii(e,r),kn(e)):ii(ae,r.stateNode));break;case 4:n=ae,o=Ke,ae=r.stateNode.containerInfo,Ke=!0,Tt(e,t,r),ae=n,Ke=o;break;case 0:case 11:case 14:case 15:if(!ye&&(n=r.updateQueue,n!==null&&(n=n.lastEffect,n!==null))){o=n=n.next;do{var l=o,i=l.destroy;l=l.tag,i!==void 0&&((l&2)!==0||(l&4)!==0)&&es(r,t,i),o=o.next}while(o!==n)}Tt(e,t,r);break;case 1:if(!ye&&(Nr(r,t),n=r.stateNode,typeof n.componentWillUnmount=="function"))try{n.props=r.memoizedProps,n.state=r.memoizedState,n.componentWillUnmount()}catch(s){Q(r,t,s)}Tt(e,t,r);break;case 21:Tt(e,t,r);break;case 22:r.mode&1?(ye=(n=ye)||r.memoizedState!==null,Tt(e,t,r),ye=n):Tt(e,t,r);break;default:Tt(e,t,r)}}function Aa(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var r=e.stateNode;r===null&&(r=e.stateNode=new Qm),t.forEach(function(n){var o=sg.bind(null,e,n);r.has(n)||(r.add(n),n.then(o,o))})}}function Xe(e,t){var r=t.deletions;if(r!==null)for(var n=0;no&&(o=i),n&=~l}if(n=o,n=Z()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*eg(n/1960))-n,10e?16:e,Ot===null)var n=!1;else{if(e=Ot,Ot=null,el=0,(I&6)!==0)throw Error(_(331));var o=I;for(I|=4,L=e.current;L!==null;){var l=L,i=l.child;if((L.flags&16)!==0){var s=l.deletions;if(s!==null){for(var u=0;uZ()-Vs?nr(e,0):Bs|=r),Me(e,t)}function Af(e,t){t===0&&((e.mode&1)===0?t=1:(t=so,so<<=1,(so&130023424)===0&&(so=4194304)));var r=we();e=yt(e,t),e!==null&&(zn(e,t,r),Me(e,r))}function ig(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),Af(e,r)}function sg(e,t){var r=0;switch(e.tag){case 13:var n=e.stateNode,o=e.memoizedState;o!==null&&(r=o.retryLane);break;case 19:n=e.stateNode;break;default:throw Error(_(314))}n!==null&&n.delete(t),Af(e,r)}var Pf;Pf=function(e,t,r){if(e!==null)if(e.memoizedProps!==t.pendingProps||Ne.current)ke=!0;else{if((e.lanes&r)===0&&(t.flags&128)===0)return ke=!1,$m(e,t,r);ke=(e.flags&131072)!==0}else ke=!1,X&&(t.flags&1048576)!==0&&Uc(t,Wo,t.index);switch(t.lanes=0,t.tag){case 2:var n=t.type;xo(e,t),e=t.pendingProps;var o=Ur(t,Ee.current);Pr(t,r),o=Fs(null,t,n,e,o,r);var l=zs();return t.flags|=1,typeof o=="object"&&o!==null&&typeof o.render=="function"&&o.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Le(n)?(l=!0,Vo(t)):l=!1,t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,As(t),o.updater=cl,t.stateNode=o,o._reactInternals=t,Xi(t,n,e,r),t=Yi(null,t,n,!0,l,r)):(t.tag=0,X&&l&&Ts(t),_e(null,t,o,r),t=t.child),t;case 16:n=t.elementType;e:{switch(xo(e,t),e=t.pendingProps,o=n._init,n=o(n._payload),t.type=n,o=t.tag=ag(n),e=$e(n,e),o){case 0:t=Ki(null,t,n,e,r);break e;case 1:t=Na(null,t,n,e,r);break e;case 11:t=Ta(null,t,n,e,r);break e;case 14:t=ka(null,t,n,$e(n.type,e),r);break e}throw Error(_(306,n,""))}return t;case 0:return n=t.type,o=t.pendingProps,o=t.elementType===n?o:$e(n,o),Ki(e,t,n,o,r);case 1:return n=t.type,o=t.pendingProps,o=t.elementType===n?o:$e(n,o),Na(e,t,n,o,r);case 3:e:{if(gf(t),e===null)throw Error(_(387));n=t.pendingProps,l=t.memoizedState,o=l.element,qc(e,t),$o(t,n,null,r);var i=t.memoizedState;if(n=i.element,l.isDehydrated)if(l={element:n,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=l,t.memoizedState=l,t.flags&256){o=Hr(Error(_(423)),t),t=La(e,t,n,r,o);break e}else if(n!==o){o=Hr(Error(_(424)),t),t=La(e,t,n,r,o);break e}else for(Ae=It(t.stateNode.containerInfo.firstChild),Pe=t,X=!0,Ye=null,r=Hc(t,null,n,r),t.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling;else{if(Fr(),n===o){t=Et(e,t,r);break e}_e(e,t,n,r)}t=t.child}return t;case 5:return Bc(t),e===null&&bi(t),n=t.type,o=t.pendingProps,l=e!==null?e.memoizedProps:null,i=o.children,Hi(n,o)?i=null:l!==null&&Hi(n,l)&&(t.flags|=32),mf(e,t),_e(e,t,i,r),t.child;case 6:return e===null&&bi(t),null;case 13:return hf(e,t,r);case 4:return Ps(t,t.stateNode.containerInfo),n=t.pendingProps,e===null?t.child=zr(t,null,n,r):_e(e,t,n,r),t.child;case 11:return n=t.type,o=t.pendingProps,o=t.elementType===n?o:$e(n,o),Ta(e,t,n,o,r);case 7:return _e(e,t,t.pendingProps,r),t.child;case 8:return _e(e,t,t.pendingProps.children,r),t.child;case 12:return _e(e,t,t.pendingProps.children,r),t.child;case 10:e:{if(n=t.type._context,o=t.pendingProps,l=t.memoizedProps,i=o.value,j(Go,n._currentValue),n._currentValue=i,l!==null)if(Je(l.value,i)){if(l.children===o.children&&!Ne.current){t=Et(e,t,r);break e}}else for(l=t.child,l!==null&&(l.return=t);l!==null;){var s=l.dependencies;if(s!==null){i=l.child;for(var u=s.firstContext;u!==null;){if(u.context===n){if(l.tag===1){u=gt(-1,r&-r),u.tag=2;var a=l.updateQueue;if(a!==null){a=a.shared;var p=a.pending;p===null?u.next=u:(u.next=p.next,p.next=u),a.pending=u}}l.lanes|=r,u=l.alternate,u!==null&&(u.lanes|=r),Wi(l.return,r,t),s.lanes|=r;break}u=u.next}}else if(l.tag===10)i=l.type===t.type?null:l.child;else if(l.tag===18){if(i=l.return,i===null)throw Error(_(341));i.lanes|=r,s=i.alternate,s!==null&&(s.lanes|=r),Wi(i,r,t),i=l.sibling}else i=l.child;if(i!==null)i.return=l;else for(i=l;i!==null;){if(i===t){i=null;break}if(l=i.sibling,l!==null){l.return=i.return,i=l;break}i=i.return}l=i}_e(e,t,o.children,r),t=t.child}return t;case 9:return o=t.type,n=t.pendingProps.children,Pr(t,r),o=be(o),n=n(o),t.flags|=1,_e(e,t,n,r),t.child;case 14:return n=t.type,o=$e(n,t.pendingProps),o=$e(n.type,o),ka(e,t,n,o,r);case 15:return df(e,t,t.type,t.pendingProps,r);case 17:return n=t.type,o=t.pendingProps,o=t.elementType===n?o:$e(n,o),xo(e,t),t.tag=1,Le(n)?(e=!0,Vo(t)):e=!1,Pr(t,r),af(t,n,o),Xi(t,n,o,r),Yi(null,t,n,!0,e,r);case 19:return vf(e,t,r);case 22:return pf(e,t,r)}throw Error(_(156,t.tag))};function Df(e,t){return lc(e,t)}function ug(e,t,r,n){this.tag=e,this.key=r,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=n,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Be(e,t,r,n){return new ug(e,t,r,n)}function Xs(e){return e=e.prototype,!(!e||!e.isReactComponent)}function ag(e){if(typeof e=="function")return Xs(e)?1:0;if(e!=null){if(e=e.$$typeof,e===ds)return 11;if(e===ps)return 14}return 2}function Rt(e,t){var r=e.alternate;return r===null?(r=Be(e.tag,t,e.key,e.mode),r.elementType=e.elementType,r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.pendingProps=t,r.type=e.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=e.flags&14680064,r.childLanes=e.childLanes,r.lanes=e.lanes,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,t=e.dependencies,r.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r}function Po(e,t,r,n,o,l){var i=2;if(n=e,typeof e=="function")Xs(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case vr:return or(r.children,o,l,t);case fs:i=8,o|=8;break;case vi:return e=Be(12,r,t,o|2),e.elementType=vi,e.lanes=l,e;case yi:return e=Be(13,r,t,o),e.elementType=yi,e.lanes=l,e;case Ei:return e=Be(19,r,t,o),e.elementType=Ei,e.lanes=l,e;case Ba:return pl(r,o,l,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case ja:i=10;break e;case qa:i=9;break e;case ds:i=11;break e;case ps:i=14;break e;case kt:i=16,n=null;break e}throw Error(_(130,e==null?e:typeof e,""))}return t=Be(i,r,t,o),t.elementType=e,t.type=n,t.lanes=l,t}function or(e,t,r,n){return e=Be(7,e,n,t),e.lanes=r,e}function pl(e,t,r,n){return e=Be(22,e,n,t),e.elementType=Ba,e.lanes=r,e.stateNode={isHidden:!1},e}function mi(e,t,r){return e=Be(6,e,null,t),e.lanes=r,e}function gi(e,t,r){return t=Be(4,e.children!==null?e.children:[],e.key,t),t.lanes=r,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function cg(e,t,r,n,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Zl(0),this.expirationTimes=Zl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Zl(0),this.identifierPrefix=n,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function $s(e,t,r,n,o,l,i,s,u){return e=new cg(e,t,r,s,u),t===1?(t=1,l===!0&&(t|=8)):t=0,l=Be(3,null,null,t),e.current=l,l.stateNode=e,l.memoizedState={element:n,isDehydrated:r,cache:null,transitions:null,pendingSuspenseBoundaries:null},As(l),e}function fg(e,t,r){var n=3{"use strict";function Rf(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Rf)}catch(e){console.error(e)}}Rf(),Hf.exports=zf()});var Bf=me(Zs=>{"use strict";var qf=jf();Zs.createRoot=qf.createRoot,Zs.hydrateRoot=qf.hydrateRoot;var sh});var Js=me((Uh,hg)=>{hg.exports={Aacute:"\xC1",aacute:"\xE1",Abreve:"\u0102",abreve:"\u0103",ac:"\u223E",acd:"\u223F",acE:"\u223E\u0333",Acirc:"\xC2",acirc:"\xE2",acute:"\xB4",Acy:"\u0410",acy:"\u0430",AElig:"\xC6",aelig:"\xE6",af:"\u2061",Afr:"\u{1D504}",afr:"\u{1D51E}",Agrave:"\xC0",agrave:"\xE0",alefsym:"\u2135",aleph:"\u2135",Alpha:"\u0391",alpha:"\u03B1",Amacr:"\u0100",amacr:"\u0101",amalg:"\u2A3F",amp:"&",AMP:"&",andand:"\u2A55",And:"\u2A53",and:"\u2227",andd:"\u2A5C",andslope:"\u2A58",andv:"\u2A5A",ang:"\u2220",ange:"\u29A4",angle:"\u2220",angmsdaa:"\u29A8",angmsdab:"\u29A9",angmsdac:"\u29AA",angmsdad:"\u29AB",angmsdae:"\u29AC",angmsdaf:"\u29AD",angmsdag:"\u29AE",angmsdah:"\u29AF",angmsd:"\u2221",angrt:"\u221F",angrtvb:"\u22BE",angrtvbd:"\u299D",angsph:"\u2222",angst:"\xC5",angzarr:"\u237C",Aogon:"\u0104",aogon:"\u0105",Aopf:"\u{1D538}",aopf:"\u{1D552}",apacir:"\u2A6F",ap:"\u2248",apE:"\u2A70",ape:"\u224A",apid:"\u224B",apos:"'",ApplyFunction:"\u2061",approx:"\u2248",approxeq:"\u224A",Aring:"\xC5",aring:"\xE5",Ascr:"\u{1D49C}",ascr:"\u{1D4B6}",Assign:"\u2254",ast:"*",asymp:"\u2248",asympeq:"\u224D",Atilde:"\xC3",atilde:"\xE3",Auml:"\xC4",auml:"\xE4",awconint:"\u2233",awint:"\u2A11",backcong:"\u224C",backepsilon:"\u03F6",backprime:"\u2035",backsim:"\u223D",backsimeq:"\u22CD",Backslash:"\u2216",Barv:"\u2AE7",barvee:"\u22BD",barwed:"\u2305",Barwed:"\u2306",barwedge:"\u2305",bbrk:"\u23B5",bbrktbrk:"\u23B6",bcong:"\u224C",Bcy:"\u0411",bcy:"\u0431",bdquo:"\u201E",becaus:"\u2235",because:"\u2235",Because:"\u2235",bemptyv:"\u29B0",bepsi:"\u03F6",bernou:"\u212C",Bernoullis:"\u212C",Beta:"\u0392",beta:"\u03B2",beth:"\u2136",between:"\u226C",Bfr:"\u{1D505}",bfr:"\u{1D51F}",bigcap:"\u22C2",bigcirc:"\u25EF",bigcup:"\u22C3",bigodot:"\u2A00",bigoplus:"\u2A01",bigotimes:"\u2A02",bigsqcup:"\u2A06",bigstar:"\u2605",bigtriangledown:"\u25BD",bigtriangleup:"\u25B3",biguplus:"\u2A04",bigvee:"\u22C1",bigwedge:"\u22C0",bkarow:"\u290D",blacklozenge:"\u29EB",blacksquare:"\u25AA",blacktriangle:"\u25B4",blacktriangledown:"\u25BE",blacktriangleleft:"\u25C2",blacktriangleright:"\u25B8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20E5",bnequiv:"\u2261\u20E5",bNot:"\u2AED",bnot:"\u2310",Bopf:"\u{1D539}",bopf:"\u{1D553}",bot:"\u22A5",bottom:"\u22A5",bowtie:"\u22C8",boxbox:"\u29C9",boxdl:"\u2510",boxdL:"\u2555",boxDl:"\u2556",boxDL:"\u2557",boxdr:"\u250C",boxdR:"\u2552",boxDr:"\u2553",boxDR:"\u2554",boxh:"\u2500",boxH:"\u2550",boxhd:"\u252C",boxHd:"\u2564",boxhD:"\u2565",boxHD:"\u2566",boxhu:"\u2534",boxHu:"\u2567",boxhU:"\u2568",boxHU:"\u2569",boxminus:"\u229F",boxplus:"\u229E",boxtimes:"\u22A0",boxul:"\u2518",boxuL:"\u255B",boxUl:"\u255C",boxUL:"\u255D",boxur:"\u2514",boxuR:"\u2558",boxUr:"\u2559",boxUR:"\u255A",boxv:"\u2502",boxV:"\u2551",boxvh:"\u253C",boxvH:"\u256A",boxVh:"\u256B",boxVH:"\u256C",boxvl:"\u2524",boxvL:"\u2561",boxVl:"\u2562",boxVL:"\u2563",boxvr:"\u251C",boxvR:"\u255E",boxVr:"\u255F",boxVR:"\u2560",bprime:"\u2035",breve:"\u02D8",Breve:"\u02D8",brvbar:"\xA6",bscr:"\u{1D4B7}",Bscr:"\u212C",bsemi:"\u204F",bsim:"\u223D",bsime:"\u22CD",bsolb:"\u29C5",bsol:"\\",bsolhsub:"\u27C8",bull:"\u2022",bullet:"\u2022",bump:"\u224E",bumpE:"\u2AAE",bumpe:"\u224F",Bumpeq:"\u224E",bumpeq:"\u224F",Cacute:"\u0106",cacute:"\u0107",capand:"\u2A44",capbrcup:"\u2A49",capcap:"\u2A4B",cap:"\u2229",Cap:"\u22D2",capcup:"\u2A47",capdot:"\u2A40",CapitalDifferentialD:"\u2145",caps:"\u2229\uFE00",caret:"\u2041",caron:"\u02C7",Cayleys:"\u212D",ccaps:"\u2A4D",Ccaron:"\u010C",ccaron:"\u010D",Ccedil:"\xC7",ccedil:"\xE7",Ccirc:"\u0108",ccirc:"\u0109",Cconint:"\u2230",ccups:"\u2A4C",ccupssm:"\u2A50",Cdot:"\u010A",cdot:"\u010B",cedil:"\xB8",Cedilla:"\xB8",cemptyv:"\u29B2",cent:"\xA2",centerdot:"\xB7",CenterDot:"\xB7",cfr:"\u{1D520}",Cfr:"\u212D",CHcy:"\u0427",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",Chi:"\u03A7",chi:"\u03C7",circ:"\u02C6",circeq:"\u2257",circlearrowleft:"\u21BA",circlearrowright:"\u21BB",circledast:"\u229B",circledcirc:"\u229A",circleddash:"\u229D",CircleDot:"\u2299",circledR:"\xAE",circledS:"\u24C8",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",cir:"\u25CB",cirE:"\u29C3",cire:"\u2257",cirfnint:"\u2A10",cirmid:"\u2AEF",cirscir:"\u29C2",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201D",CloseCurlyQuote:"\u2019",clubs:"\u2663",clubsuit:"\u2663",colon:":",Colon:"\u2237",Colone:"\u2A74",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2A6D",Congruent:"\u2261",conint:"\u222E",Conint:"\u222F",ContourIntegral:"\u222E",copf:"\u{1D554}",Copf:"\u2102",coprod:"\u2210",Coproduct:"\u2210",copy:"\xA9",COPY:"\xA9",copysr:"\u2117",CounterClockwiseContourIntegral:"\u2233",crarr:"\u21B5",cross:"\u2717",Cross:"\u2A2F",Cscr:"\u{1D49E}",cscr:"\u{1D4B8}",csub:"\u2ACF",csube:"\u2AD1",csup:"\u2AD0",csupe:"\u2AD2",ctdot:"\u22EF",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22DE",cuesc:"\u22DF",cularr:"\u21B6",cularrp:"\u293D",cupbrcap:"\u2A48",cupcap:"\u2A46",CupCap:"\u224D",cup:"\u222A",Cup:"\u22D3",cupcup:"\u2A4A",cupdot:"\u228D",cupor:"\u2A45",cups:"\u222A\uFE00",curarr:"\u21B7",curarrm:"\u293C",curlyeqprec:"\u22DE",curlyeqsucc:"\u22DF",curlyvee:"\u22CE",curlywedge:"\u22CF",curren:"\xA4",curvearrowleft:"\u21B6",curvearrowright:"\u21B7",cuvee:"\u22CE",cuwed:"\u22CF",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232D",dagger:"\u2020",Dagger:"\u2021",daleth:"\u2138",darr:"\u2193",Darr:"\u21A1",dArr:"\u21D3",dash:"\u2010",Dashv:"\u2AE4",dashv:"\u22A3",dbkarow:"\u290F",dblac:"\u02DD",Dcaron:"\u010E",dcaron:"\u010F",Dcy:"\u0414",dcy:"\u0434",ddagger:"\u2021",ddarr:"\u21CA",DD:"\u2145",dd:"\u2146",DDotrahd:"\u2911",ddotseq:"\u2A77",deg:"\xB0",Del:"\u2207",Delta:"\u0394",delta:"\u03B4",demptyv:"\u29B1",dfisht:"\u297F",Dfr:"\u{1D507}",dfr:"\u{1D521}",dHar:"\u2965",dharl:"\u21C3",dharr:"\u21C2",DiacriticalAcute:"\xB4",DiacriticalDot:"\u02D9",DiacriticalDoubleAcute:"\u02DD",DiacriticalGrave:"`",DiacriticalTilde:"\u02DC",diam:"\u22C4",diamond:"\u22C4",Diamond:"\u22C4",diamondsuit:"\u2666",diams:"\u2666",die:"\xA8",DifferentialD:"\u2146",digamma:"\u03DD",disin:"\u22F2",div:"\xF7",divide:"\xF7",divideontimes:"\u22C7",divonx:"\u22C7",DJcy:"\u0402",djcy:"\u0452",dlcorn:"\u231E",dlcrop:"\u230D",dollar:"$",Dopf:"\u{1D53B}",dopf:"\u{1D555}",Dot:"\xA8",dot:"\u02D9",DotDot:"\u20DC",doteq:"\u2250",doteqdot:"\u2251",DotEqual:"\u2250",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22A1",doublebarwedge:"\u2306",DoubleContourIntegral:"\u222F",DoubleDot:"\xA8",DoubleDownArrow:"\u21D3",DoubleLeftArrow:"\u21D0",DoubleLeftRightArrow:"\u21D4",DoubleLeftTee:"\u2AE4",DoubleLongLeftArrow:"\u27F8",DoubleLongLeftRightArrow:"\u27FA",DoubleLongRightArrow:"\u27F9",DoubleRightArrow:"\u21D2",DoubleRightTee:"\u22A8",DoubleUpArrow:"\u21D1",DoubleUpDownArrow:"\u21D5",DoubleVerticalBar:"\u2225",DownArrowBar:"\u2913",downarrow:"\u2193",DownArrow:"\u2193",Downarrow:"\u21D3",DownArrowUpArrow:"\u21F5",DownBreve:"\u0311",downdownarrows:"\u21CA",downharpoonleft:"\u21C3",downharpoonright:"\u21C2",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295E",DownLeftVectorBar:"\u2956",DownLeftVector:"\u21BD",DownRightTeeVector:"\u295F",DownRightVectorBar:"\u2957",DownRightVector:"\u21C1",DownTeeArrow:"\u21A7",DownTee:"\u22A4",drbkarow:"\u2910",drcorn:"\u231F",drcrop:"\u230C",Dscr:"\u{1D49F}",dscr:"\u{1D4B9}",DScy:"\u0405",dscy:"\u0455",dsol:"\u29F6",Dstrok:"\u0110",dstrok:"\u0111",dtdot:"\u22F1",dtri:"\u25BF",dtrif:"\u25BE",duarr:"\u21F5",duhar:"\u296F",dwangle:"\u29A6",DZcy:"\u040F",dzcy:"\u045F",dzigrarr:"\u27FF",Eacute:"\xC9",eacute:"\xE9",easter:"\u2A6E",Ecaron:"\u011A",ecaron:"\u011B",Ecirc:"\xCA",ecirc:"\xEA",ecir:"\u2256",ecolon:"\u2255",Ecy:"\u042D",ecy:"\u044D",eDDot:"\u2A77",Edot:"\u0116",edot:"\u0117",eDot:"\u2251",ee:"\u2147",efDot:"\u2252",Efr:"\u{1D508}",efr:"\u{1D522}",eg:"\u2A9A",Egrave:"\xC8",egrave:"\xE8",egs:"\u2A96",egsdot:"\u2A98",el:"\u2A99",Element:"\u2208",elinters:"\u23E7",ell:"\u2113",els:"\u2A95",elsdot:"\u2A97",Emacr:"\u0112",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",EmptySmallSquare:"\u25FB",emptyv:"\u2205",EmptyVerySmallSquare:"\u25AB",emsp13:"\u2004",emsp14:"\u2005",emsp:"\u2003",ENG:"\u014A",eng:"\u014B",ensp:"\u2002",Eogon:"\u0118",eogon:"\u0119",Eopf:"\u{1D53C}",eopf:"\u{1D556}",epar:"\u22D5",eparsl:"\u29E3",eplus:"\u2A71",epsi:"\u03B5",Epsilon:"\u0395",epsilon:"\u03B5",epsiv:"\u03F5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2A96",eqslantless:"\u2A95",Equal:"\u2A75",equals:"=",EqualTilde:"\u2242",equest:"\u225F",Equilibrium:"\u21CC",equiv:"\u2261",equivDD:"\u2A78",eqvparsl:"\u29E5",erarr:"\u2971",erDot:"\u2253",escr:"\u212F",Escr:"\u2130",esdot:"\u2250",Esim:"\u2A73",esim:"\u2242",Eta:"\u0397",eta:"\u03B7",ETH:"\xD0",eth:"\xF0",Euml:"\xCB",euml:"\xEB",euro:"\u20AC",excl:"!",exist:"\u2203",Exists:"\u2203",expectation:"\u2130",exponentiale:"\u2147",ExponentialE:"\u2147",fallingdotseq:"\u2252",Fcy:"\u0424",fcy:"\u0444",female:"\u2640",ffilig:"\uFB03",fflig:"\uFB00",ffllig:"\uFB04",Ffr:"\u{1D509}",ffr:"\u{1D523}",filig:"\uFB01",FilledSmallSquare:"\u25FC",FilledVerySmallSquare:"\u25AA",fjlig:"fj",flat:"\u266D",fllig:"\uFB02",fltns:"\u25B1",fnof:"\u0192",Fopf:"\u{1D53D}",fopf:"\u{1D557}",forall:"\u2200",ForAll:"\u2200",fork:"\u22D4",forkv:"\u2AD9",Fouriertrf:"\u2131",fpartint:"\u2A0D",frac12:"\xBD",frac13:"\u2153",frac14:"\xBC",frac15:"\u2155",frac16:"\u2159",frac18:"\u215B",frac23:"\u2154",frac25:"\u2156",frac34:"\xBE",frac35:"\u2157",frac38:"\u215C",frac45:"\u2158",frac56:"\u215A",frac58:"\u215D",frac78:"\u215E",frasl:"\u2044",frown:"\u2322",fscr:"\u{1D4BB}",Fscr:"\u2131",gacute:"\u01F5",Gamma:"\u0393",gamma:"\u03B3",Gammad:"\u03DC",gammad:"\u03DD",gap:"\u2A86",Gbreve:"\u011E",gbreve:"\u011F",Gcedil:"\u0122",Gcirc:"\u011C",gcirc:"\u011D",Gcy:"\u0413",gcy:"\u0433",Gdot:"\u0120",gdot:"\u0121",ge:"\u2265",gE:"\u2267",gEl:"\u2A8C",gel:"\u22DB",geq:"\u2265",geqq:"\u2267",geqslant:"\u2A7E",gescc:"\u2AA9",ges:"\u2A7E",gesdot:"\u2A80",gesdoto:"\u2A82",gesdotol:"\u2A84",gesl:"\u22DB\uFE00",gesles:"\u2A94",Gfr:"\u{1D50A}",gfr:"\u{1D524}",gg:"\u226B",Gg:"\u22D9",ggg:"\u22D9",gimel:"\u2137",GJcy:"\u0403",gjcy:"\u0453",gla:"\u2AA5",gl:"\u2277",glE:"\u2A92",glj:"\u2AA4",gnap:"\u2A8A",gnapprox:"\u2A8A",gne:"\u2A88",gnE:"\u2269",gneq:"\u2A88",gneqq:"\u2269",gnsim:"\u22E7",Gopf:"\u{1D53E}",gopf:"\u{1D558}",grave:"`",GreaterEqual:"\u2265",GreaterEqualLess:"\u22DB",GreaterFullEqual:"\u2267",GreaterGreater:"\u2AA2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2A7E",GreaterTilde:"\u2273",Gscr:"\u{1D4A2}",gscr:"\u210A",gsim:"\u2273",gsime:"\u2A8E",gsiml:"\u2A90",gtcc:"\u2AA7",gtcir:"\u2A7A",gt:">",GT:">",Gt:"\u226B",gtdot:"\u22D7",gtlPar:"\u2995",gtquest:"\u2A7C",gtrapprox:"\u2A86",gtrarr:"\u2978",gtrdot:"\u22D7",gtreqless:"\u22DB",gtreqqless:"\u2A8C",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\uFE00",gvnE:"\u2269\uFE00",Hacek:"\u02C7",hairsp:"\u200A",half:"\xBD",hamilt:"\u210B",HARDcy:"\u042A",hardcy:"\u044A",harrcir:"\u2948",harr:"\u2194",hArr:"\u21D4",harrw:"\u21AD",Hat:"^",hbar:"\u210F",Hcirc:"\u0124",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22B9",hfr:"\u{1D525}",Hfr:"\u210C",HilbertSpace:"\u210B",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21FF",homtht:"\u223B",hookleftarrow:"\u21A9",hookrightarrow:"\u21AA",hopf:"\u{1D559}",Hopf:"\u210D",horbar:"\u2015",HorizontalLine:"\u2500",hscr:"\u{1D4BD}",Hscr:"\u210B",hslash:"\u210F",Hstrok:"\u0126",hstrok:"\u0127",HumpDownHump:"\u224E",HumpEqual:"\u224F",hybull:"\u2043",hyphen:"\u2010",Iacute:"\xCD",iacute:"\xED",ic:"\u2063",Icirc:"\xCE",icirc:"\xEE",Icy:"\u0418",icy:"\u0438",Idot:"\u0130",IEcy:"\u0415",iecy:"\u0435",iexcl:"\xA1",iff:"\u21D4",ifr:"\u{1D526}",Ifr:"\u2111",Igrave:"\xCC",igrave:"\xEC",ii:"\u2148",iiiint:"\u2A0C",iiint:"\u222D",iinfin:"\u29DC",iiota:"\u2129",IJlig:"\u0132",ijlig:"\u0133",Imacr:"\u012A",imacr:"\u012B",image:"\u2111",ImaginaryI:"\u2148",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",Im:"\u2111",imof:"\u22B7",imped:"\u01B5",Implies:"\u21D2",incare:"\u2105",in:"\u2208",infin:"\u221E",infintie:"\u29DD",inodot:"\u0131",intcal:"\u22BA",int:"\u222B",Int:"\u222C",integers:"\u2124",Integral:"\u222B",intercal:"\u22BA",Intersection:"\u22C2",intlarhk:"\u2A17",intprod:"\u2A3C",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",IOcy:"\u0401",iocy:"\u0451",Iogon:"\u012E",iogon:"\u012F",Iopf:"\u{1D540}",iopf:"\u{1D55A}",Iota:"\u0399",iota:"\u03B9",iprod:"\u2A3C",iquest:"\xBF",iscr:"\u{1D4BE}",Iscr:"\u2110",isin:"\u2208",isindot:"\u22F5",isinE:"\u22F9",isins:"\u22F4",isinsv:"\u22F3",isinv:"\u2208",it:"\u2062",Itilde:"\u0128",itilde:"\u0129",Iukcy:"\u0406",iukcy:"\u0456",Iuml:"\xCF",iuml:"\xEF",Jcirc:"\u0134",jcirc:"\u0135",Jcy:"\u0419",jcy:"\u0439",Jfr:"\u{1D50D}",jfr:"\u{1D527}",jmath:"\u0237",Jopf:"\u{1D541}",jopf:"\u{1D55B}",Jscr:"\u{1D4A5}",jscr:"\u{1D4BF}",Jsercy:"\u0408",jsercy:"\u0458",Jukcy:"\u0404",jukcy:"\u0454",Kappa:"\u039A",kappa:"\u03BA",kappav:"\u03F0",Kcedil:"\u0136",kcedil:"\u0137",Kcy:"\u041A",kcy:"\u043A",Kfr:"\u{1D50E}",kfr:"\u{1D528}",kgreen:"\u0138",KHcy:"\u0425",khcy:"\u0445",KJcy:"\u040C",kjcy:"\u045C",Kopf:"\u{1D542}",kopf:"\u{1D55C}",Kscr:"\u{1D4A6}",kscr:"\u{1D4C0}",lAarr:"\u21DA",Lacute:"\u0139",lacute:"\u013A",laemptyv:"\u29B4",lagran:"\u2112",Lambda:"\u039B",lambda:"\u03BB",lang:"\u27E8",Lang:"\u27EA",langd:"\u2991",langle:"\u27E8",lap:"\u2A85",Laplacetrf:"\u2112",laquo:"\xAB",larrb:"\u21E4",larrbfs:"\u291F",larr:"\u2190",Larr:"\u219E",lArr:"\u21D0",larrfs:"\u291D",larrhk:"\u21A9",larrlp:"\u21AB",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21A2",latail:"\u2919",lAtail:"\u291B",lat:"\u2AAB",late:"\u2AAD",lates:"\u2AAD\uFE00",lbarr:"\u290C",lBarr:"\u290E",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298B",lbrksld:"\u298F",lbrkslu:"\u298D",Lcaron:"\u013D",lcaron:"\u013E",Lcedil:"\u013B",lcedil:"\u013C",lceil:"\u2308",lcub:"{",Lcy:"\u041B",lcy:"\u043B",ldca:"\u2936",ldquo:"\u201C",ldquor:"\u201E",ldrdhar:"\u2967",ldrushar:"\u294B",ldsh:"\u21B2",le:"\u2264",lE:"\u2266",LeftAngleBracket:"\u27E8",LeftArrowBar:"\u21E4",leftarrow:"\u2190",LeftArrow:"\u2190",Leftarrow:"\u21D0",LeftArrowRightArrow:"\u21C6",leftarrowtail:"\u21A2",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27E6",LeftDownTeeVector:"\u2961",LeftDownVectorBar:"\u2959",LeftDownVector:"\u21C3",LeftFloor:"\u230A",leftharpoondown:"\u21BD",leftharpoonup:"\u21BC",leftleftarrows:"\u21C7",leftrightarrow:"\u2194",LeftRightArrow:"\u2194",Leftrightarrow:"\u21D4",leftrightarrows:"\u21C6",leftrightharpoons:"\u21CB",leftrightsquigarrow:"\u21AD",LeftRightVector:"\u294E",LeftTeeArrow:"\u21A4",LeftTee:"\u22A3",LeftTeeVector:"\u295A",leftthreetimes:"\u22CB",LeftTriangleBar:"\u29CF",LeftTriangle:"\u22B2",LeftTriangleEqual:"\u22B4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVectorBar:"\u2958",LeftUpVector:"\u21BF",LeftVectorBar:"\u2952",LeftVector:"\u21BC",lEg:"\u2A8B",leg:"\u22DA",leq:"\u2264",leqq:"\u2266",leqslant:"\u2A7D",lescc:"\u2AA8",les:"\u2A7D",lesdot:"\u2A7F",lesdoto:"\u2A81",lesdotor:"\u2A83",lesg:"\u22DA\uFE00",lesges:"\u2A93",lessapprox:"\u2A85",lessdot:"\u22D6",lesseqgtr:"\u22DA",lesseqqgtr:"\u2A8B",LessEqualGreater:"\u22DA",LessFullEqual:"\u2266",LessGreater:"\u2276",lessgtr:"\u2276",LessLess:"\u2AA1",lesssim:"\u2272",LessSlantEqual:"\u2A7D",LessTilde:"\u2272",lfisht:"\u297C",lfloor:"\u230A",Lfr:"\u{1D50F}",lfr:"\u{1D529}",lg:"\u2276",lgE:"\u2A91",lHar:"\u2962",lhard:"\u21BD",lharu:"\u21BC",lharul:"\u296A",lhblk:"\u2584",LJcy:"\u0409",ljcy:"\u0459",llarr:"\u21C7",ll:"\u226A",Ll:"\u22D8",llcorner:"\u231E",Lleftarrow:"\u21DA",llhard:"\u296B",lltri:"\u25FA",Lmidot:"\u013F",lmidot:"\u0140",lmoustache:"\u23B0",lmoust:"\u23B0",lnap:"\u2A89",lnapprox:"\u2A89",lne:"\u2A87",lnE:"\u2268",lneq:"\u2A87",lneqq:"\u2268",lnsim:"\u22E6",loang:"\u27EC",loarr:"\u21FD",lobrk:"\u27E6",longleftarrow:"\u27F5",LongLeftArrow:"\u27F5",Longleftarrow:"\u27F8",longleftrightarrow:"\u27F7",LongLeftRightArrow:"\u27F7",Longleftrightarrow:"\u27FA",longmapsto:"\u27FC",longrightarrow:"\u27F6",LongRightArrow:"\u27F6",Longrightarrow:"\u27F9",looparrowleft:"\u21AB",looparrowright:"\u21AC",lopar:"\u2985",Lopf:"\u{1D543}",lopf:"\u{1D55D}",loplus:"\u2A2D",lotimes:"\u2A34",lowast:"\u2217",lowbar:"_",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",loz:"\u25CA",lozenge:"\u25CA",lozf:"\u29EB",lpar:"(",lparlt:"\u2993",lrarr:"\u21C6",lrcorner:"\u231F",lrhar:"\u21CB",lrhard:"\u296D",lrm:"\u200E",lrtri:"\u22BF",lsaquo:"\u2039",lscr:"\u{1D4C1}",Lscr:"\u2112",lsh:"\u21B0",Lsh:"\u21B0",lsim:"\u2272",lsime:"\u2A8D",lsimg:"\u2A8F",lsqb:"[",lsquo:"\u2018",lsquor:"\u201A",Lstrok:"\u0141",lstrok:"\u0142",ltcc:"\u2AA6",ltcir:"\u2A79",lt:"<",LT:"<",Lt:"\u226A",ltdot:"\u22D6",lthree:"\u22CB",ltimes:"\u22C9",ltlarr:"\u2976",ltquest:"\u2A7B",ltri:"\u25C3",ltrie:"\u22B4",ltrif:"\u25C2",ltrPar:"\u2996",lurdshar:"\u294A",luruhar:"\u2966",lvertneqq:"\u2268\uFE00",lvnE:"\u2268\uFE00",macr:"\xAF",male:"\u2642",malt:"\u2720",maltese:"\u2720",Map:"\u2905",map:"\u21A6",mapsto:"\u21A6",mapstodown:"\u21A7",mapstoleft:"\u21A4",mapstoup:"\u21A5",marker:"\u25AE",mcomma:"\u2A29",Mcy:"\u041C",mcy:"\u043C",mdash:"\u2014",mDDot:"\u223A",measuredangle:"\u2221",MediumSpace:"\u205F",Mellintrf:"\u2133",Mfr:"\u{1D510}",mfr:"\u{1D52A}",mho:"\u2127",micro:"\xB5",midast:"*",midcir:"\u2AF0",mid:"\u2223",middot:"\xB7",minusb:"\u229F",minus:"\u2212",minusd:"\u2238",minusdu:"\u2A2A",MinusPlus:"\u2213",mlcp:"\u2ADB",mldr:"\u2026",mnplus:"\u2213",models:"\u22A7",Mopf:"\u{1D544}",mopf:"\u{1D55E}",mp:"\u2213",mscr:"\u{1D4C2}",Mscr:"\u2133",mstpos:"\u223E",Mu:"\u039C",mu:"\u03BC",multimap:"\u22B8",mumap:"\u22B8",nabla:"\u2207",Nacute:"\u0143",nacute:"\u0144",nang:"\u2220\u20D2",nap:"\u2249",napE:"\u2A70\u0338",napid:"\u224B\u0338",napos:"\u0149",napprox:"\u2249",natural:"\u266E",naturals:"\u2115",natur:"\u266E",nbsp:"\xA0",nbump:"\u224E\u0338",nbumpe:"\u224F\u0338",ncap:"\u2A43",Ncaron:"\u0147",ncaron:"\u0148",Ncedil:"\u0145",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2A6D\u0338",ncup:"\u2A42",Ncy:"\u041D",ncy:"\u043D",ndash:"\u2013",nearhk:"\u2924",nearr:"\u2197",neArr:"\u21D7",nearrow:"\u2197",ne:"\u2260",nedot:"\u2250\u0338",NegativeMediumSpace:"\u200B",NegativeThickSpace:"\u200B",NegativeThinSpace:"\u200B",NegativeVeryThinSpace:"\u200B",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",NestedGreaterGreater:"\u226B",NestedLessLess:"\u226A",NewLine:` -`,nexist:"\u2204",nexists:"\u2204",Nfr:"\u{1D511}",nfr:"\u{1D52B}",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2A7E\u0338",nges:"\u2A7E\u0338",nGg:"\u22D9\u0338",ngsim:"\u2275",nGt:"\u226B\u20D2",ngt:"\u226F",ngtr:"\u226F",nGtv:"\u226B\u0338",nharr:"\u21AE",nhArr:"\u21CE",nhpar:"\u2AF2",ni:"\u220B",nis:"\u22FC",nisd:"\u22FA",niv:"\u220B",NJcy:"\u040A",njcy:"\u045A",nlarr:"\u219A",nlArr:"\u21CD",nldr:"\u2025",nlE:"\u2266\u0338",nle:"\u2270",nleftarrow:"\u219A",nLeftarrow:"\u21CD",nleftrightarrow:"\u21AE",nLeftrightarrow:"\u21CE",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2A7D\u0338",nles:"\u2A7D\u0338",nless:"\u226E",nLl:"\u22D8\u0338",nlsim:"\u2274",nLt:"\u226A\u20D2",nlt:"\u226E",nltri:"\u22EA",nltrie:"\u22EC",nLtv:"\u226A\u0338",nmid:"\u2224",NoBreak:"\u2060",NonBreakingSpace:"\xA0",nopf:"\u{1D55F}",Nopf:"\u2115",Not:"\u2AEC",not:"\xAC",NotCongruent:"\u2262",NotCupCap:"\u226D",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226F",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226B\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2A7E\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224E\u0338",NotHumpEqual:"\u224F\u0338",notin:"\u2209",notindot:"\u22F5\u0338",notinE:"\u22F9\u0338",notinva:"\u2209",notinvb:"\u22F7",notinvc:"\u22F6",NotLeftTriangleBar:"\u29CF\u0338",NotLeftTriangle:"\u22EA",NotLeftTriangleEqual:"\u22EC",NotLess:"\u226E",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226A\u0338",NotLessSlantEqual:"\u2A7D\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2AA2\u0338",NotNestedLessLess:"\u2AA1\u0338",notni:"\u220C",notniva:"\u220C",notnivb:"\u22FE",notnivc:"\u22FD",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2AAF\u0338",NotPrecedesSlantEqual:"\u22E0",NotReverseElement:"\u220C",NotRightTriangleBar:"\u29D0\u0338",NotRightTriangle:"\u22EB",NotRightTriangleEqual:"\u22ED",NotSquareSubset:"\u228F\u0338",NotSquareSubsetEqual:"\u22E2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22E3",NotSubset:"\u2282\u20D2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2AB0\u0338",NotSucceedsSlantEqual:"\u22E1",NotSucceedsTilde:"\u227F\u0338",NotSuperset:"\u2283\u20D2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",nparallel:"\u2226",npar:"\u2226",nparsl:"\u2AFD\u20E5",npart:"\u2202\u0338",npolint:"\u2A14",npr:"\u2280",nprcue:"\u22E0",nprec:"\u2280",npreceq:"\u2AAF\u0338",npre:"\u2AAF\u0338",nrarrc:"\u2933\u0338",nrarr:"\u219B",nrArr:"\u21CF",nrarrw:"\u219D\u0338",nrightarrow:"\u219B",nRightarrow:"\u21CF",nrtri:"\u22EB",nrtrie:"\u22ED",nsc:"\u2281",nsccue:"\u22E1",nsce:"\u2AB0\u0338",Nscr:"\u{1D4A9}",nscr:"\u{1D4C3}",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22E2",nsqsupe:"\u22E3",nsub:"\u2284",nsubE:"\u2AC5\u0338",nsube:"\u2288",nsubset:"\u2282\u20D2",nsubseteq:"\u2288",nsubseteqq:"\u2AC5\u0338",nsucc:"\u2281",nsucceq:"\u2AB0\u0338",nsup:"\u2285",nsupE:"\u2AC6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20D2",nsupseteq:"\u2289",nsupseteqq:"\u2AC6\u0338",ntgl:"\u2279",Ntilde:"\xD1",ntilde:"\xF1",ntlg:"\u2278",ntriangleleft:"\u22EA",ntrianglelefteq:"\u22EC",ntriangleright:"\u22EB",ntrianglerighteq:"\u22ED",Nu:"\u039D",nu:"\u03BD",num:"#",numero:"\u2116",numsp:"\u2007",nvap:"\u224D\u20D2",nvdash:"\u22AC",nvDash:"\u22AD",nVdash:"\u22AE",nVDash:"\u22AF",nvge:"\u2265\u20D2",nvgt:">\u20D2",nvHarr:"\u2904",nvinfin:"\u29DE",nvlArr:"\u2902",nvle:"\u2264\u20D2",nvlt:"<\u20D2",nvltrie:"\u22B4\u20D2",nvrArr:"\u2903",nvrtrie:"\u22B5\u20D2",nvsim:"\u223C\u20D2",nwarhk:"\u2923",nwarr:"\u2196",nwArr:"\u21D6",nwarrow:"\u2196",nwnear:"\u2927",Oacute:"\xD3",oacute:"\xF3",oast:"\u229B",Ocirc:"\xD4",ocirc:"\xF4",ocir:"\u229A",Ocy:"\u041E",ocy:"\u043E",odash:"\u229D",Odblac:"\u0150",odblac:"\u0151",odiv:"\u2A38",odot:"\u2299",odsold:"\u29BC",OElig:"\u0152",oelig:"\u0153",ofcir:"\u29BF",Ofr:"\u{1D512}",ofr:"\u{1D52C}",ogon:"\u02DB",Ograve:"\xD2",ograve:"\xF2",ogt:"\u29C1",ohbar:"\u29B5",ohm:"\u03A9",oint:"\u222E",olarr:"\u21BA",olcir:"\u29BE",olcross:"\u29BB",oline:"\u203E",olt:"\u29C0",Omacr:"\u014C",omacr:"\u014D",Omega:"\u03A9",omega:"\u03C9",Omicron:"\u039F",omicron:"\u03BF",omid:"\u29B6",ominus:"\u2296",Oopf:"\u{1D546}",oopf:"\u{1D560}",opar:"\u29B7",OpenCurlyDoubleQuote:"\u201C",OpenCurlyQuote:"\u2018",operp:"\u29B9",oplus:"\u2295",orarr:"\u21BB",Or:"\u2A54",or:"\u2228",ord:"\u2A5D",order:"\u2134",orderof:"\u2134",ordf:"\xAA",ordm:"\xBA",origof:"\u22B6",oror:"\u2A56",orslope:"\u2A57",orv:"\u2A5B",oS:"\u24C8",Oscr:"\u{1D4AA}",oscr:"\u2134",Oslash:"\xD8",oslash:"\xF8",osol:"\u2298",Otilde:"\xD5",otilde:"\xF5",otimesas:"\u2A36",Otimes:"\u2A37",otimes:"\u2297",Ouml:"\xD6",ouml:"\xF6",ovbar:"\u233D",OverBar:"\u203E",OverBrace:"\u23DE",OverBracket:"\u23B4",OverParenthesis:"\u23DC",para:"\xB6",parallel:"\u2225",par:"\u2225",parsim:"\u2AF3",parsl:"\u2AFD",part:"\u2202",PartialD:"\u2202",Pcy:"\u041F",pcy:"\u043F",percnt:"%",period:".",permil:"\u2030",perp:"\u22A5",pertenk:"\u2031",Pfr:"\u{1D513}",pfr:"\u{1D52D}",Phi:"\u03A6",phi:"\u03C6",phiv:"\u03D5",phmmat:"\u2133",phone:"\u260E",Pi:"\u03A0",pi:"\u03C0",pitchfork:"\u22D4",piv:"\u03D6",planck:"\u210F",planckh:"\u210E",plankv:"\u210F",plusacir:"\u2A23",plusb:"\u229E",pluscir:"\u2A22",plus:"+",plusdo:"\u2214",plusdu:"\u2A25",pluse:"\u2A72",PlusMinus:"\xB1",plusmn:"\xB1",plussim:"\u2A26",plustwo:"\u2A27",pm:"\xB1",Poincareplane:"\u210C",pointint:"\u2A15",popf:"\u{1D561}",Popf:"\u2119",pound:"\xA3",prap:"\u2AB7",Pr:"\u2ABB",pr:"\u227A",prcue:"\u227C",precapprox:"\u2AB7",prec:"\u227A",preccurlyeq:"\u227C",Precedes:"\u227A",PrecedesEqual:"\u2AAF",PrecedesSlantEqual:"\u227C",PrecedesTilde:"\u227E",preceq:"\u2AAF",precnapprox:"\u2AB9",precneqq:"\u2AB5",precnsim:"\u22E8",pre:"\u2AAF",prE:"\u2AB3",precsim:"\u227E",prime:"\u2032",Prime:"\u2033",primes:"\u2119",prnap:"\u2AB9",prnE:"\u2AB5",prnsim:"\u22E8",prod:"\u220F",Product:"\u220F",profalar:"\u232E",profline:"\u2312",profsurf:"\u2313",prop:"\u221D",Proportional:"\u221D",Proportion:"\u2237",propto:"\u221D",prsim:"\u227E",prurel:"\u22B0",Pscr:"\u{1D4AB}",pscr:"\u{1D4C5}",Psi:"\u03A8",psi:"\u03C8",puncsp:"\u2008",Qfr:"\u{1D514}",qfr:"\u{1D52E}",qint:"\u2A0C",qopf:"\u{1D562}",Qopf:"\u211A",qprime:"\u2057",Qscr:"\u{1D4AC}",qscr:"\u{1D4C6}",quaternions:"\u210D",quatint:"\u2A16",quest:"?",questeq:"\u225F",quot:'"',QUOT:'"',rAarr:"\u21DB",race:"\u223D\u0331",Racute:"\u0154",racute:"\u0155",radic:"\u221A",raemptyv:"\u29B3",rang:"\u27E9",Rang:"\u27EB",rangd:"\u2992",range:"\u29A5",rangle:"\u27E9",raquo:"\xBB",rarrap:"\u2975",rarrb:"\u21E5",rarrbfs:"\u2920",rarrc:"\u2933",rarr:"\u2192",Rarr:"\u21A0",rArr:"\u21D2",rarrfs:"\u291E",rarrhk:"\u21AA",rarrlp:"\u21AC",rarrpl:"\u2945",rarrsim:"\u2974",Rarrtl:"\u2916",rarrtl:"\u21A3",rarrw:"\u219D",ratail:"\u291A",rAtail:"\u291C",ratio:"\u2236",rationals:"\u211A",rbarr:"\u290D",rBarr:"\u290F",RBarr:"\u2910",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298C",rbrksld:"\u298E",rbrkslu:"\u2990",Rcaron:"\u0158",rcaron:"\u0159",Rcedil:"\u0156",rcedil:"\u0157",rceil:"\u2309",rcub:"}",Rcy:"\u0420",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201D",rdquor:"\u201D",rdsh:"\u21B3",real:"\u211C",realine:"\u211B",realpart:"\u211C",reals:"\u211D",Re:"\u211C",rect:"\u25AD",reg:"\xAE",REG:"\xAE",ReverseElement:"\u220B",ReverseEquilibrium:"\u21CB",ReverseUpEquilibrium:"\u296F",rfisht:"\u297D",rfloor:"\u230B",rfr:"\u{1D52F}",Rfr:"\u211C",rHar:"\u2964",rhard:"\u21C1",rharu:"\u21C0",rharul:"\u296C",Rho:"\u03A1",rho:"\u03C1",rhov:"\u03F1",RightAngleBracket:"\u27E9",RightArrowBar:"\u21E5",rightarrow:"\u2192",RightArrow:"\u2192",Rightarrow:"\u21D2",RightArrowLeftArrow:"\u21C4",rightarrowtail:"\u21A3",RightCeiling:"\u2309",RightDoubleBracket:"\u27E7",RightDownTeeVector:"\u295D",RightDownVectorBar:"\u2955",RightDownVector:"\u21C2",RightFloor:"\u230B",rightharpoondown:"\u21C1",rightharpoonup:"\u21C0",rightleftarrows:"\u21C4",rightleftharpoons:"\u21CC",rightrightarrows:"\u21C9",rightsquigarrow:"\u219D",RightTeeArrow:"\u21A6",RightTee:"\u22A2",RightTeeVector:"\u295B",rightthreetimes:"\u22CC",RightTriangleBar:"\u29D0",RightTriangle:"\u22B3",RightTriangleEqual:"\u22B5",RightUpDownVector:"\u294F",RightUpTeeVector:"\u295C",RightUpVectorBar:"\u2954",RightUpVector:"\u21BE",RightVectorBar:"\u2953",RightVector:"\u21C0",ring:"\u02DA",risingdotseq:"\u2253",rlarr:"\u21C4",rlhar:"\u21CC",rlm:"\u200F",rmoustache:"\u23B1",rmoust:"\u23B1",rnmid:"\u2AEE",roang:"\u27ED",roarr:"\u21FE",robrk:"\u27E7",ropar:"\u2986",ropf:"\u{1D563}",Ropf:"\u211D",roplus:"\u2A2E",rotimes:"\u2A35",RoundImplies:"\u2970",rpar:")",rpargt:"\u2994",rppolint:"\u2A12",rrarr:"\u21C9",Rrightarrow:"\u21DB",rsaquo:"\u203A",rscr:"\u{1D4C7}",Rscr:"\u211B",rsh:"\u21B1",Rsh:"\u21B1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22CC",rtimes:"\u22CA",rtri:"\u25B9",rtrie:"\u22B5",rtrif:"\u25B8",rtriltri:"\u29CE",RuleDelayed:"\u29F4",ruluhar:"\u2968",rx:"\u211E",Sacute:"\u015A",sacute:"\u015B",sbquo:"\u201A",scap:"\u2AB8",Scaron:"\u0160",scaron:"\u0161",Sc:"\u2ABC",sc:"\u227B",sccue:"\u227D",sce:"\u2AB0",scE:"\u2AB4",Scedil:"\u015E",scedil:"\u015F",Scirc:"\u015C",scirc:"\u015D",scnap:"\u2ABA",scnE:"\u2AB6",scnsim:"\u22E9",scpolint:"\u2A13",scsim:"\u227F",Scy:"\u0421",scy:"\u0441",sdotb:"\u22A1",sdot:"\u22C5",sdote:"\u2A66",searhk:"\u2925",searr:"\u2198",seArr:"\u21D8",searrow:"\u2198",sect:"\xA7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",Sfr:"\u{1D516}",sfr:"\u{1D530}",sfrown:"\u2322",sharp:"\u266F",SHCHcy:"\u0429",shchcy:"\u0449",SHcy:"\u0428",shcy:"\u0448",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",shortmid:"\u2223",shortparallel:"\u2225",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",shy:"\xAD",Sigma:"\u03A3",sigma:"\u03C3",sigmaf:"\u03C2",sigmav:"\u03C2",sim:"\u223C",simdot:"\u2A6A",sime:"\u2243",simeq:"\u2243",simg:"\u2A9E",simgE:"\u2AA0",siml:"\u2A9D",simlE:"\u2A9F",simne:"\u2246",simplus:"\u2A24",simrarr:"\u2972",slarr:"\u2190",SmallCircle:"\u2218",smallsetminus:"\u2216",smashp:"\u2A33",smeparsl:"\u29E4",smid:"\u2223",smile:"\u2323",smt:"\u2AAA",smte:"\u2AAC",smtes:"\u2AAC\uFE00",SOFTcy:"\u042C",softcy:"\u044C",solbar:"\u233F",solb:"\u29C4",sol:"/",Sopf:"\u{1D54A}",sopf:"\u{1D564}",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\uFE00",sqcup:"\u2294",sqcups:"\u2294\uFE00",Sqrt:"\u221A",sqsub:"\u228F",sqsube:"\u2291",sqsubset:"\u228F",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",square:"\u25A1",Square:"\u25A1",SquareIntersection:"\u2293",SquareSubset:"\u228F",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",squarf:"\u25AA",squ:"\u25A1",squf:"\u25AA",srarr:"\u2192",Sscr:"\u{1D4AE}",sscr:"\u{1D4C8}",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22C6",Star:"\u22C6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03F5",straightphi:"\u03D5",strns:"\xAF",sub:"\u2282",Sub:"\u22D0",subdot:"\u2ABD",subE:"\u2AC5",sube:"\u2286",subedot:"\u2AC3",submult:"\u2AC1",subnE:"\u2ACB",subne:"\u228A",subplus:"\u2ABF",subrarr:"\u2979",subset:"\u2282",Subset:"\u22D0",subseteq:"\u2286",subseteqq:"\u2AC5",SubsetEqual:"\u2286",subsetneq:"\u228A",subsetneqq:"\u2ACB",subsim:"\u2AC7",subsub:"\u2AD5",subsup:"\u2AD3",succapprox:"\u2AB8",succ:"\u227B",succcurlyeq:"\u227D",Succeeds:"\u227B",SucceedsEqual:"\u2AB0",SucceedsSlantEqual:"\u227D",SucceedsTilde:"\u227F",succeq:"\u2AB0",succnapprox:"\u2ABA",succneqq:"\u2AB6",succnsim:"\u22E9",succsim:"\u227F",SuchThat:"\u220B",sum:"\u2211",Sum:"\u2211",sung:"\u266A",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",sup:"\u2283",Sup:"\u22D1",supdot:"\u2ABE",supdsub:"\u2AD8",supE:"\u2AC6",supe:"\u2287",supedot:"\u2AC4",Superset:"\u2283",SupersetEqual:"\u2287",suphsol:"\u27C9",suphsub:"\u2AD7",suplarr:"\u297B",supmult:"\u2AC2",supnE:"\u2ACC",supne:"\u228B",supplus:"\u2AC0",supset:"\u2283",Supset:"\u22D1",supseteq:"\u2287",supseteqq:"\u2AC6",supsetneq:"\u228B",supsetneqq:"\u2ACC",supsim:"\u2AC8",supsub:"\u2AD4",supsup:"\u2AD6",swarhk:"\u2926",swarr:"\u2199",swArr:"\u21D9",swarrow:"\u2199",swnwar:"\u292A",szlig:"\xDF",Tab:" ",target:"\u2316",Tau:"\u03A4",tau:"\u03C4",tbrk:"\u23B4",Tcaron:"\u0164",tcaron:"\u0165",Tcedil:"\u0162",tcedil:"\u0163",Tcy:"\u0422",tcy:"\u0442",tdot:"\u20DB",telrec:"\u2315",Tfr:"\u{1D517}",tfr:"\u{1D531}",there4:"\u2234",therefore:"\u2234",Therefore:"\u2234",Theta:"\u0398",theta:"\u03B8",thetasym:"\u03D1",thetav:"\u03D1",thickapprox:"\u2248",thicksim:"\u223C",ThickSpace:"\u205F\u200A",ThinSpace:"\u2009",thinsp:"\u2009",thkap:"\u2248",thksim:"\u223C",THORN:"\xDE",thorn:"\xFE",tilde:"\u02DC",Tilde:"\u223C",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",timesbar:"\u2A31",timesb:"\u22A0",times:"\xD7",timesd:"\u2A30",tint:"\u222D",toea:"\u2928",topbot:"\u2336",topcir:"\u2AF1",top:"\u22A4",Topf:"\u{1D54B}",topf:"\u{1D565}",topfork:"\u2ADA",tosa:"\u2929",tprime:"\u2034",trade:"\u2122",TRADE:"\u2122",triangle:"\u25B5",triangledown:"\u25BF",triangleleft:"\u25C3",trianglelefteq:"\u22B4",triangleq:"\u225C",triangleright:"\u25B9",trianglerighteq:"\u22B5",tridot:"\u25EC",trie:"\u225C",triminus:"\u2A3A",TripleDot:"\u20DB",triplus:"\u2A39",trisb:"\u29CD",tritime:"\u2A3B",trpezium:"\u23E2",Tscr:"\u{1D4AF}",tscr:"\u{1D4C9}",TScy:"\u0426",tscy:"\u0446",TSHcy:"\u040B",tshcy:"\u045B",Tstrok:"\u0166",tstrok:"\u0167",twixt:"\u226C",twoheadleftarrow:"\u219E",twoheadrightarrow:"\u21A0",Uacute:"\xDA",uacute:"\xFA",uarr:"\u2191",Uarr:"\u219F",uArr:"\u21D1",Uarrocir:"\u2949",Ubrcy:"\u040E",ubrcy:"\u045E",Ubreve:"\u016C",ubreve:"\u016D",Ucirc:"\xDB",ucirc:"\xFB",Ucy:"\u0423",ucy:"\u0443",udarr:"\u21C5",Udblac:"\u0170",udblac:"\u0171",udhar:"\u296E",ufisht:"\u297E",Ufr:"\u{1D518}",ufr:"\u{1D532}",Ugrave:"\xD9",ugrave:"\xF9",uHar:"\u2963",uharl:"\u21BF",uharr:"\u21BE",uhblk:"\u2580",ulcorn:"\u231C",ulcorner:"\u231C",ulcrop:"\u230F",ultri:"\u25F8",Umacr:"\u016A",umacr:"\u016B",uml:"\xA8",UnderBar:"_",UnderBrace:"\u23DF",UnderBracket:"\u23B5",UnderParenthesis:"\u23DD",Union:"\u22C3",UnionPlus:"\u228E",Uogon:"\u0172",uogon:"\u0173",Uopf:"\u{1D54C}",uopf:"\u{1D566}",UpArrowBar:"\u2912",uparrow:"\u2191",UpArrow:"\u2191",Uparrow:"\u21D1",UpArrowDownArrow:"\u21C5",updownarrow:"\u2195",UpDownArrow:"\u2195",Updownarrow:"\u21D5",UpEquilibrium:"\u296E",upharpoonleft:"\u21BF",upharpoonright:"\u21BE",uplus:"\u228E",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",upsi:"\u03C5",Upsi:"\u03D2",upsih:"\u03D2",Upsilon:"\u03A5",upsilon:"\u03C5",UpTeeArrow:"\u21A5",UpTee:"\u22A5",upuparrows:"\u21C8",urcorn:"\u231D",urcorner:"\u231D",urcrop:"\u230E",Uring:"\u016E",uring:"\u016F",urtri:"\u25F9",Uscr:"\u{1D4B0}",uscr:"\u{1D4CA}",utdot:"\u22F0",Utilde:"\u0168",utilde:"\u0169",utri:"\u25B5",utrif:"\u25B4",uuarr:"\u21C8",Uuml:"\xDC",uuml:"\xFC",uwangle:"\u29A7",vangrt:"\u299C",varepsilon:"\u03F5",varkappa:"\u03F0",varnothing:"\u2205",varphi:"\u03D5",varpi:"\u03D6",varpropto:"\u221D",varr:"\u2195",vArr:"\u21D5",varrho:"\u03F1",varsigma:"\u03C2",varsubsetneq:"\u228A\uFE00",varsubsetneqq:"\u2ACB\uFE00",varsupsetneq:"\u228B\uFE00",varsupsetneqq:"\u2ACC\uFE00",vartheta:"\u03D1",vartriangleleft:"\u22B2",vartriangleright:"\u22B3",vBar:"\u2AE8",Vbar:"\u2AEB",vBarv:"\u2AE9",Vcy:"\u0412",vcy:"\u0432",vdash:"\u22A2",vDash:"\u22A8",Vdash:"\u22A9",VDash:"\u22AB",Vdashl:"\u2AE6",veebar:"\u22BB",vee:"\u2228",Vee:"\u22C1",veeeq:"\u225A",vellip:"\u22EE",verbar:"|",Verbar:"\u2016",vert:"|",Vert:"\u2016",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200A",Vfr:"\u{1D519}",vfr:"\u{1D533}",vltri:"\u22B2",vnsub:"\u2282\u20D2",vnsup:"\u2283\u20D2",Vopf:"\u{1D54D}",vopf:"\u{1D567}",vprop:"\u221D",vrtri:"\u22B3",Vscr:"\u{1D4B1}",vscr:"\u{1D4CB}",vsubnE:"\u2ACB\uFE00",vsubne:"\u228A\uFE00",vsupnE:"\u2ACC\uFE00",vsupne:"\u228B\uFE00",Vvdash:"\u22AA",vzigzag:"\u299A",Wcirc:"\u0174",wcirc:"\u0175",wedbar:"\u2A5F",wedge:"\u2227",Wedge:"\u22C0",wedgeq:"\u2259",weierp:"\u2118",Wfr:"\u{1D51A}",wfr:"\u{1D534}",Wopf:"\u{1D54E}",wopf:"\u{1D568}",wp:"\u2118",wr:"\u2240",wreath:"\u2240",Wscr:"\u{1D4B2}",wscr:"\u{1D4CC}",xcap:"\u22C2",xcirc:"\u25EF",xcup:"\u22C3",xdtri:"\u25BD",Xfr:"\u{1D51B}",xfr:"\u{1D535}",xharr:"\u27F7",xhArr:"\u27FA",Xi:"\u039E",xi:"\u03BE",xlarr:"\u27F5",xlArr:"\u27F8",xmap:"\u27FC",xnis:"\u22FB",xodot:"\u2A00",Xopf:"\u{1D54F}",xopf:"\u{1D569}",xoplus:"\u2A01",xotime:"\u2A02",xrarr:"\u27F6",xrArr:"\u27F9",Xscr:"\u{1D4B3}",xscr:"\u{1D4CD}",xsqcup:"\u2A06",xuplus:"\u2A04",xutri:"\u25B3",xvee:"\u22C1",xwedge:"\u22C0",Yacute:"\xDD",yacute:"\xFD",YAcy:"\u042F",yacy:"\u044F",Ycirc:"\u0176",ycirc:"\u0177",Ycy:"\u042B",ycy:"\u044B",yen:"\xA5",Yfr:"\u{1D51C}",yfr:"\u{1D536}",YIcy:"\u0407",yicy:"\u0457",Yopf:"\u{1D550}",yopf:"\u{1D56A}",Yscr:"\u{1D4B4}",yscr:"\u{1D4CE}",YUcy:"\u042E",yucy:"\u044E",yuml:"\xFF",Yuml:"\u0178",Zacute:"\u0179",zacute:"\u017A",Zcaron:"\u017D",zcaron:"\u017E",Zcy:"\u0417",zcy:"\u0437",Zdot:"\u017B",zdot:"\u017C",zeetrf:"\u2128",ZeroWidthSpace:"\u200B",Zeta:"\u0396",zeta:"\u03B6",zfr:"\u{1D537}",Zfr:"\u2128",ZHcy:"\u0416",zhcy:"\u0436",zigrarr:"\u21DD",zopf:"\u{1D56B}",Zopf:"\u2124",Zscr:"\u{1D4B5}",zscr:"\u{1D4CF}",zwj:"\u200D",zwnj:"\u200C"}});var td=me((Fh,vg)=>{vg.exports={Aacute:"\xC1",aacute:"\xE1",Acirc:"\xC2",acirc:"\xE2",acute:"\xB4",AElig:"\xC6",aelig:"\xE6",Agrave:"\xC0",agrave:"\xE0",amp:"&",AMP:"&",Aring:"\xC5",aring:"\xE5",Atilde:"\xC3",atilde:"\xE3",Auml:"\xC4",auml:"\xE4",brvbar:"\xA6",Ccedil:"\xC7",ccedil:"\xE7",cedil:"\xB8",cent:"\xA2",copy:"\xA9",COPY:"\xA9",curren:"\xA4",deg:"\xB0",divide:"\xF7",Eacute:"\xC9",eacute:"\xE9",Ecirc:"\xCA",ecirc:"\xEA",Egrave:"\xC8",egrave:"\xE8",ETH:"\xD0",eth:"\xF0",Euml:"\xCB",euml:"\xEB",frac12:"\xBD",frac14:"\xBC",frac34:"\xBE",gt:">",GT:">",Iacute:"\xCD",iacute:"\xED",Icirc:"\xCE",icirc:"\xEE",iexcl:"\xA1",Igrave:"\xCC",igrave:"\xEC",iquest:"\xBF",Iuml:"\xCF",iuml:"\xEF",laquo:"\xAB",lt:"<",LT:"<",macr:"\xAF",micro:"\xB5",middot:"\xB7",nbsp:"\xA0",not:"\xAC",Ntilde:"\xD1",ntilde:"\xF1",Oacute:"\xD3",oacute:"\xF3",Ocirc:"\xD4",ocirc:"\xF4",Ograve:"\xD2",ograve:"\xF2",ordf:"\xAA",ordm:"\xBA",Oslash:"\xD8",oslash:"\xF8",Otilde:"\xD5",otilde:"\xF5",Ouml:"\xD6",ouml:"\xF6",para:"\xB6",plusmn:"\xB1",pound:"\xA3",quot:'"',QUOT:'"',raquo:"\xBB",reg:"\xAE",REG:"\xAE",sect:"\xA7",shy:"\xAD",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",szlig:"\xDF",THORN:"\xDE",thorn:"\xFE",times:"\xD7",Uacute:"\xDA",uacute:"\xFA",Ucirc:"\xDB",ucirc:"\xFB",Ugrave:"\xD9",ugrave:"\xF9",uml:"\xA8",Uuml:"\xDC",uuml:"\xFC",Yacute:"\xDD",yacute:"\xFD",yen:"\xA5",yuml:"\xFF"}});var eu=me((zh,yg)=>{yg.exports={amp:"&",apos:"'",gt:">",lt:"<",quot:'"'}});var rd=me((Rh,Eg)=>{Eg.exports={"0":65533,"128":8364,"130":8218,"131":402,"132":8222,"133":8230,"134":8224,"135":8225,"136":710,"137":8240,"138":352,"139":8249,"140":338,"142":381,"145":8216,"146":8217,"147":8220,"148":8221,"149":8226,"150":8211,"151":8212,"152":732,"153":8482,"154":353,"155":8250,"156":339,"158":382,"159":376}});var od=me(Bn=>{"use strict";var Sg=Bn&&Bn.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Bn,"__esModule",{value:!0});var nd=Sg(rd()),_g=String.fromCodePoint||function(e){var t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|e&1023),t+=String.fromCharCode(e),t};function wg(e){return e>=55296&&e<=57343||e>1114111?"\uFFFD":(e in nd.default&&(e=nd.default[e]),_g(e))}Bn.default=wg});var ru=me(ct=>{"use strict";var yl=ct&&ct.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ct,"__esModule",{value:!0});ct.decodeHTML=ct.decodeHTMLStrict=ct.decodeXML=void 0;var tu=yl(Js()),Cg=yl(td()),Tg=yl(eu()),ld=yl(od()),kg=/&(?:[a-zA-Z0-9]+|#[xX][\da-fA-F]+|#\d+);/g;ct.decodeXML=sd(Tg.default);ct.decodeHTMLStrict=sd(tu.default);function sd(e){var t=ud(e);return function(r){return String(r).replace(kg,t)}}var id=function(e,t){return e{"use strict";var ad=xe&&xe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(xe,"__esModule",{value:!0});xe.escapeUTF8=xe.escape=xe.encodeNonAsciiHTML=xe.encodeHTML=xe.encodeXML=void 0;var Ng=ad(eu()),cd=dd(Ng.default),fd=pd(cd);xe.encodeXML=hd(cd);var Lg=ad(Js()),nu=dd(Lg.default),Mg=pd(nu);xe.encodeHTML=Og(nu,Mg);xe.encodeNonAsciiHTML=hd(nu);function dd(e){return Object.keys(e).sort().reduce(function(t,r){return t[e[r]]="&"+r+";",t},{})}function pd(e){for(var t=[],r=[],n=0,o=Object.keys(e);n1?xg(e):e.charCodeAt(0)).toString(16).toUpperCase()+";"}function Og(e,t){return function(r){return r.replace(t,function(n){return e[n]}).replace(md,El)}}var gd=new RegExp(fd.source+"|"+md.source,"g");function Ag(e){return e.replace(gd,El)}xe.escape=Ag;function Pg(e){return e.replace(fd,El)}xe.escapeUTF8=Pg;function hd(e){return function(t){return t.replace(gd,function(r){return e[r]||El(r)})}}});var yd=me(A=>{"use strict";Object.defineProperty(A,"__esModule",{value:!0});A.decodeXMLStrict=A.decodeHTML5Strict=A.decodeHTML4Strict=A.decodeHTML5=A.decodeHTML4=A.decodeHTMLStrict=A.decodeHTML=A.decodeXML=A.encodeHTML5=A.encodeHTML4=A.escapeUTF8=A.escape=A.encodeNonAsciiHTML=A.encodeHTML=A.encodeXML=A.encode=A.decodeStrict=A.decode=void 0;var Sl=ru(),vd=ou();function Dg(e,t){return(!t||t<=0?Sl.decodeXML:Sl.decodeHTML)(e)}A.decode=Dg;function Ig(e,t){return(!t||t<=0?Sl.decodeXML:Sl.decodeHTMLStrict)(e)}A.decodeStrict=Ig;function Ug(e,t){return(!t||t<=0?vd.encodeXML:vd.encodeHTML)(e)}A.encode=Ug;var dr=ou();Object.defineProperty(A,"encodeXML",{enumerable:!0,get:function(){return dr.encodeXML}});Object.defineProperty(A,"encodeHTML",{enumerable:!0,get:function(){return dr.encodeHTML}});Object.defineProperty(A,"encodeNonAsciiHTML",{enumerable:!0,get:function(){return dr.encodeNonAsciiHTML}});Object.defineProperty(A,"escape",{enumerable:!0,get:function(){return dr.escape}});Object.defineProperty(A,"escapeUTF8",{enumerable:!0,get:function(){return dr.escapeUTF8}});Object.defineProperty(A,"encodeHTML4",{enumerable:!0,get:function(){return dr.encodeHTML}});Object.defineProperty(A,"encodeHTML5",{enumerable:!0,get:function(){return dr.encodeHTML}});var Xt=ru();Object.defineProperty(A,"decodeXML",{enumerable:!0,get:function(){return Xt.decodeXML}});Object.defineProperty(A,"decodeHTML",{enumerable:!0,get:function(){return Xt.decodeHTML}});Object.defineProperty(A,"decodeHTMLStrict",{enumerable:!0,get:function(){return Xt.decodeHTMLStrict}});Object.defineProperty(A,"decodeHTML4",{enumerable:!0,get:function(){return Xt.decodeHTML}});Object.defineProperty(A,"decodeHTML5",{enumerable:!0,get:function(){return Xt.decodeHTML}});Object.defineProperty(A,"decodeHTML4Strict",{enumerable:!0,get:function(){return Xt.decodeHTMLStrict}});Object.defineProperty(A,"decodeHTML5Strict",{enumerable:!0,get:function(){return Xt.decodeHTMLStrict}});Object.defineProperty(A,"decodeXMLStrict",{enumerable:!0,get:function(){return Xt.decodeXML}})});var xd=me((Vh,Md)=>{"use strict";function Fg(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ed(e,t){for(var r=0;r=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(a){throw a},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var l=!0,i=!1,s;return{s:function(){r=r.call(e)},n:function(){var a=r.next();return l=a.done,a},e:function(a){i=!0,s=a},f:function(){try{!l&&r.return!=null&&r.return()}finally{if(i)throw s}}}}function Rg(e,t){if(e){if(typeof e=="string")return Sd(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Sd(e,t)}}function Sd(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0?e*40+55:0,i=t>0?t*40+55:0,s=r>0?r*40+55:0;n[o]=Bg([l,i,s])}function Nd(e){for(var t=e.toString(16);t.length<2;)t="0"+t;return t}function Bg(e){var t=[],r=kd(e),n;try{for(r.s();!(n=r.n()).done;){var o=n.value;t.push(Nd(o))}}catch(l){r.e(l)}finally{r.f()}return"#"+t.join("")}function wd(e,t,r,n){var o;return t==="text"?o=Gg(r,n):t==="display"?o=bg(e,r,n):t==="xterm256Foreground"?o=Cl(e,n.colors[r]):t==="xterm256Background"?o=Tl(e,n.colors[r]):t==="rgb"&&(o=Vg(e,r)),o}function Vg(e,t){t=t.substring(2).slice(0,-1);var r=+t.substr(0,2),n=t.substring(5).split(";"),o=n.map(function(l){return("0"+Number(l).toString(16)).substr(-2)}).join("");return wl(e,(r===38?"color:#":"background-color:#")+o)}function bg(e,t,r){t=parseInt(t,10);var n={"-1":function(){return"
"},0:function(){return e.length&&Ld(e)},1:function(){return $t(e,"b")},3:function(){return $t(e,"i")},4:function(){return $t(e,"u")},8:function(){return wl(e,"display:none")},9:function(){return $t(e,"strike")},22:function(){return wl(e,"font-weight:normal;text-decoration:none;font-style:normal")},23:function(){return Td(e,"i")},24:function(){return Td(e,"u")},39:function(){return Cl(e,r.fg)},49:function(){return Tl(e,r.bg)},53:function(){return wl(e,"text-decoration:overline")}},o;return n[t]?o=n[t]():4"}).join("")}function _l(e,t){for(var r=[],n=e;n<=t;n++)r.push(n);return r}function Wg(e){return function(t){return(e===null||t.category!==e)&&e!=="all"}}function Cd(e){e=parseInt(e,10);var t=null;return e===0?t="all":e===1?t="bold":2")}function wl(e,t){return $t(e,"span",t)}function Cl(e,t){return $t(e,"span","color:"+t)}function Tl(e,t){return $t(e,"span","background-color:"+t)}function Td(e,t){var r;if(e.slice(-1)[0]===t&&(r=e.pop()),r)return""}function Xg(e,t,r){var n=!1,o=3;function l(){return""}function i(w,h){return r("xterm256Foreground",h),""}function s(w,h){return r("xterm256Background",h),""}function u(w){return t.newline?r("display",-1):r("text",w),""}function a(w,h){n=!0,h.trim().length===0&&(h="0"),h=h.trimRight(";").split(";");var N=kd(h),M;try{for(N.s();!(M=N.n()).done;){var U=M.value;r("display",U)}}catch(O){N.e(O)}finally{N.f()}return""}function p(w){return r("text",w),""}function m(w){return r("rgb",w),""}var g=[{pattern:/^\x08+/,sub:l},{pattern:/^\x1b\[[012]?K/,sub:l},{pattern:/^\x1b\[\(B/,sub:l},{pattern:/^\x1b\[[34]8;2;\d+;\d+;\d+m/,sub:m},{pattern:/^\x1b\[38;5;(\d+)m/,sub:i},{pattern:/^\x1b\[48;5;(\d+)m/,sub:s},{pattern:/^\n/,sub:u},{pattern:/^\r+\n/,sub:u},{pattern:/^\r/,sub:u},{pattern:/^\x1b\[((?:\d{1,3};?)+|)m/,sub:a},{pattern:/^\x1b\[\d?J/,sub:l},{pattern:/^\x1b\[\d{0,3};\d{0,3}f/,sub:l},{pattern:/^\x1b\[?[\d;]{0,3}/,sub:l},{pattern:/^(([^\x1b\x08\r\n])+)/,sub:p}];function S(w,h){h>o&&n||(n=!1,e=e.replace(w.pattern,w.sub))}var E=[],T=e,x=T.length;e:for(;x>0;){for(var d=0,c=0,f=g.length;c{let l=["system","light","dark"],s=(l.indexOf(e)+1)%l.length;t(l[s])},n=()=>{switch(e){case"light":return se.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},se.default.createElement("circle",{cx:"12",cy:"12",r:"5"}),se.default.createElement("line",{x1:"12",y1:"1",x2:"12",y2:"3"}),se.default.createElement("line",{x1:"12",y1:"21",x2:"12",y2:"23"}),se.default.createElement("line",{x1:"4.22",y1:"4.22",x2:"5.64",y2:"5.64"}),se.default.createElement("line",{x1:"18.36",y1:"18.36",x2:"19.78",y2:"19.78"}),se.default.createElement("line",{x1:"1",y1:"12",x2:"3",y2:"12"}),se.default.createElement("line",{x1:"21",y1:"12",x2:"23",y2:"12"}),se.default.createElement("line",{x1:"4.22",y1:"19.78",x2:"5.64",y2:"18.36"}),se.default.createElement("line",{x1:"18.36",y1:"5.64",x2:"19.78",y2:"4.22"}));case"dark":return se.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},se.default.createElement("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"}));default:return se.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},se.default.createElement("rect",{x:"2",y:"3",width:"20",height:"14",rx:"2",ry:"2"}),se.default.createElement("line",{x1:"8",y1:"21",x2:"16",y2:"21"}),se.default.createElement("line",{x1:"12",y1:"17",x2:"12",y2:"21"}))}},o=()=>{switch(e){case"light":return"Theme: Light (click for Dark)";case"dark":return"Theme: Dark (click for System)";default:return"Theme: System (click for Light)"}};return se.default.createElement("button",{className:"theme-toggle-btn",onClick:r,title:o(),"aria-label":o()},n())}var at=W(G(),1);var bt=W(G(),1);function bf(e,t){let[r,n]=(0,bt.useState)(null),[o,l]=(0,bt.useState)(!0),[i,s]=(0,bt.useState)(null),u=(0,bt.useCallback)(async()=>{try{l(!0),s(null);let a=await fetch(`https://api.github.com/repos/${e}/${t}`);if(!a.ok)throw new Error(`GitHub API error: ${a.status}`);let p=await a.json();n(p.stargazers_count)}catch(a){console.error("Failed to fetch GitHub stars:",a),s(a instanceof Error?a:new Error("Unknown error"))}finally{l(!1)}},[e,t]);return(0,bt.useEffect)(()=>{u()},[u]),{stars:r,isLoading:o,error:i}}function Wf(e){return e<1e3?e.toString():e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(1)}M`}function Gf({username:e,repo:t,className:r=""}){let{stars:n,isLoading:o,error:l}=bf(e,t),i=`https://github.com/${e}/${t}`;return l?at.default.createElement("a",{href:i,target:"_blank",rel:"noopener noreferrer",title:"GitHub",className:"icon-link"},at.default.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},at.default.createElement("path",{d:"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"}))):at.default.createElement("a",{href:i,target:"_blank",rel:"noopener noreferrer",className:`github-stars-btn ${r}`,title:`Star us on GitHub${n!==null?` (${n.toLocaleString()} stars)`:""}`},at.default.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor",style:{marginRight:"6px"}},at.default.createElement("path",{d:"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"})),at.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",style:{marginRight:"4px"}},at.default.createElement("path",{d:"M12 .587l3.668 7.431 8.2 1.192-5.934 5.787 1.4 8.166L12 18.896l-7.334 3.867 1.4-8.166-5.934-5.787 8.2-1.192z"})),at.default.createElement("span",{className:o?"stars-loading":"stars-count"},o?"...":n!==null?Wf(n):"\u2014"))}var Wt=W(G(),1);function Xf(e){let t=(0,Wt.useRef)(null),r=(0,Wt.useRef)(null),n=(0,Wt.useRef)(null),o=(0,Wt.useRef)(0),l=(0,Wt.useRef)(null);(0,Wt.useEffect)(()=>{if(r.current||(r.current=document.createElement("canvas"),r.current.width=32,r.current.height=32),n.current||(n.current=new Image,n.current.src="claude-mem-logomark.webp"),!l.current){let m=document.querySelector('link[rel="icon"]');m&&(l.current=m.href)}let i=r.current,s=i.getContext("2d"),u=n.current;if(!s)return;let a=m=>{let g=document.querySelector('link[rel="icon"]');g||(g=document.createElement("link"),g.rel="icon",document.head.appendChild(g)),g.href=m},p=()=>{if(!u.complete){t.current=requestAnimationFrame(p);return}o.current+=2*Math.PI/90,s.clearRect(0,0,32,32),s.save(),s.translate(16,16),s.rotate(o.current),s.drawImage(u,-16,-16,32,32),s.restore(),a(i.toDataURL("image/png")),t.current=requestAnimationFrame(p)};return e?(o.current=0,p()):(t.current&&(cancelAnimationFrame(t.current),t.current=null),l.current&&a(l.current)),()=>{t.current&&(cancelAnimationFrame(t.current),t.current=null)}},[e])}function $f({isConnected:e,projects:t,currentFilter:r,onFilterChange:n,isProcessing:o,queueDepth:l,themePreference:i,onThemeChange:s,onContextPreviewToggle:u}){return Xf(o),R.default.createElement("div",{className:"header"},R.default.createElement("h1",null,R.default.createElement("div",{style:{position:"relative",display:"inline-block"}},R.default.createElement("img",{src:"claude-mem-logomark.webp",alt:"",className:`logomark ${o?"spinning":""}`}),l>0&&R.default.createElement("div",{className:"queue-bubble"},l)),R.default.createElement("span",{className:"logo-text"},"claude-mem")),R.default.createElement("div",{className:"status"},R.default.createElement("a",{href:"https://docs.claude-mem.ai",target:"_blank",rel:"noopener noreferrer",className:"icon-link",title:"Documentation"},R.default.createElement("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},R.default.createElement("path",{d:"M4 19.5A2.5 2.5 0 0 1 6.5 17H20"}),R.default.createElement("path",{d:"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"}))),R.default.createElement("a",{href:"https://x.com/Claude_Memory",target:"_blank",rel:"noopener noreferrer",className:"icon-link",title:"Follow us on X"},R.default.createElement("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},R.default.createElement("path",{d:"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"}))),R.default.createElement("a",{href:"https://discord.gg/J4wttp9vDu",target:"_blank",rel:"noopener noreferrer",className:"icon-link",title:"Join our Discord community"},R.default.createElement("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},R.default.createElement("path",{d:"M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515a.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0a12.64 12.64 0 0 0-.617-1.25a.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057a19.9 19.9 0 0 0 5.993 3.03a.078.078 0 0 0 .084-.028a14.09 14.09 0 0 0 1.226-1.994a.076.076 0 0 0-.041-.106a13.107 13.107 0 0 1-1.872-.892a.077.077 0 0 1-.008-.128a10.2 10.2 0 0 0 .372-.292a.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127a12.299 12.299 0 0 1-1.873.892a.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028a19.839 19.839 0 0 0 6.002-3.03a.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419c0-1.333.956-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419c0-1.333.955-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.946 2.418-2.157 2.418z"}))),R.default.createElement(Gf,{username:"thedotmack",repo:"claude-mem"}),R.default.createElement("select",{value:r,onChange:a=>n(a.target.value)},R.default.createElement("option",{value:""},"All Projects"),t.map(a=>R.default.createElement("option",{key:a,value:a},a))),R.default.createElement(Vf,{preference:i,onThemeChange:s}),R.default.createElement("button",{className:"settings-btn",onClick:u,title:"Settings"},R.default.createElement("svg",{className:"settings-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},R.default.createElement("path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"}),R.default.createElement("circle",{cx:"12",cy:"12",r:"3"})))))}var J=W(G(),1);var D=W(G(),1);function Vr(e){return new Date(e).toLocaleString()}function Kf(e){let t=["/Scripts/","/src/","/plugin/","/docs/"];for(let o of t){let l=e.indexOf(o);if(l!==-1)return e.substring(l+1)}let r=e.indexOf("claude-mem/");if(r!==-1)return e.substring(r+11);let n=e.split("/");return n.length>3?n.slice(-3).join("/"):e}function Yf({observation:e}){let[t,r]=(0,D.useState)(!1),[n,o]=(0,D.useState)(!1),l=Vr(e.created_at_epoch),i=e.facts?JSON.parse(e.facts):[],s=e.concepts?JSON.parse(e.concepts):[],u=e.files_read?JSON.parse(e.files_read).map(Kf):[],a=e.files_modified?JSON.parse(e.files_modified).map(Kf):[],p=i.length>0||s.length>0||u.length>0||a.length>0;return D.default.createElement("div",{className:"card"},D.default.createElement("div",{className:"card-header"},D.default.createElement("div",{className:"card-header-left"},D.default.createElement("span",{className:`card-type type-${e.type}`},e.type),D.default.createElement("span",{className:"card-project"},e.project)),D.default.createElement("div",{className:"view-mode-toggles"},p&&D.default.createElement("button",{className:`view-mode-toggle ${t?"active":""}`,onClick:()=>{r(!t),t||o(!1)}},D.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},D.default.createElement("polyline",{points:"9 11 12 14 22 4"}),D.default.createElement("path",{d:"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"})),D.default.createElement("span",null,"facts")),e.narrative&&D.default.createElement("button",{className:`view-mode-toggle ${n?"active":""}`,onClick:()=>{o(!n),n||r(!1)}},D.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},D.default.createElement("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),D.default.createElement("polyline",{points:"14 2 14 8 20 8"}),D.default.createElement("line",{x1:"16",y1:"13",x2:"8",y2:"13"}),D.default.createElement("line",{x1:"16",y1:"17",x2:"8",y2:"17"})),D.default.createElement("span",null,"narrative")))),D.default.createElement("div",{className:"card-title"},e.title||"Untitled"),D.default.createElement("div",{className:"view-mode-content"},!t&&!n&&e.subtitle&&D.default.createElement("div",{className:"card-subtitle"},e.subtitle),t&&i.length>0&&D.default.createElement("ul",{className:"facts-list"},i.map((m,g)=>D.default.createElement("li",{key:g},m))),n&&e.narrative&&D.default.createElement("div",{className:"narrative"},e.narrative)),D.default.createElement("div",{className:"card-meta"},D.default.createElement("span",{className:"meta-date"},"#",e.id," \u2022 ",l),t&&(s.length>0||u.length>0||a.length>0)&&D.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px",alignItems:"center"}},s.map((m,g)=>D.default.createElement("span",{key:g,style:{padding:"2px 8px",background:"var(--color-type-badge-bg)",color:"var(--color-type-badge-text)",borderRadius:"3px",fontWeight:"500",fontSize:"10px"}},m)),u.length>0&&D.default.createElement("span",{className:"meta-files"},D.default.createElement("span",{className:"file-label"},"read:")," ",u.join(", ")),a.length>0&&D.default.createElement("span",{className:"meta-files"},D.default.createElement("span",{className:"file-label"},"modified:")," ",a.join(", ")))))}var de=W(G(),1);function Qf({summary:e}){let t=Vr(e.created_at_epoch),r=[{key:"investigated",label:"Investigated",content:e.investigated,icon:"/icon-thick-investigated.svg"},{key:"learned",label:"Learned",content:e.learned,icon:"/icon-thick-learned.svg"},{key:"completed",label:"Completed",content:e.completed,icon:"/icon-thick-completed.svg"},{key:"next_steps",label:"Next Steps",content:e.next_steps,icon:"/icon-thick-next-steps.svg"}].filter(n=>n.content);return de.default.createElement("article",{className:"card summary-card"},de.default.createElement("header",{className:"summary-card-header"},de.default.createElement("div",{className:"summary-badge-row"},de.default.createElement("span",{className:"card-type summary-badge"},"Session Summary"),de.default.createElement("span",{className:"summary-project-badge"},e.project)),e.request&&de.default.createElement("h2",{className:"summary-title"},e.request)),de.default.createElement("div",{className:"summary-sections"},r.map((n,o)=>de.default.createElement("section",{key:n.key,className:"summary-section",style:{animationDelay:`${o*50}ms`}},de.default.createElement("div",{className:"summary-section-header"},de.default.createElement("img",{src:n.icon,alt:n.label,className:`summary-section-icon summary-section-icon--${n.key}`}),de.default.createElement("h3",{className:"summary-section-label"},n.label)),de.default.createElement("div",{className:"summary-section-content"},n.content)))),de.default.createElement("footer",{className:"summary-card-footer"},de.default.createElement("span",{className:"summary-meta-id"},"Session #",e.id),de.default.createElement("span",{className:"summary-meta-divider"},"\u2022"),de.default.createElement("time",{className:"summary-meta-date",dateTime:new Date(e.created_at_epoch).toISOString()},t)))}var _t=W(G(),1);function Zf({prompt:e}){let t=Vr(e.created_at_epoch);return _t.default.createElement("div",{className:"card prompt-card"},_t.default.createElement("div",{className:"card-header"},_t.default.createElement("div",{className:"card-header-left"},_t.default.createElement("span",{className:"card-type"},"Prompt"),_t.default.createElement("span",{className:"card-project"},e.project))),_t.default.createElement("div",{className:"card-content"},e.prompt_text),_t.default.createElement("div",{className:"card-meta"},_t.default.createElement("span",{className:"meta-date"},"#",e.id," \u2022 ",t)))}var Gt=W(G(),1);function Jf({targetRef:e}){let[t,r]=(0,Gt.useState)(!1);(0,Gt.useEffect)(()=>{let o=()=>{let i=e.current;i&&r(i.scrollTop>300)},l=e.current;if(l)return l.addEventListener("scroll",o),()=>l.removeEventListener("scroll",o)},[]);let n=()=>{let o=e.current;o&&o.scrollTo({top:0,behavior:"smooth"})};return t?Gt.default.createElement("button",{onClick:n,className:"scroll-to-top","aria-label":"Scroll to top"},Gt.default.createElement("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},Gt.default.createElement("polyline",{points:"18 15 12 9 6 15"}))):null}var qn={PAGINATION_PAGE_SIZE:50,LOAD_MORE_THRESHOLD:.1};function ed({observations:e,summaries:t,prompts:r,onLoadMore:n,isLoading:o,hasMore:l}){let i=(0,J.useRef)(null),s=(0,J.useRef)(null),u=(0,J.useRef)(n);(0,J.useEffect)(()=>{u.current=n},[n]),(0,J.useEffect)(()=>{let p=i.current;if(!p)return;let m=new IntersectionObserver(g=>{g[0].isIntersecting&&l&&!o&&u.current?.()},{threshold:qn.LOAD_MORE_THRESHOLD});return m.observe(p),()=>{p&&m.unobserve(p),m.disconnect()}},[l,o]);let a=(0,J.useMemo)(()=>[...e.map(m=>({...m,itemType:"observation"})),...t.map(m=>({...m,itemType:"summary"})),...r.map(m=>({...m,itemType:"prompt"}))].sort((m,g)=>g.created_at_epoch-m.created_at_epoch),[e,t,r]);return J.default.createElement("div",{className:"feed",ref:s},J.default.createElement(Jf,{targetRef:s}),J.default.createElement("div",{className:"feed-content"},a.map(p=>{let m=`${p.itemType}-${p.id}`;return p.itemType==="observation"?J.default.createElement(Yf,{key:m,observation:p}):p.itemType==="summary"?J.default.createElement(Qf,{key:m,summary:p}):J.default.createElement(Zf,{key:m,prompt:p})}),a.length===0&&!o&&J.default.createElement("div",{style:{textAlign:"center",padding:"40px",color:"#8b949e"}},"No items to display"),o&&J.default.createElement("div",{style:{textAlign:"center",padding:"20px",color:"#8b949e"}},J.default.createElement("div",{className:"spinner",style:{display:"inline-block",marginRight:"10px"}}),"Loading more..."),l&&!o&&a.length>0&&J.default.createElement("div",{ref:i,style:{height:"20px",margin:"10px 0"}}),!l&&a.length>0&&J.default.createElement("div",{style:{textAlign:"center",padding:"20px",color:"#8b949e",fontSize:"14px"}},"No more items to load")))}var v=W(G(),1);var oe=W(G(),1),Od=W(xd(),1),Yg=new Od.default({fg:"#dcd6cc",bg:"#252320",newline:!1,escapeXML:!0,stream:!1});function Ad({content:e,isLoading:t=!1,className:r=""}){let n=(0,oe.useRef)(null),o=(0,oe.useRef)(0),[l,i]=(0,oe.useState)(!0),s=(0,oe.useMemo)(()=>(n.current&&(o.current=n.current.scrollTop),e?Yg.toHtml(e):""),[e]);return(0,oe.useLayoutEffect)(()=>{n.current&&o.current>0&&(n.current.scrollTop=o.current)},[s]),oe.default.createElement("div",{className:r,style:{backgroundColor:"var(--color-bg-card)",border:"1px solid var(--color-border-primary)",borderRadius:"8px",overflow:"hidden",height:"100%",display:"flex",flexDirection:"column",boxShadow:"0 10px 40px rgba(0, 0, 0, 0.4), 0 4px 12px rgba(0, 0, 0, 0.3)"}},oe.default.createElement("div",{style:{padding:"12px",borderBottom:"1px solid var(--color-border-primary)",display:"flex",gap:"6px",alignItems:"center",backgroundColor:"var(--color-bg-header)"}},oe.default.createElement("div",{style:{width:"12px",height:"12px",borderRadius:"50%",backgroundColor:"#ff5f57"}}),oe.default.createElement("div",{style:{width:"12px",height:"12px",borderRadius:"50%",backgroundColor:"#ffbd2e"}}),oe.default.createElement("div",{style:{width:"12px",height:"12px",borderRadius:"50%",backgroundColor:"#28c840"}}),oe.default.createElement("button",{onClick:()=>i(!l),style:{marginLeft:"auto",padding:"4px 8px",fontSize:"11px",fontWeight:500,color:l?"var(--color-text-secondary)":"var(--color-accent-primary)",backgroundColor:"transparent",border:"1px solid",borderColor:l?"var(--color-border-primary)":"var(--color-accent-primary)",borderRadius:"4px",cursor:"pointer",transition:"all 0.2s",whiteSpace:"nowrap"},onMouseEnter:a=>{a.currentTarget.style.borderColor="var(--color-accent-primary)",a.currentTarget.style.color="var(--color-accent-primary)"},onMouseLeave:a=>{a.currentTarget.style.borderColor=l?"var(--color-border-primary)":"var(--color-accent-primary)",a.currentTarget.style.color=l?"var(--color-text-secondary)":"var(--color-accent-primary)"},title:l?"Disable word wrap (scroll horizontally)":"Enable word wrap"},l?"\u2922 Wrap":"\u21C4 Scroll")),t?oe.default.createElement("div",{style:{padding:"16px",fontFamily:"var(--font-terminal)",fontSize:"12px",color:"var(--color-text-secondary)"}},"Loading preview..."):oe.default.createElement("div",{style:{position:"relative",flex:1,overflow:"hidden"}},oe.default.createElement("pre",{ref:n,style:{padding:"16px",margin:0,fontFamily:"var(--font-terminal)",fontSize:"12px",lineHeight:"1.6",overflow:"auto",color:"var(--color-text-primary)",backgroundColor:"var(--color-bg-card)",whiteSpace:l?"pre-wrap":"pre",wordBreak:l?"break-word":"normal",position:"absolute",inset:0},dangerouslySetInnerHTML:{__html:s}})))}var et=W(G(),1);function Pd(e){let[t,r]=(0,et.useState)(""),[n,o]=(0,et.useState)(!1),[l,i]=(0,et.useState)(null),[s,u]=(0,et.useState)([]),[a,p]=(0,et.useState)(null);(0,et.useEffect)(()=>{async function g(){try{let E=await(await fetch("/api/projects")).json();E.projects&&E.projects.length>0&&(u(E.projects),p(E.projects[0]))}catch(S){console.error("Failed to fetch projects:",S)}}g()},[]);let m=(0,et.useCallback)(async()=>{if(!a){r("No project selected");return}o(!0),i(null);let g=new URLSearchParams({project:a}),S=await fetch(`/api/context/preview?${g}`),E=await S.text();S.ok?r(E):i("Failed to load preview"),o(!1)},[a]);return(0,et.useEffect)(()=>{let g=setTimeout(()=>{m()},300);return()=>clearTimeout(g)},[e,m]),{preview:t,isLoading:n,error:l,refresh:m,projects:s,selectedProject:a,setSelectedProject:p}}function kl({title:e,description:t,children:r,defaultOpen:n=!0}){let[o,l]=(0,v.useState)(n);return v.default.createElement("div",{className:`settings-section-collapsible ${o?"open":""}`},v.default.createElement("button",{className:"section-header-btn",onClick:()=>l(!o),type:"button"},v.default.createElement("div",{className:"section-header-content"},v.default.createElement("span",{className:"section-title"},e),t&&v.default.createElement("span",{className:"section-description"},t)),v.default.createElement("svg",{className:`chevron-icon ${o?"rotated":""}`,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2"},v.default.createElement("polyline",{points:"6 9 12 15 18 9"}))),o&&v.default.createElement("div",{className:"section-content"},r))}function Dd({label:e,options:t,selectedValues:r,onToggle:n,onSelectAll:o,onSelectNone:l}){let i=t.every(u=>r.includes(u)),s=t.every(u=>!r.includes(u));return v.default.createElement("div",{className:"chip-group"},v.default.createElement("div",{className:"chip-group-header"},v.default.createElement("span",{className:"chip-group-label"},e),v.default.createElement("div",{className:"chip-group-actions"},v.default.createElement("button",{type:"button",className:`chip-action ${i?"active":""}`,onClick:o},"All"),v.default.createElement("button",{type:"button",className:`chip-action ${s?"active":""}`,onClick:l},"None"))),v.default.createElement("div",{className:"chips-container"},t.map(u=>v.default.createElement("button",{key:u,type:"button",className:`chip ${r.includes(u)?"selected":""}`,onClick:()=>n(u)},u))))}function Fe({label:e,tooltip:t,children:r}){return v.default.createElement("div",{className:"form-field"},v.default.createElement("label",{className:"form-field-label"},e,t&&v.default.createElement("span",{className:"tooltip-trigger",title:t},v.default.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2"},v.default.createElement("circle",{cx:"12",cy:"12",r:"10"}),v.default.createElement("path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"}),v.default.createElement("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})))),r)}function br({id:e,label:t,description:r,checked:n,onChange:o,disabled:l}){return v.default.createElement("div",{className:"toggle-row"},v.default.createElement("div",{className:"toggle-info"},v.default.createElement("label",{htmlFor:e,className:"toggle-label"},t),r&&v.default.createElement("span",{className:"toggle-description"},r)),v.default.createElement("button",{type:"button",id:e,role:"switch","aria-checked":n,className:`toggle-switch ${n?"on":""} ${l?"disabled":""}`,onClick:()=>!l&&o(!n),disabled:l},v.default.createElement("span",{className:"toggle-knob"})))}function Id({isOpen:e,onClose:t,settings:r,onSave:n,isSaving:o,saveStatus:l}){let[i,s]=(0,v.useState)(r);(0,v.useEffect)(()=>{s(r)},[r]);let{preview:u,isLoading:a,error:p,projects:m,selectedProject:g,setSelectedProject:S}=Pd(i),E=(0,v.useCallback)((h,N)=>{let M={...i,[h]:N};s(M)},[i]),T=(0,v.useCallback)(()=>{n(i)},[i,n]),x=(0,v.useCallback)(h=>{let M=i[h]==="true"?"false":"true";E(h,M)},[i,E]),d=(0,v.useCallback)((h,N)=>{let M=i[h]||"",U=M?M.split(","):[],O=U.includes(N)?U.filter(pe=>pe!==N):[...U,N];E(h,O.join(","))},[i,E]),c=(0,v.useCallback)(h=>{let N=i[h]||"";return N?N.split(","):[]},[i]),f=(0,v.useCallback)((h,N)=>{E(h,N.join(","))},[E]);if((0,v.useEffect)(()=>{let h=N=>{N.key==="Escape"&&t()};if(e)return window.addEventListener("keydown",h),()=>window.removeEventListener("keydown",h)},[e,t]),!e)return null;let y=["bugfix","feature","refactor","discovery","decision","change"],w=["how-it-works","why-it-exists","what-changed","problem-solution","gotcha","pattern","trade-off"];return v.default.createElement("div",{className:"modal-backdrop",onClick:t},v.default.createElement("div",{className:"context-settings-modal",onClick:h=>h.stopPropagation()},v.default.createElement("div",{className:"modal-header"},v.default.createElement("h2",null,"Settings"),v.default.createElement("div",{className:"header-controls"},v.default.createElement("label",{className:"preview-selector"},"Preview for:",v.default.createElement("select",{value:g||"",onChange:h=>S(h.target.value)},m.map(h=>v.default.createElement("option",{key:h,value:h},h)))),v.default.createElement("button",{onClick:t,className:"modal-close-btn",title:"Close (Esc)"},v.default.createElement("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2"},v.default.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),v.default.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"}))))),v.default.createElement("div",{className:"modal-body"},v.default.createElement("div",{className:"preview-column"},v.default.createElement("div",{className:"preview-content"},p?v.default.createElement("div",{style:{color:"#ff6b6b"}},"Error loading preview: ",p):v.default.createElement(Ad,{content:u,isLoading:a}))),v.default.createElement("div",{className:"settings-column"},v.default.createElement(kl,{title:"Loading",description:"How many observations to inject"},v.default.createElement(Fe,{label:"Observations",tooltip:"Number of recent observations to include in context (1-200)"},v.default.createElement("input",{type:"number",min:"1",max:"200",value:i.CLAUDE_MEM_CONTEXT_OBSERVATIONS||"50",onChange:h=>E("CLAUDE_MEM_CONTEXT_OBSERVATIONS",h.target.value)})),v.default.createElement(Fe,{label:"Sessions",tooltip:"Number of recent sessions to pull observations from (1-50)"},v.default.createElement("input",{type:"number",min:"1",max:"50",value:i.CLAUDE_MEM_CONTEXT_SESSION_COUNT||"10",onChange:h=>E("CLAUDE_MEM_CONTEXT_SESSION_COUNT",h.target.value)}))),v.default.createElement(kl,{title:"Filters",description:"Which observation types to include"},v.default.createElement(Dd,{label:"Type",options:y,selectedValues:c("CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES"),onToggle:h=>d("CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES",h),onSelectAll:()=>f("CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES",y),onSelectNone:()=>f("CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES",[])}),v.default.createElement(Dd,{label:"Concept",options:w,selectedValues:c("CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS"),onToggle:h=>d("CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS",h),onSelectAll:()=>f("CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS",w),onSelectNone:()=>f("CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS",[])})),v.default.createElement(kl,{title:"Display",description:"What to show in context tables"},v.default.createElement("div",{className:"display-subsection"},v.default.createElement("span",{className:"subsection-label"},"Full Observations"),v.default.createElement(Fe,{label:"Count",tooltip:"How many observations show expanded details (0-20)"},v.default.createElement("input",{type:"number",min:"0",max:"20",value:i.CLAUDE_MEM_CONTEXT_FULL_COUNT||"5",onChange:h=>E("CLAUDE_MEM_CONTEXT_FULL_COUNT",h.target.value)})),v.default.createElement(Fe,{label:"Field",tooltip:"Which field to expand for full observations"},v.default.createElement("select",{value:i.CLAUDE_MEM_CONTEXT_FULL_FIELD||"narrative",onChange:h=>E("CLAUDE_MEM_CONTEXT_FULL_FIELD",h.target.value)},v.default.createElement("option",{value:"narrative"},"Narrative"),v.default.createElement("option",{value:"facts"},"Facts")))),v.default.createElement("div",{className:"display-subsection"},v.default.createElement("span",{className:"subsection-label"},"Token Economics"),v.default.createElement("div",{className:"toggle-group"},v.default.createElement(br,{id:"show-read-tokens",label:"Read cost",description:"Tokens to read this observation",checked:i.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS==="true",onChange:()=>x("CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS")}),v.default.createElement(br,{id:"show-work-tokens",label:"Work investment",description:"Tokens spent creating this observation",checked:i.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS==="true",onChange:()=>x("CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS")}),v.default.createElement(br,{id:"show-savings-amount",label:"Savings",description:"Total tokens saved by reusing context",checked:i.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT==="true",onChange:()=>x("CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT")})))),v.default.createElement(kl,{title:"Advanced",description:"AI provider and model selection",defaultOpen:!1},v.default.createElement(Fe,{label:"AI Provider",tooltip:"Choose between Claude (via Agent SDK) or Gemini (via REST API)"},v.default.createElement("select",{value:i.CLAUDE_MEM_PROVIDER||"claude",onChange:h=>E("CLAUDE_MEM_PROVIDER",h.target.value)},v.default.createElement("option",{value:"claude"},"Claude (uses your Claude account)"),v.default.createElement("option",{value:"gemini"},"Gemini (uses API key)"),v.default.createElement("option",{value:"openrouter"},"OpenRouter (multi-model)"))),i.CLAUDE_MEM_PROVIDER==="claude"&&v.default.createElement(Fe,{label:"Claude Model",tooltip:"Claude model used for generating observations"},v.default.createElement("select",{value:i.CLAUDE_MEM_MODEL||"haiku",onChange:h=>E("CLAUDE_MEM_MODEL",h.target.value)},v.default.createElement("option",{value:"haiku"},"haiku (fastest)"),v.default.createElement("option",{value:"sonnet"},"sonnet (balanced)"),v.default.createElement("option",{value:"opus"},"opus (highest quality)"))),i.CLAUDE_MEM_PROVIDER==="gemini"&&v.default.createElement(v.default.Fragment,null,v.default.createElement(Fe,{label:"Gemini API Key",tooltip:"Your Google AI Studio API key (or set GEMINI_API_KEY env var)"},v.default.createElement("input",{type:"password",value:i.CLAUDE_MEM_GEMINI_API_KEY||"",onChange:h=>E("CLAUDE_MEM_GEMINI_API_KEY",h.target.value),placeholder:"Enter Gemini API key..."})),v.default.createElement(Fe,{label:"Gemini Model",tooltip:"Gemini model used for generating observations"},v.default.createElement("select",{value:i.CLAUDE_MEM_GEMINI_MODEL||"gemini-2.5-flash-lite",onChange:h=>E("CLAUDE_MEM_GEMINI_MODEL",h.target.value)},v.default.createElement("option",{value:"gemini-2.5-flash-lite"},"gemini-2.5-flash-lite (10 RPM free)"),v.default.createElement("option",{value:"gemini-2.5-flash"},"gemini-2.5-flash (5 RPM free)"),v.default.createElement("option",{value:"gemini-3-flash"},"gemini-3-flash (5 RPM free)"))),v.default.createElement("div",{className:"toggle-group",style:{marginTop:"8px"}},v.default.createElement(br,{id:"gemini-rate-limiting",label:"Rate Limiting",description:"Enable for free tier (10-30 RPM). Disable if you have billing set up (1000+ RPM).",checked:i.CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED==="true",onChange:h=>E("CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED",h?"true":"false")}))),i.CLAUDE_MEM_PROVIDER==="openrouter"&&v.default.createElement(v.default.Fragment,null,v.default.createElement(Fe,{label:"OpenRouter API Key",tooltip:"Your OpenRouter API key from openrouter.ai (or set OPENROUTER_API_KEY env var)"},v.default.createElement("input",{type:"password",value:i.CLAUDE_MEM_OPENROUTER_API_KEY||"",onChange:h=>E("CLAUDE_MEM_OPENROUTER_API_KEY",h.target.value),placeholder:"Enter OpenRouter API key..."})),v.default.createElement(Fe,{label:"OpenRouter Model",tooltip:"Model identifier from OpenRouter (e.g., anthropic/claude-3.5-sonnet, google/gemini-2.0-flash-thinking-exp)"},v.default.createElement("input",{type:"text",value:i.CLAUDE_MEM_OPENROUTER_MODEL||"xiaomi/mimo-v2-flash:free",onChange:h=>E("CLAUDE_MEM_OPENROUTER_MODEL",h.target.value),placeholder:"e.g., xiaomi/mimo-v2-flash:free"})),v.default.createElement(Fe,{label:"Site URL (Optional)",tooltip:"Your site URL for OpenRouter analytics (optional)"},v.default.createElement("input",{type:"text",value:i.CLAUDE_MEM_OPENROUTER_SITE_URL||"",onChange:h=>E("CLAUDE_MEM_OPENROUTER_SITE_URL",h.target.value),placeholder:"https://yoursite.com"})),v.default.createElement(Fe,{label:"App Name (Optional)",tooltip:"Your app name for OpenRouter analytics (optional)"},v.default.createElement("input",{type:"text",value:i.CLAUDE_MEM_OPENROUTER_APP_NAME||"claude-mem",onChange:h=>E("CLAUDE_MEM_OPENROUTER_APP_NAME",h.target.value),placeholder:"claude-mem"}))),v.default.createElement(Fe,{label:"Worker Port",tooltip:"Port for the background worker service"},v.default.createElement("input",{type:"number",min:"1024",max:"65535",value:i.CLAUDE_MEM_WORKER_PORT||"37777",onChange:h=>E("CLAUDE_MEM_WORKER_PORT",h.target.value)})),v.default.createElement("div",{className:"toggle-group",style:{marginTop:"12px"}},v.default.createElement(br,{id:"show-last-summary",label:"Include last summary",description:"Add previous session's summary to context",checked:i.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY==="true",onChange:()=>x("CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY")}),v.default.createElement(br,{id:"show-last-message",label:"Include last message",description:"Add previous session's final message",checked:i.CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE==="true",onChange:()=>x("CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE")}))))),v.default.createElement("div",{className:"modal-footer"},v.default.createElement("div",{className:"save-status"},l&&v.default.createElement("span",{className:l.includes("\u2713")?"success":l.includes("\u2717")?"error":""},l)),v.default.createElement("button",{className:"save-btn",onClick:T,disabled:o},o?"Saving...":"Save"))))}var k=W(G(),1),Vn=[{key:"DEBUG",label:"Debug",icon:"\u{1F50D}",color:"#8b8b8b"},{key:"INFO",label:"Info",icon:"\u2139\uFE0F",color:"#58a6ff"},{key:"WARN",label:"Warn",icon:"\u26A0\uFE0F",color:"#d29922"},{key:"ERROR",label:"Error",icon:"\u274C",color:"#f85149"}],bn=[{key:"HOOK",label:"Hook",icon:"\u{1FA9D}",color:"#a371f7"},{key:"WORKER",label:"Worker",icon:"\u2699\uFE0F",color:"#58a6ff"},{key:"SDK",label:"SDK",icon:"\u{1F4E6}",color:"#3fb950"},{key:"PARSER",label:"Parser",icon:"\u{1F4C4}",color:"#79c0ff"},{key:"DB",label:"DB",icon:"\u{1F5C4}\uFE0F",color:"#f0883e"},{key:"SYSTEM",label:"System",icon:"\u{1F4BB}",color:"#8b949e"},{key:"HTTP",label:"HTTP",icon:"\u{1F310}",color:"#39d353"},{key:"SESSION",label:"Session",icon:"\u{1F4CB}",color:"#db61a2"},{key:"CHROMA",label:"Chroma",icon:"\u{1F52E}",color:"#a855f7"}];function Qg(e){let t=/^\[([^\]]+)\]\s+\[(\w+)\s*\]\s+\[(\w+)\s*\]\s+(?:\[([^\]]+)\]\s+)?(.*)$/,r=e.match(t);if(!r)return{raw:e};let[,n,o,l,i,s]=r,u;return s.startsWith("\u2192")?u="dataIn":s.startsWith("\u2190")?u="dataOut":s.startsWith("\u2713")?u="success":s.startsWith("\u2717")?u="failure":s.startsWith("\u23F1")?u="timing":s.includes("[HAPPY-PATH]")&&(u="happyPath"),{raw:e,timestamp:n,level:o?.trim(),component:l?.trim(),correlationId:i||void 0,message:s,isSpecial:u}}function Ud({isOpen:e,onClose:t}){let[r,n]=(0,k.useState)(""),[o,l]=(0,k.useState)(!1),[i,s]=(0,k.useState)(null),[u,a]=(0,k.useState)(!1),[p,m]=(0,k.useState)(350),[g,S]=(0,k.useState)(!1),E=(0,k.useRef)(0),T=(0,k.useRef)(0),x=(0,k.useRef)(null),d=(0,k.useRef)(!0),[c,f]=(0,k.useState)(new Set(["DEBUG","INFO","WARN","ERROR"])),[y,w]=(0,k.useState)(new Set(["HOOK","WORKER","SDK","PARSER","DB","SYSTEM","HTTP","SESSION","CHROMA"])),[h,N]=(0,k.useState)(!1),M=(0,k.useMemo)(()=>r?r.split(` -`).map(Qg):[],[r]),U=(0,k.useMemo)(()=>M.filter(C=>h?C.raw.includes("[ALIGNMENT]"):!C.level||!C.component?!0:c.has(C.level)&&y.has(C.component)),[M,c,y,h]),O=(0,k.useCallback)(()=>{if(!x.current)return!0;let{scrollTop:C,scrollHeight:b,clientHeight:ue}=x.current;return b-C-ue<50},[]),pe=(0,k.useCallback)(()=>{x.current&&d.current&&(x.current.scrollTop=x.current.scrollHeight)},[]),ee=(0,k.useCallback)(async()=>{d.current=O(),l(!0),s(null);try{let C=await fetch("/api/logs");if(!C.ok)throw new Error(`Failed to fetch logs: ${C.statusText}`);let b=await C.json();n(b.logs||"")}catch(C){s(C instanceof Error?C.message:"Unknown error")}finally{l(!1)}},[O]);(0,k.useEffect)(()=>{pe()},[r,pe]);let xl=(0,k.useCallback)(async()=>{if(confirm("Are you sure you want to clear all logs?")){l(!0),s(null);try{let C=await fetch("/api/logs/clear",{method:"POST"});if(!C.ok)throw new Error(`Failed to clear logs: ${C.statusText}`);n("")}catch(C){s(C instanceof Error?C.message:"Unknown error")}finally{l(!1)}}},[]),Ol=(0,k.useCallback)(C=>{C.preventDefault(),S(!0),E.current=C.clientY,T.current=p},[p]);(0,k.useEffect)(()=>{if(!g)return;let C=ue=>{let Re=E.current-ue.clientY,Yt=Math.min(Math.max(150,T.current+Re),window.innerHeight-100);m(Yt)},b=()=>{S(!1)};return document.addEventListener("mousemove",C),document.addEventListener("mouseup",b),()=>{document.removeEventListener("mousemove",C),document.removeEventListener("mouseup",b)}},[g]),(0,k.useEffect)(()=>{e&&(d.current=!0,ee())},[e,ee]),(0,k.useEffect)(()=>{if(!e||!u)return;let C=setInterval(ee,2e3);return()=>clearInterval(C)},[e,u,ee]);let Al=(0,k.useCallback)(C=>{f(b=>{let ue=new Set(b);return ue.has(C)?ue.delete(C):ue.add(C),ue})},[]),Wn=(0,k.useCallback)(C=>{w(b=>{let ue=new Set(b);return ue.has(C)?ue.delete(C):ue.add(C),ue})},[]),Gn=(0,k.useCallback)(C=>{f(C?new Set(["DEBUG","INFO","WARN","ERROR"]):new Set)},[]),Xn=(0,k.useCallback)(C=>{w(C?new Set(["HOOK","WORKER","SDK","PARSER","DB","SYSTEM","HTTP","SESSION","CHROMA"]):new Set)},[]);if(!e)return null;let rt=C=>{let b=Vn.find(Dl=>Dl.key===C.level),ue=bn.find(Dl=>Dl.key===C.component),Re="var(--color-text-primary)",Yt="normal",Pl="transparent";return C.level==="ERROR"?(Re="#f85149",Pl="rgba(248, 81, 73, 0.1)"):C.level==="WARN"?(Re="#d29922",Pl="rgba(210, 153, 34, 0.05)"):C.isSpecial==="success"?Re="#3fb950":C.isSpecial==="failure"?Re="#f85149":C.isSpecial==="happyPath"?Re="#d29922":b&&(Re=b.color),{color:Re,fontWeight:Yt,backgroundColor:Pl,padding:"1px 0",borderRadius:"2px"}},$n=(C,b)=>{if(!C.timestamp)return k.default.createElement("div",{key:b,className:"log-line log-line-raw"},C.raw);let ue=Vn.find(Yt=>Yt.key===C.level),Re=bn.find(Yt=>Yt.key===C.component);return k.default.createElement("div",{key:b,className:"log-line",style:rt(C)},k.default.createElement("span",{className:"log-timestamp"},"[",C.timestamp,"]")," ",k.default.createElement("span",{className:"log-level",style:{color:ue?.color},title:C.level},"[",ue?.icon||""," ",C.level?.padEnd(5),"]")," ",k.default.createElement("span",{className:"log-component",style:{color:Re?.color},title:C.component},"[",Re?.icon||""," ",C.component?.padEnd(7),"]")," ",C.correlationId&&k.default.createElement(k.default.Fragment,null,k.default.createElement("span",{className:"log-correlation"},"[",C.correlationId,"]")," "),k.default.createElement("span",{className:"log-message"},C.message))};return k.default.createElement("div",{className:"console-drawer",style:{height:`${p}px`}},k.default.createElement("div",{className:"console-resize-handle",onMouseDown:Ol},k.default.createElement("div",{className:"console-resize-bar"})),k.default.createElement("div",{className:"console-header"},k.default.createElement("div",{className:"console-tabs"},k.default.createElement("div",{className:"console-tab active"},"Console")),k.default.createElement("div",{className:"console-controls"},k.default.createElement("label",{className:"console-auto-refresh"},k.default.createElement("input",{type:"checkbox",checked:u,onChange:C=>a(C.target.checked)}),"Auto-refresh"),k.default.createElement("button",{className:"console-control-btn",onClick:ee,disabled:o,title:"Refresh logs"},"\u21BB"),k.default.createElement("button",{className:"console-control-btn",onClick:()=>{d.current=!0,pe()},title:"Scroll to bottom"},"\u2B07"),k.default.createElement("button",{className:"console-control-btn console-clear-btn",onClick:xl,disabled:o,title:"Clear logs"},"\u{1F5D1}"),k.default.createElement("button",{className:"console-control-btn",onClick:t,title:"Close console"},"\u2715"))),k.default.createElement("div",{className:"console-filters"},k.default.createElement("div",{className:"console-filter-section"},k.default.createElement("span",{className:"console-filter-label"},"Quick:"),k.default.createElement("div",{className:"console-filter-chips"},k.default.createElement("button",{className:`console-filter-chip ${h?"active":""}`,onClick:()=>N(!h),style:{"--chip-color":"#f0883e"},title:"Show only session alignment logs"},"\u{1F517} Alignment"))),k.default.createElement("div",{className:"console-filter-section"},k.default.createElement("span",{className:"console-filter-label"},"Levels:"),k.default.createElement("div",{className:"console-filter-chips"},Vn.map(C=>k.default.createElement("button",{key:C.key,className:`console-filter-chip ${c.has(C.key)?"active":""}`,onClick:()=>Al(C.key),style:{"--chip-color":C.color},title:C.label},C.icon," ",C.label)),k.default.createElement("button",{className:"console-filter-action",onClick:()=>Gn(c.size===0),title:c.size===Vn.length?"Select none":"Select all"},c.size===Vn.length?"\u25CB":"\u25CF"))),k.default.createElement("div",{className:"console-filter-section"},k.default.createElement("span",{className:"console-filter-label"},"Components:"),k.default.createElement("div",{className:"console-filter-chips"},bn.map(C=>k.default.createElement("button",{key:C.key,className:`console-filter-chip ${y.has(C.key)?"active":""}`,onClick:()=>Wn(C.key),style:{"--chip-color":C.color},title:C.label},C.icon," ",C.label)),k.default.createElement("button",{className:"console-filter-action",onClick:()=>Xn(y.size===0),title:y.size===bn.length?"Select none":"Select all"},y.size===bn.length?"\u25CB":"\u25CF")))),i&&k.default.createElement("div",{className:"console-error"},"\u26A0 ",i),k.default.createElement("div",{className:"console-content",ref:x},k.default.createElement("div",{className:"console-logs"},U.length===0?k.default.createElement("div",{className:"log-line log-line-empty"},"No logs available"):U.map((C,b)=>$n(C,b)))))}var ze=W(G(),1);var tt={OBSERVATIONS:"/api/observations",SUMMARIES:"/api/summaries",PROMPTS:"/api/prompts",SETTINGS:"/api/settings",STATS:"/api/stats",PROCESSING_STATUS:"/api/processing-status",STREAM:"/stream"};var Nl={SSE_RECONNECT_DELAY_MS:3e3,STATS_REFRESH_INTERVAL_MS:1e4,SAVE_STATUS_DISPLAY_DURATION_MS:3e3};function Fd(){let[e,t]=(0,ze.useState)([]),[r,n]=(0,ze.useState)([]),[o,l]=(0,ze.useState)([]),[i,s]=(0,ze.useState)([]),[u,a]=(0,ze.useState)(!1),[p,m]=(0,ze.useState)(!1),[g,S]=(0,ze.useState)(0),E=(0,ze.useRef)(null),T=(0,ze.useRef)();return(0,ze.useEffect)(()=>{let x=()=>{E.current&&E.current.close();let d=new EventSource(tt.STREAM);E.current=d,d.onopen=()=>{console.log("[SSE] Connected"),a(!0),T.current&&clearTimeout(T.current)},d.onerror=c=>{console.error("[SSE] Connection error:",c),a(!1),d.close(),T.current=setTimeout(()=>{T.current=void 0,console.log("[SSE] Attempting to reconnect..."),x()},Nl.SSE_RECONNECT_DELAY_MS)},d.onmessage=c=>{let f=JSON.parse(c.data);switch(f.type){case"initial_load":console.log("[SSE] Initial load:",{projects:f.projects?.length||0}),s(f.projects||[]);break;case"new_observation":f.observation&&(console.log("[SSE] New observation:",f.observation.id),t(y=>[f.observation,...y]));break;case"new_summary":if(f.summary){let y=f.summary;console.log("[SSE] New summary:",y.id),n(w=>[y,...w])}break;case"new_prompt":if(f.prompt){let y=f.prompt;console.log("[SSE] New prompt:",y.id),l(w=>[y,...w])}break;case"processing_status":typeof f.isProcessing=="boolean"&&(console.log("[SSE] Processing status:",f.isProcessing,"Queue depth:",f.queueDepth),m(f.isProcessing),S(f.queueDepth||0));break}}};return x(),()=>{E.current&&E.current.close(),T.current&&clearTimeout(T.current)}},[]),{observations:e,summaries:r,prompts:o,projects:i,isProcessing:p,queueDepth:g,isConnected:u}}var Wr=W(G(),1);var V={CLAUDE_MEM_MODEL:"claude-sonnet-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_PROVIDER:"claude",CLAUDE_MEM_GEMINI_API_KEY:"",CLAUDE_MEM_GEMINI_MODEL:"gemini-2.5-flash-lite",CLAUDE_MEM_OPENROUTER_API_KEY:"",CLAUDE_MEM_OPENROUTER_MODEL:"xiaomi/mimo-v2-flash:free",CLAUDE_MEM_OPENROUTER_SITE_URL:"",CLAUDE_MEM_OPENROUTER_APP_NAME:"claude-mem",CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED:"true",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:"bugfix,feature,refactor,discovery,decision,change",CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:"how-it-works,why-it-exists,what-changed,problem-solution,gotcha,pattern,trade-off",CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false"};function zd(){let[e,t]=(0,Wr.useState)(V),[r,n]=(0,Wr.useState)(!1),[o,l]=(0,Wr.useState)("");return(0,Wr.useEffect)(()=>{fetch(tt.SETTINGS).then(s=>s.json()).then(s=>{t({CLAUDE_MEM_MODEL:s.CLAUDE_MEM_MODEL||V.CLAUDE_MEM_MODEL,CLAUDE_MEM_CONTEXT_OBSERVATIONS:s.CLAUDE_MEM_CONTEXT_OBSERVATIONS||V.CLAUDE_MEM_CONTEXT_OBSERVATIONS,CLAUDE_MEM_WORKER_PORT:s.CLAUDE_MEM_WORKER_PORT||V.CLAUDE_MEM_WORKER_PORT,CLAUDE_MEM_WORKER_HOST:s.CLAUDE_MEM_WORKER_HOST||V.CLAUDE_MEM_WORKER_HOST,CLAUDE_MEM_PROVIDER:s.CLAUDE_MEM_PROVIDER||V.CLAUDE_MEM_PROVIDER,CLAUDE_MEM_GEMINI_API_KEY:s.CLAUDE_MEM_GEMINI_API_KEY||V.CLAUDE_MEM_GEMINI_API_KEY,CLAUDE_MEM_GEMINI_MODEL:s.CLAUDE_MEM_GEMINI_MODEL||V.CLAUDE_MEM_GEMINI_MODEL,CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED:s.CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED||V.CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED,CLAUDE_MEM_OPENROUTER_API_KEY:s.CLAUDE_MEM_OPENROUTER_API_KEY||V.CLAUDE_MEM_OPENROUTER_API_KEY,CLAUDE_MEM_OPENROUTER_MODEL:s.CLAUDE_MEM_OPENROUTER_MODEL||V.CLAUDE_MEM_OPENROUTER_MODEL,CLAUDE_MEM_OPENROUTER_SITE_URL:s.CLAUDE_MEM_OPENROUTER_SITE_URL||V.CLAUDE_MEM_OPENROUTER_SITE_URL,CLAUDE_MEM_OPENROUTER_APP_NAME:s.CLAUDE_MEM_OPENROUTER_APP_NAME||V.CLAUDE_MEM_OPENROUTER_APP_NAME,CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:s.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS||V.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS,CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:s.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS||V.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS,CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:s.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT||V.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT,CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:s.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT||V.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT,CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:s.CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES||V.CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:s.CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS||V.CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS,CLAUDE_MEM_CONTEXT_FULL_COUNT:s.CLAUDE_MEM_CONTEXT_FULL_COUNT||V.CLAUDE_MEM_CONTEXT_FULL_COUNT,CLAUDE_MEM_CONTEXT_FULL_FIELD:s.CLAUDE_MEM_CONTEXT_FULL_FIELD||V.CLAUDE_MEM_CONTEXT_FULL_FIELD,CLAUDE_MEM_CONTEXT_SESSION_COUNT:s.CLAUDE_MEM_CONTEXT_SESSION_COUNT||V.CLAUDE_MEM_CONTEXT_SESSION_COUNT,CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:s.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY||V.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY,CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:s.CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE||V.CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE})}).catch(s=>{console.error("Failed to load settings:",s)})},[]),{settings:e,saveSettings:async s=>{n(!0),l("Saving...");let a=await(await fetch(tt.SETTINGS,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)})).json();a.success?(t(s),l("\u2713 Saved"),setTimeout(()=>l(""),Nl.SAVE_STATUS_DISPLAY_DURATION_MS)):l(`\u2717 Error: ${a.error}`),n(!1)},isSaving:r,saveStatus:o}}var Gr=W(G(),1);function Rd(){let[e,t]=(0,Gr.useState)({}),r=(0,Gr.useCallback)(async()=>{try{let o=await(await fetch(tt.STATS)).json();t(o)}catch(n){console.error("Failed to load stats:",n)}},[]);return(0,Gr.useEffect)(()=>{r()},[r]),{stats:e,refreshStats:r}}var Kt=W(G(),1);function lu(e,t,r){let[n,o]=(0,Kt.useState)({isLoading:!1,hasMore:!0}),l=(0,Kt.useRef)(0),i=(0,Kt.useRef)(r),s=(0,Kt.useRef)(n),u=(0,Kt.useCallback)(async()=>{let a=i.current!==r;if(a){l.current=0,i.current=r;let S={isLoading:!1,hasMore:!0};o(S),s.current=S}if(!a&&(s.current.isLoading||!s.current.hasMore))return[];o(S=>({...S,isLoading:!0}));let p=new URLSearchParams({offset:l.current.toString(),limit:qn.PAGINATION_PAGE_SIZE.toString()});r&&p.append("project",r);let m=await fetch(`${e}?${p}`);if(!m.ok)throw new Error(`Failed to load ${t}: ${m.statusText}`);let g=await m.json();return o(S=>({...S,isLoading:!1,hasMore:g.hasMore})),l.current+=qn.PAGINATION_PAGE_SIZE,g.items},[r,e,t]);return{...n,loadMore:u}}function Hd(e){let t=lu(tt.OBSERVATIONS,"observations",e),r=lu(tt.SUMMARIES,"summaries",e),n=lu(tt.PROMPTS,"prompts",e);return{observations:t,summaries:r,prompts:n}}var Xr=W(G(),1),Bd="claude-mem-theme";function Zg(){return typeof window>"u"||window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function jd(){try{let e=localStorage.getItem(Bd);if(e==="system"||e==="light"||e==="dark")return e}catch(e){console.warn("Failed to read theme preference from localStorage:",e)}return"system"}function qd(e){return e==="system"?Zg():e}function Vd(){let[e,t]=(0,Xr.useState)(jd),[r,n]=(0,Xr.useState)(()=>qd(jd()));return(0,Xr.useEffect)(()=>{let l=qd(e);n(l),document.documentElement.setAttribute("data-theme",l)},[e]),(0,Xr.useEffect)(()=>{if(e!=="system")return;let l=window.matchMedia("(prefers-color-scheme: dark)"),i=s=>{let u=s.matches?"dark":"light";n(u),document.documentElement.setAttribute("data-theme",u)};return l.addEventListener("change",i),()=>l.removeEventListener("change",i)},[e]),{preference:e,resolvedTheme:r,setThemePreference:l=>{try{localStorage.setItem(Bd,l),t(l)}catch(i){console.warn("Failed to save theme preference to localStorage:",i),t(l)}}}}function Ll(e,t){let r=new Set;return[...e,...t].filter(n=>r.has(n.id)?!1:(r.add(n.id),!0))}function bd(){let[e,t]=(0,z.useState)(""),[r,n]=(0,z.useState)(!1),[o,l]=(0,z.useState)(!1),[i,s]=(0,z.useState)([]),[u,a]=(0,z.useState)([]),[p,m]=(0,z.useState)([]),{observations:g,summaries:S,prompts:E,projects:T,isProcessing:x,queueDepth:d,isConnected:c}=Fd(),{settings:f,saveSettings:y,isSaving:w,saveStatus:h}=zd(),{stats:N,refreshStats:M}=Rd(),{preference:U,resolvedTheme:O,setThemePreference:pe}=Vd(),ee=Hd(e),xl=(0,z.useMemo)(()=>e?i:Ll(g,i),[g,i,e]),Ol=(0,z.useMemo)(()=>e?u:Ll(S,u),[S,u,e]),Al=(0,z.useMemo)(()=>e?p:Ll(E,p),[E,p,e]),Wn=(0,z.useCallback)(()=>{n(rt=>!rt)},[]),Gn=(0,z.useCallback)(()=>{l(rt=>!rt)},[]),Xn=(0,z.useCallback)(async()=>{try{let[rt,$n,C]=await Promise.all([ee.observations.loadMore(),ee.summaries.loadMore(),ee.prompts.loadMore()]);rt.length>0&&s(b=>[...b,...rt]),$n.length>0&&a(b=>[...b,...$n]),C.length>0&&m(b=>[...b,...C])}catch(rt){console.error("Failed to load more data:",rt)}},[e,ee.observations,ee.summaries,ee.prompts]);return(0,z.useEffect)(()=>{s([]),a([]),m([]),Xn()},[e]),z.default.createElement(z.default.Fragment,null,z.default.createElement($f,{isConnected:c,projects:T,currentFilter:e,onFilterChange:t,isProcessing:x,queueDepth:d,themePreference:U,onThemeChange:pe,onContextPreviewToggle:Wn}),z.default.createElement(ed,{observations:xl,summaries:Ol,prompts:Al,onLoadMore:Xn,isLoading:ee.observations.isLoading||ee.summaries.isLoading||ee.prompts.isLoading,hasMore:ee.observations.hasMore||ee.summaries.hasMore||ee.prompts.hasMore}),z.default.createElement(Id,{isOpen:r,onClose:Wn,settings:f,onSave:y,isSaving:w,saveStatus:h}),z.default.createElement("button",{className:"console-toggle-btn",onClick:Gn,title:"Toggle Console"},z.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},z.default.createElement("polyline",{points:"4 17 10 11 4 5"}),z.default.createElement("line",{x1:"12",y1:"19",x2:"20",y2:"19"}))),z.default.createElement(Ud,{isOpen:o,onClose:Gn}))}var wt=W(G(),1),Ml=class extends wt.Component{constructor(t){super(t),this.state={hasError:!1,error:null,errorInfo:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,r){console.error("[ErrorBoundary] Caught error:",t,r),this.setState({error:t,errorInfo:r})}render(){return this.state.hasError?wt.default.createElement("div",{style:{padding:"20px",color:"#ff6b6b",backgroundColor:"#1a1a1a",minHeight:"100vh"}},wt.default.createElement("h1",{style:{fontSize:"24px",marginBottom:"10px"}},"Something went wrong"),wt.default.createElement("p",{style:{marginBottom:"10px",color:"#8b949e"}},"The application encountered an error. Please refresh the page to try again."),this.state.error&&wt.default.createElement("details",{style:{marginTop:"20px",color:"#8b949e"}},wt.default.createElement("summary",{style:{cursor:"pointer",marginBottom:"10px"}},"Error details"),wt.default.createElement("pre",{style:{backgroundColor:"#0d1117",padding:"10px",borderRadius:"6px",overflow:"auto"}},this.state.error.toString(),this.state.errorInfo&&` +`+l.stack}return{value:e,source:t,stack:o,digest:null}}function vs(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function Js(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var Gh=typeof WeakMap=="function"?WeakMap:Map;function Vd(e,t,n){n=zt(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Kl||(Kl=!0,ua=r),Js(e,t)},n}function Wd(e,t,n){n=zt(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var o=t.value;n.payload=function(){return r(o)},n.callback=function(){Js(e,t)}}var l=e.stateNode;return l!==null&&typeof l.componentDidCatch=="function"&&(n.callback=function(){Js(e,t),typeof r!="function"&&(sn===null?sn=new Set([this]):sn.add(this));var i=t.stack;this.componentDidCatch(t.value,{componentStack:i!==null?i:""})}),n}function tf(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Gh;var o=new Set;r.set(t,o)}else o=r.get(t),o===void 0&&(o=new Set,r.set(t,o));o.has(n)||(o.add(n),e=iv.bind(null,e,t,n),t.then(e,e))}function nf(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function rf(e,t,n,r,o){return(e.mode&1)===0?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=zt(-1,1),t.tag=2,ln(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=o,e)}var Xh=Vt.ReactCurrentOwner,je=!1;function Pe(e,t,n,r){t.child=e===null?Sd(t,null,n,r):wr(t,e.child,n,r)}function of(e,t,n,r,o){n=n.render;var l=t.ref;return yr(t,o),r=ja(e,t,n,r,l,o),n=Ba(),e!==null&&!je?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,qt(e,t,o)):(re&&n&&Ma(t),t.flags|=1,Pe(e,t,r,o),t.child)}function lf(e,t,n,r,o){if(e===null){var l=n.type;return typeof l=="function"&&!Za(l)&&l.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=l,Gd(e,t,l,r,o)):(e=Al(n.type,null,r,t,t.mode,o),e.ref=t.ref,e.return=t,t.child=e)}if(l=e.child,(e.lanes&o)===0){var i=l.memoizedProps;if(n=n.compare,n=n!==null?n:ho,n(i,r)&&e.ref===t.ref)return qt(e,t,o)}return t.flags|=1,e=un(l,r),e.ref=t.ref,e.return=t,t.child=e}function Gd(e,t,n,r,o){if(e!==null){var l=e.memoizedProps;if(ho(l,r)&&e.ref===t.ref)if(je=!1,t.pendingProps=r=l,(e.lanes&o)!==0)(e.flags&131072)!==0&&(je=!0);else return t.lanes=e.lanes,qt(e,t,o)}return ea(e,t,n,r,o)}function Xd(e,t,n){var r=t.pendingProps,o=r.children,l=e!==null?e.memoizedState:null;if(r.mode==="hidden")if((t.mode&1)===0)t.memoizedState={baseLanes:0,cachePool:null,transitions:null},K(pr,Ge),Ge|=n;else{if((n&1073741824)===0)return e=l!==null?l.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,K(pr,Ge),Ge|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=l!==null?l.baseLanes:n,K(pr,Ge),Ge|=r}else l!==null?(r=l.baseLanes|n,t.memoizedState=null):r=n,K(pr,Ge),Ge|=r;return Pe(e,t,o,n),t.child}function $d(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function ea(e,t,n,r,o){var l=qe(n)?Rn:Oe.current;return l=_r(t,l),yr(t,o),n=ja(e,t,n,r,l,o),r=Ba(),e!==null&&!je?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,qt(e,t,o)):(re&&r&&Ma(t),t.flags|=1,Pe(e,t,n,o),t.child)}function sf(e,t,n,r,o){if(qe(n)){var l=!0;zl(t)}else l=!1;if(yr(t,o),t.stateNode===null)Nl(e,t),qd(t,n,r),Zs(t,n,r,o),r=!0;else if(e===null){var i=t.stateNode,s=t.memoizedProps;i.props=s;var a=i.context,u=n.contextType;typeof u=="object"&&u!==null?u=it(u):(u=qe(n)?Rn:Oe.current,u=_r(t,u));var m=n.getDerivedStateFromProps,g=typeof m=="function"||typeof i.getSnapshotBeforeUpdate=="function";g||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(s!==r||a!==u)&&ef(t,i,r,u),Yt=!1;var h=t.memoizedState;i.state=h,Vl(t,r,i,o),a=t.memoizedState,s!==r||h!==a||Be.current||Yt?(typeof m=="function"&&(Qs(t,n,m,r),a=t.memoizedState),(s=Yt||Jc(t,n,s,r,h,a,u))?(g||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount()),typeof i.componentDidMount=="function"&&(t.flags|=4194308)):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=a),i.props=r,i.state=a,i.context=u,r=s):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,Td(e,t),s=t.memoizedProps,u=t.type===t.elementType?s:ft(t.type,s),i.props=u,g=t.pendingProps,h=i.context,a=n.contextType,typeof a=="object"&&a!==null?a=it(a):(a=qe(n)?Rn:Oe.current,a=_r(t,a));var T=n.getDerivedStateFromProps;(m=typeof T=="function"||typeof i.getSnapshotBeforeUpdate=="function")||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(s!==g||h!==a)&&ef(t,i,r,a),Yt=!1,h=t.memoizedState,i.state=h,Vl(t,r,i,o);var S=t.memoizedState;s!==g||h!==S||Be.current||Yt?(typeof T=="function"&&(Qs(t,n,T,r),S=t.memoizedState),(u=Yt||Jc(t,n,u,r,h,S,a)||!1)?(m||typeof i.UNSAFE_componentWillUpdate!="function"&&typeof i.componentWillUpdate!="function"||(typeof i.componentWillUpdate=="function"&&i.componentWillUpdate(r,S,a),typeof i.UNSAFE_componentWillUpdate=="function"&&i.UNSAFE_componentWillUpdate(r,S,a)),typeof i.componentDidUpdate=="function"&&(t.flags|=4),typeof i.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof i.componentDidUpdate!="function"||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=S),i.props=r,i.state=S,i.context=a,r=u):(typeof i.componentDidUpdate!="function"||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),r=!1)}return ta(e,t,n,r,l,o)}function ta(e,t,n,r,o,l){$d(e,t);var i=(t.flags&128)!==0;if(!r&&!i)return o&&Wc(t,n,!1),qt(e,t,l);r=t.stateNode,Xh.current=t;var s=i&&typeof n.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&i?(t.child=wr(t,e.child,null,l),t.child=wr(t,null,s,l)):Pe(e,t,s,l),t.memoizedState=r.state,o&&Wc(t,n,!0),t.child}function Kd(e){var t=e.stateNode;t.pendingContext?Vc(e,t.pendingContext,t.pendingContext!==t.context):t.context&&Vc(e,t.context,!1),Fa(e,t.containerInfo)}function af(e,t,n,r,o){return Tr(),xa(o),t.flags|=256,Pe(e,t,n,r),t.child}var na={dehydrated:null,treeContext:null,retryLane:0};function ra(e){return{baseLanes:e,cachePool:null,transitions:null}}function Yd(e,t,n){var r=t.pendingProps,o=oe.current,l=!1,i=(t.flags&128)!==0,s;if((s=i)||(s=e!==null&&e.memoizedState===null?!1:(o&2)!==0),s?(l=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(o|=1),K(oe,o&1),e===null)return Ks(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?((t.mode&1)===0?t.lanes=1:e.data==="$!"?t.lanes=8:t.lanes=1073741824,null):(i=r.children,e=r.fallback,l?(r=t.mode,l=t.child,i={mode:"hidden",children:i},(r&1)===0&&l!==null?(l.childLanes=0,l.pendingProps=i):l=ui(i,r,0,null),e=Un(e,r,n,null),l.return=t,e.return=t,l.sibling=e,t.child=l,t.child.memoizedState=ra(n),t.memoizedState=na,e):Wa(t,i));if(o=e.memoizedState,o!==null&&(s=o.dehydrated,s!==null))return $h(e,t,i,r,s,o,n);if(l){l=r.fallback,i=t.mode,o=e.child,s=o.sibling;var a={mode:"hidden",children:r.children};return(i&1)===0&&t.child!==o?(r=t.child,r.childLanes=0,r.pendingProps=a,t.deletions=null):(r=un(o,a),r.subtreeFlags=o.subtreeFlags&14680064),s!==null?l=un(s,l):(l=Un(l,i,n,null),l.flags|=2),l.return=t,r.return=t,r.sibling=l,t.child=r,r=l,l=t.child,i=e.child.memoizedState,i=i===null?ra(n):{baseLanes:i.baseLanes|n,cachePool:null,transitions:i.transitions},l.memoizedState=i,l.childLanes=e.childLanes&~n,t.memoizedState=na,r}return l=e.child,e=l.sibling,r=un(l,{mode:"visible",children:r.children}),(t.mode&1)===0&&(r.lanes=n),r.return=t,r.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=r,t.memoizedState=null,r}function Wa(e,t){return t=ui({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function hl(e,t,n,r){return r!==null&&xa(r),wr(t,e.child,null,n),e=Wa(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function $h(e,t,n,r,o,l,i){if(n)return t.flags&256?(t.flags&=-257,r=vs(Error(w(422))),hl(e,t,i,r)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(l=r.fallback,o=t.mode,r=ui({mode:"visible",children:r.children},o,0,null),l=Un(l,o,i,null),l.flags|=2,r.return=t,l.return=t,r.sibling=l,t.child=r,(t.mode&1)!==0&&wr(t,e.child,null,i),t.child.memoizedState=ra(i),t.memoizedState=na,l);if((t.mode&1)===0)return hl(e,t,i,null);if(o.data==="$!"){if(r=o.nextSibling&&o.nextSibling.dataset,r)var s=r.dgst;return r=s,l=Error(w(419)),r=vs(l,r,void 0),hl(e,t,i,r)}if(s=(i&e.childLanes)!==0,je||s){if(r=ve,r!==null){switch(i&-i){case 4:o=2;break;case 16:o=8;break;case 64: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:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:o=32;break;case 536870912:o=268435456;break;default:o=0}o=(o&(r.suspendedLanes|i))!==0?0:o,o!==0&&o!==l.retryLane&&(l.retryLane=o,Bt(e,o),gt(r,e,o,-1))}return Qa(),r=vs(Error(w(421))),hl(e,t,i,r)}return o.data==="$?"?(t.flags|=128,t.child=e.child,t=sv.bind(null,e),o._reactRetry=t,null):(e=l.treeContext,Xe=on(o.nextSibling),$e=t,re=!0,pt=null,e!==null&&(nt[rt++]=Ft,nt[rt++]=bt,nt[rt++]=Fn,Ft=e.id,bt=e.overflow,Fn=t),t=Wa(t,r.children),t.flags|=4096,t)}function uf(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Ys(e.return,t,n)}function ys(e,t,n,r,o){var l=e.memoizedState;l===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o}:(l.isBackwards=t,l.rendering=null,l.renderingStartTime=0,l.last=r,l.tail=n,l.tailMode=o)}function Qd(e,t,n){var r=t.pendingProps,o=r.revealOrder,l=r.tail;if(Pe(e,t,r.children,n),r=oe.current,(r&2)!==0)r=r&1|2,t.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&uf(e,n,t);else if(e.tag===19)uf(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(K(oe,r),(t.mode&1)===0)t.memoizedState=null;else switch(o){case"forwards":for(n=t.child,o=null;n!==null;)e=n.alternate,e!==null&&Wl(e)===null&&(o=n),n=n.sibling;n=o,n===null?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),ys(t,!1,o,n,l);break;case"backwards":for(n=null,o=t.child,t.child=null;o!==null;){if(e=o.alternate,e!==null&&Wl(e)===null){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}ys(t,!0,n,null,l);break;case"together":ys(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Nl(e,t){(t.mode&1)===0&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function qt(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),zn|=t.lanes,(n&t.childLanes)===0)return null;if(e!==null&&t.child!==e.child)throw Error(w(153));if(t.child!==null){for(e=t.child,n=un(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=un(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Kh(e,t,n){switch(t.tag){case 3:Kd(t),Tr();break;case 5:wd(t);break;case 1:qe(t.type)&&zl(t);break;case 4:Fa(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,o=t.memoizedProps.value;K(Bl,r._currentValue),r._currentValue=o;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?(K(oe,oe.current&1),t.flags|=128,null):(n&t.child.childLanes)!==0?Yd(e,t,n):(K(oe,oe.current&1),e=qt(e,t,n),e!==null?e.sibling:null);K(oe,oe.current&1);break;case 19:if(r=(n&t.childLanes)!==0,(e.flags&128)!==0){if(r)return Qd(e,t,n);t.flags|=128}if(o=t.memoizedState,o!==null&&(o.rendering=null,o.tail=null,o.lastEffect=null),K(oe,oe.current),r)break;return null;case 22:case 23:return t.lanes=0,Xd(e,t,n)}return qt(e,t,n)}var Zd,oa,Jd,ep;Zd=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}};oa=function(){};Jd=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,Pn(kt.current);var l=null;switch(n){case"input":o=Ls(e,o),r=Ls(e,r),l=[];break;case"select":o=ie({},o,{value:void 0}),r=ie({},r,{value:void 0}),l=[];break;case"textarea":o=Ms(e,o),r=Ms(e,r),l=[];break;default:typeof o.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=Fl)}xs(n,r);var i;n=null;for(u in o)if(!r.hasOwnProperty(u)&&o.hasOwnProperty(u)&&o[u]!=null)if(u==="style"){var s=o[u];for(i in s)s.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else u!=="dangerouslySetInnerHTML"&&u!=="children"&&u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&u!=="autoFocus"&&(ao.hasOwnProperty(u)?l||(l=[]):(l=l||[]).push(u,null));for(u in r){var a=r[u];if(s=o?.[u],r.hasOwnProperty(u)&&a!==s&&(a!=null||s!=null))if(u==="style")if(s){for(i in s)!s.hasOwnProperty(i)||a&&a.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in a)a.hasOwnProperty(i)&&s[i]!==a[i]&&(n||(n={}),n[i]=a[i])}else n||(l||(l=[]),l.push(u,n)),n=a;else u==="dangerouslySetInnerHTML"?(a=a?a.__html:void 0,s=s?s.__html:void 0,a!=null&&s!==a&&(l=l||[]).push(u,a)):u==="children"?typeof a!="string"&&typeof a!="number"||(l=l||[]).push(u,""+a):u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&(ao.hasOwnProperty(u)?(a!=null&&u==="onScroll"&&Y("scroll",e),l||s===a||(l=[])):(l=l||[]).push(u,a))}n&&(l=l||[]).push("style",n);var u=l;(t.updateQueue=u)&&(t.flags|=4)}};ep=function(e,t,n,r){n!==r&&(t.flags|=4)};function Gr(e,t){if(!re)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Ae(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var o=e.child;o!==null;)n|=o.lanes|o.childLanes,r|=o.subtreeFlags&14680064,r|=o.flags&14680064,o.return=e,o=o.sibling;else for(o=e.child;o!==null;)n|=o.lanes|o.childLanes,r|=o.subtreeFlags,r|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Yh(e,t,n){var r=t.pendingProps;switch(Oa(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ae(t),null;case 1:return qe(t.type)&&bl(),Ae(t),null;case 3:return r=t.stateNode,Cr(),Q(Be),Q(Oe),za(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(ml(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,pt!==null&&(da(pt),pt=null))),oa(e,t),Ae(t),null;case 5:ba(t);var o=Pn(_o.current);if(n=t.type,e!==null&&t.stateNode!=null)Jd(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(w(166));return Ae(t),null}if(e=Pn(kt.current),ml(t)){r=t.stateNode,n=t.type;var l=t.memoizedProps;switch(r[Nt]=t,r[Eo]=l,e=(t.mode&1)!==0,n){case"dialog":Y("cancel",r),Y("close",r);break;case"iframe":case"object":case"embed":Y("load",r);break;case"video":case"audio":for(o=0;o<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=i.createElement(n,{is:r.is}):(e=i.createElement(n),n==="select"&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,n),e[Nt]=t,e[Eo]=r,Zd(e,t,!1,!1),t.stateNode=e;e:{switch(i=Ds(n,r),n){case"dialog":Y("cancel",e),Y("close",e),o=r;break;case"iframe":case"object":case"embed":Y("load",e),o=r;break;case"video":case"audio":for(o=0;oLr&&(t.flags|=128,r=!0,Gr(l,!1),t.lanes=4194304)}else{if(!r)if(e=Wl(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Gr(l,!0),l.tail===null&&l.tailMode==="hidden"&&!i.alternate&&!re)return Ae(t),null}else 2*ae()-l.renderingStartTime>Lr&&n!==1073741824&&(t.flags|=128,r=!0,Gr(l,!1),t.lanes=4194304);l.isBackwards?(i.sibling=t.child,t.child=i):(n=l.last,n!==null?n.sibling=i:t.child=i,l.last=i)}return l.tail!==null?(t=l.tail,l.rendering=t,l.tail=t.sibling,l.renderingStartTime=ae(),t.sibling=null,n=oe.current,K(oe,r?n&1|2:n&1),t):(Ae(t),null);case 22:case 23:return Ya(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&(t.mode&1)!==0?(Ge&1073741824)!==0&&(Ae(t),t.subtreeFlags&6&&(t.flags|=8192)):Ae(t),null;case 24:return null;case 25:return null}throw Error(w(156,t.tag))}function Qh(e,t){switch(Oa(t),t.tag){case 1:return qe(t.type)&&bl(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Cr(),Q(Be),Q(Oe),za(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return ba(t),null;case 13:if(Q(oe),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(w(340));Tr()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Q(oe),null;case 4:return Cr(),null;case 10:return Ia(t.type._context),null;case 22:case 23:return Ya(),null;case 24:return null;default:return null}}var vl=!1,Me=!1,Zh=typeof WeakSet=="function"?WeakSet:Set,M=null;function dr(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){se(e,t,r)}else n.current=null}function la(e,t,n){try{n()}catch(r){se(e,t,r)}}var cf=!1;function Jh(e,t){if(Bs=Il,e=ld(),Aa(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var o=r.anchorOffset,l=r.focusNode;r=r.focusOffset;try{n.nodeType,l.nodeType}catch{n=null;break e}var i=0,s=-1,a=-1,u=0,m=0,g=e,h=null;t:for(;;){for(var T;g!==n||o!==0&&g.nodeType!==3||(s=i+o),g!==l||r!==0&&g.nodeType!==3||(a=i+r),g.nodeType===3&&(i+=g.nodeValue.length),(T=g.firstChild)!==null;)h=g,g=T;for(;;){if(g===e)break t;if(h===n&&++u===o&&(s=i),h===l&&++m===r&&(a=i),(T=g.nextSibling)!==null)break;g=h,h=g.parentNode}g=T}n=s===-1||a===-1?null:{start:s,end:a}}else n=null}n=n||{start:0,end:0}}else n=null;for(qs={focusedElem:e,selectionRange:n},Il=!1,M=t;M!==null;)if(t=M,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,M=e;else for(;M!==null;){t=M;try{var S=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(S!==null){var L=S.memoizedProps,P=S.memoizedState,p=t.stateNode,c=p.getSnapshotBeforeUpdate(t.elementType===t.type?L:ft(t.type,L),P);p.__reactInternalSnapshotBeforeUpdate=c}break;case 3:var d=t.stateNode.containerInfo;d.nodeType===1?d.textContent="":d.nodeType===9&&d.documentElement&&d.removeChild(d.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(w(163))}}catch(y){se(t,t.return,y)}if(e=t.sibling,e!==null){e.return=t.return,M=e;break}M=t.return}return S=cf,cf=!1,S}function lo(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var o=r=r.next;do{if((o.tag&e)===e){var l=o.destroy;o.destroy=void 0,l!==void 0&&la(t,n,l)}o=o.next}while(o!==r)}}function si(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function ia(e){var t=e.ref;if(t!==null){var n=e.stateNode;e.tag,e=n,typeof t=="function"?t(e):t.current=e}}function tp(e){var t=e.alternate;t!==null&&(e.alternate=null,tp(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Nt],delete t[Eo],delete t[Gs],delete t[Uh],delete t[Rh])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function np(e){return e.tag===5||e.tag===3||e.tag===4}function ff(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||np(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.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 sa(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Fl));else if(r!==4&&(e=e.child,e!==null))for(sa(e,t,n),e=e.sibling;e!==null;)sa(e,t,n),e=e.sibling}function aa(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(aa(e,t,n),e=e.sibling;e!==null;)aa(e,t,n),e=e.sibling}var Se=null,dt=!1;function $t(e,t,n){for(n=n.child;n!==null;)rp(e,t,n),n=n.sibling}function rp(e,t,n){if(Lt&&typeof Lt.onCommitFiberUnmount=="function")try{Lt.onCommitFiberUnmount(Jl,n)}catch{}switch(n.tag){case 5:Me||dr(n,t);case 6:var r=Se,o=dt;Se=null,$t(e,t,n),Se=r,dt=o,Se!==null&&(dt?(e=Se,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Se.removeChild(n.stateNode));break;case 18:Se!==null&&(dt?(e=Se,n=n.stateNode,e.nodeType===8?fs(e.parentNode,n):e.nodeType===1&&fs(e,n),mo(e)):fs(Se,n.stateNode));break;case 4:r=Se,o=dt,Se=n.stateNode.containerInfo,dt=!0,$t(e,t,n),Se=r,dt=o;break;case 0:case 11:case 14:case 15:if(!Me&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){o=r=r.next;do{var l=o,i=l.destroy;l=l.tag,i!==void 0&&((l&2)!==0||(l&4)!==0)&&la(n,t,i),o=o.next}while(o!==r)}$t(e,t,n);break;case 1:if(!Me&&(dr(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){se(n,t,s)}$t(e,t,n);break;case 21:$t(e,t,n);break;case 22:n.mode&1?(Me=(r=Me)||n.memoizedState!==null,$t(e,t,n),Me=r):$t(e,t,n);break;default:$t(e,t,n)}}function df(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new Zh),t.forEach(function(r){var o=av.bind(null,e,r);n.has(r)||(n.add(r),r.then(o,o))})}}function ct(e,t){var n=t.deletions;if(n!==null)for(var r=0;ro&&(o=i),r&=~l}if(r=o,r=ae()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*tv(r/1960))-r,10e?16:e,en===null)var r=!1;else{if(e=en,en=null,Yl=0,(H&6)!==0)throw Error(w(331));var o=H;for(H|=4,M=e.current;M!==null;){var l=M,i=l.child;if((M.flags&16)!==0){var s=l.deletions;if(s!==null){for(var a=0;aae()-$a?In(e,0):Xa|=n),Ve(e,t)}function fp(e,t){t===0&&((e.mode&1)===0?t=1:(t=ol,ol<<=1,(ol&130023424)===0&&(ol=4194304)));var n=Ie();e=Bt(e,t),e!==null&&(Lo(e,t,n),Ve(e,n))}function sv(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),fp(e,n)}function av(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;o!==null&&(n=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(w(314))}r!==null&&r.delete(t),fp(e,n)}var dp;dp=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Be.current)je=!0;else{if((e.lanes&n)===0&&(t.flags&128)===0)return je=!1,Kh(e,t,n);je=(e.flags&131072)!==0}else je=!1,re&&(t.flags&1048576)!==0&&hd(t,jl,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Nl(e,t),e=t.pendingProps;var o=_r(t,Oe.current);yr(t,n),o=ja(null,t,r,e,o,n);var l=Ba();return t.flags|=1,typeof o=="object"&&o!==null&&typeof o.render=="function"&&o.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,qe(r)?(l=!0,zl(t)):l=!1,t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,Ra(t),o.updater=ii,t.stateNode=o,o._reactInternals=t,Zs(t,r,e,n),t=ta(null,t,r,!0,l,n)):(t.tag=0,re&&l&&Ma(t),Pe(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Nl(e,t),e=t.pendingProps,o=r._init,r=o(r._payload),t.type=r,o=t.tag=cv(r),e=ft(r,e),o){case 0:t=ea(null,t,r,e,n);break e;case 1:t=sf(null,t,r,e,n);break e;case 11:t=of(null,t,r,e,n);break e;case 14:t=lf(null,t,r,ft(r.type,e),n);break e}throw Error(w(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:ft(r,o),ea(e,t,r,o,n);case 1:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:ft(r,o),sf(e,t,r,o,n);case 3:e:{if(Kd(t),e===null)throw Error(w(387));r=t.pendingProps,l=t.memoizedState,o=l.element,Td(e,t),Vl(t,r,null,n);var i=t.memoizedState;if(r=i.element,l.isDehydrated)if(l={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=l,t.memoizedState=l,t.flags&256){o=Nr(Error(w(423)),t),t=af(e,t,r,n,o);break e}else if(r!==o){o=Nr(Error(w(424)),t),t=af(e,t,r,n,o);break e}else for(Xe=on(t.stateNode.containerInfo.firstChild),$e=t,re=!0,pt=null,n=Sd(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Tr(),r===o){t=qt(e,t,n);break e}Pe(e,t,r,n)}t=t.child}return t;case 5:return wd(t),e===null&&Ks(t),r=t.type,o=t.pendingProps,l=e!==null?e.memoizedProps:null,i=o.children,Vs(r,o)?i=null:l!==null&&Vs(r,l)&&(t.flags|=32),$d(e,t),Pe(e,t,i,n),t.child;case 6:return e===null&&Ks(t),null;case 13:return Yd(e,t,n);case 4:return Fa(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=wr(t,null,r,n):Pe(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:ft(r,o),of(e,t,r,o,n);case 7:return Pe(e,t,t.pendingProps,n),t.child;case 8:return Pe(e,t,t.pendingProps.children,n),t.child;case 12:return Pe(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,l=t.memoizedProps,i=o.value,K(Bl,r._currentValue),r._currentValue=i,l!==null)if(ht(l.value,i)){if(l.children===o.children&&!Be.current){t=qt(e,t,n);break e}}else for(l=t.child,l!==null&&(l.return=t);l!==null;){var s=l.dependencies;if(s!==null){i=l.child;for(var a=s.firstContext;a!==null;){if(a.context===r){if(l.tag===1){a=zt(-1,n&-n),a.tag=2;var u=l.updateQueue;if(u!==null){u=u.shared;var m=u.pending;m===null?a.next=a:(a.next=m.next,m.next=a),u.pending=a}}l.lanes|=n,a=l.alternate,a!==null&&(a.lanes|=n),Ys(l.return,n,t),s.lanes|=n;break}a=a.next}}else if(l.tag===10)i=l.type===t.type?null:l.child;else if(l.tag===18){if(i=l.return,i===null)throw Error(w(341));i.lanes|=n,s=i.alternate,s!==null&&(s.lanes|=n),Ys(i,n,t),i=l.sibling}else i=l.child;if(i!==null)i.return=l;else for(i=l;i!==null;){if(i===t){i=null;break}if(l=i.sibling,l!==null){l.return=i.return,i=l;break}i=i.return}l=i}Pe(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,yr(t,n),o=it(o),r=r(o),t.flags|=1,Pe(e,t,r,n),t.child;case 14:return r=t.type,o=ft(r,t.pendingProps),o=ft(r.type,o),lf(e,t,r,o,n);case 15:return Gd(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:ft(r,o),Nl(e,t),t.tag=1,qe(r)?(e=!0,zl(t)):e=!1,yr(t,n),qd(t,r,o),Zs(t,r,o,n),ta(null,t,r,!0,e,n);case 19:return Qd(e,t,n);case 22:return Xd(e,t,n)}throw Error(w(156,t.tag))};function pp(e,t){return Hf(e,t)}function uv(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function ot(e,t,n,r){return new uv(e,t,n,r)}function Za(e){return e=e.prototype,!(!e||!e.isReactComponent)}function cv(e){if(typeof e=="function")return Za(e)?1:0;if(e!=null){if(e=e.$$typeof,e===va)return 11;if(e===ya)return 14}return 2}function un(e,t){var n=e.alternate;return n===null?(n=ot(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Al(e,t,n,r,o,l){var i=2;if(r=e,typeof e=="function")Za(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case rr:return Un(n.children,o,l,t);case ha:i=8,o|=8;break;case Ts:return e=ot(12,n,t,o|2),e.elementType=Ts,e.lanes=l,e;case ws:return e=ot(13,n,t,o),e.elementType=ws,e.lanes=l,e;case Cs:return e=ot(19,n,t,o),e.elementType=Cs,e.lanes=l,e;case wf:return ui(n,o,l,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case _f:i=10;break e;case Tf:i=9;break e;case va:i=11;break e;case ya:i=14;break e;case Kt:i=16,r=null;break e}throw Error(w(130,e==null?e:typeof e,""))}return t=ot(i,n,t,o),t.elementType=e,t.type=r,t.lanes=l,t}function Un(e,t,n,r){return e=ot(7,e,r,t),e.lanes=n,e}function ui(e,t,n,r){return e=ot(22,e,r,t),e.elementType=wf,e.lanes=n,e.stateNode={isHidden:!1},e}function Es(e,t,n){return e=ot(6,e,null,t),e.lanes=n,e}function Ss(e,t,n){return t=ot(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function fv(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=rs(0),this.expirationTimes=rs(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=rs(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function Ja(e,t,n,r,o,l,i,s,a){return e=new fv(e,t,n,s,a),t===1?(t=1,l===!0&&(t|=8)):t=0,l=ot(3,null,null,t),e.current=l,l.stateNode=e,l.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Ra(l),e}function dv(e,t,n){var r=3{"use strict";function yp(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(yp)}catch(e){console.error(e)}}yp(),Ep.exports=vp()});var Tp=Ne(ru=>{"use strict";var _p=Sp();ru.createRoot=_p.createRoot,ru.hydrateRoot=_p.hydrateRoot;var M0});var ou=Ne((r1,vv)=>{vv.exports={Aacute:"\xC1",aacute:"\xE1",Abreve:"\u0102",abreve:"\u0103",ac:"\u223E",acd:"\u223F",acE:"\u223E\u0333",Acirc:"\xC2",acirc:"\xE2",acute:"\xB4",Acy:"\u0410",acy:"\u0430",AElig:"\xC6",aelig:"\xE6",af:"\u2061",Afr:"\u{1D504}",afr:"\u{1D51E}",Agrave:"\xC0",agrave:"\xE0",alefsym:"\u2135",aleph:"\u2135",Alpha:"\u0391",alpha:"\u03B1",Amacr:"\u0100",amacr:"\u0101",amalg:"\u2A3F",amp:"&",AMP:"&",andand:"\u2A55",And:"\u2A53",and:"\u2227",andd:"\u2A5C",andslope:"\u2A58",andv:"\u2A5A",ang:"\u2220",ange:"\u29A4",angle:"\u2220",angmsdaa:"\u29A8",angmsdab:"\u29A9",angmsdac:"\u29AA",angmsdad:"\u29AB",angmsdae:"\u29AC",angmsdaf:"\u29AD",angmsdag:"\u29AE",angmsdah:"\u29AF",angmsd:"\u2221",angrt:"\u221F",angrtvb:"\u22BE",angrtvbd:"\u299D",angsph:"\u2222",angst:"\xC5",angzarr:"\u237C",Aogon:"\u0104",aogon:"\u0105",Aopf:"\u{1D538}",aopf:"\u{1D552}",apacir:"\u2A6F",ap:"\u2248",apE:"\u2A70",ape:"\u224A",apid:"\u224B",apos:"'",ApplyFunction:"\u2061",approx:"\u2248",approxeq:"\u224A",Aring:"\xC5",aring:"\xE5",Ascr:"\u{1D49C}",ascr:"\u{1D4B6}",Assign:"\u2254",ast:"*",asymp:"\u2248",asympeq:"\u224D",Atilde:"\xC3",atilde:"\xE3",Auml:"\xC4",auml:"\xE4",awconint:"\u2233",awint:"\u2A11",backcong:"\u224C",backepsilon:"\u03F6",backprime:"\u2035",backsim:"\u223D",backsimeq:"\u22CD",Backslash:"\u2216",Barv:"\u2AE7",barvee:"\u22BD",barwed:"\u2305",Barwed:"\u2306",barwedge:"\u2305",bbrk:"\u23B5",bbrktbrk:"\u23B6",bcong:"\u224C",Bcy:"\u0411",bcy:"\u0431",bdquo:"\u201E",becaus:"\u2235",because:"\u2235",Because:"\u2235",bemptyv:"\u29B0",bepsi:"\u03F6",bernou:"\u212C",Bernoullis:"\u212C",Beta:"\u0392",beta:"\u03B2",beth:"\u2136",between:"\u226C",Bfr:"\u{1D505}",bfr:"\u{1D51F}",bigcap:"\u22C2",bigcirc:"\u25EF",bigcup:"\u22C3",bigodot:"\u2A00",bigoplus:"\u2A01",bigotimes:"\u2A02",bigsqcup:"\u2A06",bigstar:"\u2605",bigtriangledown:"\u25BD",bigtriangleup:"\u25B3",biguplus:"\u2A04",bigvee:"\u22C1",bigwedge:"\u22C0",bkarow:"\u290D",blacklozenge:"\u29EB",blacksquare:"\u25AA",blacktriangle:"\u25B4",blacktriangledown:"\u25BE",blacktriangleleft:"\u25C2",blacktriangleright:"\u25B8",blank:"\u2423",blk12:"\u2592",blk14:"\u2591",blk34:"\u2593",block:"\u2588",bne:"=\u20E5",bnequiv:"\u2261\u20E5",bNot:"\u2AED",bnot:"\u2310",Bopf:"\u{1D539}",bopf:"\u{1D553}",bot:"\u22A5",bottom:"\u22A5",bowtie:"\u22C8",boxbox:"\u29C9",boxdl:"\u2510",boxdL:"\u2555",boxDl:"\u2556",boxDL:"\u2557",boxdr:"\u250C",boxdR:"\u2552",boxDr:"\u2553",boxDR:"\u2554",boxh:"\u2500",boxH:"\u2550",boxhd:"\u252C",boxHd:"\u2564",boxhD:"\u2565",boxHD:"\u2566",boxhu:"\u2534",boxHu:"\u2567",boxhU:"\u2568",boxHU:"\u2569",boxminus:"\u229F",boxplus:"\u229E",boxtimes:"\u22A0",boxul:"\u2518",boxuL:"\u255B",boxUl:"\u255C",boxUL:"\u255D",boxur:"\u2514",boxuR:"\u2558",boxUr:"\u2559",boxUR:"\u255A",boxv:"\u2502",boxV:"\u2551",boxvh:"\u253C",boxvH:"\u256A",boxVh:"\u256B",boxVH:"\u256C",boxvl:"\u2524",boxvL:"\u2561",boxVl:"\u2562",boxVL:"\u2563",boxvr:"\u251C",boxvR:"\u255E",boxVr:"\u255F",boxVR:"\u2560",bprime:"\u2035",breve:"\u02D8",Breve:"\u02D8",brvbar:"\xA6",bscr:"\u{1D4B7}",Bscr:"\u212C",bsemi:"\u204F",bsim:"\u223D",bsime:"\u22CD",bsolb:"\u29C5",bsol:"\\",bsolhsub:"\u27C8",bull:"\u2022",bullet:"\u2022",bump:"\u224E",bumpE:"\u2AAE",bumpe:"\u224F",Bumpeq:"\u224E",bumpeq:"\u224F",Cacute:"\u0106",cacute:"\u0107",capand:"\u2A44",capbrcup:"\u2A49",capcap:"\u2A4B",cap:"\u2229",Cap:"\u22D2",capcup:"\u2A47",capdot:"\u2A40",CapitalDifferentialD:"\u2145",caps:"\u2229\uFE00",caret:"\u2041",caron:"\u02C7",Cayleys:"\u212D",ccaps:"\u2A4D",Ccaron:"\u010C",ccaron:"\u010D",Ccedil:"\xC7",ccedil:"\xE7",Ccirc:"\u0108",ccirc:"\u0109",Cconint:"\u2230",ccups:"\u2A4C",ccupssm:"\u2A50",Cdot:"\u010A",cdot:"\u010B",cedil:"\xB8",Cedilla:"\xB8",cemptyv:"\u29B2",cent:"\xA2",centerdot:"\xB7",CenterDot:"\xB7",cfr:"\u{1D520}",Cfr:"\u212D",CHcy:"\u0427",chcy:"\u0447",check:"\u2713",checkmark:"\u2713",Chi:"\u03A7",chi:"\u03C7",circ:"\u02C6",circeq:"\u2257",circlearrowleft:"\u21BA",circlearrowright:"\u21BB",circledast:"\u229B",circledcirc:"\u229A",circleddash:"\u229D",CircleDot:"\u2299",circledR:"\xAE",circledS:"\u24C8",CircleMinus:"\u2296",CirclePlus:"\u2295",CircleTimes:"\u2297",cir:"\u25CB",cirE:"\u29C3",cire:"\u2257",cirfnint:"\u2A10",cirmid:"\u2AEF",cirscir:"\u29C2",ClockwiseContourIntegral:"\u2232",CloseCurlyDoubleQuote:"\u201D",CloseCurlyQuote:"\u2019",clubs:"\u2663",clubsuit:"\u2663",colon:":",Colon:"\u2237",Colone:"\u2A74",colone:"\u2254",coloneq:"\u2254",comma:",",commat:"@",comp:"\u2201",compfn:"\u2218",complement:"\u2201",complexes:"\u2102",cong:"\u2245",congdot:"\u2A6D",Congruent:"\u2261",conint:"\u222E",Conint:"\u222F",ContourIntegral:"\u222E",copf:"\u{1D554}",Copf:"\u2102",coprod:"\u2210",Coproduct:"\u2210",copy:"\xA9",COPY:"\xA9",copysr:"\u2117",CounterClockwiseContourIntegral:"\u2233",crarr:"\u21B5",cross:"\u2717",Cross:"\u2A2F",Cscr:"\u{1D49E}",cscr:"\u{1D4B8}",csub:"\u2ACF",csube:"\u2AD1",csup:"\u2AD0",csupe:"\u2AD2",ctdot:"\u22EF",cudarrl:"\u2938",cudarrr:"\u2935",cuepr:"\u22DE",cuesc:"\u22DF",cularr:"\u21B6",cularrp:"\u293D",cupbrcap:"\u2A48",cupcap:"\u2A46",CupCap:"\u224D",cup:"\u222A",Cup:"\u22D3",cupcup:"\u2A4A",cupdot:"\u228D",cupor:"\u2A45",cups:"\u222A\uFE00",curarr:"\u21B7",curarrm:"\u293C",curlyeqprec:"\u22DE",curlyeqsucc:"\u22DF",curlyvee:"\u22CE",curlywedge:"\u22CF",curren:"\xA4",curvearrowleft:"\u21B6",curvearrowright:"\u21B7",cuvee:"\u22CE",cuwed:"\u22CF",cwconint:"\u2232",cwint:"\u2231",cylcty:"\u232D",dagger:"\u2020",Dagger:"\u2021",daleth:"\u2138",darr:"\u2193",Darr:"\u21A1",dArr:"\u21D3",dash:"\u2010",Dashv:"\u2AE4",dashv:"\u22A3",dbkarow:"\u290F",dblac:"\u02DD",Dcaron:"\u010E",dcaron:"\u010F",Dcy:"\u0414",dcy:"\u0434",ddagger:"\u2021",ddarr:"\u21CA",DD:"\u2145",dd:"\u2146",DDotrahd:"\u2911",ddotseq:"\u2A77",deg:"\xB0",Del:"\u2207",Delta:"\u0394",delta:"\u03B4",demptyv:"\u29B1",dfisht:"\u297F",Dfr:"\u{1D507}",dfr:"\u{1D521}",dHar:"\u2965",dharl:"\u21C3",dharr:"\u21C2",DiacriticalAcute:"\xB4",DiacriticalDot:"\u02D9",DiacriticalDoubleAcute:"\u02DD",DiacriticalGrave:"`",DiacriticalTilde:"\u02DC",diam:"\u22C4",diamond:"\u22C4",Diamond:"\u22C4",diamondsuit:"\u2666",diams:"\u2666",die:"\xA8",DifferentialD:"\u2146",digamma:"\u03DD",disin:"\u22F2",div:"\xF7",divide:"\xF7",divideontimes:"\u22C7",divonx:"\u22C7",DJcy:"\u0402",djcy:"\u0452",dlcorn:"\u231E",dlcrop:"\u230D",dollar:"$",Dopf:"\u{1D53B}",dopf:"\u{1D555}",Dot:"\xA8",dot:"\u02D9",DotDot:"\u20DC",doteq:"\u2250",doteqdot:"\u2251",DotEqual:"\u2250",dotminus:"\u2238",dotplus:"\u2214",dotsquare:"\u22A1",doublebarwedge:"\u2306",DoubleContourIntegral:"\u222F",DoubleDot:"\xA8",DoubleDownArrow:"\u21D3",DoubleLeftArrow:"\u21D0",DoubleLeftRightArrow:"\u21D4",DoubleLeftTee:"\u2AE4",DoubleLongLeftArrow:"\u27F8",DoubleLongLeftRightArrow:"\u27FA",DoubleLongRightArrow:"\u27F9",DoubleRightArrow:"\u21D2",DoubleRightTee:"\u22A8",DoubleUpArrow:"\u21D1",DoubleUpDownArrow:"\u21D5",DoubleVerticalBar:"\u2225",DownArrowBar:"\u2913",downarrow:"\u2193",DownArrow:"\u2193",Downarrow:"\u21D3",DownArrowUpArrow:"\u21F5",DownBreve:"\u0311",downdownarrows:"\u21CA",downharpoonleft:"\u21C3",downharpoonright:"\u21C2",DownLeftRightVector:"\u2950",DownLeftTeeVector:"\u295E",DownLeftVectorBar:"\u2956",DownLeftVector:"\u21BD",DownRightTeeVector:"\u295F",DownRightVectorBar:"\u2957",DownRightVector:"\u21C1",DownTeeArrow:"\u21A7",DownTee:"\u22A4",drbkarow:"\u2910",drcorn:"\u231F",drcrop:"\u230C",Dscr:"\u{1D49F}",dscr:"\u{1D4B9}",DScy:"\u0405",dscy:"\u0455",dsol:"\u29F6",Dstrok:"\u0110",dstrok:"\u0111",dtdot:"\u22F1",dtri:"\u25BF",dtrif:"\u25BE",duarr:"\u21F5",duhar:"\u296F",dwangle:"\u29A6",DZcy:"\u040F",dzcy:"\u045F",dzigrarr:"\u27FF",Eacute:"\xC9",eacute:"\xE9",easter:"\u2A6E",Ecaron:"\u011A",ecaron:"\u011B",Ecirc:"\xCA",ecirc:"\xEA",ecir:"\u2256",ecolon:"\u2255",Ecy:"\u042D",ecy:"\u044D",eDDot:"\u2A77",Edot:"\u0116",edot:"\u0117",eDot:"\u2251",ee:"\u2147",efDot:"\u2252",Efr:"\u{1D508}",efr:"\u{1D522}",eg:"\u2A9A",Egrave:"\xC8",egrave:"\xE8",egs:"\u2A96",egsdot:"\u2A98",el:"\u2A99",Element:"\u2208",elinters:"\u23E7",ell:"\u2113",els:"\u2A95",elsdot:"\u2A97",Emacr:"\u0112",emacr:"\u0113",empty:"\u2205",emptyset:"\u2205",EmptySmallSquare:"\u25FB",emptyv:"\u2205",EmptyVerySmallSquare:"\u25AB",emsp13:"\u2004",emsp14:"\u2005",emsp:"\u2003",ENG:"\u014A",eng:"\u014B",ensp:"\u2002",Eogon:"\u0118",eogon:"\u0119",Eopf:"\u{1D53C}",eopf:"\u{1D556}",epar:"\u22D5",eparsl:"\u29E3",eplus:"\u2A71",epsi:"\u03B5",Epsilon:"\u0395",epsilon:"\u03B5",epsiv:"\u03F5",eqcirc:"\u2256",eqcolon:"\u2255",eqsim:"\u2242",eqslantgtr:"\u2A96",eqslantless:"\u2A95",Equal:"\u2A75",equals:"=",EqualTilde:"\u2242",equest:"\u225F",Equilibrium:"\u21CC",equiv:"\u2261",equivDD:"\u2A78",eqvparsl:"\u29E5",erarr:"\u2971",erDot:"\u2253",escr:"\u212F",Escr:"\u2130",esdot:"\u2250",Esim:"\u2A73",esim:"\u2242",Eta:"\u0397",eta:"\u03B7",ETH:"\xD0",eth:"\xF0",Euml:"\xCB",euml:"\xEB",euro:"\u20AC",excl:"!",exist:"\u2203",Exists:"\u2203",expectation:"\u2130",exponentiale:"\u2147",ExponentialE:"\u2147",fallingdotseq:"\u2252",Fcy:"\u0424",fcy:"\u0444",female:"\u2640",ffilig:"\uFB03",fflig:"\uFB00",ffllig:"\uFB04",Ffr:"\u{1D509}",ffr:"\u{1D523}",filig:"\uFB01",FilledSmallSquare:"\u25FC",FilledVerySmallSquare:"\u25AA",fjlig:"fj",flat:"\u266D",fllig:"\uFB02",fltns:"\u25B1",fnof:"\u0192",Fopf:"\u{1D53D}",fopf:"\u{1D557}",forall:"\u2200",ForAll:"\u2200",fork:"\u22D4",forkv:"\u2AD9",Fouriertrf:"\u2131",fpartint:"\u2A0D",frac12:"\xBD",frac13:"\u2153",frac14:"\xBC",frac15:"\u2155",frac16:"\u2159",frac18:"\u215B",frac23:"\u2154",frac25:"\u2156",frac34:"\xBE",frac35:"\u2157",frac38:"\u215C",frac45:"\u2158",frac56:"\u215A",frac58:"\u215D",frac78:"\u215E",frasl:"\u2044",frown:"\u2322",fscr:"\u{1D4BB}",Fscr:"\u2131",gacute:"\u01F5",Gamma:"\u0393",gamma:"\u03B3",Gammad:"\u03DC",gammad:"\u03DD",gap:"\u2A86",Gbreve:"\u011E",gbreve:"\u011F",Gcedil:"\u0122",Gcirc:"\u011C",gcirc:"\u011D",Gcy:"\u0413",gcy:"\u0433",Gdot:"\u0120",gdot:"\u0121",ge:"\u2265",gE:"\u2267",gEl:"\u2A8C",gel:"\u22DB",geq:"\u2265",geqq:"\u2267",geqslant:"\u2A7E",gescc:"\u2AA9",ges:"\u2A7E",gesdot:"\u2A80",gesdoto:"\u2A82",gesdotol:"\u2A84",gesl:"\u22DB\uFE00",gesles:"\u2A94",Gfr:"\u{1D50A}",gfr:"\u{1D524}",gg:"\u226B",Gg:"\u22D9",ggg:"\u22D9",gimel:"\u2137",GJcy:"\u0403",gjcy:"\u0453",gla:"\u2AA5",gl:"\u2277",glE:"\u2A92",glj:"\u2AA4",gnap:"\u2A8A",gnapprox:"\u2A8A",gne:"\u2A88",gnE:"\u2269",gneq:"\u2A88",gneqq:"\u2269",gnsim:"\u22E7",Gopf:"\u{1D53E}",gopf:"\u{1D558}",grave:"`",GreaterEqual:"\u2265",GreaterEqualLess:"\u22DB",GreaterFullEqual:"\u2267",GreaterGreater:"\u2AA2",GreaterLess:"\u2277",GreaterSlantEqual:"\u2A7E",GreaterTilde:"\u2273",Gscr:"\u{1D4A2}",gscr:"\u210A",gsim:"\u2273",gsime:"\u2A8E",gsiml:"\u2A90",gtcc:"\u2AA7",gtcir:"\u2A7A",gt:">",GT:">",Gt:"\u226B",gtdot:"\u22D7",gtlPar:"\u2995",gtquest:"\u2A7C",gtrapprox:"\u2A86",gtrarr:"\u2978",gtrdot:"\u22D7",gtreqless:"\u22DB",gtreqqless:"\u2A8C",gtrless:"\u2277",gtrsim:"\u2273",gvertneqq:"\u2269\uFE00",gvnE:"\u2269\uFE00",Hacek:"\u02C7",hairsp:"\u200A",half:"\xBD",hamilt:"\u210B",HARDcy:"\u042A",hardcy:"\u044A",harrcir:"\u2948",harr:"\u2194",hArr:"\u21D4",harrw:"\u21AD",Hat:"^",hbar:"\u210F",Hcirc:"\u0124",hcirc:"\u0125",hearts:"\u2665",heartsuit:"\u2665",hellip:"\u2026",hercon:"\u22B9",hfr:"\u{1D525}",Hfr:"\u210C",HilbertSpace:"\u210B",hksearow:"\u2925",hkswarow:"\u2926",hoarr:"\u21FF",homtht:"\u223B",hookleftarrow:"\u21A9",hookrightarrow:"\u21AA",hopf:"\u{1D559}",Hopf:"\u210D",horbar:"\u2015",HorizontalLine:"\u2500",hscr:"\u{1D4BD}",Hscr:"\u210B",hslash:"\u210F",Hstrok:"\u0126",hstrok:"\u0127",HumpDownHump:"\u224E",HumpEqual:"\u224F",hybull:"\u2043",hyphen:"\u2010",Iacute:"\xCD",iacute:"\xED",ic:"\u2063",Icirc:"\xCE",icirc:"\xEE",Icy:"\u0418",icy:"\u0438",Idot:"\u0130",IEcy:"\u0415",iecy:"\u0435",iexcl:"\xA1",iff:"\u21D4",ifr:"\u{1D526}",Ifr:"\u2111",Igrave:"\xCC",igrave:"\xEC",ii:"\u2148",iiiint:"\u2A0C",iiint:"\u222D",iinfin:"\u29DC",iiota:"\u2129",IJlig:"\u0132",ijlig:"\u0133",Imacr:"\u012A",imacr:"\u012B",image:"\u2111",ImaginaryI:"\u2148",imagline:"\u2110",imagpart:"\u2111",imath:"\u0131",Im:"\u2111",imof:"\u22B7",imped:"\u01B5",Implies:"\u21D2",incare:"\u2105",in:"\u2208",infin:"\u221E",infintie:"\u29DD",inodot:"\u0131",intcal:"\u22BA",int:"\u222B",Int:"\u222C",integers:"\u2124",Integral:"\u222B",intercal:"\u22BA",Intersection:"\u22C2",intlarhk:"\u2A17",intprod:"\u2A3C",InvisibleComma:"\u2063",InvisibleTimes:"\u2062",IOcy:"\u0401",iocy:"\u0451",Iogon:"\u012E",iogon:"\u012F",Iopf:"\u{1D540}",iopf:"\u{1D55A}",Iota:"\u0399",iota:"\u03B9",iprod:"\u2A3C",iquest:"\xBF",iscr:"\u{1D4BE}",Iscr:"\u2110",isin:"\u2208",isindot:"\u22F5",isinE:"\u22F9",isins:"\u22F4",isinsv:"\u22F3",isinv:"\u2208",it:"\u2062",Itilde:"\u0128",itilde:"\u0129",Iukcy:"\u0406",iukcy:"\u0456",Iuml:"\xCF",iuml:"\xEF",Jcirc:"\u0134",jcirc:"\u0135",Jcy:"\u0419",jcy:"\u0439",Jfr:"\u{1D50D}",jfr:"\u{1D527}",jmath:"\u0237",Jopf:"\u{1D541}",jopf:"\u{1D55B}",Jscr:"\u{1D4A5}",jscr:"\u{1D4BF}",Jsercy:"\u0408",jsercy:"\u0458",Jukcy:"\u0404",jukcy:"\u0454",Kappa:"\u039A",kappa:"\u03BA",kappav:"\u03F0",Kcedil:"\u0136",kcedil:"\u0137",Kcy:"\u041A",kcy:"\u043A",Kfr:"\u{1D50E}",kfr:"\u{1D528}",kgreen:"\u0138",KHcy:"\u0425",khcy:"\u0445",KJcy:"\u040C",kjcy:"\u045C",Kopf:"\u{1D542}",kopf:"\u{1D55C}",Kscr:"\u{1D4A6}",kscr:"\u{1D4C0}",lAarr:"\u21DA",Lacute:"\u0139",lacute:"\u013A",laemptyv:"\u29B4",lagran:"\u2112",Lambda:"\u039B",lambda:"\u03BB",lang:"\u27E8",Lang:"\u27EA",langd:"\u2991",langle:"\u27E8",lap:"\u2A85",Laplacetrf:"\u2112",laquo:"\xAB",larrb:"\u21E4",larrbfs:"\u291F",larr:"\u2190",Larr:"\u219E",lArr:"\u21D0",larrfs:"\u291D",larrhk:"\u21A9",larrlp:"\u21AB",larrpl:"\u2939",larrsim:"\u2973",larrtl:"\u21A2",latail:"\u2919",lAtail:"\u291B",lat:"\u2AAB",late:"\u2AAD",lates:"\u2AAD\uFE00",lbarr:"\u290C",lBarr:"\u290E",lbbrk:"\u2772",lbrace:"{",lbrack:"[",lbrke:"\u298B",lbrksld:"\u298F",lbrkslu:"\u298D",Lcaron:"\u013D",lcaron:"\u013E",Lcedil:"\u013B",lcedil:"\u013C",lceil:"\u2308",lcub:"{",Lcy:"\u041B",lcy:"\u043B",ldca:"\u2936",ldquo:"\u201C",ldquor:"\u201E",ldrdhar:"\u2967",ldrushar:"\u294B",ldsh:"\u21B2",le:"\u2264",lE:"\u2266",LeftAngleBracket:"\u27E8",LeftArrowBar:"\u21E4",leftarrow:"\u2190",LeftArrow:"\u2190",Leftarrow:"\u21D0",LeftArrowRightArrow:"\u21C6",leftarrowtail:"\u21A2",LeftCeiling:"\u2308",LeftDoubleBracket:"\u27E6",LeftDownTeeVector:"\u2961",LeftDownVectorBar:"\u2959",LeftDownVector:"\u21C3",LeftFloor:"\u230A",leftharpoondown:"\u21BD",leftharpoonup:"\u21BC",leftleftarrows:"\u21C7",leftrightarrow:"\u2194",LeftRightArrow:"\u2194",Leftrightarrow:"\u21D4",leftrightarrows:"\u21C6",leftrightharpoons:"\u21CB",leftrightsquigarrow:"\u21AD",LeftRightVector:"\u294E",LeftTeeArrow:"\u21A4",LeftTee:"\u22A3",LeftTeeVector:"\u295A",leftthreetimes:"\u22CB",LeftTriangleBar:"\u29CF",LeftTriangle:"\u22B2",LeftTriangleEqual:"\u22B4",LeftUpDownVector:"\u2951",LeftUpTeeVector:"\u2960",LeftUpVectorBar:"\u2958",LeftUpVector:"\u21BF",LeftVectorBar:"\u2952",LeftVector:"\u21BC",lEg:"\u2A8B",leg:"\u22DA",leq:"\u2264",leqq:"\u2266",leqslant:"\u2A7D",lescc:"\u2AA8",les:"\u2A7D",lesdot:"\u2A7F",lesdoto:"\u2A81",lesdotor:"\u2A83",lesg:"\u22DA\uFE00",lesges:"\u2A93",lessapprox:"\u2A85",lessdot:"\u22D6",lesseqgtr:"\u22DA",lesseqqgtr:"\u2A8B",LessEqualGreater:"\u22DA",LessFullEqual:"\u2266",LessGreater:"\u2276",lessgtr:"\u2276",LessLess:"\u2AA1",lesssim:"\u2272",LessSlantEqual:"\u2A7D",LessTilde:"\u2272",lfisht:"\u297C",lfloor:"\u230A",Lfr:"\u{1D50F}",lfr:"\u{1D529}",lg:"\u2276",lgE:"\u2A91",lHar:"\u2962",lhard:"\u21BD",lharu:"\u21BC",lharul:"\u296A",lhblk:"\u2584",LJcy:"\u0409",ljcy:"\u0459",llarr:"\u21C7",ll:"\u226A",Ll:"\u22D8",llcorner:"\u231E",Lleftarrow:"\u21DA",llhard:"\u296B",lltri:"\u25FA",Lmidot:"\u013F",lmidot:"\u0140",lmoustache:"\u23B0",lmoust:"\u23B0",lnap:"\u2A89",lnapprox:"\u2A89",lne:"\u2A87",lnE:"\u2268",lneq:"\u2A87",lneqq:"\u2268",lnsim:"\u22E6",loang:"\u27EC",loarr:"\u21FD",lobrk:"\u27E6",longleftarrow:"\u27F5",LongLeftArrow:"\u27F5",Longleftarrow:"\u27F8",longleftrightarrow:"\u27F7",LongLeftRightArrow:"\u27F7",Longleftrightarrow:"\u27FA",longmapsto:"\u27FC",longrightarrow:"\u27F6",LongRightArrow:"\u27F6",Longrightarrow:"\u27F9",looparrowleft:"\u21AB",looparrowright:"\u21AC",lopar:"\u2985",Lopf:"\u{1D543}",lopf:"\u{1D55D}",loplus:"\u2A2D",lotimes:"\u2A34",lowast:"\u2217",lowbar:"_",LowerLeftArrow:"\u2199",LowerRightArrow:"\u2198",loz:"\u25CA",lozenge:"\u25CA",lozf:"\u29EB",lpar:"(",lparlt:"\u2993",lrarr:"\u21C6",lrcorner:"\u231F",lrhar:"\u21CB",lrhard:"\u296D",lrm:"\u200E",lrtri:"\u22BF",lsaquo:"\u2039",lscr:"\u{1D4C1}",Lscr:"\u2112",lsh:"\u21B0",Lsh:"\u21B0",lsim:"\u2272",lsime:"\u2A8D",lsimg:"\u2A8F",lsqb:"[",lsquo:"\u2018",lsquor:"\u201A",Lstrok:"\u0141",lstrok:"\u0142",ltcc:"\u2AA6",ltcir:"\u2A79",lt:"<",LT:"<",Lt:"\u226A",ltdot:"\u22D6",lthree:"\u22CB",ltimes:"\u22C9",ltlarr:"\u2976",ltquest:"\u2A7B",ltri:"\u25C3",ltrie:"\u22B4",ltrif:"\u25C2",ltrPar:"\u2996",lurdshar:"\u294A",luruhar:"\u2966",lvertneqq:"\u2268\uFE00",lvnE:"\u2268\uFE00",macr:"\xAF",male:"\u2642",malt:"\u2720",maltese:"\u2720",Map:"\u2905",map:"\u21A6",mapsto:"\u21A6",mapstodown:"\u21A7",mapstoleft:"\u21A4",mapstoup:"\u21A5",marker:"\u25AE",mcomma:"\u2A29",Mcy:"\u041C",mcy:"\u043C",mdash:"\u2014",mDDot:"\u223A",measuredangle:"\u2221",MediumSpace:"\u205F",Mellintrf:"\u2133",Mfr:"\u{1D510}",mfr:"\u{1D52A}",mho:"\u2127",micro:"\xB5",midast:"*",midcir:"\u2AF0",mid:"\u2223",middot:"\xB7",minusb:"\u229F",minus:"\u2212",minusd:"\u2238",minusdu:"\u2A2A",MinusPlus:"\u2213",mlcp:"\u2ADB",mldr:"\u2026",mnplus:"\u2213",models:"\u22A7",Mopf:"\u{1D544}",mopf:"\u{1D55E}",mp:"\u2213",mscr:"\u{1D4C2}",Mscr:"\u2133",mstpos:"\u223E",Mu:"\u039C",mu:"\u03BC",multimap:"\u22B8",mumap:"\u22B8",nabla:"\u2207",Nacute:"\u0143",nacute:"\u0144",nang:"\u2220\u20D2",nap:"\u2249",napE:"\u2A70\u0338",napid:"\u224B\u0338",napos:"\u0149",napprox:"\u2249",natural:"\u266E",naturals:"\u2115",natur:"\u266E",nbsp:"\xA0",nbump:"\u224E\u0338",nbumpe:"\u224F\u0338",ncap:"\u2A43",Ncaron:"\u0147",ncaron:"\u0148",Ncedil:"\u0145",ncedil:"\u0146",ncong:"\u2247",ncongdot:"\u2A6D\u0338",ncup:"\u2A42",Ncy:"\u041D",ncy:"\u043D",ndash:"\u2013",nearhk:"\u2924",nearr:"\u2197",neArr:"\u21D7",nearrow:"\u2197",ne:"\u2260",nedot:"\u2250\u0338",NegativeMediumSpace:"\u200B",NegativeThickSpace:"\u200B",NegativeThinSpace:"\u200B",NegativeVeryThinSpace:"\u200B",nequiv:"\u2262",nesear:"\u2928",nesim:"\u2242\u0338",NestedGreaterGreater:"\u226B",NestedLessLess:"\u226A",NewLine:` +`,nexist:"\u2204",nexists:"\u2204",Nfr:"\u{1D511}",nfr:"\u{1D52B}",ngE:"\u2267\u0338",nge:"\u2271",ngeq:"\u2271",ngeqq:"\u2267\u0338",ngeqslant:"\u2A7E\u0338",nges:"\u2A7E\u0338",nGg:"\u22D9\u0338",ngsim:"\u2275",nGt:"\u226B\u20D2",ngt:"\u226F",ngtr:"\u226F",nGtv:"\u226B\u0338",nharr:"\u21AE",nhArr:"\u21CE",nhpar:"\u2AF2",ni:"\u220B",nis:"\u22FC",nisd:"\u22FA",niv:"\u220B",NJcy:"\u040A",njcy:"\u045A",nlarr:"\u219A",nlArr:"\u21CD",nldr:"\u2025",nlE:"\u2266\u0338",nle:"\u2270",nleftarrow:"\u219A",nLeftarrow:"\u21CD",nleftrightarrow:"\u21AE",nLeftrightarrow:"\u21CE",nleq:"\u2270",nleqq:"\u2266\u0338",nleqslant:"\u2A7D\u0338",nles:"\u2A7D\u0338",nless:"\u226E",nLl:"\u22D8\u0338",nlsim:"\u2274",nLt:"\u226A\u20D2",nlt:"\u226E",nltri:"\u22EA",nltrie:"\u22EC",nLtv:"\u226A\u0338",nmid:"\u2224",NoBreak:"\u2060",NonBreakingSpace:"\xA0",nopf:"\u{1D55F}",Nopf:"\u2115",Not:"\u2AEC",not:"\xAC",NotCongruent:"\u2262",NotCupCap:"\u226D",NotDoubleVerticalBar:"\u2226",NotElement:"\u2209",NotEqual:"\u2260",NotEqualTilde:"\u2242\u0338",NotExists:"\u2204",NotGreater:"\u226F",NotGreaterEqual:"\u2271",NotGreaterFullEqual:"\u2267\u0338",NotGreaterGreater:"\u226B\u0338",NotGreaterLess:"\u2279",NotGreaterSlantEqual:"\u2A7E\u0338",NotGreaterTilde:"\u2275",NotHumpDownHump:"\u224E\u0338",NotHumpEqual:"\u224F\u0338",notin:"\u2209",notindot:"\u22F5\u0338",notinE:"\u22F9\u0338",notinva:"\u2209",notinvb:"\u22F7",notinvc:"\u22F6",NotLeftTriangleBar:"\u29CF\u0338",NotLeftTriangle:"\u22EA",NotLeftTriangleEqual:"\u22EC",NotLess:"\u226E",NotLessEqual:"\u2270",NotLessGreater:"\u2278",NotLessLess:"\u226A\u0338",NotLessSlantEqual:"\u2A7D\u0338",NotLessTilde:"\u2274",NotNestedGreaterGreater:"\u2AA2\u0338",NotNestedLessLess:"\u2AA1\u0338",notni:"\u220C",notniva:"\u220C",notnivb:"\u22FE",notnivc:"\u22FD",NotPrecedes:"\u2280",NotPrecedesEqual:"\u2AAF\u0338",NotPrecedesSlantEqual:"\u22E0",NotReverseElement:"\u220C",NotRightTriangleBar:"\u29D0\u0338",NotRightTriangle:"\u22EB",NotRightTriangleEqual:"\u22ED",NotSquareSubset:"\u228F\u0338",NotSquareSubsetEqual:"\u22E2",NotSquareSuperset:"\u2290\u0338",NotSquareSupersetEqual:"\u22E3",NotSubset:"\u2282\u20D2",NotSubsetEqual:"\u2288",NotSucceeds:"\u2281",NotSucceedsEqual:"\u2AB0\u0338",NotSucceedsSlantEqual:"\u22E1",NotSucceedsTilde:"\u227F\u0338",NotSuperset:"\u2283\u20D2",NotSupersetEqual:"\u2289",NotTilde:"\u2241",NotTildeEqual:"\u2244",NotTildeFullEqual:"\u2247",NotTildeTilde:"\u2249",NotVerticalBar:"\u2224",nparallel:"\u2226",npar:"\u2226",nparsl:"\u2AFD\u20E5",npart:"\u2202\u0338",npolint:"\u2A14",npr:"\u2280",nprcue:"\u22E0",nprec:"\u2280",npreceq:"\u2AAF\u0338",npre:"\u2AAF\u0338",nrarrc:"\u2933\u0338",nrarr:"\u219B",nrArr:"\u21CF",nrarrw:"\u219D\u0338",nrightarrow:"\u219B",nRightarrow:"\u21CF",nrtri:"\u22EB",nrtrie:"\u22ED",nsc:"\u2281",nsccue:"\u22E1",nsce:"\u2AB0\u0338",Nscr:"\u{1D4A9}",nscr:"\u{1D4C3}",nshortmid:"\u2224",nshortparallel:"\u2226",nsim:"\u2241",nsime:"\u2244",nsimeq:"\u2244",nsmid:"\u2224",nspar:"\u2226",nsqsube:"\u22E2",nsqsupe:"\u22E3",nsub:"\u2284",nsubE:"\u2AC5\u0338",nsube:"\u2288",nsubset:"\u2282\u20D2",nsubseteq:"\u2288",nsubseteqq:"\u2AC5\u0338",nsucc:"\u2281",nsucceq:"\u2AB0\u0338",nsup:"\u2285",nsupE:"\u2AC6\u0338",nsupe:"\u2289",nsupset:"\u2283\u20D2",nsupseteq:"\u2289",nsupseteqq:"\u2AC6\u0338",ntgl:"\u2279",Ntilde:"\xD1",ntilde:"\xF1",ntlg:"\u2278",ntriangleleft:"\u22EA",ntrianglelefteq:"\u22EC",ntriangleright:"\u22EB",ntrianglerighteq:"\u22ED",Nu:"\u039D",nu:"\u03BD",num:"#",numero:"\u2116",numsp:"\u2007",nvap:"\u224D\u20D2",nvdash:"\u22AC",nvDash:"\u22AD",nVdash:"\u22AE",nVDash:"\u22AF",nvge:"\u2265\u20D2",nvgt:">\u20D2",nvHarr:"\u2904",nvinfin:"\u29DE",nvlArr:"\u2902",nvle:"\u2264\u20D2",nvlt:"<\u20D2",nvltrie:"\u22B4\u20D2",nvrArr:"\u2903",nvrtrie:"\u22B5\u20D2",nvsim:"\u223C\u20D2",nwarhk:"\u2923",nwarr:"\u2196",nwArr:"\u21D6",nwarrow:"\u2196",nwnear:"\u2927",Oacute:"\xD3",oacute:"\xF3",oast:"\u229B",Ocirc:"\xD4",ocirc:"\xF4",ocir:"\u229A",Ocy:"\u041E",ocy:"\u043E",odash:"\u229D",Odblac:"\u0150",odblac:"\u0151",odiv:"\u2A38",odot:"\u2299",odsold:"\u29BC",OElig:"\u0152",oelig:"\u0153",ofcir:"\u29BF",Ofr:"\u{1D512}",ofr:"\u{1D52C}",ogon:"\u02DB",Ograve:"\xD2",ograve:"\xF2",ogt:"\u29C1",ohbar:"\u29B5",ohm:"\u03A9",oint:"\u222E",olarr:"\u21BA",olcir:"\u29BE",olcross:"\u29BB",oline:"\u203E",olt:"\u29C0",Omacr:"\u014C",omacr:"\u014D",Omega:"\u03A9",omega:"\u03C9",Omicron:"\u039F",omicron:"\u03BF",omid:"\u29B6",ominus:"\u2296",Oopf:"\u{1D546}",oopf:"\u{1D560}",opar:"\u29B7",OpenCurlyDoubleQuote:"\u201C",OpenCurlyQuote:"\u2018",operp:"\u29B9",oplus:"\u2295",orarr:"\u21BB",Or:"\u2A54",or:"\u2228",ord:"\u2A5D",order:"\u2134",orderof:"\u2134",ordf:"\xAA",ordm:"\xBA",origof:"\u22B6",oror:"\u2A56",orslope:"\u2A57",orv:"\u2A5B",oS:"\u24C8",Oscr:"\u{1D4AA}",oscr:"\u2134",Oslash:"\xD8",oslash:"\xF8",osol:"\u2298",Otilde:"\xD5",otilde:"\xF5",otimesas:"\u2A36",Otimes:"\u2A37",otimes:"\u2297",Ouml:"\xD6",ouml:"\xF6",ovbar:"\u233D",OverBar:"\u203E",OverBrace:"\u23DE",OverBracket:"\u23B4",OverParenthesis:"\u23DC",para:"\xB6",parallel:"\u2225",par:"\u2225",parsim:"\u2AF3",parsl:"\u2AFD",part:"\u2202",PartialD:"\u2202",Pcy:"\u041F",pcy:"\u043F",percnt:"%",period:".",permil:"\u2030",perp:"\u22A5",pertenk:"\u2031",Pfr:"\u{1D513}",pfr:"\u{1D52D}",Phi:"\u03A6",phi:"\u03C6",phiv:"\u03D5",phmmat:"\u2133",phone:"\u260E",Pi:"\u03A0",pi:"\u03C0",pitchfork:"\u22D4",piv:"\u03D6",planck:"\u210F",planckh:"\u210E",plankv:"\u210F",plusacir:"\u2A23",plusb:"\u229E",pluscir:"\u2A22",plus:"+",plusdo:"\u2214",plusdu:"\u2A25",pluse:"\u2A72",PlusMinus:"\xB1",plusmn:"\xB1",plussim:"\u2A26",plustwo:"\u2A27",pm:"\xB1",Poincareplane:"\u210C",pointint:"\u2A15",popf:"\u{1D561}",Popf:"\u2119",pound:"\xA3",prap:"\u2AB7",Pr:"\u2ABB",pr:"\u227A",prcue:"\u227C",precapprox:"\u2AB7",prec:"\u227A",preccurlyeq:"\u227C",Precedes:"\u227A",PrecedesEqual:"\u2AAF",PrecedesSlantEqual:"\u227C",PrecedesTilde:"\u227E",preceq:"\u2AAF",precnapprox:"\u2AB9",precneqq:"\u2AB5",precnsim:"\u22E8",pre:"\u2AAF",prE:"\u2AB3",precsim:"\u227E",prime:"\u2032",Prime:"\u2033",primes:"\u2119",prnap:"\u2AB9",prnE:"\u2AB5",prnsim:"\u22E8",prod:"\u220F",Product:"\u220F",profalar:"\u232E",profline:"\u2312",profsurf:"\u2313",prop:"\u221D",Proportional:"\u221D",Proportion:"\u2237",propto:"\u221D",prsim:"\u227E",prurel:"\u22B0",Pscr:"\u{1D4AB}",pscr:"\u{1D4C5}",Psi:"\u03A8",psi:"\u03C8",puncsp:"\u2008",Qfr:"\u{1D514}",qfr:"\u{1D52E}",qint:"\u2A0C",qopf:"\u{1D562}",Qopf:"\u211A",qprime:"\u2057",Qscr:"\u{1D4AC}",qscr:"\u{1D4C6}",quaternions:"\u210D",quatint:"\u2A16",quest:"?",questeq:"\u225F",quot:'"',QUOT:'"',rAarr:"\u21DB",race:"\u223D\u0331",Racute:"\u0154",racute:"\u0155",radic:"\u221A",raemptyv:"\u29B3",rang:"\u27E9",Rang:"\u27EB",rangd:"\u2992",range:"\u29A5",rangle:"\u27E9",raquo:"\xBB",rarrap:"\u2975",rarrb:"\u21E5",rarrbfs:"\u2920",rarrc:"\u2933",rarr:"\u2192",Rarr:"\u21A0",rArr:"\u21D2",rarrfs:"\u291E",rarrhk:"\u21AA",rarrlp:"\u21AC",rarrpl:"\u2945",rarrsim:"\u2974",Rarrtl:"\u2916",rarrtl:"\u21A3",rarrw:"\u219D",ratail:"\u291A",rAtail:"\u291C",ratio:"\u2236",rationals:"\u211A",rbarr:"\u290D",rBarr:"\u290F",RBarr:"\u2910",rbbrk:"\u2773",rbrace:"}",rbrack:"]",rbrke:"\u298C",rbrksld:"\u298E",rbrkslu:"\u2990",Rcaron:"\u0158",rcaron:"\u0159",Rcedil:"\u0156",rcedil:"\u0157",rceil:"\u2309",rcub:"}",Rcy:"\u0420",rcy:"\u0440",rdca:"\u2937",rdldhar:"\u2969",rdquo:"\u201D",rdquor:"\u201D",rdsh:"\u21B3",real:"\u211C",realine:"\u211B",realpart:"\u211C",reals:"\u211D",Re:"\u211C",rect:"\u25AD",reg:"\xAE",REG:"\xAE",ReverseElement:"\u220B",ReverseEquilibrium:"\u21CB",ReverseUpEquilibrium:"\u296F",rfisht:"\u297D",rfloor:"\u230B",rfr:"\u{1D52F}",Rfr:"\u211C",rHar:"\u2964",rhard:"\u21C1",rharu:"\u21C0",rharul:"\u296C",Rho:"\u03A1",rho:"\u03C1",rhov:"\u03F1",RightAngleBracket:"\u27E9",RightArrowBar:"\u21E5",rightarrow:"\u2192",RightArrow:"\u2192",Rightarrow:"\u21D2",RightArrowLeftArrow:"\u21C4",rightarrowtail:"\u21A3",RightCeiling:"\u2309",RightDoubleBracket:"\u27E7",RightDownTeeVector:"\u295D",RightDownVectorBar:"\u2955",RightDownVector:"\u21C2",RightFloor:"\u230B",rightharpoondown:"\u21C1",rightharpoonup:"\u21C0",rightleftarrows:"\u21C4",rightleftharpoons:"\u21CC",rightrightarrows:"\u21C9",rightsquigarrow:"\u219D",RightTeeArrow:"\u21A6",RightTee:"\u22A2",RightTeeVector:"\u295B",rightthreetimes:"\u22CC",RightTriangleBar:"\u29D0",RightTriangle:"\u22B3",RightTriangleEqual:"\u22B5",RightUpDownVector:"\u294F",RightUpTeeVector:"\u295C",RightUpVectorBar:"\u2954",RightUpVector:"\u21BE",RightVectorBar:"\u2953",RightVector:"\u21C0",ring:"\u02DA",risingdotseq:"\u2253",rlarr:"\u21C4",rlhar:"\u21CC",rlm:"\u200F",rmoustache:"\u23B1",rmoust:"\u23B1",rnmid:"\u2AEE",roang:"\u27ED",roarr:"\u21FE",robrk:"\u27E7",ropar:"\u2986",ropf:"\u{1D563}",Ropf:"\u211D",roplus:"\u2A2E",rotimes:"\u2A35",RoundImplies:"\u2970",rpar:")",rpargt:"\u2994",rppolint:"\u2A12",rrarr:"\u21C9",Rrightarrow:"\u21DB",rsaquo:"\u203A",rscr:"\u{1D4C7}",Rscr:"\u211B",rsh:"\u21B1",Rsh:"\u21B1",rsqb:"]",rsquo:"\u2019",rsquor:"\u2019",rthree:"\u22CC",rtimes:"\u22CA",rtri:"\u25B9",rtrie:"\u22B5",rtrif:"\u25B8",rtriltri:"\u29CE",RuleDelayed:"\u29F4",ruluhar:"\u2968",rx:"\u211E",Sacute:"\u015A",sacute:"\u015B",sbquo:"\u201A",scap:"\u2AB8",Scaron:"\u0160",scaron:"\u0161",Sc:"\u2ABC",sc:"\u227B",sccue:"\u227D",sce:"\u2AB0",scE:"\u2AB4",Scedil:"\u015E",scedil:"\u015F",Scirc:"\u015C",scirc:"\u015D",scnap:"\u2ABA",scnE:"\u2AB6",scnsim:"\u22E9",scpolint:"\u2A13",scsim:"\u227F",Scy:"\u0421",scy:"\u0441",sdotb:"\u22A1",sdot:"\u22C5",sdote:"\u2A66",searhk:"\u2925",searr:"\u2198",seArr:"\u21D8",searrow:"\u2198",sect:"\xA7",semi:";",seswar:"\u2929",setminus:"\u2216",setmn:"\u2216",sext:"\u2736",Sfr:"\u{1D516}",sfr:"\u{1D530}",sfrown:"\u2322",sharp:"\u266F",SHCHcy:"\u0429",shchcy:"\u0449",SHcy:"\u0428",shcy:"\u0448",ShortDownArrow:"\u2193",ShortLeftArrow:"\u2190",shortmid:"\u2223",shortparallel:"\u2225",ShortRightArrow:"\u2192",ShortUpArrow:"\u2191",shy:"\xAD",Sigma:"\u03A3",sigma:"\u03C3",sigmaf:"\u03C2",sigmav:"\u03C2",sim:"\u223C",simdot:"\u2A6A",sime:"\u2243",simeq:"\u2243",simg:"\u2A9E",simgE:"\u2AA0",siml:"\u2A9D",simlE:"\u2A9F",simne:"\u2246",simplus:"\u2A24",simrarr:"\u2972",slarr:"\u2190",SmallCircle:"\u2218",smallsetminus:"\u2216",smashp:"\u2A33",smeparsl:"\u29E4",smid:"\u2223",smile:"\u2323",smt:"\u2AAA",smte:"\u2AAC",smtes:"\u2AAC\uFE00",SOFTcy:"\u042C",softcy:"\u044C",solbar:"\u233F",solb:"\u29C4",sol:"/",Sopf:"\u{1D54A}",sopf:"\u{1D564}",spades:"\u2660",spadesuit:"\u2660",spar:"\u2225",sqcap:"\u2293",sqcaps:"\u2293\uFE00",sqcup:"\u2294",sqcups:"\u2294\uFE00",Sqrt:"\u221A",sqsub:"\u228F",sqsube:"\u2291",sqsubset:"\u228F",sqsubseteq:"\u2291",sqsup:"\u2290",sqsupe:"\u2292",sqsupset:"\u2290",sqsupseteq:"\u2292",square:"\u25A1",Square:"\u25A1",SquareIntersection:"\u2293",SquareSubset:"\u228F",SquareSubsetEqual:"\u2291",SquareSuperset:"\u2290",SquareSupersetEqual:"\u2292",SquareUnion:"\u2294",squarf:"\u25AA",squ:"\u25A1",squf:"\u25AA",srarr:"\u2192",Sscr:"\u{1D4AE}",sscr:"\u{1D4C8}",ssetmn:"\u2216",ssmile:"\u2323",sstarf:"\u22C6",Star:"\u22C6",star:"\u2606",starf:"\u2605",straightepsilon:"\u03F5",straightphi:"\u03D5",strns:"\xAF",sub:"\u2282",Sub:"\u22D0",subdot:"\u2ABD",subE:"\u2AC5",sube:"\u2286",subedot:"\u2AC3",submult:"\u2AC1",subnE:"\u2ACB",subne:"\u228A",subplus:"\u2ABF",subrarr:"\u2979",subset:"\u2282",Subset:"\u22D0",subseteq:"\u2286",subseteqq:"\u2AC5",SubsetEqual:"\u2286",subsetneq:"\u228A",subsetneqq:"\u2ACB",subsim:"\u2AC7",subsub:"\u2AD5",subsup:"\u2AD3",succapprox:"\u2AB8",succ:"\u227B",succcurlyeq:"\u227D",Succeeds:"\u227B",SucceedsEqual:"\u2AB0",SucceedsSlantEqual:"\u227D",SucceedsTilde:"\u227F",succeq:"\u2AB0",succnapprox:"\u2ABA",succneqq:"\u2AB6",succnsim:"\u22E9",succsim:"\u227F",SuchThat:"\u220B",sum:"\u2211",Sum:"\u2211",sung:"\u266A",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",sup:"\u2283",Sup:"\u22D1",supdot:"\u2ABE",supdsub:"\u2AD8",supE:"\u2AC6",supe:"\u2287",supedot:"\u2AC4",Superset:"\u2283",SupersetEqual:"\u2287",suphsol:"\u27C9",suphsub:"\u2AD7",suplarr:"\u297B",supmult:"\u2AC2",supnE:"\u2ACC",supne:"\u228B",supplus:"\u2AC0",supset:"\u2283",Supset:"\u22D1",supseteq:"\u2287",supseteqq:"\u2AC6",supsetneq:"\u228B",supsetneqq:"\u2ACC",supsim:"\u2AC8",supsub:"\u2AD4",supsup:"\u2AD6",swarhk:"\u2926",swarr:"\u2199",swArr:"\u21D9",swarrow:"\u2199",swnwar:"\u292A",szlig:"\xDF",Tab:" ",target:"\u2316",Tau:"\u03A4",tau:"\u03C4",tbrk:"\u23B4",Tcaron:"\u0164",tcaron:"\u0165",Tcedil:"\u0162",tcedil:"\u0163",Tcy:"\u0422",tcy:"\u0442",tdot:"\u20DB",telrec:"\u2315",Tfr:"\u{1D517}",tfr:"\u{1D531}",there4:"\u2234",therefore:"\u2234",Therefore:"\u2234",Theta:"\u0398",theta:"\u03B8",thetasym:"\u03D1",thetav:"\u03D1",thickapprox:"\u2248",thicksim:"\u223C",ThickSpace:"\u205F\u200A",ThinSpace:"\u2009",thinsp:"\u2009",thkap:"\u2248",thksim:"\u223C",THORN:"\xDE",thorn:"\xFE",tilde:"\u02DC",Tilde:"\u223C",TildeEqual:"\u2243",TildeFullEqual:"\u2245",TildeTilde:"\u2248",timesbar:"\u2A31",timesb:"\u22A0",times:"\xD7",timesd:"\u2A30",tint:"\u222D",toea:"\u2928",topbot:"\u2336",topcir:"\u2AF1",top:"\u22A4",Topf:"\u{1D54B}",topf:"\u{1D565}",topfork:"\u2ADA",tosa:"\u2929",tprime:"\u2034",trade:"\u2122",TRADE:"\u2122",triangle:"\u25B5",triangledown:"\u25BF",triangleleft:"\u25C3",trianglelefteq:"\u22B4",triangleq:"\u225C",triangleright:"\u25B9",trianglerighteq:"\u22B5",tridot:"\u25EC",trie:"\u225C",triminus:"\u2A3A",TripleDot:"\u20DB",triplus:"\u2A39",trisb:"\u29CD",tritime:"\u2A3B",trpezium:"\u23E2",Tscr:"\u{1D4AF}",tscr:"\u{1D4C9}",TScy:"\u0426",tscy:"\u0446",TSHcy:"\u040B",tshcy:"\u045B",Tstrok:"\u0166",tstrok:"\u0167",twixt:"\u226C",twoheadleftarrow:"\u219E",twoheadrightarrow:"\u21A0",Uacute:"\xDA",uacute:"\xFA",uarr:"\u2191",Uarr:"\u219F",uArr:"\u21D1",Uarrocir:"\u2949",Ubrcy:"\u040E",ubrcy:"\u045E",Ubreve:"\u016C",ubreve:"\u016D",Ucirc:"\xDB",ucirc:"\xFB",Ucy:"\u0423",ucy:"\u0443",udarr:"\u21C5",Udblac:"\u0170",udblac:"\u0171",udhar:"\u296E",ufisht:"\u297E",Ufr:"\u{1D518}",ufr:"\u{1D532}",Ugrave:"\xD9",ugrave:"\xF9",uHar:"\u2963",uharl:"\u21BF",uharr:"\u21BE",uhblk:"\u2580",ulcorn:"\u231C",ulcorner:"\u231C",ulcrop:"\u230F",ultri:"\u25F8",Umacr:"\u016A",umacr:"\u016B",uml:"\xA8",UnderBar:"_",UnderBrace:"\u23DF",UnderBracket:"\u23B5",UnderParenthesis:"\u23DD",Union:"\u22C3",UnionPlus:"\u228E",Uogon:"\u0172",uogon:"\u0173",Uopf:"\u{1D54C}",uopf:"\u{1D566}",UpArrowBar:"\u2912",uparrow:"\u2191",UpArrow:"\u2191",Uparrow:"\u21D1",UpArrowDownArrow:"\u21C5",updownarrow:"\u2195",UpDownArrow:"\u2195",Updownarrow:"\u21D5",UpEquilibrium:"\u296E",upharpoonleft:"\u21BF",upharpoonright:"\u21BE",uplus:"\u228E",UpperLeftArrow:"\u2196",UpperRightArrow:"\u2197",upsi:"\u03C5",Upsi:"\u03D2",upsih:"\u03D2",Upsilon:"\u03A5",upsilon:"\u03C5",UpTeeArrow:"\u21A5",UpTee:"\u22A5",upuparrows:"\u21C8",urcorn:"\u231D",urcorner:"\u231D",urcrop:"\u230E",Uring:"\u016E",uring:"\u016F",urtri:"\u25F9",Uscr:"\u{1D4B0}",uscr:"\u{1D4CA}",utdot:"\u22F0",Utilde:"\u0168",utilde:"\u0169",utri:"\u25B5",utrif:"\u25B4",uuarr:"\u21C8",Uuml:"\xDC",uuml:"\xFC",uwangle:"\u29A7",vangrt:"\u299C",varepsilon:"\u03F5",varkappa:"\u03F0",varnothing:"\u2205",varphi:"\u03D5",varpi:"\u03D6",varpropto:"\u221D",varr:"\u2195",vArr:"\u21D5",varrho:"\u03F1",varsigma:"\u03C2",varsubsetneq:"\u228A\uFE00",varsubsetneqq:"\u2ACB\uFE00",varsupsetneq:"\u228B\uFE00",varsupsetneqq:"\u2ACC\uFE00",vartheta:"\u03D1",vartriangleleft:"\u22B2",vartriangleright:"\u22B3",vBar:"\u2AE8",Vbar:"\u2AEB",vBarv:"\u2AE9",Vcy:"\u0412",vcy:"\u0432",vdash:"\u22A2",vDash:"\u22A8",Vdash:"\u22A9",VDash:"\u22AB",Vdashl:"\u2AE6",veebar:"\u22BB",vee:"\u2228",Vee:"\u22C1",veeeq:"\u225A",vellip:"\u22EE",verbar:"|",Verbar:"\u2016",vert:"|",Vert:"\u2016",VerticalBar:"\u2223",VerticalLine:"|",VerticalSeparator:"\u2758",VerticalTilde:"\u2240",VeryThinSpace:"\u200A",Vfr:"\u{1D519}",vfr:"\u{1D533}",vltri:"\u22B2",vnsub:"\u2282\u20D2",vnsup:"\u2283\u20D2",Vopf:"\u{1D54D}",vopf:"\u{1D567}",vprop:"\u221D",vrtri:"\u22B3",Vscr:"\u{1D4B1}",vscr:"\u{1D4CB}",vsubnE:"\u2ACB\uFE00",vsubne:"\u228A\uFE00",vsupnE:"\u2ACC\uFE00",vsupne:"\u228B\uFE00",Vvdash:"\u22AA",vzigzag:"\u299A",Wcirc:"\u0174",wcirc:"\u0175",wedbar:"\u2A5F",wedge:"\u2227",Wedge:"\u22C0",wedgeq:"\u2259",weierp:"\u2118",Wfr:"\u{1D51A}",wfr:"\u{1D534}",Wopf:"\u{1D54E}",wopf:"\u{1D568}",wp:"\u2118",wr:"\u2240",wreath:"\u2240",Wscr:"\u{1D4B2}",wscr:"\u{1D4CC}",xcap:"\u22C2",xcirc:"\u25EF",xcup:"\u22C3",xdtri:"\u25BD",Xfr:"\u{1D51B}",xfr:"\u{1D535}",xharr:"\u27F7",xhArr:"\u27FA",Xi:"\u039E",xi:"\u03BE",xlarr:"\u27F5",xlArr:"\u27F8",xmap:"\u27FC",xnis:"\u22FB",xodot:"\u2A00",Xopf:"\u{1D54F}",xopf:"\u{1D569}",xoplus:"\u2A01",xotime:"\u2A02",xrarr:"\u27F6",xrArr:"\u27F9",Xscr:"\u{1D4B3}",xscr:"\u{1D4CD}",xsqcup:"\u2A06",xuplus:"\u2A04",xutri:"\u25B3",xvee:"\u22C1",xwedge:"\u22C0",Yacute:"\xDD",yacute:"\xFD",YAcy:"\u042F",yacy:"\u044F",Ycirc:"\u0176",ycirc:"\u0177",Ycy:"\u042B",ycy:"\u044B",yen:"\xA5",Yfr:"\u{1D51C}",yfr:"\u{1D536}",YIcy:"\u0407",yicy:"\u0457",Yopf:"\u{1D550}",yopf:"\u{1D56A}",Yscr:"\u{1D4B4}",yscr:"\u{1D4CE}",YUcy:"\u042E",yucy:"\u044E",yuml:"\xFF",Yuml:"\u0178",Zacute:"\u0179",zacute:"\u017A",Zcaron:"\u017D",zcaron:"\u017E",Zcy:"\u0417",zcy:"\u0437",Zdot:"\u017B",zdot:"\u017C",zeetrf:"\u2128",ZeroWidthSpace:"\u200B",Zeta:"\u0396",zeta:"\u03B6",zfr:"\u{1D537}",Zfr:"\u2128",ZHcy:"\u0416",zhcy:"\u0436",zigrarr:"\u21DD",zopf:"\u{1D56B}",Zopf:"\u2124",Zscr:"\u{1D4B5}",zscr:"\u{1D4CF}",zwj:"\u200D",zwnj:"\u200C"}});var Up=Ne((o1,yv)=>{yv.exports={Aacute:"\xC1",aacute:"\xE1",Acirc:"\xC2",acirc:"\xE2",acute:"\xB4",AElig:"\xC6",aelig:"\xE6",Agrave:"\xC0",agrave:"\xE0",amp:"&",AMP:"&",Aring:"\xC5",aring:"\xE5",Atilde:"\xC3",atilde:"\xE3",Auml:"\xC4",auml:"\xE4",brvbar:"\xA6",Ccedil:"\xC7",ccedil:"\xE7",cedil:"\xB8",cent:"\xA2",copy:"\xA9",COPY:"\xA9",curren:"\xA4",deg:"\xB0",divide:"\xF7",Eacute:"\xC9",eacute:"\xE9",Ecirc:"\xCA",ecirc:"\xEA",Egrave:"\xC8",egrave:"\xE8",ETH:"\xD0",eth:"\xF0",Euml:"\xCB",euml:"\xEB",frac12:"\xBD",frac14:"\xBC",frac34:"\xBE",gt:">",GT:">",Iacute:"\xCD",iacute:"\xED",Icirc:"\xCE",icirc:"\xEE",iexcl:"\xA1",Igrave:"\xCC",igrave:"\xEC",iquest:"\xBF",Iuml:"\xCF",iuml:"\xEF",laquo:"\xAB",lt:"<",LT:"<",macr:"\xAF",micro:"\xB5",middot:"\xB7",nbsp:"\xA0",not:"\xAC",Ntilde:"\xD1",ntilde:"\xF1",Oacute:"\xD3",oacute:"\xF3",Ocirc:"\xD4",ocirc:"\xF4",Ograve:"\xD2",ograve:"\xF2",ordf:"\xAA",ordm:"\xBA",Oslash:"\xD8",oslash:"\xF8",Otilde:"\xD5",otilde:"\xF5",Ouml:"\xD6",ouml:"\xF6",para:"\xB6",plusmn:"\xB1",pound:"\xA3",quot:'"',QUOT:'"',raquo:"\xBB",reg:"\xAE",REG:"\xAE",sect:"\xA7",shy:"\xAD",sup1:"\xB9",sup2:"\xB2",sup3:"\xB3",szlig:"\xDF",THORN:"\xDE",thorn:"\xFE",times:"\xD7",Uacute:"\xDA",uacute:"\xFA",Ucirc:"\xDB",ucirc:"\xFB",Ugrave:"\xD9",ugrave:"\xF9",uml:"\xA8",Uuml:"\xDC",uuml:"\xFC",Yacute:"\xDD",yacute:"\xFD",yen:"\xA5",yuml:"\xFF"}});var lu=Ne((l1,Ev)=>{Ev.exports={amp:"&",apos:"'",gt:">",lt:"<",quot:'"'}});var Rp=Ne((i1,Sv)=>{Sv.exports={"0":65533,"128":8364,"130":8218,"131":402,"132":8222,"133":8230,"134":8224,"135":8225,"136":710,"137":8240,"138":352,"139":8249,"140":338,"142":381,"145":8216,"146":8217,"147":8220,"148":8221,"149":8226,"150":8211,"151":8212,"152":732,"153":8482,"154":353,"155":8250,"156":339,"158":382,"159":376}});var bp=Ne(xo=>{"use strict";var _v=xo&&xo.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(xo,"__esModule",{value:!0});var Fp=_v(Rp()),Tv=String.fromCodePoint||function(e){var t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|e&1023),t+=String.fromCharCode(e),t};function wv(e){return e>=55296&&e<=57343||e>1114111?"\uFFFD":(e in Fp.default&&(e=Fp.default[e]),Tv(e))}xo.default=wv});var su=Ne(Mt=>{"use strict";var mi=Mt&&Mt.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Mt,"__esModule",{value:!0});Mt.decodeHTML=Mt.decodeHTMLStrict=Mt.decodeXML=void 0;var iu=mi(ou()),Cv=mi(Up()),Nv=mi(lu()),zp=mi(bp()),Lv=/&(?:[a-zA-Z0-9]+|#[xX][\da-fA-F]+|#\d+);/g;Mt.decodeXML=jp(Nv.default);Mt.decodeHTMLStrict=jp(iu.default);function jp(e){var t=Bp(e);return function(n){return String(n).replace(Lv,t)}}var Hp=function(e,t){return e{"use strict";var qp=We&&We.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(We,"__esModule",{value:!0});We.escapeUTF8=We.escape=We.encodeNonAsciiHTML=We.encodeHTML=We.encodeXML=void 0;var kv=qp(lu()),Vp=Gp(kv.default),Wp=Xp(Vp);We.encodeXML=Yp(Vp);var Av=qp(ou()),au=Gp(Av.default),Mv=Xp(au);We.encodeHTML=xv(au,Mv);We.encodeNonAsciiHTML=Yp(au);function Gp(e){return Object.keys(e).sort().reduce(function(t,n){return t[e[n]]="&"+n+";",t},{})}function Xp(e){for(var t=[],n=[],r=0,o=Object.keys(e);r1?Ov(e):e.charCodeAt(0)).toString(16).toUpperCase()+";"}function xv(e,t){return function(n){return n.replace(t,function(r){return e[r]}).replace($p,gi)}}var Kp=new RegExp(Wp.source+"|"+$p.source,"g");function Dv(e){return e.replace(Kp,gi)}We.escape=Dv;function Pv(e){return e.replace(Wp,gi)}We.escapeUTF8=Pv;function Yp(e){return function(t){return t.replace(Kp,function(n){return e[n]||gi(n)})}}});var Zp=Ne(U=>{"use strict";Object.defineProperty(U,"__esModule",{value:!0});U.decodeXMLStrict=U.decodeHTML5Strict=U.decodeHTML4Strict=U.decodeHTML5=U.decodeHTML4=U.decodeHTMLStrict=U.decodeHTML=U.decodeXML=U.encodeHTML5=U.encodeHTML4=U.escapeUTF8=U.escape=U.encodeNonAsciiHTML=U.encodeHTML=U.encodeXML=U.encode=U.decodeStrict=U.decode=void 0;var hi=su(),Qp=uu();function Iv(e,t){return(!t||t<=0?hi.decodeXML:hi.decodeHTML)(e)}U.decode=Iv;function Uv(e,t){return(!t||t<=0?hi.decodeXML:hi.decodeHTMLStrict)(e)}U.decodeStrict=Uv;function Rv(e,t){return(!t||t<=0?Qp.encodeXML:Qp.encodeHTML)(e)}U.encode=Rv;var qn=uu();Object.defineProperty(U,"encodeXML",{enumerable:!0,get:function(){return qn.encodeXML}});Object.defineProperty(U,"encodeHTML",{enumerable:!0,get:function(){return qn.encodeHTML}});Object.defineProperty(U,"encodeNonAsciiHTML",{enumerable:!0,get:function(){return qn.encodeNonAsciiHTML}});Object.defineProperty(U,"escape",{enumerable:!0,get:function(){return qn.escape}});Object.defineProperty(U,"escapeUTF8",{enumerable:!0,get:function(){return qn.escapeUTF8}});Object.defineProperty(U,"encodeHTML4",{enumerable:!0,get:function(){return qn.encodeHTML}});Object.defineProperty(U,"encodeHTML5",{enumerable:!0,get:function(){return qn.encodeHTML}});var yn=su();Object.defineProperty(U,"decodeXML",{enumerable:!0,get:function(){return yn.decodeXML}});Object.defineProperty(U,"decodeHTML",{enumerable:!0,get:function(){return yn.decodeHTML}});Object.defineProperty(U,"decodeHTMLStrict",{enumerable:!0,get:function(){return yn.decodeHTMLStrict}});Object.defineProperty(U,"decodeHTML4",{enumerable:!0,get:function(){return yn.decodeHTML}});Object.defineProperty(U,"decodeHTML5",{enumerable:!0,get:function(){return yn.decodeHTML}});Object.defineProperty(U,"decodeHTML4Strict",{enumerable:!0,get:function(){return yn.decodeHTMLStrict}});Object.defineProperty(U,"decodeHTML5Strict",{enumerable:!0,get:function(){return yn.decodeHTMLStrict}});Object.defineProperty(U,"decodeXMLStrict",{enumerable:!0,get:function(){return yn.decodeXML}})});var um=Ne((f1,am)=>{"use strict";function Fv(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Jp(e,t){for(var n=0;n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(u){throw u},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var l=!0,i=!1,s;return{s:function(){n=n.call(e)},n:function(){var u=n.next();return l=u.done,u},e:function(u){i=!0,s=u},f:function(){try{!l&&n.return!=null&&n.return()}finally{if(i)throw s}}}}function zv(e,t){if(e){if(typeof e=="string")return em(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return em(e,t)}}function em(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0?e*40+55:0,i=t>0?t*40+55:0,s=n>0?n*40+55:0;r[o]=qv([l,i,s])}function im(e){for(var t=e.toString(16);t.length<2;)t="0"+t;return t}function qv(e){var t=[],n=lm(e),r;try{for(n.s();!(r=n.n()).done;){var o=r.value;t.push(im(o))}}catch(l){n.e(l)}finally{n.f()}return"#"+t.join("")}function nm(e,t,n,r){var o;return t==="text"?o=Xv(n,r):t==="display"?o=Wv(e,n,r):t==="xterm256Foreground"?o=Ei(e,r.colors[n]):t==="xterm256Background"?o=Si(e,r.colors[n]):t==="rgb"&&(o=Vv(e,n)),o}function Vv(e,t){t=t.substring(2).slice(0,-1);var n=+t.substr(0,2),r=t.substring(5).split(";"),o=r.map(function(l){return("0"+Number(l).toString(16)).substr(-2)}).join("");return yi(e,(n===38?"color:#":"background-color:#")+o)}function Wv(e,t,n){t=parseInt(t,10);var r={"-1":function(){return"
"},0:function(){return e.length&&sm(e)},1:function(){return En(e,"b")},3:function(){return En(e,"i")},4:function(){return En(e,"u")},8:function(){return yi(e,"display:none")},9:function(){return En(e,"strike")},22:function(){return yi(e,"font-weight:normal;text-decoration:none;font-style:normal")},23:function(){return om(e,"i")},24:function(){return om(e,"u")},39:function(){return Ei(e,n.fg)},49:function(){return Si(e,n.bg)},53:function(){return yi(e,"text-decoration:overline")}},o;return r[t]?o=r[t]():4"}).join("")}function vi(e,t){for(var n=[],r=e;r<=t;r++)n.push(r);return n}function Gv(e){return function(t){return(e===null||t.category!==e)&&e!=="all"}}function rm(e){e=parseInt(e,10);var t=null;return e===0?t="all":e===1?t="bold":2")}function yi(e,t){return En(e,"span",t)}function Ei(e,t){return En(e,"span","color:"+t)}function Si(e,t){return En(e,"span","background-color:"+t)}function om(e,t){var n;if(e.slice(-1)[0]===t&&(n=e.pop()),n)return""}function $v(e,t,n){var r=!1,o=3;function l(){return""}function i(C,v){return n("xterm256Foreground",v),""}function s(C,v){return n("xterm256Background",v),""}function a(C){return t.newline?n("display",-1):n("text",C),""}function u(C,v){r=!0,v.trim().length===0&&(v="0"),v=v.trimRight(";").split(";");var k=lm(v),O;try{for(k.s();!(O=k.n()).done;){var B=O.value;n("display",B)}}catch(I){k.e(I)}finally{k.f()}return""}function m(C){return n("text",C),""}function g(C){return n("rgb",C),""}var h=[{pattern:/^\x08+/,sub:l},{pattern:/^\x1b\[[012]?K/,sub:l},{pattern:/^\x1b\[\(B/,sub:l},{pattern:/^\x1b\[[34]8;2;\d+;\d+;\d+m/,sub:g},{pattern:/^\x1b\[38;5;(\d+)m/,sub:i},{pattern:/^\x1b\[48;5;(\d+)m/,sub:s},{pattern:/^\n/,sub:a},{pattern:/^\r+\n/,sub:a},{pattern:/^\r/,sub:a},{pattern:/^\x1b\[((?:\d{1,3};?)+|)m/,sub:u},{pattern:/^\x1b\[\d?J/,sub:l},{pattern:/^\x1b\[\d{0,3};\d{0,3}f/,sub:l},{pattern:/^\x1b\[?[\d;]{0,3}/,sub:l},{pattern:/^(([^\x1b\x08\r\n])+)/,sub:m}];function T(C,v){v>o&&r||(r=!1,e=e.replace(C.pattern,C.sub))}var S=[],L=e,P=L.length;e:for(;P>0;){for(var p=0,c=0,d=h.length;c{let l=["system","light","dark"],s=(l.indexOf(e)+1)%l.length;t(l[s])},r=()=>{switch(e){case"light":return ye.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},ye.default.createElement("circle",{cx:"12",cy:"12",r:"5"}),ye.default.createElement("line",{x1:"12",y1:"1",x2:"12",y2:"3"}),ye.default.createElement("line",{x1:"12",y1:"21",x2:"12",y2:"23"}),ye.default.createElement("line",{x1:"4.22",y1:"4.22",x2:"5.64",y2:"5.64"}),ye.default.createElement("line",{x1:"18.36",y1:"18.36",x2:"19.78",y2:"19.78"}),ye.default.createElement("line",{x1:"1",y1:"12",x2:"3",y2:"12"}),ye.default.createElement("line",{x1:"21",y1:"12",x2:"23",y2:"12"}),ye.default.createElement("line",{x1:"4.22",y1:"19.78",x2:"5.64",y2:"18.36"}),ye.default.createElement("line",{x1:"18.36",y1:"5.64",x2:"19.78",y2:"4.22"}));case"dark":return ye.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},ye.default.createElement("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"}));default:return ye.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},ye.default.createElement("rect",{x:"2",y:"3",width:"20",height:"14",rx:"2",ry:"2"}),ye.default.createElement("line",{x1:"8",y1:"21",x2:"16",y2:"21"}),ye.default.createElement("line",{x1:"12",y1:"17",x2:"12",y2:"21"}))}},o=()=>{switch(e){case"light":return"Theme: Light (click for Dark)";case"dark":return"Theme: Dark (click for System)";default:return"Theme: System (click for Light)"}};return ye.default.createElement("button",{className:"theme-toggle-btn",onClick:n,title:o(),"aria-label":o()},r())}var At=te(ne(),1);var gn=te(ne(),1);function Cp(e,t){let[n,r]=(0,gn.useState)(null),[o,l]=(0,gn.useState)(!0),[i,s]=(0,gn.useState)(null),a=(0,gn.useCallback)(async()=>{try{l(!0),s(null);let u=await fetch(`https://api.github.com/repos/${e}/${t}`);if(!u.ok)throw new Error(`GitHub API error: ${u.status}`);let m=await u.json();r(m.stargazers_count)}catch(u){console.error("Failed to fetch GitHub stars:",u),s(u instanceof Error?u:new Error("Unknown error"))}finally{l(!1)}},[e,t]);return(0,gn.useEffect)(()=>{a()},[a]),{stars:n,isLoading:o,error:i}}function Np(e){return e<1e3?e.toString():e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(1)}M`}function Lp({username:e,repo:t,className:n=""}){let{stars:r,isLoading:o,error:l}=Cp(e,t),i=`https://github.com/${e}/${t}`;return l?At.default.createElement("a",{href:i,target:"_blank",rel:"noopener noreferrer",title:"GitHub",className:"icon-link"},At.default.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},At.default.createElement("path",{d:"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"}))):At.default.createElement("a",{href:i,target:"_blank",rel:"noopener noreferrer",className:`github-stars-btn ${n}`,title:`Star us on GitHub${r!==null?` (${r.toLocaleString()} stars)`:""}`},At.default.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor",style:{marginRight:"6px"}},At.default.createElement("path",{d:"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"})),At.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",style:{marginRight:"4px"}},At.default.createElement("path",{d:"M12 .587l3.668 7.431 8.2 1.192-5.934 5.787 1.4 8.166L12 18.896l-7.334 3.867 1.4-8.166-5.934-5.787 8.2-1.192z"})),At.default.createElement("span",{className:o?"stars-loading":"stars-count"},o?"...":r!==null?Np(r):"\u2014"))}var hn=te(ne(),1);function kp(e){let t=(0,hn.useRef)(null),n=(0,hn.useRef)(null),r=(0,hn.useRef)(null),o=(0,hn.useRef)(0),l=(0,hn.useRef)(null);(0,hn.useEffect)(()=>{if(n.current||(n.current=document.createElement("canvas"),n.current.width=32,n.current.height=32),r.current||(r.current=new Image,r.current.src="claude-mem-logomark.webp"),!l.current){let g=document.querySelector('link[rel="icon"]');g&&(l.current=g.href)}let i=n.current,s=i.getContext("2d"),a=r.current;if(!s)return;let u=g=>{let h=document.querySelector('link[rel="icon"]');h||(h=document.createElement("link"),h.rel="icon",document.head.appendChild(h)),h.href=g},m=()=>{if(!a.complete){t.current=requestAnimationFrame(m);return}o.current+=2*Math.PI/90,s.clearRect(0,0,32,32),s.save(),s.translate(16,16),s.rotate(o.current),s.drawImage(a,-16,-16,32,32),s.restore(),u(i.toDataURL("image/png")),t.current=requestAnimationFrame(m)};return e?(o.current=0,m()):(t.current&&(cancelAnimationFrame(t.current),t.current=null),l.current&&u(l.current)),()=>{t.current&&(cancelAnimationFrame(t.current),t.current=null)}},[e])}function Ap({isConnected:e,projects:t,currentFilter:n,onFilterChange:r,isProcessing:o,queueDepth:l,themePreference:i,onThemeChange:s,onContextPreviewToggle:a}){return kp(o),X.default.createElement("div",{className:"header"},X.default.createElement("h1",null,X.default.createElement("div",{style:{position:"relative",display:"inline-block"}},X.default.createElement("img",{src:"claude-mem-logomark.webp",alt:"",className:`logomark ${o?"spinning":""}`}),l>0&&X.default.createElement("div",{className:"queue-bubble"},l)),X.default.createElement("span",{className:"logo-text"},"claude-mem")),X.default.createElement("div",{className:"status"},X.default.createElement("a",{href:"https://docs.claude-mem.ai",target:"_blank",rel:"noopener noreferrer",className:"icon-link",title:"Documentation"},X.default.createElement("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},X.default.createElement("path",{d:"M4 19.5A2.5 2.5 0 0 1 6.5 17H20"}),X.default.createElement("path",{d:"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"}))),X.default.createElement("a",{href:"https://x.com/Claude_Memory",target:"_blank",rel:"noopener noreferrer",className:"icon-link",title:"Follow us on X"},X.default.createElement("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},X.default.createElement("path",{d:"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"}))),X.default.createElement("a",{href:"https://discord.gg/J4wttp9vDu",target:"_blank",rel:"noopener noreferrer",className:"icon-link",title:"Join our Discord community"},X.default.createElement("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},X.default.createElement("path",{d:"M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515a.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0a12.64 12.64 0 0 0-.617-1.25a.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057a19.9 19.9 0 0 0 5.993 3.03a.078.078 0 0 0 .084-.028a14.09 14.09 0 0 0 1.226-1.994a.076.076 0 0 0-.041-.106a13.107 13.107 0 0 1-1.872-.892a.077.077 0 0 1-.008-.128a10.2 10.2 0 0 0 .372-.292a.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127a12.299 12.299 0 0 1-1.873.892a.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028a19.839 19.839 0 0 0 6.002-3.03a.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419c0-1.333.956-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419c0-1.333.955-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.946 2.418-2.157 2.418z"}))),X.default.createElement(Lp,{username:"thedotmack",repo:"claude-mem"}),X.default.createElement("select",{value:n,onChange:u=>r(u.target.value)},X.default.createElement("option",{value:""},"All Projects"),t.map(u=>X.default.createElement("option",{key:u,value:u},u))),X.default.createElement(wp,{preference:i,onThemeChange:s}),X.default.createElement("button",{className:"settings-btn",onClick:a,title:"Settings"},X.default.createElement("svg",{className:"settings-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},X.default.createElement("path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"}),X.default.createElement("circle",{cx:"12",cy:"12",r:"3"})))))}var ue=te(ne(),1);var b=te(ne(),1);function Mr(e){return new Date(e).toLocaleString()}function Mp(e){let t=["/Scripts/","/src/","/plugin/","/docs/"];for(let o of t){let l=e.indexOf(o);if(l!==-1)return e.substring(l+1)}let n=e.indexOf("claude-mem/");if(n!==-1)return e.substring(n+11);let r=e.split("/");return r.length>3?r.slice(-3).join("/"):e}function Op({observation:e}){let[t,n]=(0,b.useState)(!1),[r,o]=(0,b.useState)(!1),l=Mr(e.created_at_epoch),i=e.facts?JSON.parse(e.facts):[],s=e.concepts?JSON.parse(e.concepts):[],a=e.files_read?JSON.parse(e.files_read).map(Mp):[],u=e.files_modified?JSON.parse(e.files_modified).map(Mp):[],m=i.length>0||s.length>0||a.length>0||u.length>0;return b.default.createElement("div",{className:"card"},b.default.createElement("div",{className:"card-header"},b.default.createElement("div",{className:"card-header-left"},b.default.createElement("span",{className:`card-type type-${e.type}`},e.type),b.default.createElement("span",{className:"card-project"},e.project)),b.default.createElement("div",{className:"view-mode-toggles"},m&&b.default.createElement("button",{className:`view-mode-toggle ${t?"active":""}`,onClick:()=>{n(!t),t||o(!1)}},b.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},b.default.createElement("polyline",{points:"9 11 12 14 22 4"}),b.default.createElement("path",{d:"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"})),b.default.createElement("span",null,"facts")),e.narrative&&b.default.createElement("button",{className:`view-mode-toggle ${r?"active":""}`,onClick:()=>{o(!r),r||n(!1)}},b.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},b.default.createElement("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),b.default.createElement("polyline",{points:"14 2 14 8 20 8"}),b.default.createElement("line",{x1:"16",y1:"13",x2:"8",y2:"13"}),b.default.createElement("line",{x1:"16",y1:"17",x2:"8",y2:"17"})),b.default.createElement("span",null,"narrative")))),b.default.createElement("div",{className:"card-title"},e.title||"Untitled"),b.default.createElement("div",{className:"view-mode-content"},!t&&!r&&e.subtitle&&b.default.createElement("div",{className:"card-subtitle"},e.subtitle),t&&i.length>0&&b.default.createElement("ul",{className:"facts-list"},i.map((g,h)=>b.default.createElement("li",{key:h},g))),r&&e.narrative&&b.default.createElement("div",{className:"narrative"},e.narrative)),b.default.createElement("div",{className:"card-meta"},b.default.createElement("span",{className:"meta-date"},"#",e.id," \u2022 ",l),t&&(s.length>0||a.length>0||u.length>0)&&b.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px",alignItems:"center"}},s.map((g,h)=>b.default.createElement("span",{key:h,style:{padding:"2px 8px",background:"var(--color-type-badge-bg)",color:"var(--color-type-badge-text)",borderRadius:"3px",fontWeight:"500",fontSize:"10px"}},g)),a.length>0&&b.default.createElement("span",{className:"meta-files"},b.default.createElement("span",{className:"file-label"},"read:")," ",a.join(", ")),u.length>0&&b.default.createElement("span",{className:"meta-files"},b.default.createElement("span",{className:"file-label"},"modified:")," ",u.join(", ")))))}var we=te(ne(),1);function xp({summary:e}){let t=Mr(e.created_at_epoch),n=[{key:"investigated",label:"Investigated",content:e.investigated,icon:"/icon-thick-investigated.svg"},{key:"learned",label:"Learned",content:e.learned,icon:"/icon-thick-learned.svg"},{key:"completed",label:"Completed",content:e.completed,icon:"/icon-thick-completed.svg"},{key:"next_steps",label:"Next Steps",content:e.next_steps,icon:"/icon-thick-next-steps.svg"}].filter(r=>r.content);return we.default.createElement("article",{className:"card summary-card"},we.default.createElement("header",{className:"summary-card-header"},we.default.createElement("div",{className:"summary-badge-row"},we.default.createElement("span",{className:"card-type summary-badge"},"Session Summary"),we.default.createElement("span",{className:"summary-project-badge"},e.project)),e.request&&we.default.createElement("h2",{className:"summary-title"},e.request)),we.default.createElement("div",{className:"summary-sections"},n.map((r,o)=>we.default.createElement("section",{key:r.key,className:"summary-section",style:{animationDelay:`${o*50}ms`}},we.default.createElement("div",{className:"summary-section-header"},we.default.createElement("img",{src:r.icon,alt:r.label,className:`summary-section-icon summary-section-icon--${r.key}`}),we.default.createElement("h3",{className:"summary-section-label"},r.label)),we.default.createElement("div",{className:"summary-section-content"},r.content)))),we.default.createElement("footer",{className:"summary-card-footer"},we.default.createElement("span",{className:"summary-meta-id"},"Session #",e.id),we.default.createElement("span",{className:"summary-meta-divider"},"\u2022"),we.default.createElement("time",{className:"summary-meta-date",dateTime:new Date(e.created_at_epoch).toISOString()},t)))}var Wt=te(ne(),1);function Dp({prompt:e}){let t=Mr(e.created_at_epoch);return Wt.default.createElement("div",{className:"card prompt-card"},Wt.default.createElement("div",{className:"card-header"},Wt.default.createElement("div",{className:"card-header-left"},Wt.default.createElement("span",{className:"card-type"},"Prompt"),Wt.default.createElement("span",{className:"card-project"},e.project))),Wt.default.createElement("div",{className:"card-content"},e.prompt_text),Wt.default.createElement("div",{className:"card-meta"},Wt.default.createElement("span",{className:"meta-date"},"#",e.id," \u2022 ",t)))}var vn=te(ne(),1);function Pp({targetRef:e}){let[t,n]=(0,vn.useState)(!1);(0,vn.useEffect)(()=>{let o=()=>{let i=e.current;i&&n(i.scrollTop>300)},l=e.current;if(l)return l.addEventListener("scroll",o),()=>l.removeEventListener("scroll",o)},[]);let r=()=>{let o=e.current;o&&o.scrollTo({top:0,behavior:"smooth"})};return t?vn.default.createElement("button",{onClick:r,className:"scroll-to-top","aria-label":"Scroll to top"},vn.default.createElement("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},vn.default.createElement("polyline",{points:"18 15 12 9 6 15"}))):null}var Oo={PAGINATION_PAGE_SIZE:50,LOAD_MORE_THRESHOLD:.1};function Ip({observations:e,summaries:t,prompts:n,onLoadMore:r,isLoading:o,hasMore:l}){let i=(0,ue.useRef)(null),s=(0,ue.useRef)(null),a=(0,ue.useRef)(r);(0,ue.useEffect)(()=>{a.current=r},[r]),(0,ue.useEffect)(()=>{let m=i.current;if(!m)return;let g=new IntersectionObserver(h=>{h[0].isIntersecting&&l&&!o&&a.current?.()},{threshold:Oo.LOAD_MORE_THRESHOLD});return g.observe(m),()=>{m&&g.unobserve(m),g.disconnect()}},[l,o]);let u=(0,ue.useMemo)(()=>[...e.map(g=>({...g,itemType:"observation"})),...t.map(g=>({...g,itemType:"summary"})),...n.map(g=>({...g,itemType:"prompt"}))].sort((g,h)=>h.created_at_epoch-g.created_at_epoch),[e,t,n]);return ue.default.createElement("div",{className:"feed",ref:s},ue.default.createElement(Pp,{targetRef:s}),ue.default.createElement("div",{className:"feed-content"},u.map(m=>{let g=`${m.itemType}-${m.id}`;return m.itemType==="observation"?ue.default.createElement(Op,{key:g,observation:m}):m.itemType==="summary"?ue.default.createElement(xp,{key:g,summary:m}):ue.default.createElement(Dp,{key:g,prompt:m})}),u.length===0&&!o&&ue.default.createElement("div",{style:{textAlign:"center",padding:"40px",color:"#8b949e"}},"No items to display"),o&&ue.default.createElement("div",{style:{textAlign:"center",padding:"20px",color:"#8b949e"}},ue.default.createElement("div",{className:"spinner",style:{display:"inline-block",marginRight:"10px"}}),"Loading more..."),l&&!o&&u.length>0&&ue.default.createElement("div",{ref:i,style:{height:"20px",margin:"10px 0"}}),!l&&u.length>0&&ue.default.createElement("div",{style:{textAlign:"center",padding:"20px",color:"#8b949e",fontSize:"14px"}},"No more items to load")))}var E=te(ne(),1);var ge=te(ne(),1),wm=te(um(),1);var{entries:ym,setPrototypeOf:cm,isFrozen:Qv,getPrototypeOf:Zv,getOwnPropertyDescriptor:Jv}=Object,{freeze:Fe,seal:at,create:hu}=Object,{apply:vu,construct:yu}=typeof Reflect<"u"&&Reflect;Fe||(Fe=function(t){return t});at||(at=function(t){return t});vu||(vu=function(t,n){for(var r=arguments.length,o=new Array(r>2?r-2:0),l=2;l1?n-1:0),o=1;o1?n-1:0),o=1;o2&&arguments[2]!==void 0?arguments[2]:wi;cm&&cm(e,null);let r=t.length;for(;r--;){let o=t[r];if(typeof o=="string"){let l=n(o);l!==o&&(Qv(t)||(t[r]=l),o=l)}e[o]=!0}return e}function l0(e){for(let t=0;t/gm),c0=at(/\$\{[\w\W]*/gm),f0=at(/^data-[\-\w.\u00B7-\uFFFF]+$/),d0=at(/^aria-[\-\w]+$/),Em=at(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),p0=at(/^(?:\w+script|data):/i),m0=at(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Sm=at(/^html$/i),g0=at(/^[a-z][.\w]*(-[.\w]+)+$/i),hm=Object.freeze({__proto__:null,ARIA_ATTR:d0,ATTR_WHITESPACE:m0,CUSTOM_ELEMENT:g0,DATA_ATTR:f0,DOCTYPE_NAME:Sm,ERB_EXPR:u0,IS_ALLOWED_URI:Em,IS_SCRIPT_OR_DATA:p0,MUSTACHE_EXPR:a0,TMPLIT_EXPR:c0}),Ro={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},h0=function(){return typeof window>"u"?null:window},v0=function(t,n){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let r=null,o="data-tt-policy-suffix";n&&n.hasAttribute(o)&&(r=n.getAttribute(o));let l="dompurify"+(r?"#"+r:"");try{return t.createPolicy(l,{createHTML(i){return i},createScriptURL(i){return i}})}catch{return console.warn("TrustedTypes policy "+l+" could not be created."),null}},vm=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function _m(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:h0(),t=D=>_m(D);if(t.version="3.3.1",t.removed=[],!e||!e.document||e.document.nodeType!==Ro.document||!e.Element)return t.isSupported=!1,t;let{document:n}=e,r=n,o=r.currentScript,{DocumentFragment:l,HTMLTemplateElement:i,Node:s,Element:a,NodeFilter:u,NamedNodeMap:m=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:g,DOMParser:h,trustedTypes:T}=e,S=a.prototype,L=Uo(S,"cloneNode"),P=Uo(S,"remove"),p=Uo(S,"nextSibling"),c=Uo(S,"childNodes"),d=Uo(S,"parentNode");if(typeof i=="function"){let D=n.createElement("template");D.content&&D.content.ownerDocument&&(n=D.content.ownerDocument)}let y,C="",{implementation:v,createNodeIterator:k,createDocumentFragment:O,getElementsByTagName:B}=n,{importNode:I}=r,j=vm();t.isSupported=typeof ym=="function"&&typeof d=="function"&&v&&v.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:J,ERB_EXPR:_n,TMPLIT_EXPR:Tn,DATA_ATTR:Ir,ARIA_ATTR:Vn,IS_SCRIPT_OR_DATA:Wn,ATTR_WHITESPACE:wn,CUSTOM_ELEMENT:et}=hm,{IS_ALLOWED_URI:Cn}=hm,_=null,G=R({},[...dm,...du,...pu,...mu,...pm]),z=null,xe=R({},[...mm,...gu,...gm,...Ti]),q=Object.seal(hu(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),xt=null,Nn=null,Gn=Object.seal(hu(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),_u=!0,Ai=!0,Tu=!1,wu=!0,Xn=!1,zo=!0,Ln=!1,Mi=!1,Oi=!1,$n=!1,Ho=!1,jo=!1,Cu=!0,Nu=!1,Hm="user-content-",xi=!0,Ur=!1,Kn={},St=null,Di=R({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),Lu=null,ku=R({},["audio","video","img","source","image","track"]),Pi=null,Au=R({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Bo="http://www.w3.org/1998/Math/MathML",qo="http://www.w3.org/2000/svg",Dt="http://www.w3.org/1999/xhtml",Yn=Dt,Ii=!1,Ui=null,jm=R({},[Bo,qo,Dt],cu),Vo=R({},["mi","mo","mn","ms","mtext"]),Wo=R({},["annotation-xml"]),Bm=R({},["title","style","font","a","script"]),Rr=null,qm=["application/xhtml+xml","text/html"],Vm="text/html",de=null,Qn=null,Wm=n.createElement("form"),Mu=function(f){return f instanceof RegExp||f instanceof Function},Ri=function(){let f=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(Qn&&Qn===f)){if((!f||typeof f!="object")&&(f={}),f=Ot(f),Rr=qm.indexOf(f.PARSER_MEDIA_TYPE)===-1?Vm:f.PARSER_MEDIA_TYPE,de=Rr==="application/xhtml+xml"?cu:wi,_=vt(f,"ALLOWED_TAGS")?R({},f.ALLOWED_TAGS,de):G,z=vt(f,"ALLOWED_ATTR")?R({},f.ALLOWED_ATTR,de):xe,Ui=vt(f,"ALLOWED_NAMESPACES")?R({},f.ALLOWED_NAMESPACES,cu):jm,Pi=vt(f,"ADD_URI_SAFE_ATTR")?R(Ot(Au),f.ADD_URI_SAFE_ATTR,de):Au,Lu=vt(f,"ADD_DATA_URI_TAGS")?R(Ot(ku),f.ADD_DATA_URI_TAGS,de):ku,St=vt(f,"FORBID_CONTENTS")?R({},f.FORBID_CONTENTS,de):Di,xt=vt(f,"FORBID_TAGS")?R({},f.FORBID_TAGS,de):Ot({}),Nn=vt(f,"FORBID_ATTR")?R({},f.FORBID_ATTR,de):Ot({}),Kn=vt(f,"USE_PROFILES")?f.USE_PROFILES:!1,_u=f.ALLOW_ARIA_ATTR!==!1,Ai=f.ALLOW_DATA_ATTR!==!1,Tu=f.ALLOW_UNKNOWN_PROTOCOLS||!1,wu=f.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Xn=f.SAFE_FOR_TEMPLATES||!1,zo=f.SAFE_FOR_XML!==!1,Ln=f.WHOLE_DOCUMENT||!1,$n=f.RETURN_DOM||!1,Ho=f.RETURN_DOM_FRAGMENT||!1,jo=f.RETURN_TRUSTED_TYPE||!1,Oi=f.FORCE_BODY||!1,Cu=f.SANITIZE_DOM!==!1,Nu=f.SANITIZE_NAMED_PROPS||!1,xi=f.KEEP_CONTENT!==!1,Ur=f.IN_PLACE||!1,Cn=f.ALLOWED_URI_REGEXP||Em,Yn=f.NAMESPACE||Dt,Vo=f.MATHML_TEXT_INTEGRATION_POINTS||Vo,Wo=f.HTML_INTEGRATION_POINTS||Wo,q=f.CUSTOM_ELEMENT_HANDLING||{},f.CUSTOM_ELEMENT_HANDLING&&Mu(f.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(q.tagNameCheck=f.CUSTOM_ELEMENT_HANDLING.tagNameCheck),f.CUSTOM_ELEMENT_HANDLING&&Mu(f.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(q.attributeNameCheck=f.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),f.CUSTOM_ELEMENT_HANDLING&&typeof f.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(q.allowCustomizedBuiltInElements=f.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Xn&&(Ai=!1),Ho&&($n=!0),Kn&&(_=R({},pm),z=[],Kn.html===!0&&(R(_,dm),R(z,mm)),Kn.svg===!0&&(R(_,du),R(z,gu),R(z,Ti)),Kn.svgFilters===!0&&(R(_,pu),R(z,gu),R(z,Ti)),Kn.mathMl===!0&&(R(_,mu),R(z,gm),R(z,Ti))),f.ADD_TAGS&&(typeof f.ADD_TAGS=="function"?Gn.tagCheck=f.ADD_TAGS:(_===G&&(_=Ot(_)),R(_,f.ADD_TAGS,de))),f.ADD_ATTR&&(typeof f.ADD_ATTR=="function"?Gn.attributeCheck=f.ADD_ATTR:(z===xe&&(z=Ot(z)),R(z,f.ADD_ATTR,de))),f.ADD_URI_SAFE_ATTR&&R(Pi,f.ADD_URI_SAFE_ATTR,de),f.FORBID_CONTENTS&&(St===Di&&(St=Ot(St)),R(St,f.FORBID_CONTENTS,de)),f.ADD_FORBID_CONTENTS&&(St===Di&&(St=Ot(St)),R(St,f.ADD_FORBID_CONTENTS,de)),xi&&(_["#text"]=!0),Ln&&R(_,["html","head","body"]),_.table&&(R(_,["tbody"]),delete xt.tbody),f.TRUSTED_TYPES_POLICY){if(typeof f.TRUSTED_TYPES_POLICY.createHTML!="function")throw Io('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof f.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Io('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');y=f.TRUSTED_TYPES_POLICY,C=y.createHTML("")}else y===void 0&&(y=v0(T,o)),y!==null&&typeof C=="string"&&(C=y.createHTML(""));Fe&&Fe(f),Qn=f}},Ou=R({},[...du,...pu,...i0]),xu=R({},[...mu,...s0]),Gm=function(f){let N=d(f);(!N||!N.tagName)&&(N={namespaceURI:Yn,tagName:"template"});let x=wi(f.tagName),ee=wi(N.tagName);return Ui[f.namespaceURI]?f.namespaceURI===qo?N.namespaceURI===Dt?x==="svg":N.namespaceURI===Bo?x==="svg"&&(ee==="annotation-xml"||Vo[ee]):!!Ou[x]:f.namespaceURI===Bo?N.namespaceURI===Dt?x==="math":N.namespaceURI===qo?x==="math"&&Wo[ee]:!!xu[x]:f.namespaceURI===Dt?N.namespaceURI===qo&&!Wo[ee]||N.namespaceURI===Bo&&!Vo[ee]?!1:!xu[x]&&(Bm[x]||!Ou[x]):!!(Rr==="application/xhtml+xml"&&Ui[f.namespaceURI]):!1},_t=function(f){Do(t.removed,{element:f});try{d(f).removeChild(f)}catch{P(f)}},kn=function(f,N){try{Do(t.removed,{attribute:N.getAttributeNode(f),from:N})}catch{Do(t.removed,{attribute:null,from:N})}if(N.removeAttribute(f),f==="is")if($n||Ho)try{_t(N)}catch{}else try{N.setAttribute(f,"")}catch{}},Du=function(f){let N=null,x=null;if(Oi)f=""+f;else{let ce=fu(f,/^[\r\n\t ]+/);x=ce&&ce[0]}Rr==="application/xhtml+xml"&&Yn===Dt&&(f=''+f+"");let ee=y?y.createHTML(f):f;if(Yn===Dt)try{N=new h().parseFromString(ee,Rr)}catch{}if(!N||!N.documentElement){N=v.createDocument(Yn,"template",null);try{N.documentElement.innerHTML=Ii?C:ee}catch{}}let Ce=N.body||N.documentElement;return f&&x&&Ce.insertBefore(n.createTextNode(x),Ce.childNodes[0]||null),Yn===Dt?B.call(N,Ln?"html":"body")[0]:Ln?N.documentElement:Ce},Pu=function(f){return k.call(f.ownerDocument||f,f,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT|u.SHOW_PROCESSING_INSTRUCTION|u.SHOW_CDATA_SECTION,null)},Fi=function(f){return f instanceof g&&(typeof f.nodeName!="string"||typeof f.textContent!="string"||typeof f.removeChild!="function"||!(f.attributes instanceof m)||typeof f.removeAttribute!="function"||typeof f.setAttribute!="function"||typeof f.namespaceURI!="string"||typeof f.insertBefore!="function"||typeof f.hasChildNodes!="function")},Iu=function(f){return typeof s=="function"&&f instanceof s};function Pt(D,f,N){_i(D,x=>{x.call(t,f,N,Qn)})}let Uu=function(f){let N=null;if(Pt(j.beforeSanitizeElements,f,null),Fi(f))return _t(f),!0;let x=de(f.nodeName);if(Pt(j.uponSanitizeElement,f,{tagName:x,allowedTags:_}),zo&&f.hasChildNodes()&&!Iu(f.firstElementChild)&&Re(/<[/\w!]/g,f.innerHTML)&&Re(/<[/\w!]/g,f.textContent)||f.nodeType===Ro.progressingInstruction||zo&&f.nodeType===Ro.comment&&Re(/<[/\w]/g,f.data))return _t(f),!0;if(!(Gn.tagCheck instanceof Function&&Gn.tagCheck(x))&&(!_[x]||xt[x])){if(!xt[x]&&Fu(x)&&(q.tagNameCheck instanceof RegExp&&Re(q.tagNameCheck,x)||q.tagNameCheck instanceof Function&&q.tagNameCheck(x)))return!1;if(xi&&!St[x]){let ee=d(f)||f.parentNode,Ce=c(f)||f.childNodes;if(Ce&&ee){let ce=Ce.length;for(let ze=ce-1;ze>=0;--ze){let It=L(Ce[ze],!0);It.__removalCount=(f.__removalCount||0)+1,ee.insertBefore(It,p(f))}}}return _t(f),!0}return f instanceof a&&!Gm(f)||(x==="noscript"||x==="noembed"||x==="noframes")&&Re(/<\/no(script|embed|frames)/i,f.innerHTML)?(_t(f),!0):(Xn&&f.nodeType===Ro.text&&(N=f.textContent,_i([J,_n,Tn],ee=>{N=Po(N,ee," ")}),f.textContent!==N&&(Do(t.removed,{element:f.cloneNode()}),f.textContent=N)),Pt(j.afterSanitizeElements,f,null),!1)},Ru=function(f,N,x){if(Cu&&(N==="id"||N==="name")&&(x in n||x in Wm))return!1;if(!(Ai&&!Nn[N]&&Re(Ir,N))){if(!(_u&&Re(Vn,N))){if(!(Gn.attributeCheck instanceof Function&&Gn.attributeCheck(N,f))){if(!z[N]||Nn[N]){if(!(Fu(f)&&(q.tagNameCheck instanceof RegExp&&Re(q.tagNameCheck,f)||q.tagNameCheck instanceof Function&&q.tagNameCheck(f))&&(q.attributeNameCheck instanceof RegExp&&Re(q.attributeNameCheck,N)||q.attributeNameCheck instanceof Function&&q.attributeNameCheck(N,f))||N==="is"&&q.allowCustomizedBuiltInElements&&(q.tagNameCheck instanceof RegExp&&Re(q.tagNameCheck,x)||q.tagNameCheck instanceof Function&&q.tagNameCheck(x))))return!1}else if(!Pi[N]){if(!Re(Cn,Po(x,wn,""))){if(!((N==="src"||N==="xlink:href"||N==="href")&&f!=="script"&&n0(x,"data:")===0&&Lu[f])){if(!(Tu&&!Re(Wn,Po(x,wn,"")))){if(x)return!1}}}}}}}return!0},Fu=function(f){return f!=="annotation-xml"&&fu(f,et)},bu=function(f){Pt(j.beforeSanitizeAttributes,f,null);let{attributes:N}=f;if(!N||Fi(f))return;let x={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:z,forceKeepAttr:void 0},ee=N.length;for(;ee--;){let Ce=N[ee],{name:ce,namespaceURI:ze,value:It}=Ce,Zn=de(ce),bi=It,Ee=ce==="value"?bi:r0(bi);if(x.attrName=Zn,x.attrValue=Ee,x.keepAttr=!0,x.forceKeepAttr=void 0,Pt(j.uponSanitizeAttribute,f,x),Ee=x.attrValue,Nu&&(Zn==="id"||Zn==="name")&&(kn(ce,f),Ee=Hm+Ee),zo&&Re(/((--!?|])>)|<\/(style|title|textarea)/i,Ee)){kn(ce,f);continue}if(Zn==="attributename"&&fu(Ee,"href")){kn(ce,f);continue}if(x.forceKeepAttr)continue;if(!x.keepAttr){kn(ce,f);continue}if(!wu&&Re(/\/>/i,Ee)){kn(ce,f);continue}Xn&&_i([J,_n,Tn],Hu=>{Ee=Po(Ee,Hu," ")});let zu=de(f.nodeName);if(!Ru(zu,Zn,Ee)){kn(ce,f);continue}if(y&&typeof T=="object"&&typeof T.getAttributeType=="function"&&!ze)switch(T.getAttributeType(zu,Zn)){case"TrustedHTML":{Ee=y.createHTML(Ee);break}case"TrustedScriptURL":{Ee=y.createScriptURL(Ee);break}}if(Ee!==bi)try{ze?f.setAttributeNS(ze,ce,Ee):f.setAttribute(ce,Ee),Fi(f)?_t(f):fm(t.removed)}catch{kn(ce,f)}}Pt(j.afterSanitizeAttributes,f,null)},Xm=function D(f){let N=null,x=Pu(f);for(Pt(j.beforeSanitizeShadowDOM,f,null);N=x.nextNode();)Pt(j.uponSanitizeShadowNode,N,null),Uu(N),bu(N),N.content instanceof l&&D(N.content);Pt(j.afterSanitizeShadowDOM,f,null)};return t.sanitize=function(D){let f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},N=null,x=null,ee=null,Ce=null;if(Ii=!D,Ii&&(D=""),typeof D!="string"&&!Iu(D))if(typeof D.toString=="function"){if(D=D.toString(),typeof D!="string")throw Io("dirty is not a string, aborting")}else throw Io("toString is not a function");if(!t.isSupported)return D;if(Mi||Ri(f),t.removed=[],typeof D=="string"&&(Ur=!1),Ur){if(D.nodeName){let It=de(D.nodeName);if(!_[It]||xt[It])throw Io("root node is forbidden and cannot be sanitized in-place")}}else if(D instanceof s)N=Du(""),x=N.ownerDocument.importNode(D,!0),x.nodeType===Ro.element&&x.nodeName==="BODY"||x.nodeName==="HTML"?N=x:N.appendChild(x);else{if(!$n&&!Xn&&!Ln&&D.indexOf("<")===-1)return y&&jo?y.createHTML(D):D;if(N=Du(D),!N)return $n?null:jo?C:""}N&&Oi&&_t(N.firstChild);let ce=Pu(Ur?D:N);for(;ee=ce.nextNode();)Uu(ee),bu(ee),ee.content instanceof l&&Xm(ee.content);if(Ur)return D;if($n){if(Ho)for(Ce=O.call(N.ownerDocument);N.firstChild;)Ce.appendChild(N.firstChild);else Ce=N;return(z.shadowroot||z.shadowrootmode)&&(Ce=I.call(r,Ce,!0)),Ce}let ze=Ln?N.outerHTML:N.innerHTML;return Ln&&_["!doctype"]&&N.ownerDocument&&N.ownerDocument.doctype&&N.ownerDocument.doctype.name&&Re(Sm,N.ownerDocument.doctype.name)&&(ze=" +`+ze),Xn&&_i([J,_n,Tn],It=>{ze=Po(ze,It," ")}),y&&jo?y.createHTML(ze):ze},t.setConfig=function(){let D=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Ri(D),Mi=!0},t.clearConfig=function(){Qn=null,Mi=!1},t.isValidAttribute=function(D,f,N){Qn||Ri({});let x=de(D),ee=de(f);return Ru(x,ee,N)},t.addHook=function(D,f){typeof f=="function"&&Do(j[D],f)},t.removeHook=function(D,f){if(f!==void 0){let N=e0(j[D],f);return N===-1?void 0:t0(j[D],N,1)[0]}return fm(j[D])},t.removeHooks=function(D){j[D]=[]},t.removeAllHooks=function(){j=vm()},t}var Tm=_m();var y0=new wm.default({fg:"#dcd6cc",bg:"#252320",newline:!1,escapeXML:!0,stream:!1});function Cm({content:e,isLoading:t=!1,className:n=""}){let r=(0,ge.useRef)(null),o=(0,ge.useRef)(0),[l,i]=(0,ge.useState)(!0),s=(0,ge.useMemo)(()=>{if(r.current&&(o.current=r.current.scrollTop),!e)return"";let u=y0.toHtml(e);return Tm.sanitize(u,{ALLOWED_TAGS:["span","div","br"],ALLOWED_ATTR:["style","class"],ALLOW_DATA_ATTR:!1})},[e]);return(0,ge.useLayoutEffect)(()=>{r.current&&o.current>0&&(r.current.scrollTop=o.current)},[s]),ge.default.createElement("div",{className:n,style:{backgroundColor:"var(--color-bg-card)",border:"1px solid var(--color-border-primary)",borderRadius:"8px",overflow:"hidden",height:"100%",display:"flex",flexDirection:"column",boxShadow:"0 10px 40px rgba(0, 0, 0, 0.4), 0 4px 12px rgba(0, 0, 0, 0.3)"}},ge.default.createElement("div",{style:{padding:"12px",borderBottom:"1px solid var(--color-border-primary)",display:"flex",gap:"6px",alignItems:"center",backgroundColor:"var(--color-bg-header)"}},ge.default.createElement("div",{style:{width:"12px",height:"12px",borderRadius:"50%",backgroundColor:"#ff5f57"}}),ge.default.createElement("div",{style:{width:"12px",height:"12px",borderRadius:"50%",backgroundColor:"#ffbd2e"}}),ge.default.createElement("div",{style:{width:"12px",height:"12px",borderRadius:"50%",backgroundColor:"#28c840"}}),ge.default.createElement("button",{onClick:()=>i(!l),style:{marginLeft:"auto",padding:"4px 8px",fontSize:"11px",fontWeight:500,color:l?"var(--color-text-secondary)":"var(--color-accent-primary)",backgroundColor:"transparent",border:"1px solid",borderColor:l?"var(--color-border-primary)":"var(--color-accent-primary)",borderRadius:"4px",cursor:"pointer",transition:"all 0.2s",whiteSpace:"nowrap"},onMouseEnter:u=>{u.currentTarget.style.borderColor="var(--color-accent-primary)",u.currentTarget.style.color="var(--color-accent-primary)"},onMouseLeave:u=>{u.currentTarget.style.borderColor=l?"var(--color-border-primary)":"var(--color-accent-primary)",u.currentTarget.style.color=l?"var(--color-text-secondary)":"var(--color-accent-primary)"},title:l?"Disable word wrap (scroll horizontally)":"Enable word wrap"},l?"\u2922 Wrap":"\u21C4 Scroll")),t?ge.default.createElement("div",{style:{padding:"16px",fontFamily:"var(--font-terminal)",fontSize:"12px",color:"var(--color-text-secondary)"}},"Loading preview..."):ge.default.createElement("div",{style:{position:"relative",flex:1,overflow:"hidden"}},ge.default.createElement("pre",{ref:r,style:{padding:"16px",margin:0,fontFamily:"var(--font-terminal)",fontSize:"12px",lineHeight:"1.6",overflow:"auto",color:"var(--color-text-primary)",backgroundColor:"var(--color-bg-card)",whiteSpace:l?"pre-wrap":"pre",wordBreak:l?"break-word":"normal",position:"absolute",inset:0},dangerouslySetInnerHTML:{__html:s}})))}var yt=te(ne(),1);function Nm(e){let[t,n]=(0,yt.useState)(""),[r,o]=(0,yt.useState)(!1),[l,i]=(0,yt.useState)(null),[s,a]=(0,yt.useState)([]),[u,m]=(0,yt.useState)(null);(0,yt.useEffect)(()=>{async function h(){try{let S=await(await fetch("/api/projects")).json();S.projects&&S.projects.length>0&&(a(S.projects),m(S.projects[0]))}catch(T){console.error("Failed to fetch projects:",T)}}h()},[]);let g=(0,yt.useCallback)(async()=>{if(!u){n("No project selected");return}o(!0),i(null);let h=new URLSearchParams({project:u}),T=await fetch(`/api/context/preview?${h}`),S=await T.text();T.ok?n(S):i("Failed to load preview"),o(!1)},[u]);return(0,yt.useEffect)(()=>{let h=setTimeout(()=>{g()},300);return()=>clearTimeout(h)},[e,g]),{preview:t,isLoading:r,error:l,refresh:g,projects:s,selectedProject:u,setSelectedProject:m}}function Ci({title:e,description:t,children:n,defaultOpen:r=!0}){let[o,l]=(0,E.useState)(r);return E.default.createElement("div",{className:`settings-section-collapsible ${o?"open":""}`},E.default.createElement("button",{className:"section-header-btn",onClick:()=>l(!o),type:"button"},E.default.createElement("div",{className:"section-header-content"},E.default.createElement("span",{className:"section-title"},e),t&&E.default.createElement("span",{className:"section-description"},t)),E.default.createElement("svg",{className:`chevron-icon ${o?"rotated":""}`,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2"},E.default.createElement("polyline",{points:"6 9 12 15 18 9"}))),o&&E.default.createElement("div",{className:"section-content"},n))}function Lm({label:e,options:t,selectedValues:n,onToggle:r,onSelectAll:o,onSelectNone:l}){let i=t.every(a=>n.includes(a)),s=t.every(a=>!n.includes(a));return E.default.createElement("div",{className:"chip-group"},E.default.createElement("div",{className:"chip-group-header"},E.default.createElement("span",{className:"chip-group-label"},e),E.default.createElement("div",{className:"chip-group-actions"},E.default.createElement("button",{type:"button",className:`chip-action ${i?"active":""}`,onClick:o},"All"),E.default.createElement("button",{type:"button",className:`chip-action ${s?"active":""}`,onClick:l},"None"))),E.default.createElement("div",{className:"chips-container"},t.map(a=>E.default.createElement("button",{key:a,type:"button",className:`chip ${n.includes(a)?"selected":""}`,onClick:()=>r(a)},a))))}function Ze({label:e,tooltip:t,children:n}){return E.default.createElement("div",{className:"form-field"},E.default.createElement("label",{className:"form-field-label"},e,t&&E.default.createElement("span",{className:"tooltip-trigger",title:t},E.default.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2"},E.default.createElement("circle",{cx:"12",cy:"12",r:"10"}),E.default.createElement("path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"}),E.default.createElement("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})))),n)}function Or({id:e,label:t,description:n,checked:r,onChange:o,disabled:l}){return E.default.createElement("div",{className:"toggle-row"},E.default.createElement("div",{className:"toggle-info"},E.default.createElement("label",{htmlFor:e,className:"toggle-label"},t),n&&E.default.createElement("span",{className:"toggle-description"},n)),E.default.createElement("button",{type:"button",id:e,role:"switch","aria-checked":r,className:`toggle-switch ${r?"on":""} ${l?"disabled":""}`,onClick:()=>!l&&o(!r),disabled:l},E.default.createElement("span",{className:"toggle-knob"})))}function km({isOpen:e,onClose:t,settings:n,onSave:r,isSaving:o,saveStatus:l}){let[i,s]=(0,E.useState)(n);(0,E.useEffect)(()=>{s(n)},[n]);let{preview:a,isLoading:u,error:m,projects:g,selectedProject:h,setSelectedProject:T}=Nm(i),S=(0,E.useCallback)((v,k)=>{let O={...i,[v]:k};s(O)},[i]),L=(0,E.useCallback)(()=>{r(i)},[i,r]),P=(0,E.useCallback)(v=>{let O=i[v]==="true"?"false":"true";S(v,O)},[i,S]),p=(0,E.useCallback)((v,k)=>{let O=i[v]||"",B=O?O.split(","):[],I=B.includes(k)?B.filter(j=>j!==k):[...B,k];S(v,I.join(","))},[i,S]),c=(0,E.useCallback)(v=>{let k=i[v]||"";return k?k.split(","):[]},[i]),d=(0,E.useCallback)((v,k)=>{S(v,k.join(","))},[S]);if((0,E.useEffect)(()=>{let v=k=>{k.key==="Escape"&&t()};if(e)return window.addEventListener("keydown",v),()=>window.removeEventListener("keydown",v)},[e,t]),!e)return null;let y=["bugfix","feature","refactor","discovery","decision","change"],C=["how-it-works","why-it-exists","what-changed","problem-solution","gotcha","pattern","trade-off"];return E.default.createElement("div",{className:"modal-backdrop",onClick:t},E.default.createElement("div",{className:"context-settings-modal",onClick:v=>v.stopPropagation()},E.default.createElement("div",{className:"modal-header"},E.default.createElement("h2",null,"Settings"),E.default.createElement("div",{className:"header-controls"},E.default.createElement("label",{className:"preview-selector"},"Preview for:",E.default.createElement("select",{value:h||"",onChange:v=>T(v.target.value)},g.map(v=>E.default.createElement("option",{key:v,value:v},v)))),E.default.createElement("button",{onClick:t,className:"modal-close-btn",title:"Close (Esc)"},E.default.createElement("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2"},E.default.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),E.default.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"}))))),E.default.createElement("div",{className:"modal-body"},E.default.createElement("div",{className:"preview-column"},E.default.createElement("div",{className:"preview-content"},m?E.default.createElement("div",{style:{color:"#ff6b6b"}},"Error loading preview: ",m):E.default.createElement(Cm,{content:a,isLoading:u}))),E.default.createElement("div",{className:"settings-column"},E.default.createElement(Ci,{title:"Loading",description:"How many observations to inject"},E.default.createElement(Ze,{label:"Observations",tooltip:"Number of recent observations to include in context (1-200)"},E.default.createElement("input",{type:"number",min:"1",max:"200",value:i.CLAUDE_MEM_CONTEXT_OBSERVATIONS||"50",onChange:v=>S("CLAUDE_MEM_CONTEXT_OBSERVATIONS",v.target.value)})),E.default.createElement(Ze,{label:"Sessions",tooltip:"Number of recent sessions to pull observations from (1-50)"},E.default.createElement("input",{type:"number",min:"1",max:"50",value:i.CLAUDE_MEM_CONTEXT_SESSION_COUNT||"10",onChange:v=>S("CLAUDE_MEM_CONTEXT_SESSION_COUNT",v.target.value)}))),E.default.createElement(Ci,{title:"Filters",description:"Which observation types to include"},E.default.createElement(Lm,{label:"Type",options:y,selectedValues:c("CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES"),onToggle:v=>p("CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES",v),onSelectAll:()=>d("CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES",y),onSelectNone:()=>d("CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES",[])}),E.default.createElement(Lm,{label:"Concept",options:C,selectedValues:c("CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS"),onToggle:v=>p("CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS",v),onSelectAll:()=>d("CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS",C),onSelectNone:()=>d("CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS",[])})),E.default.createElement(Ci,{title:"Display",description:"What to show in context tables"},E.default.createElement("div",{className:"display-subsection"},E.default.createElement("span",{className:"subsection-label"},"Full Observations"),E.default.createElement(Ze,{label:"Count",tooltip:"How many observations show expanded details (0-20)"},E.default.createElement("input",{type:"number",min:"0",max:"20",value:i.CLAUDE_MEM_CONTEXT_FULL_COUNT||"5",onChange:v=>S("CLAUDE_MEM_CONTEXT_FULL_COUNT",v.target.value)})),E.default.createElement(Ze,{label:"Field",tooltip:"Which field to expand for full observations"},E.default.createElement("select",{value:i.CLAUDE_MEM_CONTEXT_FULL_FIELD||"narrative",onChange:v=>S("CLAUDE_MEM_CONTEXT_FULL_FIELD",v.target.value)},E.default.createElement("option",{value:"narrative"},"Narrative"),E.default.createElement("option",{value:"facts"},"Facts")))),E.default.createElement("div",{className:"display-subsection"},E.default.createElement("span",{className:"subsection-label"},"Token Economics"),E.default.createElement("div",{className:"toggle-group"},E.default.createElement(Or,{id:"show-read-tokens",label:"Read cost",description:"Tokens to read this observation",checked:i.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS==="true",onChange:()=>P("CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS")}),E.default.createElement(Or,{id:"show-work-tokens",label:"Work investment",description:"Tokens spent creating this observation",checked:i.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS==="true",onChange:()=>P("CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS")}),E.default.createElement(Or,{id:"show-savings-amount",label:"Savings",description:"Total tokens saved by reusing context",checked:i.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT==="true",onChange:()=>P("CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT")})))),E.default.createElement(Ci,{title:"Advanced",description:"AI provider and model selection",defaultOpen:!1},E.default.createElement(Ze,{label:"AI Provider",tooltip:"Choose between Claude (via Agent SDK) or Gemini (via REST API)"},E.default.createElement("select",{value:i.CLAUDE_MEM_PROVIDER||"claude",onChange:v=>S("CLAUDE_MEM_PROVIDER",v.target.value)},E.default.createElement("option",{value:"claude"},"Claude (uses your Claude account)"),E.default.createElement("option",{value:"gemini"},"Gemini (uses API key)"),E.default.createElement("option",{value:"openrouter"},"OpenRouter (multi-model)"))),i.CLAUDE_MEM_PROVIDER==="claude"&&E.default.createElement(Ze,{label:"Claude Model",tooltip:"Claude model used for generating observations"},E.default.createElement("select",{value:i.CLAUDE_MEM_MODEL||"haiku",onChange:v=>S("CLAUDE_MEM_MODEL",v.target.value)},E.default.createElement("option",{value:"haiku"},"haiku (fastest)"),E.default.createElement("option",{value:"sonnet"},"sonnet (balanced)"),E.default.createElement("option",{value:"opus"},"opus (highest quality)"))),i.CLAUDE_MEM_PROVIDER==="gemini"&&E.default.createElement(E.default.Fragment,null,E.default.createElement(Ze,{label:"Gemini API Key",tooltip:"Your Google AI Studio API key (or set GEMINI_API_KEY env var)"},E.default.createElement("input",{type:"password",value:i.CLAUDE_MEM_GEMINI_API_KEY||"",onChange:v=>S("CLAUDE_MEM_GEMINI_API_KEY",v.target.value),placeholder:"Enter Gemini API key..."})),E.default.createElement(Ze,{label:"Gemini Model",tooltip:"Gemini model used for generating observations"},E.default.createElement("select",{value:i.CLAUDE_MEM_GEMINI_MODEL||"gemini-2.5-flash-lite",onChange:v=>S("CLAUDE_MEM_GEMINI_MODEL",v.target.value)},E.default.createElement("option",{value:"gemini-2.5-flash-lite"},"gemini-2.5-flash-lite (10 RPM free)"),E.default.createElement("option",{value:"gemini-2.5-flash"},"gemini-2.5-flash (5 RPM free)"),E.default.createElement("option",{value:"gemini-3-flash"},"gemini-3-flash (5 RPM free)"))),E.default.createElement("div",{className:"toggle-group",style:{marginTop:"8px"}},E.default.createElement(Or,{id:"gemini-rate-limiting",label:"Rate Limiting",description:"Enable for free tier (10-30 RPM). Disable if you have billing set up (1000+ RPM).",checked:i.CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED==="true",onChange:v=>S("CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED",v?"true":"false")}))),i.CLAUDE_MEM_PROVIDER==="openrouter"&&E.default.createElement(E.default.Fragment,null,E.default.createElement(Ze,{label:"OpenRouter API Key",tooltip:"Your OpenRouter API key from openrouter.ai (or set OPENROUTER_API_KEY env var)"},E.default.createElement("input",{type:"password",value:i.CLAUDE_MEM_OPENROUTER_API_KEY||"",onChange:v=>S("CLAUDE_MEM_OPENROUTER_API_KEY",v.target.value),placeholder:"Enter OpenRouter API key..."})),E.default.createElement(Ze,{label:"OpenRouter Model",tooltip:"Model identifier from OpenRouter (e.g., anthropic/claude-3.5-sonnet, google/gemini-2.0-flash-thinking-exp)"},E.default.createElement("input",{type:"text",value:i.CLAUDE_MEM_OPENROUTER_MODEL||"xiaomi/mimo-v2-flash:free",onChange:v=>S("CLAUDE_MEM_OPENROUTER_MODEL",v.target.value),placeholder:"e.g., xiaomi/mimo-v2-flash:free"})),E.default.createElement(Ze,{label:"Site URL (Optional)",tooltip:"Your site URL for OpenRouter analytics (optional)"},E.default.createElement("input",{type:"text",value:i.CLAUDE_MEM_OPENROUTER_SITE_URL||"",onChange:v=>S("CLAUDE_MEM_OPENROUTER_SITE_URL",v.target.value),placeholder:"https://yoursite.com"})),E.default.createElement(Ze,{label:"App Name (Optional)",tooltip:"Your app name for OpenRouter analytics (optional)"},E.default.createElement("input",{type:"text",value:i.CLAUDE_MEM_OPENROUTER_APP_NAME||"claude-mem",onChange:v=>S("CLAUDE_MEM_OPENROUTER_APP_NAME",v.target.value),placeholder:"claude-mem"}))),E.default.createElement(Ze,{label:"Worker Port",tooltip:"Port for the background worker service"},E.default.createElement("input",{type:"number",min:"1024",max:"65535",value:i.CLAUDE_MEM_WORKER_PORT||"37777",onChange:v=>S("CLAUDE_MEM_WORKER_PORT",v.target.value)})),E.default.createElement("div",{className:"toggle-group",style:{marginTop:"12px"}},E.default.createElement(Or,{id:"show-last-summary",label:"Include last summary",description:"Add previous session's summary to context",checked:i.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY==="true",onChange:()=>P("CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY")}),E.default.createElement(Or,{id:"show-last-message",label:"Include last message",description:"Add previous session's final message",checked:i.CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE==="true",onChange:()=>P("CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE")}))))),E.default.createElement("div",{className:"modal-footer"},E.default.createElement("div",{className:"save-status"},l&&E.default.createElement("span",{className:l.includes("\u2713")?"success":l.includes("\u2717")?"error":""},l)),E.default.createElement("button",{className:"save-btn",onClick:L,disabled:o},o?"Saving...":"Save"))))}var A=te(ne(),1),Fo=[{key:"DEBUG",label:"Debug",icon:"\u{1F50D}",color:"#8b8b8b"},{key:"INFO",label:"Info",icon:"\u2139\uFE0F",color:"#58a6ff"},{key:"WARN",label:"Warn",icon:"\u26A0\uFE0F",color:"#d29922"},{key:"ERROR",label:"Error",icon:"\u274C",color:"#f85149"}],bo=[{key:"HOOK",label:"Hook",icon:"\u{1FA9D}",color:"#a371f7"},{key:"WORKER",label:"Worker",icon:"\u2699\uFE0F",color:"#58a6ff"},{key:"SDK",label:"SDK",icon:"\u{1F4E6}",color:"#3fb950"},{key:"PARSER",label:"Parser",icon:"\u{1F4C4}",color:"#79c0ff"},{key:"DB",label:"DB",icon:"\u{1F5C4}\uFE0F",color:"#f0883e"},{key:"SYSTEM",label:"System",icon:"\u{1F4BB}",color:"#8b949e"},{key:"HTTP",label:"HTTP",icon:"\u{1F310}",color:"#39d353"},{key:"SESSION",label:"Session",icon:"\u{1F4CB}",color:"#db61a2"},{key:"CHROMA",label:"Chroma",icon:"\u{1F52E}",color:"#a855f7"}];function E0(e){let t=/^\[([^\]]+)\]\s+\[(\w+)\s*\]\s+\[(\w+)\s*\]\s+(?:\[([^\]]+)\]\s+)?(.*)$/,n=e.match(t);if(!n)return{raw:e};let[,r,o,l,i,s]=n,a;return s.startsWith("\u2192")?a="dataIn":s.startsWith("\u2190")?a="dataOut":s.startsWith("\u2713")?a="success":s.startsWith("\u2717")?a="failure":s.startsWith("\u23F1")?a="timing":s.includes("[HAPPY-PATH]")&&(a="happyPath"),{raw:e,timestamp:r,level:o?.trim(),component:l?.trim(),correlationId:i||void 0,message:s,isSpecial:a}}function Am({isOpen:e,onClose:t}){let[n,r]=(0,A.useState)(""),[o,l]=(0,A.useState)(!1),[i,s]=(0,A.useState)(null),[a,u]=(0,A.useState)(!1),[m,g]=(0,A.useState)(350),[h,T]=(0,A.useState)(!1),S=(0,A.useRef)(0),L=(0,A.useRef)(0),P=(0,A.useRef)(null),p=(0,A.useRef)(!0),[c,d]=(0,A.useState)(new Set(["DEBUG","INFO","WARN","ERROR"])),[y,C]=(0,A.useState)(new Set(["HOOK","WORKER","SDK","PARSER","DB","SYSTEM","HTTP","SESSION","CHROMA"])),[v,k]=(0,A.useState)(!1),O=(0,A.useMemo)(()=>n?n.split(` +`).map(E0):[],[n]),B=(0,A.useMemo)(()=>O.filter(_=>v?_.raw.includes("[ALIGNMENT]"):!_.level||!_.component?!0:c.has(_.level)&&y.has(_.component)),[O,c,y,v]),I=(0,A.useCallback)(()=>{if(!P.current)return!0;let{scrollTop:_,scrollHeight:G,clientHeight:z}=P.current;return G-_-z<50},[]),j=(0,A.useCallback)(()=>{P.current&&p.current&&(P.current.scrollTop=P.current.scrollHeight)},[]),J=(0,A.useCallback)(async()=>{p.current=I(),l(!0),s(null);try{let _=await fetch("/api/logs");if(!_.ok)throw new Error(`Failed to fetch logs: ${_.statusText}`);let G=await _.json();r(G.logs||"")}catch(_){s(_ instanceof Error?_.message:"Unknown error")}finally{l(!1)}},[I]);(0,A.useEffect)(()=>{j()},[n,j]);let _n=(0,A.useCallback)(async()=>{if(confirm("Are you sure you want to clear all logs?")){l(!0),s(null);try{let _=await fetch("/api/logs/clear",{method:"POST"});if(!_.ok)throw new Error(`Failed to clear logs: ${_.statusText}`);r("")}catch(_){s(_ instanceof Error?_.message:"Unknown error")}finally{l(!1)}}},[]),Tn=(0,A.useCallback)(_=>{_.preventDefault(),T(!0),S.current=_.clientY,L.current=m},[m]);(0,A.useEffect)(()=>{if(!h)return;let _=z=>{let xe=S.current-z.clientY,q=Math.min(Math.max(150,L.current+xe),window.innerHeight-100);g(q)},G=()=>{T(!1)};return document.addEventListener("mousemove",_),document.addEventListener("mouseup",G),()=>{document.removeEventListener("mousemove",_),document.removeEventListener("mouseup",G)}},[h]),(0,A.useEffect)(()=>{e&&(p.current=!0,J())},[e,J]),(0,A.useEffect)(()=>{if(!e||!a)return;let _=setInterval(J,2e3);return()=>clearInterval(_)},[e,a,J]);let Ir=(0,A.useCallback)(_=>{d(G=>{let z=new Set(G);return z.has(_)?z.delete(_):z.add(_),z})},[]),Vn=(0,A.useCallback)(_=>{C(G=>{let z=new Set(G);return z.has(_)?z.delete(_):z.add(_),z})},[]),Wn=(0,A.useCallback)(_=>{d(_?new Set(["DEBUG","INFO","WARN","ERROR"]):new Set)},[]),wn=(0,A.useCallback)(_=>{C(_?new Set(["HOOK","WORKER","SDK","PARSER","DB","SYSTEM","HTTP","SESSION","CHROMA"]):new Set)},[]);if(!e)return null;let et=_=>{let G=Fo.find(Nn=>Nn.key===_.level),z=bo.find(Nn=>Nn.key===_.component),xe="var(--color-text-primary)",q="normal",xt="transparent";return _.level==="ERROR"?(xe="#f85149",xt="rgba(248, 81, 73, 0.1)"):_.level==="WARN"?(xe="#d29922",xt="rgba(210, 153, 34, 0.05)"):_.isSpecial==="success"?xe="#3fb950":_.isSpecial==="failure"?xe="#f85149":_.isSpecial==="happyPath"?xe="#d29922":G&&(xe=G.color),{color:xe,fontWeight:q,backgroundColor:xt,padding:"1px 0",borderRadius:"2px"}},Cn=(_,G)=>{if(!_.timestamp)return A.default.createElement("div",{key:G,className:"log-line log-line-raw"},_.raw);let z=Fo.find(q=>q.key===_.level),xe=bo.find(q=>q.key===_.component);return A.default.createElement("div",{key:G,className:"log-line",style:et(_)},A.default.createElement("span",{className:"log-timestamp"},"[",_.timestamp,"]")," ",A.default.createElement("span",{className:"log-level",style:{color:z?.color},title:_.level},"[",z?.icon||""," ",_.level?.padEnd(5),"]")," ",A.default.createElement("span",{className:"log-component",style:{color:xe?.color},title:_.component},"[",xe?.icon||""," ",_.component?.padEnd(7),"]")," ",_.correlationId&&A.default.createElement(A.default.Fragment,null,A.default.createElement("span",{className:"log-correlation"},"[",_.correlationId,"]")," "),A.default.createElement("span",{className:"log-message"},_.message))};return A.default.createElement("div",{className:"console-drawer",style:{height:`${m}px`}},A.default.createElement("div",{className:"console-resize-handle",onMouseDown:Tn},A.default.createElement("div",{className:"console-resize-bar"})),A.default.createElement("div",{className:"console-header"},A.default.createElement("div",{className:"console-tabs"},A.default.createElement("div",{className:"console-tab active"},"Console")),A.default.createElement("div",{className:"console-controls"},A.default.createElement("label",{className:"console-auto-refresh"},A.default.createElement("input",{type:"checkbox",checked:a,onChange:_=>u(_.target.checked)}),"Auto-refresh"),A.default.createElement("button",{className:"console-control-btn",onClick:J,disabled:o,title:"Refresh logs"},"\u21BB"),A.default.createElement("button",{className:"console-control-btn",onClick:()=>{p.current=!0,j()},title:"Scroll to bottom"},"\u2B07"),A.default.createElement("button",{className:"console-control-btn console-clear-btn",onClick:_n,disabled:o,title:"Clear logs"},"\u{1F5D1}"),A.default.createElement("button",{className:"console-control-btn",onClick:t,title:"Close console"},"\u2715"))),A.default.createElement("div",{className:"console-filters"},A.default.createElement("div",{className:"console-filter-section"},A.default.createElement("span",{className:"console-filter-label"},"Quick:"),A.default.createElement("div",{className:"console-filter-chips"},A.default.createElement("button",{className:`console-filter-chip ${v?"active":""}`,onClick:()=>k(!v),style:{"--chip-color":"#f0883e"},title:"Show only session alignment logs"},"\u{1F517} Alignment"))),A.default.createElement("div",{className:"console-filter-section"},A.default.createElement("span",{className:"console-filter-label"},"Levels:"),A.default.createElement("div",{className:"console-filter-chips"},Fo.map(_=>A.default.createElement("button",{key:_.key,className:`console-filter-chip ${c.has(_.key)?"active":""}`,onClick:()=>Ir(_.key),style:{"--chip-color":_.color},title:_.label},_.icon," ",_.label)),A.default.createElement("button",{className:"console-filter-action",onClick:()=>Wn(c.size===0),title:c.size===Fo.length?"Select none":"Select all"},c.size===Fo.length?"\u25CB":"\u25CF"))),A.default.createElement("div",{className:"console-filter-section"},A.default.createElement("span",{className:"console-filter-label"},"Components:"),A.default.createElement("div",{className:"console-filter-chips"},bo.map(_=>A.default.createElement("button",{key:_.key,className:`console-filter-chip ${y.has(_.key)?"active":""}`,onClick:()=>Vn(_.key),style:{"--chip-color":_.color},title:_.label},_.icon," ",_.label)),A.default.createElement("button",{className:"console-filter-action",onClick:()=>wn(y.size===0),title:y.size===bo.length?"Select none":"Select all"},y.size===bo.length?"\u25CB":"\u25CF")))),i&&A.default.createElement("div",{className:"console-error"},"\u26A0 ",i),A.default.createElement("div",{className:"console-content",ref:P},A.default.createElement("div",{className:"console-logs"},B.length===0?A.default.createElement("div",{className:"log-line log-line-empty"},"No logs available"):B.map((_,G)=>Cn(_,G)))))}var Je=te(ne(),1);var Et={OBSERVATIONS:"/api/observations",SUMMARIES:"/api/summaries",PROMPTS:"/api/prompts",SETTINGS:"/api/settings",STATS:"/api/stats",PROCESSING_STATUS:"/api/processing-status",STREAM:"/stream"};var Ni={SSE_RECONNECT_DELAY_MS:3e3,STATS_REFRESH_INTERVAL_MS:1e4,SAVE_STATUS_DISPLAY_DURATION_MS:3e3};function Mm(){let[e,t]=(0,Je.useState)([]),[n,r]=(0,Je.useState)([]),[o,l]=(0,Je.useState)([]),[i,s]=(0,Je.useState)([]),[a,u]=(0,Je.useState)(!1),[m,g]=(0,Je.useState)(!1),[h,T]=(0,Je.useState)(0),S=(0,Je.useRef)(null),L=(0,Je.useRef)();return(0,Je.useEffect)(()=>{let P=()=>{S.current&&S.current.close();let p=new EventSource(Et.STREAM);S.current=p,p.onopen=()=>{console.log("[SSE] Connected"),u(!0),L.current&&clearTimeout(L.current)},p.onerror=c=>{console.error("[SSE] Connection error:",c),u(!1),p.close(),L.current=setTimeout(()=>{L.current=void 0,console.log("[SSE] Attempting to reconnect..."),P()},Ni.SSE_RECONNECT_DELAY_MS)},p.onmessage=c=>{let d=JSON.parse(c.data);switch(d.type){case"initial_load":console.log("[SSE] Initial load:",{projects:d.projects?.length||0}),s(d.projects||[]);break;case"new_observation":d.observation&&(console.log("[SSE] New observation:",d.observation.id),t(y=>[d.observation,...y]));break;case"new_summary":if(d.summary){let y=d.summary;console.log("[SSE] New summary:",y.id),r(C=>[y,...C])}break;case"new_prompt":if(d.prompt){let y=d.prompt;console.log("[SSE] New prompt:",y.id),l(C=>[y,...C])}break;case"processing_status":typeof d.isProcessing=="boolean"&&(console.log("[SSE] Processing status:",d.isProcessing,"Queue depth:",d.queueDepth),g(d.isProcessing),T(d.queueDepth||0));break}}};return P(),()=>{S.current&&S.current.close(),L.current&&clearTimeout(L.current)}},[]),{observations:e,summaries:n,prompts:o,projects:i,isProcessing:m,queueDepth:h,isConnected:a}}var xr=te(ne(),1);var Z={CLAUDE_MEM_MODEL:"claude-sonnet-4-5",CLAUDE_MEM_CONTEXT_OBSERVATIONS:"50",CLAUDE_MEM_WORKER_PORT:"37777",CLAUDE_MEM_WORKER_HOST:"127.0.0.1",CLAUDE_MEM_PROVIDER:"claude",CLAUDE_MEM_GEMINI_API_KEY:"",CLAUDE_MEM_GEMINI_MODEL:"gemini-2.5-flash-lite",CLAUDE_MEM_OPENROUTER_API_KEY:"",CLAUDE_MEM_OPENROUTER_MODEL:"xiaomi/mimo-v2-flash:free",CLAUDE_MEM_OPENROUTER_SITE_URL:"",CLAUDE_MEM_OPENROUTER_APP_NAME:"claude-mem",CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED:"true",CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"true",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:"bugfix,feature,refactor,discovery,decision,change",CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:"how-it-works,why-it-exists,what-changed,problem-solution,gotcha,pattern,trade-off",CLAUDE_MEM_CONTEXT_FULL_COUNT:"5",CLAUDE_MEM_CONTEXT_FULL_FIELD:"narrative",CLAUDE_MEM_CONTEXT_SESSION_COUNT:"10",CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:"true",CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:"false"};function Om(){let[e,t]=(0,xr.useState)(Z),[n,r]=(0,xr.useState)(!1),[o,l]=(0,xr.useState)("");return(0,xr.useEffect)(()=>{fetch(Et.SETTINGS).then(s=>s.json()).then(s=>{t({CLAUDE_MEM_MODEL:s.CLAUDE_MEM_MODEL||Z.CLAUDE_MEM_MODEL,CLAUDE_MEM_CONTEXT_OBSERVATIONS:s.CLAUDE_MEM_CONTEXT_OBSERVATIONS||Z.CLAUDE_MEM_CONTEXT_OBSERVATIONS,CLAUDE_MEM_WORKER_PORT:s.CLAUDE_MEM_WORKER_PORT||Z.CLAUDE_MEM_WORKER_PORT,CLAUDE_MEM_WORKER_HOST:s.CLAUDE_MEM_WORKER_HOST||Z.CLAUDE_MEM_WORKER_HOST,CLAUDE_MEM_PROVIDER:s.CLAUDE_MEM_PROVIDER||Z.CLAUDE_MEM_PROVIDER,CLAUDE_MEM_GEMINI_API_KEY:s.CLAUDE_MEM_GEMINI_API_KEY||Z.CLAUDE_MEM_GEMINI_API_KEY,CLAUDE_MEM_GEMINI_MODEL:s.CLAUDE_MEM_GEMINI_MODEL||Z.CLAUDE_MEM_GEMINI_MODEL,CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED:s.CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED||Z.CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED,CLAUDE_MEM_OPENROUTER_API_KEY:s.CLAUDE_MEM_OPENROUTER_API_KEY||Z.CLAUDE_MEM_OPENROUTER_API_KEY,CLAUDE_MEM_OPENROUTER_MODEL:s.CLAUDE_MEM_OPENROUTER_MODEL||Z.CLAUDE_MEM_OPENROUTER_MODEL,CLAUDE_MEM_OPENROUTER_SITE_URL:s.CLAUDE_MEM_OPENROUTER_SITE_URL||Z.CLAUDE_MEM_OPENROUTER_SITE_URL,CLAUDE_MEM_OPENROUTER_APP_NAME:s.CLAUDE_MEM_OPENROUTER_APP_NAME||Z.CLAUDE_MEM_OPENROUTER_APP_NAME,CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:s.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS||Z.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS,CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:s.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS||Z.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS,CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:s.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT||Z.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT,CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:s.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT||Z.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT,CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES:s.CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES||Z.CLAUDE_MEM_CONTEXT_OBSERVATION_TYPES,CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS:s.CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS||Z.CLAUDE_MEM_CONTEXT_OBSERVATION_CONCEPTS,CLAUDE_MEM_CONTEXT_FULL_COUNT:s.CLAUDE_MEM_CONTEXT_FULL_COUNT||Z.CLAUDE_MEM_CONTEXT_FULL_COUNT,CLAUDE_MEM_CONTEXT_FULL_FIELD:s.CLAUDE_MEM_CONTEXT_FULL_FIELD||Z.CLAUDE_MEM_CONTEXT_FULL_FIELD,CLAUDE_MEM_CONTEXT_SESSION_COUNT:s.CLAUDE_MEM_CONTEXT_SESSION_COUNT||Z.CLAUDE_MEM_CONTEXT_SESSION_COUNT,CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:s.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY||Z.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY,CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:s.CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE||Z.CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE})}).catch(s=>{console.error("Failed to load settings:",s)})},[]),{settings:e,saveSettings:async s=>{r(!0),l("Saving...");let u=await(await fetch(Et.SETTINGS,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)})).json();u.success?(t(s),l("\u2713 Saved"),setTimeout(()=>l(""),Ni.SAVE_STATUS_DISPLAY_DURATION_MS)):l(`\u2717 Error: ${u.error}`),r(!1)},isSaving:n,saveStatus:o}}var Dr=te(ne(),1);function xm(){let[e,t]=(0,Dr.useState)({}),n=(0,Dr.useCallback)(async()=>{try{let o=await(await fetch(Et.STATS)).json();t(o)}catch(r){console.error("Failed to load stats:",r)}},[]);return(0,Dr.useEffect)(()=>{n()},[n]),{stats:e,refreshStats:n}}var Sn=te(ne(),1);function Eu(e,t,n){let[r,o]=(0,Sn.useState)({isLoading:!1,hasMore:!0}),l=(0,Sn.useRef)(0),i=(0,Sn.useRef)(n),s=(0,Sn.useRef)(r),a=(0,Sn.useCallback)(async()=>{let u=i.current!==n;if(u){l.current=0,i.current=n;let T={isLoading:!1,hasMore:!0};o(T),s.current=T}if(!u&&(s.current.isLoading||!s.current.hasMore))return[];o(T=>({...T,isLoading:!0}));let m=new URLSearchParams({offset:l.current.toString(),limit:Oo.PAGINATION_PAGE_SIZE.toString()});n&&m.append("project",n);let g=await fetch(`${e}?${m}`);if(!g.ok)throw new Error(`Failed to load ${t}: ${g.statusText}`);let h=await g.json();return o(T=>({...T,isLoading:!1,hasMore:h.hasMore})),l.current+=Oo.PAGINATION_PAGE_SIZE,h.items},[n,e,t]);return{...r,loadMore:a}}function Dm(e){let t=Eu(Et.OBSERVATIONS,"observations",e),n=Eu(Et.SUMMARIES,"summaries",e),r=Eu(Et.PROMPTS,"prompts",e);return{observations:t,summaries:n,prompts:r}}var Pr=te(ne(),1),Um="claude-mem-theme";function S0(){return typeof window>"u"||window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function Pm(){try{let e=localStorage.getItem(Um);if(e==="system"||e==="light"||e==="dark")return e}catch(e){console.warn("Failed to read theme preference from localStorage:",e)}return"system"}function Im(e){return e==="system"?S0():e}function Rm(){let[e,t]=(0,Pr.useState)(Pm),[n,r]=(0,Pr.useState)(()=>Im(Pm()));return(0,Pr.useEffect)(()=>{let l=Im(e);r(l),document.documentElement.setAttribute("data-theme",l)},[e]),(0,Pr.useEffect)(()=>{if(e!=="system")return;let l=window.matchMedia("(prefers-color-scheme: dark)"),i=s=>{let a=s.matches?"dark":"light";r(a),document.documentElement.setAttribute("data-theme",a)};return l.addEventListener("change",i),()=>l.removeEventListener("change",i)},[e]),{preference:e,resolvedTheme:n,setThemePreference:l=>{try{localStorage.setItem(Um,l),t(l)}catch(i){console.warn("Failed to save theme preference to localStorage:",i),t(l)}}}}function Li(e,t){let n=new Set;return[...e,...t].filter(r=>n.has(r.id)?!1:(n.add(r.id),!0))}function Fm(){let[e,t]=(0,W.useState)(""),[n,r]=(0,W.useState)(!1),[o,l]=(0,W.useState)(!1),[i,s]=(0,W.useState)([]),[a,u]=(0,W.useState)([]),[m,g]=(0,W.useState)([]),{observations:h,summaries:T,prompts:S,projects:L,isProcessing:P,queueDepth:p,isConnected:c}=Mm(),{settings:d,saveSettings:y,isSaving:C,saveStatus:v}=Om(),{stats:k,refreshStats:O}=xm(),{preference:B,resolvedTheme:I,setThemePreference:j}=Rm(),J=Dm(e),_n=(0,W.useMemo)(()=>e?i:Li(h,i),[h,i,e]),Tn=(0,W.useMemo)(()=>e?a:Li(T,a),[T,a,e]),Ir=(0,W.useMemo)(()=>e?m:Li(S,m),[S,m,e]),Vn=(0,W.useCallback)(()=>{r(et=>!et)},[]),Wn=(0,W.useCallback)(()=>{l(et=>!et)},[]),wn=(0,W.useCallback)(async()=>{try{let[et,Cn,_]=await Promise.all([J.observations.loadMore(),J.summaries.loadMore(),J.prompts.loadMore()]);et.length>0&&s(G=>[...G,...et]),Cn.length>0&&u(G=>[...G,...Cn]),_.length>0&&g(G=>[...G,..._])}catch(et){console.error("Failed to load more data:",et)}},[e,J.observations,J.summaries,J.prompts]);return(0,W.useEffect)(()=>{s([]),u([]),g([]),wn()},[e]),W.default.createElement(W.default.Fragment,null,W.default.createElement(Ap,{isConnected:c,projects:L,currentFilter:e,onFilterChange:t,isProcessing:P,queueDepth:p,themePreference:B,onThemeChange:j,onContextPreviewToggle:Vn}),W.default.createElement(Ip,{observations:_n,summaries:Tn,prompts:Ir,onLoadMore:wn,isLoading:J.observations.isLoading||J.summaries.isLoading||J.prompts.isLoading,hasMore:J.observations.hasMore||J.summaries.hasMore||J.prompts.hasMore}),W.default.createElement(km,{isOpen:n,onClose:Vn,settings:d,onSave:y,isSaving:C,saveStatus:v}),W.default.createElement("button",{className:"console-toggle-btn",onClick:Wn,title:"Toggle Console"},W.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},W.default.createElement("polyline",{points:"4 17 10 11 4 5"}),W.default.createElement("line",{x1:"12",y1:"19",x2:"20",y2:"19"}))),W.default.createElement(Am,{isOpen:o,onClose:Wn}))}var Gt=te(ne(),1),ki=class extends Gt.Component{constructor(t){super(t),this.state={hasError:!1,error:null,errorInfo:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,n){console.error("[ErrorBoundary] Caught error:",t,n),this.setState({error:t,errorInfo:n})}render(){return this.state.hasError?Gt.default.createElement("div",{style:{padding:"20px",color:"#ff6b6b",backgroundColor:"#1a1a1a",minHeight:"100vh"}},Gt.default.createElement("h1",{style:{fontSize:"24px",marginBottom:"10px"}},"Something went wrong"),Gt.default.createElement("p",{style:{marginBottom:"10px",color:"#8b949e"}},"The application encountered an error. Please refresh the page to try again."),this.state.error&&Gt.default.createElement("details",{style:{marginTop:"20px",color:"#8b949e"}},Gt.default.createElement("summary",{style:{cursor:"pointer",marginBottom:"10px"}},"Error details"),Gt.default.createElement("pre",{style:{backgroundColor:"#0d1117",padding:"10px",borderRadius:"6px",overflow:"auto"}},this.state.error.toString(),this.state.errorInfo&&` -`+this.state.errorInfo.componentStack))):this.props.children}};var Gd=document.getElementById("root");if(!Gd)throw new Error("Root element not found");var Jg=(0,Wd.createRoot)(Gd);Jg.render(iu.default.createElement(Ml,null,iu.default.createElement(bd,null)));})(); +`+this.state.errorInfo.componentStack))):this.props.children}};var zm=document.getElementById("root");if(!zm)throw new Error("Root element not found");var _0=(0,bm.createRoot)(zm);_0.render(Su.default.createElement(ki,null,Su.default.createElement(Fm,null)));})(); /*! Bundled license information: react/cjs/react.production.min.js: @@ -45,4 +46,7 @@ react-dom/cjs/react-dom.production.min.js: * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. *) + +dompurify/dist/purify.es.mjs: + (*! @license DOMPurify 3.3.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.1/LICENSE *) */ diff --git a/src/ui/viewer/components/TerminalPreview.tsx b/src/ui/viewer/components/TerminalPreview.tsx index a065c381..695189a9 100644 --- a/src/ui/viewer/components/TerminalPreview.tsx +++ b/src/ui/viewer/components/TerminalPreview.tsx @@ -1,5 +1,6 @@ import React, { useMemo, useRef, useLayoutEffect, useState } from 'react'; import AnsiToHtml from 'ansi-to-html'; +import DOMPurify from 'dompurify'; interface TerminalPreviewProps { content: string; @@ -26,7 +27,12 @@ export function TerminalPreview({ content, isLoading = false, className = '' }: scrollTopRef.current = preRef.current.scrollTop; } if (!content) return ''; - return ansiConverter.toHtml(content); + const convertedHtml = ansiConverter.toHtml(content); + return DOMPurify.sanitize(convertedHtml, { + ALLOWED_TAGS: ['span', 'div', 'br'], + ALLOWED_ATTR: ['style', 'class'], + ALLOW_DATA_ATTR: false + }); }, [content]); // Restore scroll position after render