diff --git a/package.json b/package.json index 914de795..b54b1f1e 100644 --- a/package.json +++ b/package.json @@ -124,6 +124,12 @@ "zod-to-json-schema": "^3.24.6" }, "devDependencies": { + "@derekstride/tree-sitter-sql": "^0.3.11", + "@tree-sitter-grammars/tree-sitter-lua": "^0.4.1", + "@tree-sitter-grammars/tree-sitter-markdown": "^0.3.2", + "@tree-sitter-grammars/tree-sitter-toml": "^0.7.0", + "@tree-sitter-grammars/tree-sitter-yaml": "^0.7.1", + "@tree-sitter-grammars/tree-sitter-zig": "^1.1.2", "@types/cors": "^2.8.19", "@types/dompurify": "^3.0.5", "@types/express": "^4.17.21", @@ -132,16 +138,24 @@ "@types/react-dom": "^18.3.0", "esbuild": "^0.27.2", "np": "^11.0.2", + "tree-sitter-bash": "^0.25.1", "tree-sitter-c": "^0.24.1", "tree-sitter-cli": "^0.26.5", "tree-sitter-cpp": "^0.23.4", + "tree-sitter-css": "^0.25.0", + "tree-sitter-elixir": "^0.3.5", "tree-sitter-go": "^0.25.0", + "tree-sitter-haskell": "^0.23.1", "tree-sitter-java": "^0.23.5", "tree-sitter-javascript": "^0.25.0", + "tree-sitter-kotlin": "^0.3.8", "tree-sitter-php": "^0.24.2", "tree-sitter-python": "^0.25.0", "tree-sitter-ruby": "^0.23.1", "tree-sitter-rust": "^0.24.0", + "tree-sitter-scala": "^0.24.0", + "tree-sitter-scss": "^1.0.0", + "tree-sitter-swift": "^0.7.1", "tree-sitter-typescript": "^0.23.2", "tsx": "^4.20.6", "typescript": "^5.3.0" diff --git a/plugin/package.json b/plugin/package.json index 87caf126..5d2834bb 100644 --- a/plugin/package.json +++ b/plugin/package.json @@ -14,7 +14,22 @@ "tree-sitter-python": "^0.25.0", "tree-sitter-ruby": "^0.23.1", "tree-sitter-rust": "^0.24.0", - "tree-sitter-typescript": "^0.23.2" + "tree-sitter-typescript": "^0.23.2", + "tree-sitter-kotlin": "^0.3.8", + "tree-sitter-swift": "^0.7.1", + "tree-sitter-php": "^0.24.2", + "tree-sitter-elixir": "^0.3.5", + "@tree-sitter-grammars/tree-sitter-lua": "^0.4.1", + "tree-sitter-scala": "^0.24.0", + "tree-sitter-bash": "^0.25.1", + "tree-sitter-haskell": "^0.23.1", + "@tree-sitter-grammars/tree-sitter-zig": "^1.1.2", + "tree-sitter-css": "^0.25.0", + "tree-sitter-scss": "^1.0.0", + "@tree-sitter-grammars/tree-sitter-toml": "^0.7.0", + "@tree-sitter-grammars/tree-sitter-yaml": "^0.7.1", + "@derekstride/tree-sitter-sql": "^0.3.11", + "@tree-sitter-grammars/tree-sitter-markdown": "^0.3.2" }, "engines": { "node": ">=18.0.0", diff --git a/plugin/skills/mem-search/SKILL.md b/plugin/skills/mem-search/SKILL.md index 22907195..2377ba23 100644 --- a/plugin/skills/mem-search/SKILL.md +++ b/plugin/skills/mem-search/SKILL.md @@ -125,3 +125,51 @@ get_observations(ids=[11131, 10942, 10855], orderBy="date_desc") - **Full observation:** ~500-1000 tokens each - **Batch fetch:** 1 HTTP request vs N individual requests - **10x token savings** by filtering before fetching + +## Smart-Explore Language Support + +Smart-explore tools (`smart_search`, `smart_outline`, `smart_unfold`) use tree-sitter AST parsing. The following languages are supported out of the box. + +### 24 Bundled Languages + +JS, TS, Python, Go, Rust, Ruby, Java, C, C++, Kotlin, Swift, PHP, Elixir, Lua, Scala, Bash, Haskell, Zig, CSS, SCSS, TOML, YAML, SQL, Markdown + +### Markdown Special Support + +Markdown files get structure-aware parsing beyond generic tree-sitter: + +- **Heading hierarchy** -- `#`/`##`/`###` headings are extracted as nested symbols (sections contain subsections) +- **Code block detection** -- fenced code blocks are surfaced as `code` symbols with language annotation +- **Section-aware unfold** -- `smart_unfold` on a heading returns the full section content (heading through all subsections until the next heading of equal or higher level) + +### User-Installable Grammars via `.claude-mem.json` + +Add custom tree-sitter grammars for languages not in the bundled set. Place `.claude-mem.json` in the project root: + +```json +{ + "grammars": { + "gleam": { + "package": "tree-sitter-gleam", + "extensions": [".gleam"] + }, + "protobuf": { + "package": "tree-sitter-proto", + "extensions": [".proto"], + "query": ".claude-mem/queries/proto.scm" + } + } +} +``` + +**Fields:** + +- `package` (string, required) -- npm package name for the tree-sitter grammar +- `extensions` (array of strings, required) -- file extensions to associate with this language +- `query` (string, optional) -- path to a custom `.scm` query file for symbol extraction. If omitted, a generic query is used. + +**Rules:** + +- User grammars do NOT override bundled languages. If a language is already bundled, the entry is ignored. +- The npm package must be installed in the project (`npm install tree-sitter-gleam`). +- Config is cached per project root. Changes to `.claude-mem.json` take effect on next worker restart. diff --git a/plugin/ui/viewer-bundle.js b/plugin/ui/viewer-bundle.js index fdeca9b1..6e5bf0a5 100644 --- a/plugin/ui/viewer-bundle.js +++ b/plugin/ui/viewer-bundle.js @@ -1,17 +1,17 @@ -"use strict";(()=>{var Xm=Object.create;var ju=Object.defineProperty;var $m=Object.getOwnPropertyDescriptor;var Km=Object.getOwnPropertyNames;var Ym=Object.getPrototypeOf,Qm=Object.prototype.hasOwnProperty;var Ne=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Zm=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Km(t))!Qm.call(e,o)&&o!==n&&ju(e,o,{get:()=>t[o],enumerable:!(r=$m(t,o))||r.enumerable});return e};var J=(e,t,n)=>(n=e!=null?Xm(Ym(e)):{},Zm(t||!e||!e.__esModule?ju(n,"default",{value:e,enumerable:!0}):n,e));var Ju=Ne(z=>{"use strict";var Fr=Symbol.for("react.element"),Jm=Symbol.for("react.portal"),eg=Symbol.for("react.fragment"),tg=Symbol.for("react.strict_mode"),ng=Symbol.for("react.profiler"),rg=Symbol.for("react.provider"),og=Symbol.for("react.context"),lg=Symbol.for("react.forward_ref"),ig=Symbol.for("react.suspense"),sg=Symbol.for("react.memo"),ag=Symbol.for("react.lazy"),Bu=Symbol.iterator;function ug(e){return e===null||typeof e!="object"?null:(e=Bu&&e[Bu]||e["@@iterator"],typeof e=="function"?e:null)}var Vu={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Gu=Object.assign,Xu={};function Zn(e,t,n){this.props=e,this.context=t,this.refs=Xu,this.updater=n||Vu}Zn.prototype.isReactComponent={};Zn.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")};Zn.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function $u(){}$u.prototype=Zn.prototype;function Hi(e,t,n){this.props=e,this.context=t,this.refs=Xu,this.updater=n||Vu}var ji=Hi.prototype=new $u;ji.constructor=Hi;Gu(ji,Zn.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(X=>{"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,X.unstable_now=function(){return tc.now()}):(Wi=Date,nc=Wi.now(),X.unstable_now=function(){return Wi.now()-nc});var tc,Wi,nc,Lt=[],Yt=[],mg=1,st=null,Ae=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=gt(Yt);t!==null;){if(t.callback===null)Qo(Yt);else if(t.startTime<=e)Qo(Yt),t.sortIndex=t.expirationTime,Xi(Lt,t);else break;t=gt(Yt)}}function Ki(e){if(zr=!1,$i(e),!An)if(gt(Lt)!==null)An=!0,Qi(Yi);else{var t=gt(Yt);t!==null&&Zi(Ki,t.startTime-e)}}function Yi(e,t){An=!1,zr&&(zr=!1,ic(Hr),Hr=-1),Zo=!0;var n=Ae;try{for($i(t),st=gt(Lt);st!==null&&(!(st.expirationTime>t)||e&&!uc());){var r=st.callback;if(typeof r=="function"){st.callback=null,Ae=st.priorityLevel;var o=r(st.expirationTime<=t);t=X.unstable_now(),typeof o=="function"?st.callback=o:st===gt(Lt)&&Qo(Lt),$i(t)}else Qo(Lt);st=gt(Lt)}if(st!==null)var l=!0;else{var i=gt(Yt);i!==null&&Zi(Ki,i.startTime-t),l=!1}return l}finally{st=null,Ae=n,Zo=!1}}var Jo=!1,Yo=null,Hr=-1,sc=5,ac=-1;function uc(){return!(X.unstable_now()-ace||125r?(e.sortIndex=n,Xi(Yt,e),gt(Lt)===null&&e===gt(Yt)&&(zr?(ic(Hr),Hr=-1):zr=!0,Zi(Ki,n-r))):(e.sortIndex=o,Xi(Lt,e),An||Zo||(An=!0,Qi(Yi))),e};X.unstable_shouldYield=uc;X.unstable_wrapCallback=function(e){var t=Ae;return function(){var n=Ae;Ae=t;try{return e.apply(this,arguments)}finally{Ae=n}}}});var dc=Ne((M0,fc)=>{"use strict";fc.exports=cc()});var vp=Ne(nt=>{"use strict";var gg=ee(),et=dc();function T(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,hg=/^[: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 vg(e){return _s.call(mc,e)?!0:_s.call(pc,e)?!1:hg.test(e)?mc[e]=!0:(pc[e]=!0,!1)}function yg(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 Eg(e,t,n,r){if(t===null||typeof t>"u"||yg(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 Re(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 Ce={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Ce[e]=new Re(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Ce[t]=new Re(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Ce[e]=new Re(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Ce[e]=new Re(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){Ce[e]=new Re(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Ce[e]=new Re(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Ce[e]=new Re(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Ce[e]=new Re(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Ce[e]=new Re(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);Ce[t]=new Re(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);Ce[t]=new Re(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);Ce[t]=new Re(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Ce[e]=new Re(e,1,!1,e.toLowerCase(),null,!1,!1)});Ce.xlinkHref=new Re("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Ce[e]=new Re(e,1,!1,e.toLowerCase(),null,!0,!0)});function ga(e,t,n,r){var o=Ce.hasOwnProperty(t)?Ce[t]:null;(o!==null?o.type!==0:r||!(2{var Xm=Object.create;var ju=Object.defineProperty;var $m=Object.getOwnPropertyDescriptor;var Km=Object.getOwnPropertyNames;var Ym=Object.getPrototypeOf,Qm=Object.prototype.hasOwnProperty;var Le=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Zm=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Km(t))!Qm.call(e,o)&&o!==n&&ju(e,o,{get:()=>t[o],enumerable:!(r=$m(t,o))||r.enumerable});return e};var ee=(e,t,n)=>(n=e!=null?Xm(Ym(e)):{},Zm(t||!e||!e.__esModule?ju(n,"default",{value:e,enumerable:!0}):n,e));var Ju=Le(F=>{"use strict";var Fr=Symbol.for("react.element"),Jm=Symbol.for("react.portal"),eg=Symbol.for("react.fragment"),tg=Symbol.for("react.strict_mode"),ng=Symbol.for("react.profiler"),rg=Symbol.for("react.provider"),og=Symbol.for("react.context"),lg=Symbol.for("react.forward_ref"),ig=Symbol.for("react.suspense"),sg=Symbol.for("react.memo"),ag=Symbol.for("react.lazy"),Bu=Symbol.iterator;function ug(e){return e===null||typeof e!="object"?null:(e=Bu&&e[Bu]||e["@@iterator"],typeof e=="function"?e:null)}var Vu={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||Vu}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||Vu}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=Le($=>{"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()}):(Wi=Date,nc=Wi.now(),$.unstable_now=function(){return Wi.now()-nc});var tc,Wi,nc,Tt=[],Yt=[],mg=1,rt=null,Ne=3,Zo=!1,Mn=!1,br=!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=ft(Yt);t!==null;){if(t.callback===null)Qo(Yt);else if(t.startTime<=e)Qo(Yt),t.sortIndex=t.expirationTime,Xi(Tt,t);else break;t=ft(Yt)}}function Ki(e){if(br=!1,$i(e),!Mn)if(ft(Tt)!==null)Mn=!0,Qi(Yi);else{var t=ft(Yt);t!==null&&Zi(Ki,t.startTime-e)}}function Yi(e,t){Mn=!1,br&&(br=!1,ic(Hr),Hr=-1),Zo=!0;var n=Ne;try{for($i(t),rt=ft(Tt);rt!==null&&(!(rt.expirationTime>t)||e&&!uc());){var r=rt.callback;if(typeof r=="function"){rt.callback=null,Ne=rt.priorityLevel;var o=r(rt.expirationTime<=t);t=$.unstable_now(),typeof o=="function"?rt.callback=o:rt===ft(Tt)&&Qo(Tt),$i(t)}else Qo(Tt);rt=ft(Tt)}if(rt!==null)var l=!0;else{var i=ft(Yt);i!==null&&Zi(Ki,i.startTime-t),l=!1}return l}finally{rt=null,Ne=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(Yt,e),ft(Tt)===null&&e===ft(Yt)&&(br?(ic(Hr),Hr=-1):br=!0,Zi(Ki,n-r))):(e.sortIndex=o,Xi(Tt,e),Mn||Zo||(Mn=!0,Qi(Yi))),e};$.unstable_shouldYield=uc;$.unstable_wrapCallback=function(e){var t=Ne;return function(){var n=Ne;Ne=t;try{return e.apply(this,arguments)}finally{Ne=n}}}});var dc=Le((k0,fc)=>{"use strict";fc.exports=cc()});var vp=Le(Je=>{"use strict";var gg=te(),Qe=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,hg=/^[: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 vg(e){return _s.call(mc,e)?!0:_s.call(pc,e)?!1:hg.test(e)?mc[e]=!0:(pc[e]=!0,!1)}function yg(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 Eg(e,t,n,r){if(t===null||typeof t>"u"||yg(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 Re(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 Re(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 Re(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Te[e]=new Re(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Te[e]=new Re(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 Re(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Te[e]=new Re(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Te[e]=new Re(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Te[e]=new Re(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Te[e]=new Re(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 Re(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 Re(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 Re(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Te[e]=new Re(e,1,!1,e.toLowerCase(),null,!1,!1)});Te.xlinkHref=new Re("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Te[e]=new Re(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 Sg(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 ks(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 nr:return"Fragment";case tr:return"Portal";case ws:return"Profiler";case ha:return"StrictMode";case Ts:return"Suspense";case Cs:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case wf: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:ks(e.type)||"Memo";case Zt:t=e._payload,e=e._init;try{return ks(e(t))}catch{}}return null}function _g(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 ks(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 pn(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 kf(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 oe({},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=pn(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 Ns(e,t){Lf(e,t);var n=pn(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,pn(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 pr(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},Tg=["Webkit","ms","Moz","O"];Object.keys(Jr).forEach(function(e){Tg.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Jr[t]=Jr[e]})});function xf(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 Of(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,o=xf(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}var Cg=oe({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 Os(e,t){if(t){if(Cg[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(T(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(T(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(T(61))}if(t.style!=null&&typeof t.style!="object")throw Error(T(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,mr=null,gr=null;function Sc(e){if(e=Ao(e)){if(typeof Is!="function")throw Error(T(280));var t=e.stateNode;t&&(t=ri(t),Is(e.stateNode,e.type,t))}}function Df(e){mr?gr?gr.push(e):gr=[e]:mr=e}function Pf(){if(mr){var e=mr,t=gr;if(gr=mr=null,Sc(e),t)for(e=0;e>>=0,e===0?32:31-(Ug(e)/Rg|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-St(t),e[t]=n}function Hg(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=" ",xc=!1;function Jf(e,t){switch(e){case"keyup":return mh.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 rr=!1;function hh(e,t){switch(e){case"compositionend":return ed(t);case"keypress":return t.which!==32?null:(xc=!0,Mc);case"textInput":return e=t.data,e===Mc&&xc?null:e;default:return null}}function vh(e,t){if(rr)return e==="compositionend"||!Na&&Jf(e,t)?(e=Qf(),Sl=Ca=nn=null,rr=!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 Lh(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,or=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||or==null||or!==Ml(r)||(r=or,"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"),0sr||(e.current=Xs[sr],Xs[sr]=null,sr--)}function $(e,t){sr++,Xs[sr]=e.current,e.current=t}var mn={},De=hn(mn),Ve=hn(!1),Rn=mn;function Sr(e,t){var n=e.type.contextTypes;if(!n)return mn;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 Ge(e){return e=e.childContextTypes,e!=null}function bl(){Y(Ve),Y(De)}function Wc(e,t,n){if(De.current!==mn)throw Error(T(168));$(De,t),$(Ve,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(T(108,_g(e)||"Unknown",o));return oe({},n,r)}function zl(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||mn,Rn=De.current,$(De,e),$(Ve,Ve.current),!0}function Vc(e,t,n){var r=e.stateNode;if(!r)throw Error(T(169));n?(e=md(e,t,Rn),r.__reactInternalMemoizedMergedChildContext=e,Y(Ve),Y(De),$(De,e)):Y(Ve),$(Ve,n)}var Ht=null,oi=!1,ds=!1;function gd(e){Ht===null?Ht=[e]:Ht.push(e)}function Rh(e){oi=!0,gd(e)}function vn(){if(!ds&&Ht!==null){ds=!0;var e=0,t=V;try{var n=Ht;for(V=1;e>=i,o-=i,jt=1<<32-St(t)+o|n<D?(G=x,x=null):G=x.sibling;var U=v(f,x,m[D],p);if(U===null){x===null&&(x=G);break}e&&x&&U.alternate===null&&t(f,x),c=l(U,c,D),L===null?_=U:L.sibling=U,L=U,x=G}if(D===m.length)return n(f,x),te&&Mn(f,D),_;if(x===null){for(;DD?(G=x,x=null):G=x.sibling;var W=v(f,x,U.value,p);if(W===null){x===null&&(x=G);break}e&&x&&W.alternate===null&&t(f,x),c=l(W,c,D),L===null?_=W:L.sibling=W,L=W,x=G}if(U.done)return n(f,x),te&&Mn(f,D),_;if(x===null){for(;!U.done;D++,U=m.next())U=h(f,U.value,p),U!==null&&(c=l(U,c,D),L===null?_=U:L.sibling=U,L=U);return te&&Mn(f,D),_}for(x=r(f,x);!U.done;D++,U=m.next())U=E(x,f,D,U.value,p),U!==null&&(e&&U.alternate!==null&&x.delete(U.key===null?D:U.key),c=l(U,c,D),L===null?_=U:L.sibling=U,L=U);return e&&x.forEach(function(it){return t(f,it)}),te&&Mn(f,D),_}function M(f,c,m,p){if(typeof m=="object"&&m!==null&&m.type===nr&&m.key===null&&(m=m.props.children),typeof m=="object"&&m!==null){switch(m.$$typeof){case el:e:{for(var _=m.key,L=c;L!==null;){if(L.key===_){if(_=m.type,_===nr){if(L.tag===7){n(f,L.sibling),c=o(L,m.props.children),c.return=f,f=c;break e}}else if(L.elementType===_||typeof _=="object"&&_!==null&&_.$$typeof===Zt&&$c(_)===L.type){n(f,L.sibling),c=o(L,m.props),c.ref=Vr(f,L,m),c.return=f,f=c;break e}n(f,L);break}else t(f,L);L=L.sibling}m.type===nr?(c=Un(m.props.children,f.mode,p,m.key),c.return=f,f=c):(p=Al(m.type,m.key,m.props,null,f.mode,p),p.ref=Vr(f,c,m),p.return=f,f=p)}return i(f);case tr:e:{for(L=m.key;c!==null;){if(c.key===L)if(c.tag===4&&c.stateNode.containerInfo===m.containerInfo&&c.stateNode.implementation===m.implementation){n(f,c.sibling),c=o(c,m.children||[]),c.return=f,f=c;break e}else{n(f,c);break}else t(f,c);c=c.sibling}c=Ss(m,f.mode,p),c.return=f,f=c}return i(f);case Zt:return L=m._init,M(f,c,L(m._payload),p)}if(Yr(m))return w(f,c,m,p);if(jr(m))return k(f,c,m,p);gl(f,m)}return typeof m=="string"&&m!==""||typeof m=="number"?(m=""+m,c!==null&&c.tag===6?(n(f,c.sibling),c=o(c,m),c.return=f,f=c):(n(f,c),c=Es(m,f.mode,p),c.return=f,f=c),i(f)):n(f,c)}return M}var wr=Ed(!0),Sd=Ed(!1),Bl=hn(null),ql=null,cr=null,Da=null;function Pa(){Da=cr=ql=null}function Ia(e){var t=Bl.current;Y(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 vr(e,t){ql=e,Da=cr=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(We=!0),e.firstContext=null)}function dt(e){var t=e._currentValue;if(Da!==e)if(e={context:e,memoizedValue:t,next:null},cr===null){if(ql===null)throw Error(T(308));cr=e,ql.dependencies={lanes:0,firstContext:e}}else cr=cr.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,Gt(e,r)}function Gt(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 Jt=!1;function Ra(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function wd(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 qt(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function un(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,(j&2)!==0){var o=r.pending;return o===null?t.next=t:(t.next=o.next,o.next=t),r.pending=t,Gt(e,n)}return o=r.interleaved,o===null?(t.next=t,Ua(r)):(t.next=o.next,o.next=t),r.interleaved=t,Gt(e,n)}function wl(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 Wl(e,t,n,r){var o=e.updateQueue;Jt=!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 g=e.alternate;g!==null&&(g=g.updateQueue,s=g.lastBaseUpdate,s!==i&&(s===null?g.firstBaseUpdate=u:s.next=u,g.lastBaseUpdate=a))}if(l!==null){var h=o.baseState;i=0,g=u=a=null,s=l;do{var v=s.lane,E=s.eventTime;if((r&v)===v){g!==null&&(g=g.next={eventTime:E,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var w=e,k=s;switch(v=t,E=n,k.tag){case 1:if(w=k.payload,typeof w=="function"){h=w.call(E,h,v);break e}h=w;break e;case 3:w.flags=w.flags&-65537|128;case 0:if(w=k.payload,v=typeof w=="function"?w.call(E,h,v):w,v==null)break e;h=oe({},h,v);break e;case 2:Jt=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,v=o.effects,v===null?o.effects=[s]:v.push(s))}else E={eventTime:E,lane:v,tag:s.tag,payload:s.payload,callback:s.callback,next:null},g===null?(u=g=E,a=h):g=g.next=E,i|=v;if(s=s.next,s===null){if(s=o.shared.pending,s===null)break;v=s,s=v.next,v.next=null,o.lastBaseUpdate=v,o.shared.pending=null}}while(!0);if(g===null&&(a=h),o.baseState=a,o.firstBaseUpdate=u,o.lastBaseUpdate=g,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=h}}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 pt().memoizedState}function Hh(e,t,n){var r=fn(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=Ue();_t(n,e,r,o),Bd(n,t,r)}}function jh(e,t,n){var r=fn(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,wt(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=Ue(),_t(n,e,r,o),Bd(n,t,r))}}function Hd(e){var t=e.alternate;return e===re||t!==null&&t===re}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:dt,useCallback:Me,useContext:Me,useEffect:Me,useImperativeHandle:Me,useInsertionEffect:Me,useLayoutEffect:Me,useMemo:Me,useReducer:Me,useRef:Me,useState:Me,useDebugValue:Me,useDeferredValue:Me,useTransition:Me,useMutableSource:Me,useSyncExternalStore:Me,useId:Me,unstable_isNewReconciler:!1},Bh={readContext:dt,useCallback:function(e,t){return At().memoizedState=[e,t===void 0?null:t],e},useContext:dt,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=At();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=At();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=Hh.bind(null,re,e),[r.memoizedState,e]},useRef:function(e){var t=At();return e={current:e},t.memoizedState=e},useState:Qc,useDebugValue:Wa,useDeferredValue:function(e){return At().memoizedState=e},useTransition:function(){var e=Qc(!1),t=e[0];return e=zh.bind(null,e[1]),At().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=re,o=At();if(te){if(n===void 0)throw Error(T(407));n=n()}else{if(n=t(),ye===null)throw Error(T(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,Nd.bind(null,r,l,n,t),void 0,null),n},useId:function(){var e=At(),t=ye.identifierPrefix;if(te){var n=Bt,r=jt;n=(r&~(1<<32-St(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=wo++,0")&&(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 Sg(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 ks(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 ws:return"Profiler";case ha:return"StrictMode";case Ts:return"Suspense";case Cs:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case wf: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:ks(e.type)||"Memo";case Zt:t=e._payload,e=e._init;try{return ks(e(t))}catch{}}return null}function _g(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 ks(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 pn(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 kf(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 le({},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=pn(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 Ns(e,t){Lf(e,t);var n=pn(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,pn(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},Tg=["Webkit","ms","Moz","O"];Object.keys(Jr).forEach(function(e){Tg.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Jr[t]=Jr[e]})});function xf(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 Of(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,o=xf(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}var Cg=le({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 Os(e,t){if(t){if(Cg[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-(Ug(e)/Rg|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-ht(t),e[t]=n}function Hg(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=" ",xc=!1;function Jf(e,t){switch(e){case"keyup":return mh.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 hh(e,t){switch(e){case"compositionend":return ed(t);case"keypress":return t.which!==32?null:(xc=!0,Mc);case"textInput":return e=t.data,e===Mc&&xc?null:e;default:return null}}function vh(e,t){if(or)return e==="compositionend"||!Na&&Jf(e,t)?(e=Qf(),Sl=Ca=nn=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 Lh(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 mn={},Oe=hn(mn),qe=hn(!1),Fn=mn;function _r(e,t){var n=e.type.contextTypes;if(!n)return mn;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 We(e){return e=e.childContextTypes,e!=null}function zl(){Q(qe),Q(Oe)}function Wc(e,t,n){if(Oe.current!==mn)throw Error(w(168));K(Oe,t),K(qe,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,_g(e)||"Unknown",o));return le({},n,r)}function bl(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||mn,Fn=Oe.current,K(Oe,e),K(qe,qe.current),!0}function Vc(e,t,n){var r=e.stateNode;if(!r)throw Error(w(169));n?(e=md(e,t,Fn),r.__reactInternalMemoizedMergedChildContext=e,Q(qe),Q(Oe),K(Oe,e)):Q(qe),K(qe,n)}var Ft=null,oi=!1,ds=!1;function gd(e){Ft===null?Ft=[e]:Ft.push(e)}function Rh(e){oi=!0,gd(e)}function vn(){if(!ds&&Ft!==null){ds=!0;var e=0,t=q;try{var n=Ft;for(q=1;e>=i,o-=i,zt=1<<32-ht(t)+o|n<O?(V=M,M=null):V=M.sibling;var I=h(c,M,p[O],v);if(I===null){M===null&&(M=V);break}e&&M&&I.alternate===null&&t(c,M),f=l(I,f,O),L===null?C=I:L.sibling=I,L=I,M=V}if(O===p.length)return n(c,M),ne&&xn(c,O),C;if(M===null){for(;OO?(V=M,M=null):V=M.sibling;var j=h(c,M,I.value,v);if(j===null){M===null&&(M=V);break}e&&M&&j.alternate===null&&t(c,M),f=l(j,f,O),L===null?C=j:L.sibling=j,L=j,M=V}if(I.done)return n(c,M),ne&&xn(c,O),C;if(M===null){for(;!I.done;O++,I=p.next())I=g(c,I.value,v),I!==null&&(f=l(I,f,O),L===null?C=I:L.sibling=I,L=I);return ne&&xn(c,O),C}for(M=r(c,M);!I.done;O++,I=p.next())I=_(M,c,O,I.value,v),I!==null&&(e&&I.alternate!==null&&M.delete(I.key===null?O:I.key),f=l(I,f,O),L===null?C=I:L.sibling=I,L=I);return e&&M.forEach(function(Z){return t(c,Z)}),ne&&xn(c,O),C}function P(c,f,p,v){if(typeof p=="object"&&p!==null&&p.type===rr&&p.key===null&&(p=p.props.children),typeof p=="object"&&p!==null){switch(p.$$typeof){case el:e:{for(var C=p.key,L=f;L!==null;){if(L.key===C){if(C=p.type,C===rr){if(L.tag===7){n(c,L.sibling),f=o(L,p.props.children),f.return=c,c=f;break e}}else if(L.elementType===C||typeof C=="object"&&C!==null&&C.$$typeof===Zt&&$c(C)===L.type){n(c,L.sibling),f=o(L,p.props),f.ref=Vr(c,L,p),f.return=c,c=f;break e}n(c,L);break}else t(c,L);L=L.sibling}p.type===rr?(f=Rn(p.props.children,c.mode,v,p.key),f.return=c,c=f):(v=Al(p.type,p.key,p.props,null,c.mode,v),v.ref=Vr(c,f,p),v.return=c,c=v)}return i(c);case nr:e:{for(L=p.key;f!==null;){if(f.key===L)if(f.tag===4&&f.stateNode.containerInfo===p.containerInfo&&f.stateNode.implementation===p.implementation){n(c,f.sibling),f=o(f,p.children||[]),f.return=c,c=f;break e}else{n(c,f);break}else t(c,f);f=f.sibling}f=Ss(p,c.mode,v),f.return=c,c=f}return i(c);case Zt:return L=p._init,P(c,f,L(p._payload),v)}if(Yr(p))return E(c,f,p,v);if(jr(p))return k(c,f,p,v);gl(c,p)}return typeof p=="string"&&p!==""||typeof p=="number"?(p=""+p,f!==null&&f.tag===6?(n(c,f.sibling),f=o(f,p),f.return=c,c=f):(n(c,f),f=Es(p,c.mode,v),f.return=c,c=f),i(c)):n(c,f)}return P}var Tr=Ed(!0),Sd=Ed(!1),Bl=hn(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&&(Be=!0),e.firstContext=null)}function at(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 Pn=null;function Ua(e){Pn===null?Pn=[e]:Pn.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,qt(e,r)}function qt(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 Jt=!1;function Ra(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function wd(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 Ht(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function un(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,qt(e,n)}return o=r.interleaved,o===null?(t.next=t,Ua(r)):(t.next=o.next,o.next=t),r.interleaved=t,qt(e,n)}function wl(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 Wl(e,t,n,r){var o=e.updateQueue;Jt=!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,_=s.eventTime;if((r&h)===h){m!==null&&(m=m.next={eventTime:_,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var E=e,k=s;switch(h=t,_=n,k.tag){case 1:if(E=k.payload,typeof E=="function"){g=E.call(_,g,h);break e}g=E;break e;case 3:E.flags=E.flags&-65537|128;case 0:if(E=k.payload,h=typeof E=="function"?E.call(_,g,h):E,h==null)break e;g=le({},g,h);break e;case 2:Jt=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,h=o.effects,h===null?o.effects=[s]:h.push(s))}else _={eventTime:_,lane:h,tag:s.tag,payload:s.payload,callback:s.callback,next:null},m===null?(u=m=_,a=g):m=m.next=_,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);Hn|=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{q=n,ms.transition=r}}function bd(){return ut().memoizedState}function Hh(e,t,n){var r=fn(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=Ue();vt(n,e,r,o),Bd(n,t,r)}}function jh(e,t,n){var r=fn(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,yt(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=Ue(),vt(n,e,r,o),Bd(n,t,r))}}function Hd(e){var t=e.alternate;return e===oe||t!==null&&t===oe}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:at,useCallback:Ae,useContext:Ae,useEffect:Ae,useImperativeHandle:Ae,useInsertionEffect:Ae,useLayoutEffect:Ae,useMemo:Ae,useReducer:Ae,useRef:Ae,useState:Ae,useDebugValue:Ae,useDeferredValue:Ae,useTransition:Ae,useMutableSource:Ae,useSyncExternalStore:Ae,useId:Ae,unstable_isNewReconciler:!1},Bh={readContext:at,useCallback:function(e,t){return kt().memoizedState=[e,t===void 0?null:t],e},useContext:at,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=kt();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=kt();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=Hh.bind(null,oe,e),[r.memoizedState,e]},useRef:function(e){var t=kt();return e={current:e},t.memoizedState=e},useState:Qc,useDebugValue:Wa,useDeferredValue:function(e){return kt().memoizedState=e},useTransition:function(){var e=Qc(!1),t=e[0];return e=bh.bind(null,e[1]),kt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=oe,o=kt();if(ne){if(n===void 0)throw Error(w(407));n=n()}else{if(n=t(),ye===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,Nd.bind(null,r,l,n,t),void 0,null),n},useId:function(){var e=kt(),t=ye.identifierPrefix;if(ne){var n=bt,r=zt;n=(r&~(1<<32-ht(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=wo++,0<\/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[Mt]=t,e[Eo]=r,Zd(e,t,!1,!1),t.stateNode=e;e:{switch(i=Ds(n,r),n){case"dialog":K("cancel",e),K("close",e),o=r;break;case"iframe":case"object":case"embed":K("load",e),o=r;break;case"video":case"audio":for(o=0;okr&&(t.flags|=128,r=!0,Gr(l,!1),t.lanes=4194304)}else{if(!r)if(e=Vl(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&&!te)return xe(t),null}else 2*se()-l.renderingStartTime>kr&&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=se(),t.sibling=null,n=ne.current,$(ne,r?n&1|2:n&1),t):(xe(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?(Qe&1073741824)!==0&&(xe(t),t.subtreeFlags&6&&(t.flags|=8192)):xe(t),null;case 24:return null;case 25:return null}throw Error(T(156,t.tag))}function Yh(e,t){switch(xa(t),t.tag){case 1:return Ge(t.type)&&bl(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Tr(),Y(Ve),Y(De),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(Y(ne),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(T(340));_r()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Y(ne),null;case 4:return Tr(),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,Oe=!1,Qh=typeof WeakSet=="function"?WeakSet:Set,A=null;function fr(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){ie(e,t,r)}else n.current=null}function la(e,t,n){try{n()}catch(r){ie(e,t,r)}}var cf=!1;function Zh(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,g=0,h=e,v=null;t:for(;;){for(var E;h!==n||o!==0&&h.nodeType!==3||(s=i+o),h!==l||r!==0&&h.nodeType!==3||(a=i+r),h.nodeType===3&&(i+=h.nodeValue.length),(E=h.firstChild)!==null;)v=h,h=E;for(;;){if(h===e)break t;if(v===n&&++u===o&&(s=i),v===l&&++g===r&&(a=i),(E=h.nextSibling)!==null)break;h=v,v=h.parentNode}h=E}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,A=t;A!==null;)if(t=A,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,A=e;else for(;A!==null;){t=A;try{var w=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(w!==null){var k=w.memoizedProps,M=w.memoizedState,f=t.stateNode,c=f.getSnapshotBeforeUpdate(t.elementType===t.type?k:vt(t.type,k),M);f.__reactInternalSnapshotBeforeUpdate=c}break;case 3:var m=t.stateNode.containerInfo;m.nodeType===1?m.textContent="":m.nodeType===9&&m.documentElement&&m.removeChild(m.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(T(163))}}catch(p){ie(t,t.return,p)}if(e=t.sibling,e!==null){e.return=t.return,A=e;break}A=t.return}return w=cf,cf=!1,w}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[Mt],delete t[Eo],delete t[Gs],delete t[Ih],delete t[Uh])),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 we=null,yt=!1;function Qt(e,t,n){for(n=n.child;n!==null;)rp(e,t,n),n=n.sibling}function rp(e,t,n){if(xt&&typeof xt.onCommitFiberUnmount=="function")try{xt.onCommitFiberUnmount(Jl,n)}catch{}switch(n.tag){case 5:Oe||fr(n,t);case 6:var r=we,o=yt;we=null,Qt(e,t,n),we=r,yt=o,we!==null&&(yt?(e=we,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):we.removeChild(n.stateNode));break;case 18:we!==null&&(yt?(e=we,n=n.stateNode,e.nodeType===8?fs(e.parentNode,n):e.nodeType===1&&fs(e,n),mo(e)):fs(we,n.stateNode));break;case 4:r=we,o=yt,we=n.stateNode.containerInfo,yt=!0,Qt(e,t,n),we=r,yt=o;break;case 0:case 11:case 14:case 15:if(!Oe&&(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)}Qt(e,t,n);break;case 1:if(!Oe&&(fr(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){ie(n,t,s)}Qt(e,t,n);break;case 21:Qt(e,t,n);break;case 22:n.mode&1?(Oe=(r=Oe)||n.memoizedState!==null,Qt(e,t,n),Oe=r):Qt(e,t,n);break;default:Qt(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 Qh),t.forEach(function(r){var o=sv.bind(null,e,r);n.has(r)||(n.add(r),r.then(o,o))})}}function ht(e,t){var n=t.deletions;if(n!==null)for(var r=0;ro&&(o=i),r&=~l}if(r=o,r=se()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*ev(r/1960))-r,10e?16:e,rn===null)var r=!1;else{if(e=rn,rn=null,Yl=0,(j&6)!==0)throw Error(T(331));var o=j;for(j|=4,A=e.current;A!==null;){var l=A,i=l.child;if((A.flags&16)!==0){var s=l.deletions;if(s!==null){for(var a=0;ase()-$a?In(e,0):Xa|=n),Xe(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=Ue();e=Gt(e,t),e!==null&&(Lo(e,t,n),Xe(e,n))}function iv(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),fp(e,n)}function sv(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(T(314))}r!==null&&r.delete(t),fp(e,n)}var dp;dp=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Ve.current)We=!0;else{if((e.lanes&n)===0&&(t.flags&128)===0)return We=!1,$h(e,t,n);We=(e.flags&131072)!==0}else We=!1,te&&(t.flags&1048576)!==0&&hd(t,jl,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;kl(e,t),e=t.pendingProps;var o=Sr(t,De.current);vr(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,Ge(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,te&&l&&Ma(t),Ie(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch(kl(e,t),e=t.pendingProps,o=r._init,r=o(r._payload),t.type=r,o=t.tag=uv(r),e=vt(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,vt(r.type,e),n);break e}throw Error(T(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:vt(r,o),ea(e,t,r,o,n);case 1:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:vt(r,o),sf(e,t,r,o,n);case 3:e:{if(Kd(t),e===null)throw Error(T(387));r=t.pendingProps,l=t.memoizedState,o=l.element,wd(e,t),Wl(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=Cr(Error(T(423)),t),t=af(e,t,r,n,o);break e}else if(r!==o){o=Cr(Error(T(424)),t),t=af(e,t,r,n,o);break e}else for(Ze=an(t.stateNode.containerInfo.firstChild),Je=t,te=!0,Et=null,n=Sd(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(_r(),r===o){t=Xt(e,t,n);break e}Ie(e,t,r,n)}t=t.child}return t;case 5:return Td(t),e===null&&Ks(t),r=t.type,o=t.pendingProps,l=e!==null?e.memoizedProps:null,i=o.children,Ws(r,o)?i=null:l!==null&&Ws(r,l)&&(t.flags|=32),$d(e,t),Ie(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):Ie(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:vt(r,o),of(e,t,r,o,n);case 7:return Ie(e,t,t.pendingProps,n),t.child;case 8:return Ie(e,t,t.pendingProps.children,n),t.child;case 12:return Ie(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,$(Bl,r._currentValue),r._currentValue=i,l!==null)if(wt(l.value,i)){if(l.children===o.children&&!Ve.current){t=Xt(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=qt(-1,n&-n),a.tag=2;var u=l.updateQueue;if(u!==null){u=u.shared;var g=u.pending;g===null?a.next=a:(a.next=g.next,g.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(T(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}Ie(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,vr(t,n),o=dt(o),r=r(o),t.flags|=1,Ie(e,t,r,n),t.child;case 14:return r=t.type,o=vt(r,t.pendingProps),o=vt(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:vt(r,o),kl(e,t),t.tag=1,Ge(r)?(e=!0,zl(t)):e=!1,vr(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(T(156,t.tag))};function pp(e,t){return Hf(e,t)}function av(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 ct(e,t,n,r){return new av(e,t,n,r)}function Za(e){return e=e.prototype,!(!e||!e.isReactComponent)}function uv(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 dn(e,t){var n=e.alternate;return n===null?(n=ct(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 nr:return Un(n.children,o,l,t);case ha:i=8,o|=8;break;case ws:return e=ct(12,n,t,o|2),e.elementType=ws,e.lanes=l,e;case Ts:return e=ct(13,n,t,o),e.elementType=Ts,e.lanes=l,e;case Cs:return e=ct(19,n,t,o),e.elementType=Cs,e.lanes=l,e;case Tf:return ui(n,o,l,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case _f:i=10;break e;case wf:i=9;break e;case va:i=11;break e;case ya:i=14;break e;case Zt:i=16,r=null;break e}throw Error(T(130,e==null?e:typeof e,""))}return t=ct(i,n,t,o),t.elementType=e,t.type=r,t.lanes=l,t}function Un(e,t,n,r){return e=ct(7,e,r,t),e.lanes=n,e}function ui(e,t,n,r){return e=ct(22,e,r,t),e.elementType=Tf,e.lanes=n,e.stateNode={isHidden:!1},e}function Es(e,t,n){return e=ct(6,e,null,t),e.lanes=n,e}function Ss(e,t,n){return t=ct(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function cv(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 cv(e,t,n,s,a),t===1?(t=1,l===!0&&(t|=8)):t=0,l=ct(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 fv(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 wp=Ne(ru=>{"use strict";var _p=Sp();ru.createRoot=_p.createRoot,ru.hydrateRoot=_p.hydrateRoot;var D0});var ou=Ne((i1,yv)=>{yv.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((s1,Ev)=>{Ev.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((a1,Sv)=>{Sv.exports={amp:"&",apos:"'",gt:">",lt:"<",quot:'"'}});var Rp=Ne((u1,_v)=>{_v.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(Oo=>{"use strict";var wv=Oo&&Oo.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Oo,"__esModule",{value:!0});var Fp=wv(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 Cv(e){return e>=55296&&e<=57343||e>1114111?"\uFFFD":(e in Fp.default&&(e=Fp.default[e]),Tv(e))}Oo.default=Cv});var su=Ne(It=>{"use strict";var mi=It&&It.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(It,"__esModule",{value:!0});It.decodeHTML=It.decodeHTMLStrict=It.decodeXML=void 0;var iu=mi(ou()),kv=mi(Up()),Lv=mi(lu()),zp=mi(bp()),Nv=/&(?:[a-zA-Z0-9]+|#[xX][\da-fA-F]+|#\d+);/g;It.decodeXML=jp(Lv.default);It.decodeHTMLStrict=jp(iu.default);function jp(e){var t=Bp(e);return function(n){return String(n).replace(Nv,t)}}var Hp=function(e,t){return e{"use strict";var qp=$e&&$e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty($e,"__esModule",{value:!0});$e.escapeUTF8=$e.escape=$e.encodeNonAsciiHTML=$e.encodeHTML=$e.encodeXML=void 0;var Av=qp(lu()),Wp=Gp(Av.default),Vp=Xp(Wp);$e.encodeXML=Yp(Wp);var Mv=qp(ou()),au=Gp(Mv.default),xv=Xp(au);$e.encodeHTML=Dv(au,xv);$e.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 Dv(e,t){return function(n){return n.replace(t,function(r){return e[r]}).replace($p,gi)}}var Kp=new RegExp(Vp.source+"|"+$p.source,"g");function Pv(e){return e.replace(Kp,gi)}$e.escape=Pv;function Iv(e){return e.replace(Vp,gi)}$e.escapeUTF8=Iv;function Yp(e){return function(t){return t.replace(Kp,function(n){return e[n]||gi(n)})}}});var Zp=Ne(F=>{"use strict";Object.defineProperty(F,"__esModule",{value:!0});F.decodeXMLStrict=F.decodeHTML5Strict=F.decodeHTML4Strict=F.decodeHTML5=F.decodeHTML4=F.decodeHTMLStrict=F.decodeHTML=F.decodeXML=F.encodeHTML5=F.encodeHTML4=F.escapeUTF8=F.escape=F.encodeNonAsciiHTML=F.encodeHTML=F.encodeXML=F.encode=F.decodeStrict=F.decode=void 0;var hi=su(),Qp=uu();function Uv(e,t){return(!t||t<=0?hi.decodeXML:hi.decodeHTML)(e)}F.decode=Uv;function Rv(e,t){return(!t||t<=0?hi.decodeXML:hi.decodeHTMLStrict)(e)}F.decodeStrict=Rv;function Fv(e,t){return(!t||t<=0?Qp.encodeXML:Qp.encodeHTML)(e)}F.encode=Fv;var qn=uu();Object.defineProperty(F,"encodeXML",{enumerable:!0,get:function(){return qn.encodeXML}});Object.defineProperty(F,"encodeHTML",{enumerable:!0,get:function(){return qn.encodeHTML}});Object.defineProperty(F,"encodeNonAsciiHTML",{enumerable:!0,get:function(){return qn.encodeNonAsciiHTML}});Object.defineProperty(F,"escape",{enumerable:!0,get:function(){return qn.escape}});Object.defineProperty(F,"escapeUTF8",{enumerable:!0,get:function(){return qn.escapeUTF8}});Object.defineProperty(F,"encodeHTML4",{enumerable:!0,get:function(){return qn.encodeHTML}});Object.defineProperty(F,"encodeHTML5",{enumerable:!0,get:function(){return qn.encodeHTML}});var _n=su();Object.defineProperty(F,"decodeXML",{enumerable:!0,get:function(){return _n.decodeXML}});Object.defineProperty(F,"decodeHTML",{enumerable:!0,get:function(){return _n.decodeHTML}});Object.defineProperty(F,"decodeHTMLStrict",{enumerable:!0,get:function(){return _n.decodeHTMLStrict}});Object.defineProperty(F,"decodeHTML4",{enumerable:!0,get:function(){return _n.decodeHTML}});Object.defineProperty(F,"decodeHTML5",{enumerable:!0,get:function(){return _n.decodeHTML}});Object.defineProperty(F,"decodeHTML4Strict",{enumerable:!0,get:function(){return _n.decodeHTMLStrict}});Object.defineProperty(F,"decodeHTML5Strict",{enumerable:!0,get:function(){return _n.decodeHTMLStrict}});Object.defineProperty(F,"decodeXMLStrict",{enumerable:!0,get:function(){return _n.decodeXML}})});var um=Ne((m1,am)=>{"use strict";function bv(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 Hv(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]=Wv([l,i,s])}function im(e){for(var t=e.toString(16);t.length<2;)t="0"+t;return t}function Wv(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=$v(n,r):t==="display"?o=Gv(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 Gv(e,t,n){t=parseInt(t,10);var r={"-1":function(){return"
"},0:function(){return e.length&&sm(e)},1:function(){return wn(e,"b")},3:function(){return wn(e,"i")},4:function(){return wn(e,"u")},8:function(){return yi(e,"display:none")},9:function(){return wn(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 Xv(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 wn(e,"span",t)}function Ei(e,t){return wn(e,"span","color:"+t)}function Si(e,t){return wn(e,"span","background-color:"+t)}function om(e,t){var n;if(e.slice(-1)[0]===t&&(n=e.pop()),n)return""}function Kv(e,t,n){var r=!1,o=3;function l(){return""}function i(_,L){return n("xterm256Foreground",L),""}function s(_,L){return n("xterm256Background",L),""}function a(_){return t.newline?n("display",-1):n("text",_),""}function u(_,L){r=!0,L.trim().length===0&&(L="0"),L=L.trimRight(";").split(";");var x=lm(L),D;try{for(x.s();!(D=x.n()).done;){var G=D.value;n("display",G)}}catch(U){x.e(U)}finally{x.f()}return""}function g(_){return n("text",_),""}function h(_){return n("rgb",_),""}var v=[{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:h},{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:g}];function E(_,L){L>o&&r||(r=!1,e=e.replace(_.pattern,_.sub))}var w=[],k=e,M=k.length;e:for(;M>0;){for(var f=0,c=0,m=v.length;c{let l=["system","light","dark"],s=(l.indexOf(e)+1)%l.length;t(l[s])},r=()=>{switch(e){case"light":return Ee.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},Ee.default.createElement("circle",{cx:"12",cy:"12",r:"5"}),Ee.default.createElement("line",{x1:"12",y1:"1",x2:"12",y2:"3"}),Ee.default.createElement("line",{x1:"12",y1:"21",x2:"12",y2:"23"}),Ee.default.createElement("line",{x1:"4.22",y1:"4.22",x2:"5.64",y2:"5.64"}),Ee.default.createElement("line",{x1:"18.36",y1:"18.36",x2:"19.78",y2:"19.78"}),Ee.default.createElement("line",{x1:"1",y1:"12",x2:"3",y2:"12"}),Ee.default.createElement("line",{x1:"21",y1:"12",x2:"23",y2:"12"}),Ee.default.createElement("line",{x1:"4.22",y1:"19.78",x2:"5.64",y2:"18.36"}),Ee.default.createElement("line",{x1:"18.36",y1:"5.64",x2:"19.78",y2:"4.22"}));case"dark":return Ee.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},Ee.default.createElement("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"}));default:return Ee.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},Ee.default.createElement("rect",{x:"2",y:"3",width:"20",height:"14",rx:"2",ry:"2"}),Ee.default.createElement("line",{x1:"8",y1:"21",x2:"16",y2:"21"}),Ee.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 Ee.default.createElement("button",{className:"theme-toggle-btn",onClick:n,title:o(),"aria-label":o()},r())}var Dt=J(ee(),1);var yn=J(ee(),1);function Cp(e,t){let[n,r]=(0,yn.useState)(null),[o,l]=(0,yn.useState)(!0),[i,s]=(0,yn.useState)(null),a=(0,yn.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 g=await u.json();r(g.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,yn.useEffect)(()=>{a()},[a]),{stars:n,isLoading:o,error:i}}function kp(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?Dt.default.createElement("a",{href:i,target:"_blank",rel:"noopener noreferrer",title:"GitHub",className:"icon-link"},Dt.default.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},Dt.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"}))):Dt.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)`:""}`},Dt.default.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor",style:{marginRight:"6px"}},Dt.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"})),Dt.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",style:{marginRight:"4px"}},Dt.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"})),Dt.default.createElement("span",{className:o?"stars-loading":"stars-count"},o?"...":r!==null?kp(r):"\u2014"))}var En=J(ee(),1);function Np(e){let t=(0,En.useRef)(null),n=(0,En.useRef)(null),r=(0,En.useRef)(null),o=(0,En.useRef)(0),l=(0,En.useRef)(null);(0,En.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 h=document.querySelector('link[rel="icon"]');h&&(l.current=h.href)}let i=n.current,s=i.getContext("2d"),a=r.current;if(!s)return;let u=h=>{let v=document.querySelector('link[rel="icon"]');v||(v=document.createElement("link"),v.rel="icon",document.head.appendChild(v)),v.href=h},g=()=>{if(!a.complete){t.current=requestAnimationFrame(g);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(g)};return e?(o.current=0,g()):(t.current&&(cancelAnimationFrame(t.current),t.current=null),l.current&&u(l.current)),()=>{t.current&&(cancelAnimationFrame(t.current),t.current=null)}},[e])}function hv(e){return e==="all"?"All":e==="claude"?"Claude":e==="codex"?"Codex":e.charAt(0).toUpperCase()+e.slice(1)}function vv(e){let t=["all","claude","codex",...e];return Array.from(new Set(t.filter(Boolean)))}function Ap({isConnected:e,projects:t,sources:n,currentFilter:r,currentSource:o,onFilterChange:l,onSourceChange:i,isProcessing:s,queueDepth:a,themePreference:u,onThemeChange:g,onContextPreviewToggle:h}){Np(s);let v=vv(n);return q.default.createElement("div",{className:"header"},q.default.createElement("div",{className:"header-main"},q.default.createElement("h1",null,q.default.createElement("div",{style:{position:"relative",display:"inline-block"}},q.default.createElement("img",{src:"claude-mem-logomark.webp",alt:"",className:`logomark ${s?"spinning":""}`}),a>0&&q.default.createElement("div",{className:"queue-bubble"},a)),q.default.createElement("span",{className:"logo-text"},"claude-mem")),q.default.createElement("div",{className:"source-tabs",role:"tablist","aria-label":"Context source tabs"},v.map(E=>q.default.createElement("button",{key:E,type:"button",className:`source-tab ${o===E?"active":""}`,onClick:()=>i(E),"aria-pressed":o===E},hv(E))))),q.default.createElement("div",{className:"status"},q.default.createElement("a",{href:"https://docs.claude-mem.ai",target:"_blank",rel:"noopener noreferrer",className:"icon-link",title:"Documentation"},q.default.createElement("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},q.default.createElement("path",{d:"M4 19.5A2.5 2.5 0 0 1 6.5 17H20"}),q.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"}))),q.default.createElement("a",{href:"https://x.com/Claude_Memory",target:"_blank",rel:"noopener noreferrer",className:"icon-link",title:"Follow us on X"},q.default.createElement("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},q.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"}))),q.default.createElement("a",{href:"https://discord.gg/J4wttp9vDu",target:"_blank",rel:"noopener noreferrer",className:"icon-link",title:"Join our Discord community"},q.default.createElement("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},q.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"}))),q.default.createElement(Lp,{username:"thedotmack",repo:"claude-mem"}),q.default.createElement("select",{value:r,onChange:E=>l(E.target.value)},q.default.createElement("option",{value:""},"All Projects"),t.map(E=>q.default.createElement("option",{key:E,value:E},E))),q.default.createElement(Tp,{preference:u,onThemeChange:g}),q.default.createElement("button",{className:"settings-btn",onClick:h,title:"Settings"},q.default.createElement("svg",{className:"settings-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},q.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"}),q.default.createElement("circle",{cx:"12",cy:"12",r:"3"})))))}var ae=J(ee(),1);var H=J(ee(),1);function Ar(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 xp({observation:e}){let[t,n]=(0,H.useState)(!1),[r,o]=(0,H.useState)(!1),l=Ar(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):[],g=i.length>0||s.length>0||a.length>0||u.length>0;return H.default.createElement("div",{className:"card"},H.default.createElement("div",{className:"card-header"},H.default.createElement("div",{className:"card-header-left"},H.default.createElement("span",{className:`card-type type-${e.type}`},e.type),H.default.createElement("span",{className:`card-source source-${e.platform_source||"claude"}`},e.platform_source||"claude"),H.default.createElement("span",{className:"card-project"},e.project)),H.default.createElement("div",{className:"view-mode-toggles"},g&&H.default.createElement("button",{className:`view-mode-toggle ${t?"active":""}`,onClick:()=>{n(!t),t||o(!1)}},H.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},H.default.createElement("polyline",{points:"9 11 12 14 22 4"}),H.default.createElement("path",{d:"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"})),H.default.createElement("span",null,"facts")),e.narrative&&H.default.createElement("button",{className:`view-mode-toggle ${r?"active":""}`,onClick:()=>{o(!r),r||n(!1)}},H.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},H.default.createElement("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),H.default.createElement("polyline",{points:"14 2 14 8 20 8"}),H.default.createElement("line",{x1:"16",y1:"13",x2:"8",y2:"13"}),H.default.createElement("line",{x1:"16",y1:"17",x2:"8",y2:"17"})),H.default.createElement("span",null,"narrative")))),H.default.createElement("div",{className:"card-title"},e.title||"Untitled"),H.default.createElement("div",{className:"view-mode-content"},!t&&!r&&e.subtitle&&H.default.createElement("div",{className:"card-subtitle"},e.subtitle),t&&i.length>0&&H.default.createElement("ul",{className:"facts-list"},i.map((h,v)=>H.default.createElement("li",{key:v},h))),r&&e.narrative&&H.default.createElement("div",{className:"narrative"},e.narrative)),H.default.createElement("div",{className:"card-meta"},H.default.createElement("span",{className:"meta-date"},"#",e.id," \u2022 ",l),t&&(s.length>0||a.length>0||u.length>0)&&H.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px",alignItems:"center"}},s.map((h,v)=>H.default.createElement("span",{key:v,style:{padding:"2px 8px",background:"var(--color-type-badge-bg)",color:"var(--color-type-badge-text)",borderRadius:"3px",fontWeight:"500",fontSize:"10px"}},h)),a.length>0&&H.default.createElement("span",{className:"meta-files"},H.default.createElement("span",{className:"file-label"},"read:")," ",a.join(", ")),u.length>0&&H.default.createElement("span",{className:"meta-files"},H.default.createElement("span",{className:"file-label"},"modified:")," ",u.join(", ")))))}var Se=J(ee(),1);function Op({summary:e}){let t=Ar(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 Se.default.createElement("article",{className:"card summary-card"},Se.default.createElement("header",{className:"summary-card-header"},Se.default.createElement("div",{className:"summary-badge-row"},Se.default.createElement("span",{className:"card-type summary-badge"},"Session Summary"),Se.default.createElement("span",{className:`card-source source-${e.platform_source||"claude"}`},e.platform_source||"claude"),Se.default.createElement("span",{className:"summary-project-badge"},e.project)),e.request&&Se.default.createElement("h2",{className:"summary-title"},e.request)),Se.default.createElement("div",{className:"summary-sections"},n.map((r,o)=>Se.default.createElement("section",{key:r.key,className:"summary-section",style:{animationDelay:`${o*50}ms`}},Se.default.createElement("div",{className:"summary-section-header"},Se.default.createElement("img",{src:r.icon,alt:r.label,className:`summary-section-icon summary-section-icon--${r.key}`}),Se.default.createElement("h3",{className:"summary-section-label"},r.label)),Se.default.createElement("div",{className:"summary-section-content"},r.content)))),Se.default.createElement("footer",{className:"summary-card-footer"},Se.default.createElement("span",{className:"summary-meta-id"},"Session #",e.id),Se.default.createElement("span",{className:"summary-meta-divider"},"\u2022"),Se.default.createElement("time",{className:"summary-meta-date",dateTime:new Date(e.created_at_epoch).toISOString()},t)))}var Pt=J(ee(),1);function Dp({prompt:e}){let t=Ar(e.created_at_epoch);return Pt.default.createElement("div",{className:"card prompt-card"},Pt.default.createElement("div",{className:"card-header"},Pt.default.createElement("div",{className:"card-header-left"},Pt.default.createElement("span",{className:"card-type"},"Prompt"),Pt.default.createElement("span",{className:`card-source source-${e.platform_source||"claude"}`},e.platform_source||"claude"),Pt.default.createElement("span",{className:"card-project"},e.project))),Pt.default.createElement("div",{className:"card-content"},e.prompt_text),Pt.default.createElement("div",{className:"card-meta"},Pt.default.createElement("span",{className:"meta-date"},"#",e.id," \u2022 ",t)))}var Sn=J(ee(),1);function Pp({targetRef:e}){let[t,n]=(0,Sn.useState)(!1);(0,Sn.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?Sn.default.createElement("button",{onClick:r,className:"scroll-to-top","aria-label":"Scroll to top"},Sn.default.createElement("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},Sn.default.createElement("polyline",{points:"18 15 12 9 6 15"}))):null}var xo={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,ae.useRef)(null),s=(0,ae.useRef)(null),a=(0,ae.useRef)(r);(0,ae.useEffect)(()=>{a.current=r},[r]),(0,ae.useEffect)(()=>{let g=i.current;if(!g)return;let h=new IntersectionObserver(v=>{v[0].isIntersecting&&l&&!o&&a.current?.()},{threshold:xo.LOAD_MORE_THRESHOLD});return h.observe(g),()=>{g&&h.unobserve(g),h.disconnect()}},[l,o]);let u=(0,ae.useMemo)(()=>[...e.map(h=>({...h,itemType:"observation"})),...t.map(h=>({...h,itemType:"summary"})),...n.map(h=>({...h,itemType:"prompt"}))].sort((h,v)=>v.created_at_epoch-h.created_at_epoch),[e,t,n]);return ae.default.createElement("div",{className:"feed",ref:s},ae.default.createElement(Pp,{targetRef:s}),ae.default.createElement("div",{className:"feed-content"},u.map(g=>{let h=`${g.itemType}-${g.id}`;return g.itemType==="observation"?ae.default.createElement(xp,{key:h,observation:g}):g.itemType==="summary"?ae.default.createElement(Op,{key:h,summary:g}):ae.default.createElement(Dp,{key:h,prompt:g})}),u.length===0&&!o&&ae.default.createElement("div",{style:{textAlign:"center",padding:"40px",color:"#8b949e"}},"No items to display"),o&&ae.default.createElement("div",{style:{textAlign:"center",padding:"20px",color:"#8b949e"}},ae.default.createElement("div",{className:"spinner",style:{display:"inline-block",marginRight:"10px"}}),"Loading more..."),l&&!o&&u.length>0&&ae.default.createElement("div",{ref:i,style:{height:"20px",margin:"10px 0"}}),!l&&u.length>0&&ae.default.createElement("div",{style:{textAlign:"center",padding:"20px",color:"#8b949e",fontSize:"14px"}},"No more items to load")))}var y=J(ee(),1);var ge=J(ee(),1),Tm=J(um(),1);var{entries:ym,setPrototypeOf:cm,isFrozen:Zv,getPrototypeOf:Jv,getOwnPropertyDescriptor:e0}=Object,{freeze:be,seal:mt,create:Ti}=Object,{apply:hu,construct:vu}=typeof Reflect<"u"&&Reflect;be||(be=function(t){return t});mt||(mt=function(t){return t});hu||(hu=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]:Ci;cm&&cm(e,null);let r=t.length;for(;r--;){let o=t[r];if(typeof o=="string"){let l=n(o);l!==o&&(Zv(t)||(t[r]=l),o=l)}e[o]=!0}return e}function i0(e){for(let t=0;t/gm),f0=mt(/\$\{[\w\W]*/gm),d0=mt(/^data-[\-\w.\u00B7-\uFFFF]+$/),p0=mt(/^aria-[\-\w]+$/),Em=mt(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),m0=mt(/^(?:\w+script|data):/i),g0=mt(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Sm=mt(/^html$/i),h0=mt(/^[a-z][.\w]*(-[.\w]+)+$/i),hm=Object.freeze({__proto__:null,ARIA_ATTR:p0,ATTR_WHITESPACE:g0,CUSTOM_ELEMENT:h0,DATA_ATTR:d0,DOCTYPE_NAME:Sm,ERB_EXPR:c0,IS_ALLOWED_URI:Em,IS_SCRIPT_OR_DATA:m0,MUSTACHE_EXPR:u0,TMPLIT_EXPR:f0}),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},v0=function(){return typeof window>"u"?null:window},y0=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]:v0(),t=P=>_m(P);if(t.version="3.3.3",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:g=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:h,DOMParser:v,trustedTypes:E}=e,w=a.prototype,k=Uo(w,"cloneNode"),M=Uo(w,"remove"),f=Uo(w,"nextSibling"),c=Uo(w,"childNodes"),m=Uo(w,"parentNode");if(typeof i=="function"){let P=n.createElement("template");P.content&&P.content.ownerDocument&&(n=P.content.ownerDocument)}let p,_="",{implementation:L,createNodeIterator:x,createDocumentFragment:D,getElementsByTagName:G}=n,{importNode:U}=r,W=vm();t.isSupported=typeof ym=="function"&&typeof m=="function"&&L&&L.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:it,ERB_EXPR:Cn,TMPLIT_EXPR:Wn,DATA_ATTR:Pr,ARIA_ATTR:ke,IS_SCRIPT_OR_DATA:kn,ATTR_WHITESPACE:He,CUSTOM_ELEMENT:Ir}=hm,{IS_ALLOWED_URI:Vn}=hm,S=null,Q=b({},[...dm,...du,...pu,...mu,...pm]),R=null,he=b({},[...mm,...gu,...gm,...wi]),I=Object.seal(Ti(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}})),ue=null,Ye=null,je=Object.seal(Ti(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),_u=!0,Ai=!0,wu=!1,Tu=!0,Gn=!1,zo=!0,Ln=!1,Mi=!1,xi=!1,Xn=!1,Ho=!1,jo=!1,Cu=!0,ku=!1,zm="user-content-",Oi=!0,Ur=!1,$n={},Ct=null,Di=b({},["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,Nu=b({},["audio","video","img","source","image","track"]),Pi=null,Au=b({},["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",Rt="http://www.w3.org/1999/xhtml",Kn=Rt,Ii=!1,Ui=null,Hm=b({},[Bo,qo,Rt],cu),Wo=b({},["mi","mo","mn","ms","mtext"]),Vo=b({},["annotation-xml"]),jm=b({},["title","style","font","a","script"]),Rr=null,Bm=["application/xhtml+xml","text/html"],qm="text/html",de=null,Yn=null,Wm=n.createElement("form"),Mu=function(d){return d instanceof RegExp||d instanceof Function},Ri=function(){let d=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(Yn&&Yn===d)){if((!d||typeof d!="object")&&(d={}),d=Ut(d),Rr=Bm.indexOf(d.PARSER_MEDIA_TYPE)===-1?qm:d.PARSER_MEDIA_TYPE,de=Rr==="application/xhtml+xml"?cu:Ci,S=rt(d,"ALLOWED_TAGS")?b({},d.ALLOWED_TAGS,de):Q,R=rt(d,"ALLOWED_ATTR")?b({},d.ALLOWED_ATTR,de):he,Ui=rt(d,"ALLOWED_NAMESPACES")?b({},d.ALLOWED_NAMESPACES,cu):Hm,Pi=rt(d,"ADD_URI_SAFE_ATTR")?b(Ut(Au),d.ADD_URI_SAFE_ATTR,de):Au,Lu=rt(d,"ADD_DATA_URI_TAGS")?b(Ut(Nu),d.ADD_DATA_URI_TAGS,de):Nu,Ct=rt(d,"FORBID_CONTENTS")?b({},d.FORBID_CONTENTS,de):Di,ue=rt(d,"FORBID_TAGS")?b({},d.FORBID_TAGS,de):Ut({}),Ye=rt(d,"FORBID_ATTR")?b({},d.FORBID_ATTR,de):Ut({}),$n=rt(d,"USE_PROFILES")?d.USE_PROFILES:!1,_u=d.ALLOW_ARIA_ATTR!==!1,Ai=d.ALLOW_DATA_ATTR!==!1,wu=d.ALLOW_UNKNOWN_PROTOCOLS||!1,Tu=d.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Gn=d.SAFE_FOR_TEMPLATES||!1,zo=d.SAFE_FOR_XML!==!1,Ln=d.WHOLE_DOCUMENT||!1,Xn=d.RETURN_DOM||!1,Ho=d.RETURN_DOM_FRAGMENT||!1,jo=d.RETURN_TRUSTED_TYPE||!1,xi=d.FORCE_BODY||!1,Cu=d.SANITIZE_DOM!==!1,ku=d.SANITIZE_NAMED_PROPS||!1,Oi=d.KEEP_CONTENT!==!1,Ur=d.IN_PLACE||!1,Vn=d.ALLOWED_URI_REGEXP||Em,Kn=d.NAMESPACE||Rt,Wo=d.MATHML_TEXT_INTEGRATION_POINTS||Wo,Vo=d.HTML_INTEGRATION_POINTS||Vo,I=d.CUSTOM_ELEMENT_HANDLING||{},d.CUSTOM_ELEMENT_HANDLING&&Mu(d.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(I.tagNameCheck=d.CUSTOM_ELEMENT_HANDLING.tagNameCheck),d.CUSTOM_ELEMENT_HANDLING&&Mu(d.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(I.attributeNameCheck=d.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),d.CUSTOM_ELEMENT_HANDLING&&typeof d.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(I.allowCustomizedBuiltInElements=d.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Gn&&(Ai=!1),Ho&&(Xn=!0),$n&&(S=b({},pm),R=Ti(null),$n.html===!0&&(b(S,dm),b(R,mm)),$n.svg===!0&&(b(S,du),b(R,gu),b(R,wi)),$n.svgFilters===!0&&(b(S,pu),b(R,gu),b(R,wi)),$n.mathMl===!0&&(b(S,mu),b(R,gm),b(R,wi))),rt(d,"ADD_TAGS")||(je.tagCheck=null),rt(d,"ADD_ATTR")||(je.attributeCheck=null),d.ADD_TAGS&&(typeof d.ADD_TAGS=="function"?je.tagCheck=d.ADD_TAGS:(S===Q&&(S=Ut(S)),b(S,d.ADD_TAGS,de))),d.ADD_ATTR&&(typeof d.ADD_ATTR=="function"?je.attributeCheck=d.ADD_ATTR:(R===he&&(R=Ut(R)),b(R,d.ADD_ATTR,de))),d.ADD_URI_SAFE_ATTR&&b(Pi,d.ADD_URI_SAFE_ATTR,de),d.FORBID_CONTENTS&&(Ct===Di&&(Ct=Ut(Ct)),b(Ct,d.FORBID_CONTENTS,de)),d.ADD_FORBID_CONTENTS&&(Ct===Di&&(Ct=Ut(Ct)),b(Ct,d.ADD_FORBID_CONTENTS,de)),Oi&&(S["#text"]=!0),Ln&&b(S,["html","head","body"]),S.table&&(b(S,["tbody"]),delete ue.tbody),d.TRUSTED_TYPES_POLICY){if(typeof d.TRUSTED_TYPES_POLICY.createHTML!="function")throw Io('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof d.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Io('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');p=d.TRUSTED_TYPES_POLICY,_=p.createHTML("")}else p===void 0&&(p=y0(E,o)),p!==null&&typeof _=="string"&&(_=p.createHTML(""));be&&be(d),Yn=d}},xu=b({},[...du,...pu,...s0]),Ou=b({},[...mu,...a0]),Vm=function(d){let C=m(d);(!C||!C.tagName)&&(C={namespaceURI:Kn,tagName:"template"});let O=Ci(d.tagName),Z=Ci(C.tagName);return Ui[d.namespaceURI]?d.namespaceURI===qo?C.namespaceURI===Rt?O==="svg":C.namespaceURI===Bo?O==="svg"&&(Z==="annotation-xml"||Wo[Z]):!!xu[O]:d.namespaceURI===Bo?C.namespaceURI===Rt?O==="math":C.namespaceURI===qo?O==="math"&&Vo[Z]:!!Ou[O]:d.namespaceURI===Rt?C.namespaceURI===qo&&!Vo[Z]||C.namespaceURI===Bo&&!Wo[Z]?!1:!Ou[O]&&(jm[O]||!xu[O]):!!(Rr==="application/xhtml+xml"&&Ui[d.namespaceURI]):!1},kt=function(d){Do(t.removed,{element:d});try{m(d).removeChild(d)}catch{M(d)}},Nn=function(d,C){try{Do(t.removed,{attribute:C.getAttributeNode(d),from:C})}catch{Do(t.removed,{attribute:null,from:C})}if(C.removeAttribute(d),d==="is")if(Xn||Ho)try{kt(C)}catch{}else try{C.setAttribute(d,"")}catch{}},Du=function(d){let C=null,O=null;if(xi)d=""+d;else{let ce=fu(d,/^[\r\n\t ]+/);O=ce&&ce[0]}Rr==="application/xhtml+xml"&&Kn===Rt&&(d=''+d+"");let Z=p?p.createHTML(d):d;if(Kn===Rt)try{C=new v().parseFromString(Z,Rr)}catch{}if(!C||!C.documentElement){C=L.createDocument(Kn,"template",null);try{C.documentElement.innerHTML=Ii?_:Z}catch{}}let Le=C.body||C.documentElement;return d&&O&&Le.insertBefore(n.createTextNode(O),Le.childNodes[0]||null),Kn===Rt?G.call(C,Ln?"html":"body")[0]:Ln?C.documentElement:Le},Pu=function(d){return x.call(d.ownerDocument||d,d,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT|u.SHOW_PROCESSING_INSTRUCTION|u.SHOW_CDATA_SECTION,null)},Fi=function(d){return d instanceof h&&(typeof d.nodeName!="string"||typeof d.textContent!="string"||typeof d.removeChild!="function"||!(d.attributes instanceof g)||typeof d.removeAttribute!="function"||typeof d.setAttribute!="function"||typeof d.namespaceURI!="string"||typeof d.insertBefore!="function"||typeof d.hasChildNodes!="function")},Iu=function(d){return typeof s=="function"&&d instanceof s};function Ft(P,d,C){_i(P,O=>{O.call(t,d,C,Yn)})}let Uu=function(d){let C=null;if(Ft(W.beforeSanitizeElements,d,null),Fi(d))return kt(d),!0;let O=de(d.nodeName);if(Ft(W.uponSanitizeElement,d,{tagName:O,allowedTags:S}),zo&&d.hasChildNodes()&&!Iu(d.firstElementChild)&&Fe(/<[/\w!]/g,d.innerHTML)&&Fe(/<[/\w!]/g,d.textContent)||d.nodeType===Ro.progressingInstruction||zo&&d.nodeType===Ro.comment&&Fe(/<[/\w]/g,d.data))return kt(d),!0;if(!(je.tagCheck instanceof Function&&je.tagCheck(O))&&(!S[O]||ue[O])){if(!ue[O]&&Fu(O)&&(I.tagNameCheck instanceof RegExp&&Fe(I.tagNameCheck,O)||I.tagNameCheck instanceof Function&&I.tagNameCheck(O)))return!1;if(Oi&&!Ct[O]){let Z=m(d)||d.parentNode,Le=c(d)||d.childNodes;if(Le&&Z){let ce=Le.length;for(let Be=ce-1;Be>=0;--Be){let bt=k(Le[Be],!0);bt.__removalCount=(d.__removalCount||0)+1,Z.insertBefore(bt,f(d))}}}return kt(d),!0}return d instanceof a&&!Vm(d)||(O==="noscript"||O==="noembed"||O==="noframes")&&Fe(/<\/no(script|embed|frames)/i,d.innerHTML)?(kt(d),!0):(Gn&&d.nodeType===Ro.text&&(C=d.textContent,_i([it,Cn,Wn],Z=>{C=Po(C,Z," ")}),d.textContent!==C&&(Do(t.removed,{element:d.cloneNode()}),d.textContent=C)),Ft(W.afterSanitizeElements,d,null),!1)},Ru=function(d,C,O){if(Ye[C]||Cu&&(C==="id"||C==="name")&&(O in n||O in Wm))return!1;if(!(Ai&&!Ye[C]&&Fe(Pr,C))){if(!(_u&&Fe(ke,C))){if(!(je.attributeCheck instanceof Function&&je.attributeCheck(C,d))){if(!R[C]||Ye[C]){if(!(Fu(d)&&(I.tagNameCheck instanceof RegExp&&Fe(I.tagNameCheck,d)||I.tagNameCheck instanceof Function&&I.tagNameCheck(d))&&(I.attributeNameCheck instanceof RegExp&&Fe(I.attributeNameCheck,C)||I.attributeNameCheck instanceof Function&&I.attributeNameCheck(C,d))||C==="is"&&I.allowCustomizedBuiltInElements&&(I.tagNameCheck instanceof RegExp&&Fe(I.tagNameCheck,O)||I.tagNameCheck instanceof Function&&I.tagNameCheck(O))))return!1}else if(!Pi[C]){if(!Fe(Vn,Po(O,He,""))){if(!((C==="src"||C==="xlink:href"||C==="href")&&d!=="script"&&r0(O,"data:")===0&&Lu[d])){if(!(wu&&!Fe(kn,Po(O,He,"")))){if(O)return!1}}}}}}}return!0},Fu=function(d){return d!=="annotation-xml"&&fu(d,Ir)},bu=function(d){Ft(W.beforeSanitizeAttributes,d,null);let{attributes:C}=d;if(!C||Fi(d))return;let O={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:R,forceKeepAttr:void 0},Z=C.length;for(;Z--;){let Le=C[Z],{name:ce,namespaceURI:Be,value:bt}=Le,Qn=de(ce),bi=bt,_e=ce==="value"?bi:o0(bi);if(O.attrName=Qn,O.attrValue=_e,O.keepAttr=!0,O.forceKeepAttr=void 0,Ft(W.uponSanitizeAttribute,d,O),_e=O.attrValue,ku&&(Qn==="id"||Qn==="name")&&(Nn(ce,d),_e=zm+_e),zo&&Fe(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,_e)){Nn(ce,d);continue}if(Qn==="attributename"&&fu(_e,"href")){Nn(ce,d);continue}if(O.forceKeepAttr)continue;if(!O.keepAttr){Nn(ce,d);continue}if(!Tu&&Fe(/\/>/i,_e)){Nn(ce,d);continue}Gn&&_i([it,Cn,Wn],Hu=>{_e=Po(_e,Hu," ")});let zu=de(d.nodeName);if(!Ru(zu,Qn,_e)){Nn(ce,d);continue}if(p&&typeof E=="object"&&typeof E.getAttributeType=="function"&&!Be)switch(E.getAttributeType(zu,Qn)){case"TrustedHTML":{_e=p.createHTML(_e);break}case"TrustedScriptURL":{_e=p.createScriptURL(_e);break}}if(_e!==bi)try{Be?d.setAttributeNS(Be,ce,_e):d.setAttribute(ce,_e),Fi(d)?kt(d):fm(t.removed)}catch{Nn(ce,d)}}Ft(W.afterSanitizeAttributes,d,null)},Gm=function P(d){let C=null,O=Pu(d);for(Ft(W.beforeSanitizeShadowDOM,d,null);C=O.nextNode();)Ft(W.uponSanitizeShadowNode,C,null),Uu(C),bu(C),C.content instanceof l&&P(C.content);Ft(W.afterSanitizeShadowDOM,d,null)};return t.sanitize=function(P){let d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},C=null,O=null,Z=null,Le=null;if(Ii=!P,Ii&&(P=""),typeof P!="string"&&!Iu(P))if(typeof P.toString=="function"){if(P=P.toString(),typeof P!="string")throw Io("dirty is not a string, aborting")}else throw Io("toString is not a function");if(!t.isSupported)return P;if(Mi||Ri(d),t.removed=[],typeof P=="string"&&(Ur=!1),Ur){if(P.nodeName){let bt=de(P.nodeName);if(!S[bt]||ue[bt])throw Io("root node is forbidden and cannot be sanitized in-place")}}else if(P instanceof s)C=Du(""),O=C.ownerDocument.importNode(P,!0),O.nodeType===Ro.element&&O.nodeName==="BODY"||O.nodeName==="HTML"?C=O:C.appendChild(O);else{if(!Xn&&!Gn&&!Ln&&P.indexOf("<")===-1)return p&&jo?p.createHTML(P):P;if(C=Du(P),!C)return Xn?null:jo?_:""}C&&xi&&kt(C.firstChild);let ce=Pu(Ur?P:C);for(;Z=ce.nextNode();)Uu(Z),bu(Z),Z.content instanceof l&&Gm(Z.content);if(Ur)return P;if(Xn){if(Ho)for(Le=D.call(C.ownerDocument);C.firstChild;)Le.appendChild(C.firstChild);else Le=C;return(R.shadowroot||R.shadowrootmode)&&(Le=U.call(r,Le,!0)),Le}let Be=Ln?C.outerHTML:C.innerHTML;return Ln&&S["!doctype"]&&C.ownerDocument&&C.ownerDocument.doctype&&C.ownerDocument.doctype.name&&Fe(Sm,C.ownerDocument.doctype.name)&&(Be=" -`+Be),Gn&&_i([it,Cn,Wn],bt=>{Be=Po(Be,bt," ")}),p&&jo?p.createHTML(Be):Be},t.setConfig=function(){let P=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Ri(P),Mi=!0},t.clearConfig=function(){Yn=null,Mi=!1},t.isValidAttribute=function(P,d,C){Yn||Ri({});let O=de(P),Z=de(d);return Ru(O,Z,C)},t.addHook=function(P,d){typeof d=="function"&&Do(W[P],d)},t.removeHook=function(P,d){if(d!==void 0){let C=t0(W[P],d);return C===-1?void 0:n0(W[P],C,1)[0]}return fm(W[P])},t.removeHooks=function(P){W[P]=[]},t.removeAllHooks=function(){W=vm()},t}var wm=_m();var E0=new Tm.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=E0.toHtml(e);return wm.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 Ke=J(ee(),1);function S0(e){return e.includes("claude")?"claude":e.includes("codex")?"codex":e[0]||null}function _0(e){let t=["claude","codex",...e];return Array.from(new Set(t))}function km(e){let[t,n]=(0,Ke.useState)(""),[r,o]=(0,Ke.useState)(!1),[l,i]=(0,Ke.useState)(null),[s,a]=(0,Ke.useState)({projects:[],sources:[],projectsBySource:{}}),[u,g]=(0,Ke.useState)([]),[h,v]=(0,Ke.useState)(null),[E,w]=(0,Ke.useState)(null);(0,Ke.useEffect)(()=>{async function M(){try{let c=await(await fetch("/api/projects")).json(),m={projects:c.projects||[],sources:_0(c.sources||[]),projectsBySource:c.projectsBySource||{}};a(m);let p=S0(m.sources);if(v(p),p){let _=m.projectsBySource[p]||[];g(_),w(_[0]||null);return}g(m.projects),w(m.projects[0]||null)}catch(f){console.error("Failed to fetch projects:",f)}}M()},[]),(0,Ke.useEffect)(()=>{if(!h){g(s.projects),w(f=>f&&s.projects.includes(f)?f:s.projects[0]||null);return}let M=s.projectsBySource[h]||[];g(M),w(f=>f&&M.includes(f)?f:M[0]||null)},[s,h]);let k=(0,Ke.useCallback)(async()=>{if(!E){n("No project selected");return}o(!0),i(null);let M=new URLSearchParams({project:E});h&&M.append("platformSource",h);try{let f=await fetch(`/api/context/preview?${M}`),c=await f.text();f.ok?n(c):i("Failed to load preview")}catch{i("Failed to load preview")}o(!1)},[E,h]);return(0,Ke.useEffect)(()=>{let M=setTimeout(()=>{k()},300);return()=>clearTimeout(M)},[e,k]),{preview:t,isLoading:r,error:l,refresh:k,projects:u,sources:s.sources,selectedSource:h,setSelectedSource:v,selectedProject:E,setSelectedProject:w}}function yu({title:e,description:t,children:n,defaultOpen:r=!0}){let[o,l]=(0,y.useState)(r);return y.default.createElement("div",{className:`settings-section-collapsible ${o?"open":""}`},y.default.createElement("button",{className:"section-header-btn",onClick:()=>l(!o),type:"button"},y.default.createElement("div",{className:"section-header-content"},y.default.createElement("span",{className:"section-title"},e),t&&y.default.createElement("span",{className:"section-description"},t)),y.default.createElement("svg",{className:`chevron-icon ${o?"rotated":""}`,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2"},y.default.createElement("polyline",{points:"6 9 12 15 18 9"}))),o&&y.default.createElement("div",{className:"section-content"},n))}function ot({label:e,tooltip:t,children:n}){return y.default.createElement("div",{className:"form-field"},y.default.createElement("label",{className:"form-field-label"},e,t&&y.default.createElement("span",{className:"tooltip-trigger",title:t},y.default.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2"},y.default.createElement("circle",{cx:"12",cy:"12",r:"10"}),y.default.createElement("path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"}),y.default.createElement("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})))),n)}function Mr({id:e,label:t,description:n,checked:r,onChange:o,disabled:l}){return y.default.createElement("div",{className:"toggle-row"},y.default.createElement("div",{className:"toggle-info"},y.default.createElement("label",{htmlFor:e,className:"toggle-label"},t),n&&y.default.createElement("span",{className:"toggle-description"},n)),y.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},y.default.createElement("span",{className:"toggle-knob"})))}function Lm({isOpen:e,onClose:t,settings:n,onSave:r,isSaving:o,saveStatus:l}){let[i,s]=(0,y.useState)(n);(0,y.useEffect)(()=>{s(n)},[n]);let{preview:a,isLoading:u,error:g,projects:h,sources:v,selectedSource:E,setSelectedSource:w,selectedProject:k,setSelectedProject:M}=km(i),f=(0,y.useCallback)((p,_)=>{let L={...i,[p]:_};s(L)},[i]),c=(0,y.useCallback)(()=>{r(i)},[i,r]),m=(0,y.useCallback)(p=>{let L=i[p]==="true"?"false":"true";f(p,L)},[i,f]);return(0,y.useEffect)(()=>{let p=_=>{_.key==="Escape"&&t()};if(e)return window.addEventListener("keydown",p),()=>window.removeEventListener("keydown",p)},[e,t]),e?y.default.createElement("div",{className:"modal-backdrop",onClick:t},y.default.createElement("div",{className:"context-settings-modal",onClick:p=>p.stopPropagation()},y.default.createElement("div",{className:"modal-header"},y.default.createElement("h2",null,"Settings"),y.default.createElement("div",{className:"header-controls"},y.default.createElement("label",{className:"preview-selector"},"Source:",y.default.createElement("select",{value:E||"",onChange:p=>w(p.target.value),disabled:v.length===0},v.map(p=>y.default.createElement("option",{key:p,value:p},p)))),y.default.createElement("label",{className:"preview-selector"},"Project:",y.default.createElement("select",{value:k||"",onChange:p=>M(p.target.value),disabled:h.length===0},h.map(p=>y.default.createElement("option",{key:p,value:p},p)))),y.default.createElement("button",{onClick:t,className:"modal-close-btn",title:"Close (Esc)"},y.default.createElement("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2"},y.default.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),y.default.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"}))))),y.default.createElement("div",{className:"modal-body"},y.default.createElement("div",{className:"preview-column"},y.default.createElement("div",{className:"preview-content"},g?y.default.createElement("div",{style:{color:"#ff6b6b"}},"Error loading preview: ",g):y.default.createElement(Cm,{content:a,isLoading:u}))),y.default.createElement("div",{className:"settings-column"},y.default.createElement(yu,{title:"Loading",description:"How many observations to inject"},y.default.createElement(ot,{label:"Observations",tooltip:"Number of recent observations to include in context (1-200)"},y.default.createElement("input",{type:"number",min:"1",max:"200",value:i.CLAUDE_MEM_CONTEXT_OBSERVATIONS||"50",onChange:p=>f("CLAUDE_MEM_CONTEXT_OBSERVATIONS",p.target.value)})),y.default.createElement(ot,{label:"Sessions",tooltip:"Number of recent sessions to pull observations from (1-50)"},y.default.createElement("input",{type:"number",min:"1",max:"50",value:i.CLAUDE_MEM_CONTEXT_SESSION_COUNT||"10",onChange:p=>f("CLAUDE_MEM_CONTEXT_SESSION_COUNT",p.target.value)}))),y.default.createElement(yu,{title:"Display",description:"What to show in context tables"},y.default.createElement("div",{className:"display-subsection"},y.default.createElement("span",{className:"subsection-label"},"Full Observations"),y.default.createElement(ot,{label:"Count",tooltip:"How many observations show expanded details (0-20)"},y.default.createElement("input",{type:"number",min:"0",max:"20",value:i.CLAUDE_MEM_CONTEXT_FULL_COUNT||"5",onChange:p=>f("CLAUDE_MEM_CONTEXT_FULL_COUNT",p.target.value)})),y.default.createElement(ot,{label:"Field",tooltip:"Which field to expand for full observations"},y.default.createElement("select",{value:i.CLAUDE_MEM_CONTEXT_FULL_FIELD||"narrative",onChange:p=>f("CLAUDE_MEM_CONTEXT_FULL_FIELD",p.target.value)},y.default.createElement("option",{value:"narrative"},"Narrative"),y.default.createElement("option",{value:"facts"},"Facts")))),y.default.createElement("div",{className:"display-subsection"},y.default.createElement("span",{className:"subsection-label"},"Token Economics"),y.default.createElement("div",{className:"toggle-group"},y.default.createElement(Mr,{id:"show-read-tokens",label:"Read cost",description:"Tokens to read this observation",checked:i.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS==="true",onChange:()=>m("CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS")}),y.default.createElement(Mr,{id:"show-work-tokens",label:"Work investment",description:"Tokens spent creating this observation",checked:i.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS==="true",onChange:()=>m("CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS")}),y.default.createElement(Mr,{id:"show-savings-amount",label:"Savings",description:"Total tokens saved by reusing context",checked:i.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT==="true",onChange:()=>m("CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT")})))),y.default.createElement(yu,{title:"Advanced",description:"AI provider and model selection",defaultOpen:!1},y.default.createElement(ot,{label:"AI Provider",tooltip:"Choose between Claude (via Agent SDK) or Gemini (via REST API)"},y.default.createElement("select",{value:i.CLAUDE_MEM_PROVIDER||"claude",onChange:p=>f("CLAUDE_MEM_PROVIDER",p.target.value)},y.default.createElement("option",{value:"claude"},"Claude (uses your Claude account)"),y.default.createElement("option",{value:"gemini"},"Gemini (uses API key)"),y.default.createElement("option",{value:"openrouter"},"OpenRouter (multi-model)"))),i.CLAUDE_MEM_PROVIDER==="claude"&&y.default.createElement(ot,{label:"Claude Model",tooltip:"Claude model used for generating observations"},y.default.createElement("select",{value:i.CLAUDE_MEM_MODEL||"haiku",onChange:p=>f("CLAUDE_MEM_MODEL",p.target.value)},y.default.createElement("option",{value:"haiku"},"haiku (fastest)"),y.default.createElement("option",{value:"sonnet"},"sonnet (balanced)"),y.default.createElement("option",{value:"opus"},"opus (highest quality)"))),i.CLAUDE_MEM_PROVIDER==="gemini"&&y.default.createElement(y.default.Fragment,null,y.default.createElement(ot,{label:"Gemini API Key",tooltip:"Your Google AI Studio API key (or set GEMINI_API_KEY env var)"},y.default.createElement("input",{type:"password",value:i.CLAUDE_MEM_GEMINI_API_KEY||"",onChange:p=>f("CLAUDE_MEM_GEMINI_API_KEY",p.target.value),placeholder:"Enter Gemini API key..."})),y.default.createElement(ot,{label:"Gemini Model",tooltip:"Gemini model used for generating observations"},y.default.createElement("select",{value:i.CLAUDE_MEM_GEMINI_MODEL||"gemini-2.5-flash-lite",onChange:p=>f("CLAUDE_MEM_GEMINI_MODEL",p.target.value)},y.default.createElement("option",{value:"gemini-2.5-flash-lite"},"gemini-2.5-flash-lite (10 RPM free)"),y.default.createElement("option",{value:"gemini-2.5-flash"},"gemini-2.5-flash (5 RPM free)"),y.default.createElement("option",{value:"gemini-3-flash-preview"},"gemini-3-flash-preview (5 RPM free)"))),y.default.createElement("div",{className:"toggle-group",style:{marginTop:"8px"}},y.default.createElement(Mr,{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:p=>f("CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED",p?"true":"false")}))),i.CLAUDE_MEM_PROVIDER==="openrouter"&&y.default.createElement(y.default.Fragment,null,y.default.createElement(ot,{label:"OpenRouter API Key",tooltip:"Your OpenRouter API key from openrouter.ai (or set OPENROUTER_API_KEY env var)"},y.default.createElement("input",{type:"password",value:i.CLAUDE_MEM_OPENROUTER_API_KEY||"",onChange:p=>f("CLAUDE_MEM_OPENROUTER_API_KEY",p.target.value),placeholder:"Enter OpenRouter API key..."})),y.default.createElement(ot,{label:"OpenRouter Model",tooltip:"Model identifier from OpenRouter (e.g., anthropic/claude-3.5-sonnet, google/gemini-2.0-flash-thinking-exp)"},y.default.createElement("input",{type:"text",value:i.CLAUDE_MEM_OPENROUTER_MODEL||"xiaomi/mimo-v2-flash:free",onChange:p=>f("CLAUDE_MEM_OPENROUTER_MODEL",p.target.value),placeholder:"e.g., xiaomi/mimo-v2-flash:free"})),y.default.createElement(ot,{label:"Site URL (Optional)",tooltip:"Your site URL for OpenRouter analytics (optional)"},y.default.createElement("input",{type:"text",value:i.CLAUDE_MEM_OPENROUTER_SITE_URL||"",onChange:p=>f("CLAUDE_MEM_OPENROUTER_SITE_URL",p.target.value),placeholder:"https://yoursite.com"})),y.default.createElement(ot,{label:"App Name (Optional)",tooltip:"Your app name for OpenRouter analytics (optional)"},y.default.createElement("input",{type:"text",value:i.CLAUDE_MEM_OPENROUTER_APP_NAME||"claude-mem",onChange:p=>f("CLAUDE_MEM_OPENROUTER_APP_NAME",p.target.value),placeholder:"claude-mem"}))),y.default.createElement(ot,{label:"Worker Port",tooltip:"Port for the background worker service"},y.default.createElement("input",{type:"number",min:"1024",max:"65535",value:i.CLAUDE_MEM_WORKER_PORT||"37777",onChange:p=>f("CLAUDE_MEM_WORKER_PORT",p.target.value)})),y.default.createElement("div",{className:"toggle-group",style:{marginTop:"12px"}},y.default.createElement(Mr,{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:()=>m("CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY")}),y.default.createElement(Mr,{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:()=>m("CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE")}))))),y.default.createElement("div",{className:"modal-footer"},y.default.createElement("div",{className:"save-status"},l&&y.default.createElement("span",{className:l.includes("\u2713")?"success":l.includes("\u2717")?"error":""},l)),y.default.createElement("button",{className:"save-btn",onClick:c,disabled:o},o?"Saving...":"Save")))):null}var N=J(ee(),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 w0(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 Nm({isOpen:e,onClose:t}){let[n,r]=(0,N.useState)(""),[o,l]=(0,N.useState)(!1),[i,s]=(0,N.useState)(null),[a,u]=(0,N.useState)(!1),[g,h]=(0,N.useState)(350),[v,E]=(0,N.useState)(!1),w=(0,N.useRef)(0),k=(0,N.useRef)(0),M=(0,N.useRef)(null),f=(0,N.useRef)(!0),[c,m]=(0,N.useState)(new Set(["DEBUG","INFO","WARN","ERROR"])),[p,_]=(0,N.useState)(new Set(["HOOK","WORKER","SDK","PARSER","DB","SYSTEM","HTTP","SESSION","CHROMA"])),[L,x]=(0,N.useState)(!1),D=(0,N.useMemo)(()=>n?n.split(` -`).map(w0):[],[n]),G=(0,N.useMemo)(()=>D.filter(S=>L?S.raw.includes("[ALIGNMENT]"):!S.level||!S.component?!0:c.has(S.level)&&p.has(S.component)),[D,c,p,L]),U=(0,N.useCallback)(()=>{if(!M.current)return!0;let{scrollTop:S,scrollHeight:Q,clientHeight:R}=M.current;return Q-S-R<50},[]),W=(0,N.useCallback)(()=>{M.current&&f.current&&(M.current.scrollTop=M.current.scrollHeight)},[]),it=(0,N.useCallback)(async()=>{f.current=U(),l(!0),s(null);try{let S=await fetch("/api/logs");if(!S.ok)throw new Error(`Failed to fetch logs: ${S.statusText}`);let Q=await S.json();r(Q.logs||"")}catch(S){s(S instanceof Error?S.message:"Unknown error")}finally{l(!1)}},[U]);(0,N.useEffect)(()=>{W()},[n,W]);let Cn=(0,N.useCallback)(async()=>{if(confirm("Are you sure you want to clear all logs?")){l(!0),s(null);try{let S=await fetch("/api/logs/clear",{method:"POST"});if(!S.ok)throw new Error(`Failed to clear logs: ${S.statusText}`);r("")}catch(S){s(S instanceof Error?S.message:"Unknown error")}finally{l(!1)}}},[]),Wn=(0,N.useCallback)(S=>{S.preventDefault(),E(!0),w.current=S.clientY,k.current=g},[g]);(0,N.useEffect)(()=>{if(!v)return;let S=R=>{let he=w.current-R.clientY,I=Math.min(Math.max(150,k.current+he),window.innerHeight-100);h(I)},Q=()=>{E(!1)};return document.addEventListener("mousemove",S),document.addEventListener("mouseup",Q),()=>{document.removeEventListener("mousemove",S),document.removeEventListener("mouseup",Q)}},[v]),(0,N.useEffect)(()=>{e&&(f.current=!0,it())},[e,it]),(0,N.useEffect)(()=>{if(!e||!a)return;let S=setInterval(it,2e3);return()=>clearInterval(S)},[e,a,it]);let Pr=(0,N.useCallback)(S=>{m(Q=>{let R=new Set(Q);return R.has(S)?R.delete(S):R.add(S),R})},[]),ke=(0,N.useCallback)(S=>{_(Q=>{let R=new Set(Q);return R.has(S)?R.delete(S):R.add(S),R})},[]),kn=(0,N.useCallback)(S=>{m(S?new Set(["DEBUG","INFO","WARN","ERROR"]):new Set)},[]),He=(0,N.useCallback)(S=>{_(S?new Set(["HOOK","WORKER","SDK","PARSER","DB","SYSTEM","HTTP","SESSION","CHROMA"]):new Set)},[]);if(!e)return null;let Ir=S=>{let Q=Fo.find(Ye=>Ye.key===S.level),R=bo.find(Ye=>Ye.key===S.component),he="var(--color-text-primary)",I="normal",ue="transparent";return S.level==="ERROR"?(he="#f85149",ue="rgba(248, 81, 73, 0.1)"):S.level==="WARN"?(he="#d29922",ue="rgba(210, 153, 34, 0.05)"):S.isSpecial==="success"?he="#3fb950":S.isSpecial==="failure"?he="#f85149":S.isSpecial==="happyPath"?he="#d29922":Q&&(he=Q.color),{color:he,fontWeight:I,backgroundColor:ue,padding:"1px 0",borderRadius:"2px"}},Vn=(S,Q)=>{if(!S.timestamp)return N.default.createElement("div",{key:Q,className:"log-line log-line-raw"},S.raw);let R=Fo.find(I=>I.key===S.level),he=bo.find(I=>I.key===S.component);return N.default.createElement("div",{key:Q,className:"log-line",style:Ir(S)},N.default.createElement("span",{className:"log-timestamp"},"[",S.timestamp,"]")," ",N.default.createElement("span",{className:"log-level",style:{color:R?.color},title:S.level},"[",R?.icon||""," ",S.level?.padEnd(5),"]")," ",N.default.createElement("span",{className:"log-component",style:{color:he?.color},title:S.component},"[",he?.icon||""," ",S.component?.padEnd(7),"]")," ",S.correlationId&&N.default.createElement(N.default.Fragment,null,N.default.createElement("span",{className:"log-correlation"},"[",S.correlationId,"]")," "),N.default.createElement("span",{className:"log-message"},S.message))};return N.default.createElement("div",{className:"console-drawer",style:{height:`${g}px`}},N.default.createElement("div",{className:"console-resize-handle",onMouseDown:Wn},N.default.createElement("div",{className:"console-resize-bar"})),N.default.createElement("div",{className:"console-header"},N.default.createElement("div",{className:"console-tabs"},N.default.createElement("div",{className:"console-tab active"},"Console")),N.default.createElement("div",{className:"console-controls"},N.default.createElement("label",{className:"console-auto-refresh"},N.default.createElement("input",{type:"checkbox",checked:a,onChange:S=>u(S.target.checked)}),"Auto-refresh"),N.default.createElement("button",{className:"console-control-btn",onClick:it,disabled:o,title:"Refresh logs"},"\u21BB"),N.default.createElement("button",{className:"console-control-btn",onClick:()=>{f.current=!0,W()},title:"Scroll to bottom"},"\u2B07"),N.default.createElement("button",{className:"console-control-btn console-clear-btn",onClick:Cn,disabled:o,title:"Clear logs"},"\u{1F5D1}"),N.default.createElement("button",{className:"console-control-btn",onClick:t,title:"Close console"},"\u2715"))),N.default.createElement("div",{className:"console-filters"},N.default.createElement("div",{className:"console-filter-section"},N.default.createElement("span",{className:"console-filter-label"},"Quick:"),N.default.createElement("div",{className:"console-filter-chips"},N.default.createElement("button",{className:`console-filter-chip ${L?"active":""}`,onClick:()=>x(!L),style:{"--chip-color":"#f0883e"},title:"Show only session alignment logs"},"\u{1F517} Alignment"))),N.default.createElement("div",{className:"console-filter-section"},N.default.createElement("span",{className:"console-filter-label"},"Levels:"),N.default.createElement("div",{className:"console-filter-chips"},Fo.map(S=>N.default.createElement("button",{key:S.key,className:`console-filter-chip ${c.has(S.key)?"active":""}`,onClick:()=>Pr(S.key),style:{"--chip-color":S.color},title:S.label},S.icon," ",S.label)),N.default.createElement("button",{className:"console-filter-action",onClick:()=>kn(c.size===0),title:c.size===Fo.length?"Select none":"Select all"},c.size===Fo.length?"\u25CB":"\u25CF"))),N.default.createElement("div",{className:"console-filter-section"},N.default.createElement("span",{className:"console-filter-label"},"Components:"),N.default.createElement("div",{className:"console-filter-chips"},bo.map(S=>N.default.createElement("button",{key:S.key,className:`console-filter-chip ${p.has(S.key)?"active":""}`,onClick:()=>ke(S.key),style:{"--chip-color":S.color},title:S.label},S.icon," ",S.label)),N.default.createElement("button",{className:"console-filter-action",onClick:()=>He(p.size===0),title:p.size===bo.length?"Select none":"Select all"},p.size===bo.length?"\u25CB":"\u25CF")))),i&&N.default.createElement("div",{className:"console-error"},"\u26A0 ",i),N.default.createElement("div",{className:"console-content",ref:M},N.default.createElement("div",{className:"console-logs"},G.length===0?N.default.createElement("div",{className:"log-line log-line-empty"},"No logs available"):G.map((S,Q)=>Vn(S,Q)))))}var lt=J(ee(),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 ki={SSE_RECONNECT_DELAY_MS:3e3,STATS_REFRESH_INTERVAL_MS:1e4,SAVE_STATUS_DISPLAY_DURATION_MS:3e3};function Am(){let[e,t]=(0,lt.useState)([]),[n,r]=(0,lt.useState)([]),[o,l]=(0,lt.useState)([]),[i,s]=(0,lt.useState)({projects:[],sources:[],projectsBySource:{}}),[a,u]=(0,lt.useState)(!1),[g,h]=(0,lt.useState)(!1),[v,E]=(0,lt.useState)(0),w=(0,lt.useRef)(null),k=(0,lt.useRef)(),M=(f,c)=>{s(m=>{let p=m.projects.includes(f)?m.projects:[...m.projects,f],_=m.sources.includes(c)?m.sources:[...m.sources,c],L=m.projectsBySource[c]||[];return{projects:p,sources:_,projectsBySource:{...m.projectsBySource,[c]:L.includes(f)?L:[...L,f]}}})};return(0,lt.useEffect)(()=>{let f=()=>{w.current&&w.current.close();let c=new EventSource(Tt.STREAM);w.current=c,c.onopen=()=>{console.log("[SSE] Connected"),u(!0),k.current&&clearTimeout(k.current)},c.onerror=m=>{console.error("[SSE] Connection error:",m),u(!1),c.close(),k.current=setTimeout(()=>{k.current=void 0,console.log("[SSE] Attempting to reconnect..."),f()},ki.SSE_RECONNECT_DELAY_MS)},c.onmessage=m=>{let p=JSON.parse(m.data);switch(p.type){case"initial_load":console.log("[SSE] Initial load:",{projects:p.projects?.length||0,sources:p.sources?.length||0}),s({projects:p.projects||[],sources:p.sources||[],projectsBySource:p.projectsBySource||{}});break;case"new_observation":p.observation&&(console.log("[SSE] New observation:",p.observation.id),M(p.observation.project,p.observation.platform_source||"claude"),t(_=>[p.observation,..._]));break;case"new_summary":p.summary&&(console.log("[SSE] New summary:",p.summary.id),M(p.summary.project,p.summary.platform_source||"claude"),r(_=>[p.summary,..._]));break;case"new_prompt":p.prompt&&(console.log("[SSE] New prompt:",p.prompt.id),M(p.prompt.project,p.prompt.platform_source||"claude"),l(_=>[p.prompt,..._]));break;case"processing_status":typeof p.isProcessing=="boolean"&&(console.log("[SSE] Processing status:",p.isProcessing,"Queue depth:",p.queueDepth),h(p.isProcessing),E(p.queueDepth||0));break}}};return f(),()=>{w.current&&w.current.close(),k.current&&clearTimeout(k.current)}},[]),{observations:e,summaries:n,prompts:o,projects:i.projects,sources:i.sources,projectsBySource:i.projectsBySource,isProcessing:g,queueDepth:v,isConnected:a}}var xr=J(ee(),1);var le={CLAUDE_MEM_MODEL:"claude-sonnet-4-6",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:"false",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"false",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"false",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_FULL_COUNT:"0",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",CLAUDE_MEM_EXCLUDED_PROJECTS:"",CLAUDE_MEM_FOLDER_MD_EXCLUDE:"[]"};function Mm(){let[e,t]=(0,xr.useState)(le),[n,r]=(0,xr.useState)(!1),[o,l]=(0,xr.useState)("");return(0,xr.useEffect)(()=>{fetch(Tt.SETTINGS).then(s=>s.json()).then(s=>{t({CLAUDE_MEM_MODEL:s.CLAUDE_MEM_MODEL??le.CLAUDE_MEM_MODEL,CLAUDE_MEM_CONTEXT_OBSERVATIONS:s.CLAUDE_MEM_CONTEXT_OBSERVATIONS??le.CLAUDE_MEM_CONTEXT_OBSERVATIONS,CLAUDE_MEM_WORKER_PORT:s.CLAUDE_MEM_WORKER_PORT??le.CLAUDE_MEM_WORKER_PORT,CLAUDE_MEM_WORKER_HOST:s.CLAUDE_MEM_WORKER_HOST??le.CLAUDE_MEM_WORKER_HOST,CLAUDE_MEM_PROVIDER:s.CLAUDE_MEM_PROVIDER??le.CLAUDE_MEM_PROVIDER,CLAUDE_MEM_GEMINI_API_KEY:s.CLAUDE_MEM_GEMINI_API_KEY??le.CLAUDE_MEM_GEMINI_API_KEY,CLAUDE_MEM_GEMINI_MODEL:s.CLAUDE_MEM_GEMINI_MODEL??le.CLAUDE_MEM_GEMINI_MODEL,CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED:s.CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED??le.CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED,CLAUDE_MEM_OPENROUTER_API_KEY:s.CLAUDE_MEM_OPENROUTER_API_KEY??le.CLAUDE_MEM_OPENROUTER_API_KEY,CLAUDE_MEM_OPENROUTER_MODEL:s.CLAUDE_MEM_OPENROUTER_MODEL??le.CLAUDE_MEM_OPENROUTER_MODEL,CLAUDE_MEM_OPENROUTER_SITE_URL:s.CLAUDE_MEM_OPENROUTER_SITE_URL??le.CLAUDE_MEM_OPENROUTER_SITE_URL,CLAUDE_MEM_OPENROUTER_APP_NAME:s.CLAUDE_MEM_OPENROUTER_APP_NAME??le.CLAUDE_MEM_OPENROUTER_APP_NAME,CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:s.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS??le.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS,CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:s.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS??le.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS,CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:s.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT??le.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT,CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:s.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT??le.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT,CLAUDE_MEM_CONTEXT_FULL_COUNT:s.CLAUDE_MEM_CONTEXT_FULL_COUNT??le.CLAUDE_MEM_CONTEXT_FULL_COUNT,CLAUDE_MEM_CONTEXT_FULL_FIELD:s.CLAUDE_MEM_CONTEXT_FULL_FIELD??le.CLAUDE_MEM_CONTEXT_FULL_FIELD,CLAUDE_MEM_CONTEXT_SESSION_COUNT:s.CLAUDE_MEM_CONTEXT_SESSION_COUNT??le.CLAUDE_MEM_CONTEXT_SESSION_COUNT,CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:s.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY??le.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY,CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:s.CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE??le.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(Tt.SETTINGS,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)})).json();u.success?(t(s),l("\u2713 Saved"),setTimeout(()=>l(""),ki.SAVE_STATUS_DISPLAY_DURATION_MS)):l(`\u2717 Error: ${u.error}`),r(!1)},isSaving:n,saveStatus:o}}var Or=J(ee(),1);function xm(){let[e,t]=(0,Or.useState)({}),n=(0,Or.useCallback)(async()=>{try{let o=await(await fetch(Tt.STATS)).json();t(o)}catch(r){console.error("Failed to load stats:",r)}},[]);return(0,Or.useEffect)(()=>{n()},[n]),{stats:e,refreshStats:n}}var Tn=J(ee(),1);function Eu(e,t,n,r){let[o,l]=(0,Tn.useState)({isLoading:!1,hasMore:!0}),i=(0,Tn.useRef)(0),s=(0,Tn.useRef)(`${r}::${n}`),a=(0,Tn.useRef)(o),u=(0,Tn.useCallback)(async()=>{let g=`${r}::${n}`,h=s.current!==g;if(h){i.current=0,s.current=g;let M={isLoading:!1,hasMore:!0};l(M),a.current=M}if(!h&&(a.current.isLoading||!a.current.hasMore))return[];a.current={...a.current,isLoading:!0},l(M=>({...M,isLoading:!0}));let v=new URLSearchParams({offset:i.current.toString(),limit:xo.PAGINATION_PAGE_SIZE.toString()});n&&v.append("project",n),r&&r!=="all"&&v.append("platformSource",r);let E=await fetch(`${e}?${v}`);if(!E.ok)throw new Error(`Failed to load ${t}: ${E.statusText}`);let w=await E.json(),k={...a.current,isLoading:!1,hasMore:w.hasMore};return a.current=k,l(M=>({...M,isLoading:!1,hasMore:w.hasMore})),i.current+=xo.PAGINATION_PAGE_SIZE,w.items},[n,r,e,t]);return{...o,loadMore:u}}function Om(e,t){let n=Eu(Tt.OBSERVATIONS,"observations",e,t),r=Eu(Tt.SUMMARIES,"summaries",e,t),o=Eu(Tt.PROMPTS,"prompts",e,t);return{observations:n,summaries:r,prompts:o}}var Dr=J(ee(),1),Im="claude-mem-theme";function T0(){return typeof window>"u"||window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function Dm(){try{let e=localStorage.getItem(Im);if(e==="system"||e==="light"||e==="dark")return e}catch(e){console.warn("Failed to read theme preference from localStorage:",e)}return"system"}function Pm(e){return e==="system"?T0():e}function Um(){let[e,t]=(0,Dr.useState)(Dm),[n,r]=(0,Dr.useState)(()=>Pm(Dm()));return(0,Dr.useEffect)(()=>{let l=Pm(e);r(l),document.documentElement.setAttribute("data-theme",l)},[e]),(0,Dr.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(Im,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 Rm(){let[e,t]=(0,B.useState)(""),[n,r]=(0,B.useState)("all"),[o,l]=(0,B.useState)(!1),[i,s]=(0,B.useState)(!1),[a,u]=(0,B.useState)([]),[g,h]=(0,B.useState)([]),[v,E]=(0,B.useState)([]),{observations:w,summaries:k,prompts:M,projects:f,sources:c,projectsBySource:m,isProcessing:p,queueDepth:_,isConnected:L}=Am(),{settings:x,saveSettings:D,isSaving:G,saveStatus:U}=Mm(),{stats:W,refreshStats:it}=xm(),{preference:Cn,resolvedTheme:Wn,setThemePreference:Pr}=Um(),ke=Om(e,n),kn=(0,B.useMemo)(()=>n==="all"?f:m[n]||[],[n,f,m]),He=(0,B.useCallback)(I=>{let ue=!e||I.project===e,Ye=n==="all"||(I.platform_source||"claude")===n;return ue&&Ye},[e,n]);(0,B.useEffect)(()=>{e&&!kn.includes(e)&&t("")},[kn,e]);let Ir=(0,B.useMemo)(()=>{let I=w.filter(He),ue=a.filter(He);return Li(I,ue)},[w,a,He]),Vn=(0,B.useMemo)(()=>{let I=k.filter(He),ue=g.filter(He);return Li(I,ue)},[k,g,He]),S=(0,B.useMemo)(()=>{let I=M.filter(He),ue=v.filter(He);return Li(I,ue)},[M,v,He]),Q=(0,B.useCallback)(()=>{l(I=>!I)},[]),R=(0,B.useCallback)(()=>{s(I=>!I)},[]),he=(0,B.useCallback)(async()=>{try{let[I,ue,Ye]=await Promise.all([ke.observations.loadMore(),ke.summaries.loadMore(),ke.prompts.loadMore()]);I.length>0&&u(je=>[...je,...I]),ue.length>0&&h(je=>[...je,...ue]),Ye.length>0&&E(je=>[...je,...Ye])}catch(I){console.error("Failed to load more data:",I)}},[ke.observations,ke.summaries,ke.prompts]);return(0,B.useEffect)(()=>{u([]),h([]),E([]),he()},[e,n]),B.default.createElement(B.default.Fragment,null,B.default.createElement(Ap,{isConnected:L,projects:kn,sources:c,currentFilter:e,currentSource:n,onFilterChange:t,onSourceChange:r,isProcessing:p,queueDepth:_,themePreference:Cn,onThemeChange:Pr,onContextPreviewToggle:Q}),B.default.createElement(Ip,{observations:Ir,summaries:Vn,prompts:S,onLoadMore:he,isLoading:ke.observations.isLoading||ke.summaries.isLoading||ke.prompts.isLoading,hasMore:ke.observations.hasMore||ke.summaries.hasMore||ke.prompts.hasMore}),B.default.createElement(Lm,{isOpen:o,onClose:Q,settings:x,onSave:D,isSaving:G,saveStatus:U}),B.default.createElement("button",{className:"console-toggle-btn",onClick:R,title:"Toggle Console"},B.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},B.default.createElement("polyline",{points:"4 17 10 11 4 5"}),B.default.createElement("line",{x1:"12",y1:"19",x2:"20",y2:"19"}))),B.default.createElement(Nm,{isOpen:i,onClose:R}))}var Kt=J(ee(),1),Ni=class extends Kt.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?Kt.default.createElement("div",{style:{padding:"20px",color:"#ff6b6b",backgroundColor:"#1a1a1a",minHeight:"100vh"}},Kt.default.createElement("h1",{style:{fontSize:"24px",marginBottom:"10px"}},"Something went wrong"),Kt.default.createElement("p",{style:{marginBottom:"10px",color:"#8b949e"}},"The application encountered an error. Please refresh the page to try again."),this.state.error&&Kt.default.createElement("details",{style:{marginTop:"20px",color:"#8b949e"}},Kt.default.createElement("summary",{style:{cursor:"pointer",marginBottom:"10px"}},"Error details"),Kt.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 Vh=typeof WeakMap=="function"?WeakMap:Map;function Wd(e,t,n){n=Ht(-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 Vd(e,t,n){n=Ht(-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"&&(cn===null?cn=new Set([this]):cn.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 Vh;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=lv.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=Ht(-1,1),t.tag=2,un(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=o,e)}var Gh=Vt.ReactCurrentOwner,Be=!1;function Ie(e,t,n,r){t.child=e===null?Sd(t,null,n,r):Tr(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&&!Be?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Wt(e,t,o)):(ne&&n&&Ma(t),t.flags|=1,Ie(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 Wt(e,t,o)}return t.flags|=1,e=dn(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(Be=!1,t.pendingProps=r=l,(e.lanes&o)!==0)(e.flags&131072)!==0&&(Be=!0);else return t.lanes=e.lanes,Wt(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,$e),$e|=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,$e),$e|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=l!==null?l.baseLanes:n,K(pr,$e),$e|=r}else l!==null?(r=l.baseLanes|n,t.memoizedState=null):r=n,K(pr,$e),$e|=r;return Ie(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=We(n)?Fn:Oe.current;return l=_r(t,l),yr(t,o),n=ja(e,t,n,r,l,o),r=Ba(),e!==null&&!Be?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Wt(e,t,o)):(ne&&r&&Ma(t),t.flags|=1,Ie(e,t,n,o),t.child)}function sf(e,t,n,r,o){if(We(n)){var l=!0;bl(t)}else l=!1;if(yr(t,o),t.stateNode===null)kl(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=at(u):(u=We(n)?Fn: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),Jt=!1;var h=t.memoizedState;i.state=h,Wl(t,r,i,o),a=t.memoizedState,s!==r||h!==a||qe.current||Jt?(typeof m=="function"&&(Qs(t,n,m,r),a=t.memoizedState),(s=Jt||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,wd(e,t),s=t.memoizedProps,u=t.type===t.elementType?s:pt(t.type,s),i.props=u,g=t.pendingProps,h=i.context,a=n.contextType,typeof a=="object"&&a!==null?a=at(a):(a=We(n)?Fn:Oe.current,a=_r(t,a));var _=n.getDerivedStateFromProps;(m=typeof _=="function"||typeof i.getSnapshotBeforeUpdate=="function")||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(s!==g||h!==a)&&ef(t,i,r,a),Jt=!1,h=t.memoizedState,i.state=h,Wl(t,r,i,o);var E=t.memoizedState;s!==g||h!==E||qe.current||Jt?(typeof _=="function"&&(Qs(t,n,_,r),E=t.memoizedState),(u=Jt||Jc(t,n,u,r,h,E,a)||!1)?(m||typeof i.UNSAFE_componentWillUpdate!="function"&&typeof i.componentWillUpdate!="function"||(typeof i.componentWillUpdate=="function"&&i.componentWillUpdate(r,E,a),typeof i.UNSAFE_componentWillUpdate=="function"&&i.UNSAFE_componentWillUpdate(r,E,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=E),i.props=r,i.state=E,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&&Vc(t,n,!1),Wt(e,t,l);r=t.stateNode,Gh.current=t;var s=i&&typeof n.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&i?(t.child=Tr(t,e.child,null,l),t.child=Tr(t,null,s,l)):Ie(e,t,s,l),t.memoizedState=r.state,o&&Vc(t,n,!0),t.child}function Kd(e){var t=e.stateNode;t.pendingContext?Wc(e,t.pendingContext,t.pendingContext!==t.context):t.context&&Wc(e,t.context,!1),Fa(e,t.containerInfo)}function af(e,t,n,r,o){return wr(),Oa(o),t.flags|=256,Ie(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=re.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(re,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=Rn(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):Va(t,i));if(o=e.memoizedState,o!==null&&(s=o.dehydrated,s!==null))return Xh(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=dn(o,a),r.subtreeFlags=o.subtreeFlags&14680064),s!==null?l=dn(s,l):(l=Rn(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=dn(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 Va(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&&Oa(r),Tr(t,e.child,null,n),e=Va(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Xh(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=Rn(l,o,i,null),l.flags|=2,r.return=t,l.return=t,r.sibling=l,t.child=r,(t.mode&1)!==0&&Tr(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,Be||s){if(r=ye,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,qt(e,o),vt(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=iv.bind(null,e),o._reactRetry=t,null):(e=l.treeContext,Ke=an(o.nextSibling),Ye=t,ne=!0,gt=null,e!==null&&(ot[lt++]=zt,ot[lt++]=bt,ot[lt++]=zn,zt=e.id,bt=e.overflow,zn=t),t=Va(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(Ie(e,t,r.children,n),r=re.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(re,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&&Vl(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&&Vl(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 kl(e,t){(t.mode&1)===0&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Wt(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Hn|=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=dn(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=dn(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function $h(e,t,n){switch(t.tag){case 3:Kd(t),wr();break;case 5:Td(t);break;case 1:We(t.type)&&bl(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(re,re.current&1),t.flags|=128,null):(n&t.child.childLanes)!==0?Yd(e,t,n):(K(re,re.current&1),e=Wt(e,t,n),e!==null?e.sibling:null);K(re,re.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(re,re.current),r)break;return null;case 22:case 23:return t.lanes=0,Xd(e,t,n)}return Wt(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,In(At.current);var l=null;switch(n){case"input":o=Ls(e,o),r=Ls(e,r),l=[];break;case"select":o=le({},o,{value:void 0}),r=le({},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)}Os(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(!ne)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 Me(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 Kh(e,t,n){var r=t.pendingProps;switch(xa(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Me(t),null;case 1:return We(t.type)&&zl(),Me(t),null;case 3:return r=t.stateNode,Cr(),Q(qe),Q(Oe),ba(),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,gt!==null&&(da(gt),gt=null))),oa(e,t),Me(t),null;case 5:za(t);var o=In(_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 Me(t),null}if(e=In(At.current),ml(t)){r=t.stateNode,n=t.type;var l=t.memoizedProps;switch(r[Lt]=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[Lt]=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=Vl(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&&!ne)return Me(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=re.current,K(re,r?n&1|2:n&1),t):(Me(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?($e&1073741824)!==0&&(Me(t),t.subtreeFlags&6&&(t.flags|=8192)):Me(t),null;case 24:return null;case 25:return null}throw Error(w(156,t.tag))}function Yh(e,t){switch(xa(t),t.tag){case 1:return We(t.type)&&zl(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Cr(),Q(qe),Q(Oe),ba(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return za(t),null;case 13:if(Q(re),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(w(340));wr()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Q(re),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,xe=!1,Qh=typeof WeakSet=="function"?WeakSet:Set,A=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 Zh(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 _;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),(_=g.firstChild)!==null;)h=g,g=_;for(;;){if(g===e)break t;if(h===n&&++u===o&&(s=i),h===l&&++m===r&&(a=i),(_=g.nextSibling)!==null)break;g=h,h=g.parentNode}g=_}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,A=t;A!==null;)if(t=A,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,A=e;else for(;A!==null;){t=A;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 k=E.memoizedProps,P=E.memoizedState,c=t.stateNode,f=c.getSnapshotBeforeUpdate(t.elementType===t.type?k:pt(t.type,k),P);c.__reactInternalSnapshotBeforeUpdate=f}break;case 3:var p=t.stateNode.containerInfo;p.nodeType===1?p.textContent="":p.nodeType===9&&p.documentElement&&p.removeChild(p.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(w(163))}}catch(v){se(t,t.return,v)}if(e=t.sibling,e!==null){e.return=t.return,A=e;break}A=t.return}return E=cf,cf=!1,E}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[Lt],delete t[Eo],delete t[Gs],delete t[Ih],delete t[Uh])),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 _e=null,mt=!1;function Qt(e,t,n){for(n=n.child;n!==null;)rp(e,t,n),n=n.sibling}function rp(e,t,n){if(Nt&&typeof Nt.onCommitFiberUnmount=="function")try{Nt.onCommitFiberUnmount(Jl,n)}catch{}switch(n.tag){case 5:xe||dr(n,t);case 6:var r=_e,o=mt;_e=null,Qt(e,t,n),_e=r,mt=o,_e!==null&&(mt?(e=_e,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):_e.removeChild(n.stateNode));break;case 18:_e!==null&&(mt?(e=_e,n=n.stateNode,e.nodeType===8?fs(e.parentNode,n):e.nodeType===1&&fs(e,n),mo(e)):fs(_e,n.stateNode));break;case 4:r=_e,o=mt,_e=n.stateNode.containerInfo,mt=!0,Qt(e,t,n),_e=r,mt=o;break;case 0:case 11:case 14:case 15:if(!xe&&(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)}Qt(e,t,n);break;case 1:if(!xe&&(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)}Qt(e,t,n);break;case 21:Qt(e,t,n);break;case 22:n.mode&1?(xe=(r=xe)||n.memoizedState!==null,Qt(e,t,n),xe=r):Qt(e,t,n);break;default:Qt(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 Qh),t.forEach(function(r){var o=sv.bind(null,e,r);n.has(r)||(n.add(r),r.then(o,o))})}}function dt(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*ev(r/1960))-r,10e?16:e,rn===null)var r=!1;else{if(e=rn,rn=null,Yl=0,(H&6)!==0)throw Error(w(331));var o=H;for(H|=4,A=e.current;A!==null;){var l=A,i=l.child;if((A.flags&16)!==0){var s=l.deletions;if(s!==null){for(var a=0;aae()-$a?Un(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=Ue();e=qt(e,t),e!==null&&(Lo(e,t,n),Ve(e,n))}function iv(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),fp(e,n)}function sv(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||qe.current)Be=!0;else{if((e.lanes&n)===0&&(t.flags&128)===0)return Be=!1,$h(e,t,n);Be=(e.flags&131072)!==0}else Be=!1,ne&&(t.flags&1048576)!==0&&hd(t,jl,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;kl(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,We(r)?(l=!0,bl(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,ne&&l&&Ma(t),Ie(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch(kl(e,t),e=t.pendingProps,o=r._init,r=o(r._payload),t.type=r,o=t.tag=uv(r),e=pt(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,pt(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:pt(r,o),ea(e,t,r,o,n);case 1:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:pt(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,wd(e,t),Wl(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=kr(Error(w(423)),t),t=af(e,t,r,n,o);break e}else if(r!==o){o=kr(Error(w(424)),t),t=af(e,t,r,n,o);break e}else for(Ke=an(t.stateNode.containerInfo.firstChild),Ye=t,ne=!0,gt=null,n=Sd(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(wr(),r===o){t=Wt(e,t,n);break e}Ie(e,t,r,n)}t=t.child}return t;case 5:return Td(t),e===null&&Ks(t),r=t.type,o=t.pendingProps,l=e!==null?e.memoizedProps:null,i=o.children,Ws(r,o)?i=null:l!==null&&Ws(r,l)&&(t.flags|=32),$d(e,t),Ie(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=Tr(t,null,r,n):Ie(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:pt(r,o),of(e,t,r,o,n);case 7:return Ie(e,t,t.pendingProps,n),t.child;case 8:return Ie(e,t,t.pendingProps.children,n),t.child;case 12:return Ie(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(yt(l.value,i)){if(l.children===o.children&&!qe.current){t=Wt(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=Ht(-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}Ie(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,yr(t,n),o=at(o),r=r(o),t.flags|=1,Ie(e,t,r,n),t.child;case 14:return r=t.type,o=pt(r,t.pendingProps),o=pt(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:pt(r,o),kl(e,t),t.tag=1,We(r)?(e=!0,bl(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 av(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 it(e,t,n,r){return new av(e,t,n,r)}function Za(e){return e=e.prototype,!(!e||!e.isReactComponent)}function uv(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 dn(e,t){var n=e.alternate;return n===null?(n=it(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 Rn(n.children,o,l,t);case ha:i=8,o|=8;break;case ws:return e=it(12,n,t,o|2),e.elementType=ws,e.lanes=l,e;case Ts:return e=it(13,n,t,o),e.elementType=Ts,e.lanes=l,e;case Cs:return e=it(19,n,t,o),e.elementType=Cs,e.lanes=l,e;case Tf:return ui(n,o,l,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case _f:i=10;break e;case wf:i=9;break e;case va:i=11;break e;case ya:i=14;break e;case Zt:i=16,r=null;break e}throw Error(w(130,e==null?e:typeof e,""))}return t=it(i,n,t,o),t.elementType=e,t.type=r,t.lanes=l,t}function Rn(e,t,n,r){return e=it(7,e,r,t),e.lanes=n,e}function ui(e,t,n,r){return e=it(22,e,r,t),e.elementType=Tf,e.lanes=n,e.stateNode={isHidden:!1},e}function Es(e,t,n){return e=it(6,e,null,t),e.lanes=n,e}function Ss(e,t,n){return t=it(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function cv(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 cv(e,t,n,s,a),t===1?(t=1,l===!0&&(t|=8)):t=0,l=it(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 fv(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 wp=Le(ru=>{"use strict";var _p=Sp();ru.createRoot=_p.createRoot,ru.hydrateRoot=_p.hydrateRoot;var A0});var ou=Le((n1,hv)=>{hv.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=Le((r1,vv)=>{vv.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=Le((o1,yv)=>{yv.exports={amp:"&",apos:"'",gt:">",lt:"<",quot:'"'}});var Rp=Le((l1,Ev)=>{Ev.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 zp=Le(Oo=>{"use strict";var Sv=Oo&&Oo.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Oo,"__esModule",{value:!0});var Fp=Sv(Rp()),_v=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]),_v(e))}Oo.default=wv});var su=Le(xt=>{"use strict";var mi=xt&&xt.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(xt,"__esModule",{value:!0});xt.decodeHTML=xt.decodeHTMLStrict=xt.decodeXML=void 0;var iu=mi(ou()),Tv=mi(Up()),Cv=mi(lu()),bp=mi(zp()),kv=/&(?:[a-zA-Z0-9]+|#[xX][\da-fA-F]+|#\d+);/g;xt.decodeXML=jp(Cv.default);xt.decodeHTMLStrict=jp(iu.default);function jp(e){var t=Bp(e);return function(n){return String(n).replace(kv,t)}}var Hp=function(e,t){return e{"use strict";var qp=Ge&&Ge.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Ge,"__esModule",{value:!0});Ge.escapeUTF8=Ge.escape=Ge.encodeNonAsciiHTML=Ge.encodeHTML=Ge.encodeXML=void 0;var Lv=qp(lu()),Wp=Gp(Lv.default),Vp=Xp(Wp);Ge.encodeXML=Yp(Wp);var Nv=qp(ou()),au=Gp(Nv.default),Av=Xp(au);Ge.encodeHTML=xv(au,Av);Ge.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?Mv(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(Vp.source+"|"+$p.source,"g");function Ov(e){return e.replace(Kp,gi)}Ge.escape=Ov;function Dv(e){return e.replace(Vp,gi)}Ge.escapeUTF8=Dv;function Yp(e){return function(t){return t.replace(Kp,function(n){return e[n]||gi(n)})}}});var Zp=Le(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 Pv(e,t){return(!t||t<=0?hi.decodeXML:hi.decodeHTML)(e)}U.decode=Pv;function Iv(e,t){return(!t||t<=0?hi.decodeXML:hi.decodeHTMLStrict)(e)}U.decodeStrict=Iv;function Uv(e,t){return(!t||t<=0?Qp.encodeXML:Qp.encodeHTML)(e)}U.encode=Uv;var Wn=uu();Object.defineProperty(U,"encodeXML",{enumerable:!0,get:function(){return Wn.encodeXML}});Object.defineProperty(U,"encodeHTML",{enumerable:!0,get:function(){return Wn.encodeHTML}});Object.defineProperty(U,"encodeNonAsciiHTML",{enumerable:!0,get:function(){return Wn.encodeNonAsciiHTML}});Object.defineProperty(U,"escape",{enumerable:!0,get:function(){return Wn.escape}});Object.defineProperty(U,"escapeUTF8",{enumerable:!0,get:function(){return Wn.escapeUTF8}});Object.defineProperty(U,"encodeHTML4",{enumerable:!0,get:function(){return Wn.encodeHTML}});Object.defineProperty(U,"encodeHTML5",{enumerable:!0,get:function(){return Wn.encodeHTML}});var _n=su();Object.defineProperty(U,"decodeXML",{enumerable:!0,get:function(){return _n.decodeXML}});Object.defineProperty(U,"decodeHTML",{enumerable:!0,get:function(){return _n.decodeHTML}});Object.defineProperty(U,"decodeHTMLStrict",{enumerable:!0,get:function(){return _n.decodeHTMLStrict}});Object.defineProperty(U,"decodeHTML4",{enumerable:!0,get:function(){return _n.decodeHTML}});Object.defineProperty(U,"decodeHTML5",{enumerable:!0,get:function(){return _n.decodeHTML}});Object.defineProperty(U,"decodeHTML4Strict",{enumerable:!0,get:function(){return _n.decodeHTMLStrict}});Object.defineProperty(U,"decodeHTML5Strict",{enumerable:!0,get:function(){return _n.decodeHTMLStrict}});Object.defineProperty(U,"decodeXMLStrict",{enumerable:!0,get:function(){return _n.decodeXML}})});var um=Le((c1,am)=>{"use strict";function Rv(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]=Bv([l,i,s])}function im(e){for(var t=e.toString(16);t.length<2;)t="0"+t;return t}function Bv(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=Gv(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=qv(e,n)),o}function qv(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 wn(e,"b")},3:function(){return wn(e,"i")},4:function(){return wn(e,"u")},8:function(){return yi(e,"display:none")},9:function(){return wn(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 Vv(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 wn(e,"span",t)}function Ei(e,t){return wn(e,"span","color:"+t)}function Si(e,t){return wn(e,"span","background-color:"+t)}function om(e,t){var n;if(e.slice(-1)[0]===t&&(n=e.pop()),n)return""}function Xv(e,t,n){var r=!1,o=3;function l(){return""}function i(C,L){return n("xterm256Foreground",L),""}function s(C,L){return n("xterm256Background",L),""}function a(C){return t.newline?n("display",-1):n("text",C),""}function u(C,L){r=!0,L.trim().length===0&&(L="0"),L=L.trimRight(";").split(";");var M=lm(L),O;try{for(M.s();!(O=M.n()).done;){var V=O.value;n("display",V)}}catch(I){M.e(I)}finally{M.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 _(C,L){L>o&&r||(r=!1,e=e.replace(C.pattern,C.sub))}var E=[],k=e,P=k.length;e:for(;P>0;){for(var c=0,f=0,p=h.length;f{let l=["system","light","dark"],s=(l.indexOf(e)+1)%l.length;t(l[s])},r=()=>{switch(e){case"light":return Ee.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},Ee.default.createElement("circle",{cx:"12",cy:"12",r:"5"}),Ee.default.createElement("line",{x1:"12",y1:"1",x2:"12",y2:"3"}),Ee.default.createElement("line",{x1:"12",y1:"21",x2:"12",y2:"23"}),Ee.default.createElement("line",{x1:"4.22",y1:"4.22",x2:"5.64",y2:"5.64"}),Ee.default.createElement("line",{x1:"18.36",y1:"18.36",x2:"19.78",y2:"19.78"}),Ee.default.createElement("line",{x1:"1",y1:"12",x2:"3",y2:"12"}),Ee.default.createElement("line",{x1:"21",y1:"12",x2:"23",y2:"12"}),Ee.default.createElement("line",{x1:"4.22",y1:"19.78",x2:"5.64",y2:"18.36"}),Ee.default.createElement("line",{x1:"18.36",y1:"5.64",x2:"19.78",y2:"4.22"}));case"dark":return Ee.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},Ee.default.createElement("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"}));default:return Ee.default.createElement("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},Ee.default.createElement("rect",{x:"2",y:"3",width:"20",height:"14",rx:"2",ry:"2"}),Ee.default.createElement("line",{x1:"8",y1:"21",x2:"16",y2:"21"}),Ee.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 Ee.default.createElement("button",{className:"theme-toggle-btn",onClick:n,title:o(),"aria-label":o()},r())}var Mt=ee(te(),1);var yn=ee(te(),1);function Cp(e,t){let[n,r]=(0,yn.useState)(null),[o,l]=(0,yn.useState)(!0),[i,s]=(0,yn.useState)(null),a=(0,yn.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,yn.useEffect)(()=>{a()},[a]),{stars:n,isLoading:o,error:i}}function kp(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?Mt.default.createElement("a",{href:i,target:"_blank",rel:"noopener noreferrer",title:"GitHub",className:"icon-link"},Mt.default.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},Mt.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"}))):Mt.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)`:""}`},Mt.default.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor",style:{marginRight:"6px"}},Mt.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"})),Mt.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",style:{marginRight:"4px"}},Mt.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"})),Mt.default.createElement("span",{className:o?"stars-loading":"stars-count"},o?"...":r!==null?kp(r):"\u2014"))}var En=ee(te(),1);function Np(e){let t=(0,En.useRef)(null),n=(0,En.useRef)(null),r=(0,En.useRef)(null),o=(0,En.useRef)(0),l=(0,En.useRef)(null);(0,En.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 Np(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(Tp,{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=ee(te(),1);var z=ee(te(),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 xp({observation:e}){let[t,n]=(0,z.useState)(!1),[r,o]=(0,z.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 z.default.createElement("div",{className:"card"},z.default.createElement("div",{className:"card-header"},z.default.createElement("div",{className:"card-header-left"},z.default.createElement("span",{className:`card-type type-${e.type}`},e.type),z.default.createElement("span",{className:"card-project"},e.project)),z.default.createElement("div",{className:"view-mode-toggles"},m&&z.default.createElement("button",{className:`view-mode-toggle ${t?"active":""}`,onClick:()=>{n(!t),t||o(!1)}},z.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},z.default.createElement("polyline",{points:"9 11 12 14 22 4"}),z.default.createElement("path",{d:"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"})),z.default.createElement("span",null,"facts")),e.narrative&&z.default.createElement("button",{className:`view-mode-toggle ${r?"active":""}`,onClick:()=>{o(!r),r||n(!1)}},z.default.createElement("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},z.default.createElement("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),z.default.createElement("polyline",{points:"14 2 14 8 20 8"}),z.default.createElement("line",{x1:"16",y1:"13",x2:"8",y2:"13"}),z.default.createElement("line",{x1:"16",y1:"17",x2:"8",y2:"17"})),z.default.createElement("span",null,"narrative")))),z.default.createElement("div",{className:"card-title"},e.title||"Untitled"),z.default.createElement("div",{className:"view-mode-content"},!t&&!r&&e.subtitle&&z.default.createElement("div",{className:"card-subtitle"},e.subtitle),t&&i.length>0&&z.default.createElement("ul",{className:"facts-list"},i.map((g,h)=>z.default.createElement("li",{key:h},g))),r&&e.narrative&&z.default.createElement("div",{className:"narrative"},e.narrative)),z.default.createElement("div",{className:"card-meta"},z.default.createElement("span",{className:"meta-date"},"#",e.id," \u2022 ",l),t&&(s.length>0||a.length>0||u.length>0)&&z.default.createElement("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px",alignItems:"center"}},s.map((g,h)=>z.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&&z.default.createElement("span",{className:"meta-files"},z.default.createElement("span",{className:"file-label"},"read:")," ",a.join(", ")),u.length>0&&z.default.createElement("span",{className:"meta-files"},z.default.createElement("span",{className:"file-label"},"modified:")," ",u.join(", ")))))}var Ce=ee(te(),1);function Op({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 Ce.default.createElement("article",{className:"card summary-card"},Ce.default.createElement("header",{className:"summary-card-header"},Ce.default.createElement("div",{className:"summary-badge-row"},Ce.default.createElement("span",{className:"card-type summary-badge"},"Session Summary"),Ce.default.createElement("span",{className:"summary-project-badge"},e.project)),e.request&&Ce.default.createElement("h2",{className:"summary-title"},e.request)),Ce.default.createElement("div",{className:"summary-sections"},n.map((r,o)=>Ce.default.createElement("section",{key:r.key,className:"summary-section",style:{animationDelay:`${o*50}ms`}},Ce.default.createElement("div",{className:"summary-section-header"},Ce.default.createElement("img",{src:r.icon,alt:r.label,className:`summary-section-icon summary-section-icon--${r.key}`}),Ce.default.createElement("h3",{className:"summary-section-label"},r.label)),Ce.default.createElement("div",{className:"summary-section-content"},r.content)))),Ce.default.createElement("footer",{className:"summary-card-footer"},Ce.default.createElement("span",{className:"summary-meta-id"},"Session #",e.id),Ce.default.createElement("span",{className:"summary-meta-divider"},"\u2022"),Ce.default.createElement("time",{className:"summary-meta-date",dateTime:new Date(e.created_at_epoch).toISOString()},t)))}var Gt=ee(te(),1);function Dp({prompt:e}){let t=Mr(e.created_at_epoch);return Gt.default.createElement("div",{className:"card prompt-card"},Gt.default.createElement("div",{className:"card-header"},Gt.default.createElement("div",{className:"card-header-left"},Gt.default.createElement("span",{className:"card-type"},"Prompt"),Gt.default.createElement("span",{className:"card-project"},e.project))),Gt.default.createElement("div",{className:"card-content"},e.prompt_text),Gt.default.createElement("div",{className:"card-meta"},Gt.default.createElement("span",{className:"meta-date"},"#",e.id," \u2022 ",t)))}var Sn=ee(te(),1);function Pp({targetRef:e}){let[t,n]=(0,Sn.useState)(!1);(0,Sn.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?Sn.default.createElement("button",{onClick:r,className:"scroll-to-top","aria-label":"Scroll to top"},Sn.default.createElement("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},Sn.default.createElement("polyline",{points:"18 15 12 9 6 15"}))):null}var xo={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:xo.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(xp,{key:g,observation:m}):m.itemType==="summary"?ue.default.createElement(Op,{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 y=ee(te(),1);var ge=ee(te(),1),Tm=ee(um(),1);var{entries:ym,setPrototypeOf:cm,isFrozen:Yv,getPrototypeOf:Qv,getOwnPropertyDescriptor:Zv}=Object,{freeze:ze,seal:ct,create:Ti}=Object,{apply:hu,construct:vu}=typeof Reflect<"u"&&Reflect;ze||(ze=function(t){return t});ct||(ct=function(t){return t});hu||(hu=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]:Ci;cm&&cm(e,null);let r=t.length;for(;r--;){let o=t[r];if(typeof o=="string"){let l=n(o);l!==o&&(Yv(t)||(t[r]=l),o=l)}e[o]=!0}return e}function o0(e){for(let t=0;t/gm),u0=ct(/\$\{[\w\W]*/gm),c0=ct(/^data-[\-\w.\u00B7-\uFFFF]+$/),f0=ct(/^aria-[\-\w]+$/),Em=ct(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),d0=ct(/^(?:\w+script|data):/i),p0=ct(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Sm=ct(/^html$/i),m0=ct(/^[a-z][.\w]*(-[.\w]+)+$/i),hm=Object.freeze({__proto__:null,ARIA_ATTR:f0,ATTR_WHITESPACE:p0,CUSTOM_ELEMENT:m0,DATA_ATTR:c0,DOCTYPE_NAME:Sm,ERB_EXPR:a0,IS_ALLOWED_URI:Em,IS_SCRIPT_OR_DATA:d0,MUSTACHE_EXPR:s0,TMPLIT_EXPR:u0}),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},g0=function(){return typeof window>"u"?null:window},h0=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]:g0(),t=D=>_m(D);if(t.version="3.3.3",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:_}=e,E=a.prototype,k=Uo(E,"cloneNode"),P=Uo(E,"remove"),c=Uo(E,"nextSibling"),f=Uo(E,"childNodes"),p=Uo(E,"parentNode");if(typeof i=="function"){let D=n.createElement("template");D.content&&D.content.ownerDocument&&(n=D.content.ownerDocument)}let v,C="",{implementation:L,createNodeIterator:M,createDocumentFragment:O,getElementsByTagName:V}=n,{importNode:I}=r,j=vm();t.isSupported=typeof ym=="function"&&typeof p=="function"&&L&&L.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:Z,ERB_EXPR:Cn,TMPLIT_EXPR:kn,DATA_ATTR:Ir,ARIA_ATTR:Vn,IS_SCRIPT_OR_DATA:Gn,ATTR_WHITESPACE:Ln,CUSTOM_ELEMENT:he}=hm,{IS_ALLOWED_URI:Xe}=hm,S=null,G=R({},[...dm,...du,...pu,...mu,...pm]),b=null,De=R({},[...mm,...gu,...gm,...wi]),B=Object.seal(Ti(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}})),Dt=null,$t=null,Kt=Object.seal(Ti(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),_u=!0,Ai=!0,wu=!1,Tu=!0,Xn=!1,bo=!0,Nn=!1,Mi=!1,xi=!1,$n=!1,Ho=!1,jo=!1,Cu=!0,ku=!1,bm="user-content-",Oi=!0,Ur=!1,Kn={},_t=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,Nu=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",Pt="http://www.w3.org/1999/xhtml",Yn=Pt,Ii=!1,Ui=null,Hm=R({},[Bo,qo,Pt],cu),Wo=R({},["mi","mo","mn","ms","mtext"]),Vo=R({},["annotation-xml"]),jm=R({},["title","style","font","a","script"]),Rr=null,Bm=["application/xhtml+xml","text/html"],qm="text/html",de=null,Qn=null,Wm=n.createElement("form"),Mu=function(d){return d instanceof RegExp||d instanceof Function},Ri=function(){let d=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(Qn&&Qn===d)){if((!d||typeof d!="object")&&(d={}),d=Ot(d),Rr=Bm.indexOf(d.PARSER_MEDIA_TYPE)===-1?qm:d.PARSER_MEDIA_TYPE,de=Rr==="application/xhtml+xml"?cu:Ci,S=et(d,"ALLOWED_TAGS")?R({},d.ALLOWED_TAGS,de):G,b=et(d,"ALLOWED_ATTR")?R({},d.ALLOWED_ATTR,de):De,Ui=et(d,"ALLOWED_NAMESPACES")?R({},d.ALLOWED_NAMESPACES,cu):Hm,Pi=et(d,"ADD_URI_SAFE_ATTR")?R(Ot(Au),d.ADD_URI_SAFE_ATTR,de):Au,Lu=et(d,"ADD_DATA_URI_TAGS")?R(Ot(Nu),d.ADD_DATA_URI_TAGS,de):Nu,_t=et(d,"FORBID_CONTENTS")?R({},d.FORBID_CONTENTS,de):Di,Dt=et(d,"FORBID_TAGS")?R({},d.FORBID_TAGS,de):Ot({}),$t=et(d,"FORBID_ATTR")?R({},d.FORBID_ATTR,de):Ot({}),Kn=et(d,"USE_PROFILES")?d.USE_PROFILES:!1,_u=d.ALLOW_ARIA_ATTR!==!1,Ai=d.ALLOW_DATA_ATTR!==!1,wu=d.ALLOW_UNKNOWN_PROTOCOLS||!1,Tu=d.ALLOW_SELF_CLOSE_IN_ATTR!==!1,Xn=d.SAFE_FOR_TEMPLATES||!1,bo=d.SAFE_FOR_XML!==!1,Nn=d.WHOLE_DOCUMENT||!1,$n=d.RETURN_DOM||!1,Ho=d.RETURN_DOM_FRAGMENT||!1,jo=d.RETURN_TRUSTED_TYPE||!1,xi=d.FORCE_BODY||!1,Cu=d.SANITIZE_DOM!==!1,ku=d.SANITIZE_NAMED_PROPS||!1,Oi=d.KEEP_CONTENT!==!1,Ur=d.IN_PLACE||!1,Xe=d.ALLOWED_URI_REGEXP||Em,Yn=d.NAMESPACE||Pt,Wo=d.MATHML_TEXT_INTEGRATION_POINTS||Wo,Vo=d.HTML_INTEGRATION_POINTS||Vo,B=d.CUSTOM_ELEMENT_HANDLING||{},d.CUSTOM_ELEMENT_HANDLING&&Mu(d.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(B.tagNameCheck=d.CUSTOM_ELEMENT_HANDLING.tagNameCheck),d.CUSTOM_ELEMENT_HANDLING&&Mu(d.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(B.attributeNameCheck=d.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),d.CUSTOM_ELEMENT_HANDLING&&typeof d.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(B.allowCustomizedBuiltInElements=d.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Xn&&(Ai=!1),Ho&&($n=!0),Kn&&(S=R({},pm),b=Ti(null),Kn.html===!0&&(R(S,dm),R(b,mm)),Kn.svg===!0&&(R(S,du),R(b,gu),R(b,wi)),Kn.svgFilters===!0&&(R(S,pu),R(b,gu),R(b,wi)),Kn.mathMl===!0&&(R(S,mu),R(b,gm),R(b,wi))),et(d,"ADD_TAGS")||(Kt.tagCheck=null),et(d,"ADD_ATTR")||(Kt.attributeCheck=null),d.ADD_TAGS&&(typeof d.ADD_TAGS=="function"?Kt.tagCheck=d.ADD_TAGS:(S===G&&(S=Ot(S)),R(S,d.ADD_TAGS,de))),d.ADD_ATTR&&(typeof d.ADD_ATTR=="function"?Kt.attributeCheck=d.ADD_ATTR:(b===De&&(b=Ot(b)),R(b,d.ADD_ATTR,de))),d.ADD_URI_SAFE_ATTR&&R(Pi,d.ADD_URI_SAFE_ATTR,de),d.FORBID_CONTENTS&&(_t===Di&&(_t=Ot(_t)),R(_t,d.FORBID_CONTENTS,de)),d.ADD_FORBID_CONTENTS&&(_t===Di&&(_t=Ot(_t)),R(_t,d.ADD_FORBID_CONTENTS,de)),Oi&&(S["#text"]=!0),Nn&&R(S,["html","head","body"]),S.table&&(R(S,["tbody"]),delete Dt.tbody),d.TRUSTED_TYPES_POLICY){if(typeof d.TRUSTED_TYPES_POLICY.createHTML!="function")throw Io('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof d.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Io('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');v=d.TRUSTED_TYPES_POLICY,C=v.createHTML("")}else v===void 0&&(v=h0(_,o)),v!==null&&typeof C=="string"&&(C=v.createHTML(""));ze&&ze(d),Qn=d}},xu=R({},[...du,...pu,...l0]),Ou=R({},[...mu,...i0]),Vm=function(d){let T=p(d);(!T||!T.tagName)&&(T={namespaceURI:Yn,tagName:"template"});let x=Ci(d.tagName),J=Ci(T.tagName);return Ui[d.namespaceURI]?d.namespaceURI===qo?T.namespaceURI===Pt?x==="svg":T.namespaceURI===Bo?x==="svg"&&(J==="annotation-xml"||Wo[J]):!!xu[x]:d.namespaceURI===Bo?T.namespaceURI===Pt?x==="math":T.namespaceURI===qo?x==="math"&&Vo[J]:!!Ou[x]:d.namespaceURI===Pt?T.namespaceURI===qo&&!Vo[J]||T.namespaceURI===Bo&&!Wo[J]?!1:!Ou[x]&&(jm[x]||!xu[x]):!!(Rr==="application/xhtml+xml"&&Ui[d.namespaceURI]):!1},wt=function(d){Do(t.removed,{element:d});try{p(d).removeChild(d)}catch{P(d)}},An=function(d,T){try{Do(t.removed,{attribute:T.getAttributeNode(d),from:T})}catch{Do(t.removed,{attribute:null,from:T})}if(T.removeAttribute(d),d==="is")if($n||Ho)try{wt(T)}catch{}else try{T.setAttribute(d,"")}catch{}},Du=function(d){let T=null,x=null;if(xi)d=""+d;else{let ce=fu(d,/^[\r\n\t ]+/);x=ce&&ce[0]}Rr==="application/xhtml+xml"&&Yn===Pt&&(d=''+d+"");let J=v?v.createHTML(d):d;if(Yn===Pt)try{T=new h().parseFromString(J,Rr)}catch{}if(!T||!T.documentElement){T=L.createDocument(Yn,"template",null);try{T.documentElement.innerHTML=Ii?C:J}catch{}}let ke=T.body||T.documentElement;return d&&x&&ke.insertBefore(n.createTextNode(x),ke.childNodes[0]||null),Yn===Pt?V.call(T,Nn?"html":"body")[0]:Nn?T.documentElement:ke},Pu=function(d){return M.call(d.ownerDocument||d,d,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT|u.SHOW_PROCESSING_INSTRUCTION|u.SHOW_CDATA_SECTION,null)},Fi=function(d){return d instanceof g&&(typeof d.nodeName!="string"||typeof d.textContent!="string"||typeof d.removeChild!="function"||!(d.attributes instanceof m)||typeof d.removeAttribute!="function"||typeof d.setAttribute!="function"||typeof d.namespaceURI!="string"||typeof d.insertBefore!="function"||typeof d.hasChildNodes!="function")},Iu=function(d){return typeof s=="function"&&d instanceof s};function It(D,d,T){_i(D,x=>{x.call(t,d,T,Qn)})}let Uu=function(d){let T=null;if(It(j.beforeSanitizeElements,d,null),Fi(d))return wt(d),!0;let x=de(d.nodeName);if(It(j.uponSanitizeElement,d,{tagName:x,allowedTags:S}),bo&&d.hasChildNodes()&&!Iu(d.firstElementChild)&&Fe(/<[/\w!]/g,d.innerHTML)&&Fe(/<[/\w!]/g,d.textContent)||d.nodeType===Ro.progressingInstruction||bo&&d.nodeType===Ro.comment&&Fe(/<[/\w]/g,d.data))return wt(d),!0;if(!(Kt.tagCheck instanceof Function&&Kt.tagCheck(x))&&(!S[x]||Dt[x])){if(!Dt[x]&&Fu(x)&&(B.tagNameCheck instanceof RegExp&&Fe(B.tagNameCheck,x)||B.tagNameCheck instanceof Function&&B.tagNameCheck(x)))return!1;if(Oi&&!_t[x]){let J=p(d)||d.parentNode,ke=f(d)||d.childNodes;if(ke&&J){let ce=ke.length;for(let He=ce-1;He>=0;--He){let Ut=k(ke[He],!0);Ut.__removalCount=(d.__removalCount||0)+1,J.insertBefore(Ut,c(d))}}}return wt(d),!0}return d instanceof a&&!Vm(d)||(x==="noscript"||x==="noembed"||x==="noframes")&&Fe(/<\/no(script|embed|frames)/i,d.innerHTML)?(wt(d),!0):(Xn&&d.nodeType===Ro.text&&(T=d.textContent,_i([Z,Cn,kn],J=>{T=Po(T,J," ")}),d.textContent!==T&&(Do(t.removed,{element:d.cloneNode()}),d.textContent=T)),It(j.afterSanitizeElements,d,null),!1)},Ru=function(d,T,x){if($t[T]||Cu&&(T==="id"||T==="name")&&(x in n||x in Wm))return!1;if(!(Ai&&!$t[T]&&Fe(Ir,T))){if(!(_u&&Fe(Vn,T))){if(!(Kt.attributeCheck instanceof Function&&Kt.attributeCheck(T,d))){if(!b[T]||$t[T]){if(!(Fu(d)&&(B.tagNameCheck instanceof RegExp&&Fe(B.tagNameCheck,d)||B.tagNameCheck instanceof Function&&B.tagNameCheck(d))&&(B.attributeNameCheck instanceof RegExp&&Fe(B.attributeNameCheck,T)||B.attributeNameCheck instanceof Function&&B.attributeNameCheck(T,d))||T==="is"&&B.allowCustomizedBuiltInElements&&(B.tagNameCheck instanceof RegExp&&Fe(B.tagNameCheck,x)||B.tagNameCheck instanceof Function&&B.tagNameCheck(x))))return!1}else if(!Pi[T]){if(!Fe(Xe,Po(x,Ln,""))){if(!((T==="src"||T==="xlink:href"||T==="href")&&d!=="script"&&t0(x,"data:")===0&&Lu[d])){if(!(wu&&!Fe(Gn,Po(x,Ln,"")))){if(x)return!1}}}}}}}return!0},Fu=function(d){return d!=="annotation-xml"&&fu(d,he)},zu=function(d){It(j.beforeSanitizeAttributes,d,null);let{attributes:T}=d;if(!T||Fi(d))return;let x={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:b,forceKeepAttr:void 0},J=T.length;for(;J--;){let ke=T[J],{name:ce,namespaceURI:He,value:Ut}=ke,Zn=de(ce),zi=Ut,Se=ce==="value"?zi:n0(zi);if(x.attrName=Zn,x.attrValue=Se,x.keepAttr=!0,x.forceKeepAttr=void 0,It(j.uponSanitizeAttribute,d,x),Se=x.attrValue,ku&&(Zn==="id"||Zn==="name")&&(An(ce,d),Se=bm+Se),bo&&Fe(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,Se)){An(ce,d);continue}if(Zn==="attributename"&&fu(Se,"href")){An(ce,d);continue}if(x.forceKeepAttr)continue;if(!x.keepAttr){An(ce,d);continue}if(!Tu&&Fe(/\/>/i,Se)){An(ce,d);continue}Xn&&_i([Z,Cn,kn],Hu=>{Se=Po(Se,Hu," ")});let bu=de(d.nodeName);if(!Ru(bu,Zn,Se)){An(ce,d);continue}if(v&&typeof _=="object"&&typeof _.getAttributeType=="function"&&!He)switch(_.getAttributeType(bu,Zn)){case"TrustedHTML":{Se=v.createHTML(Se);break}case"TrustedScriptURL":{Se=v.createScriptURL(Se);break}}if(Se!==zi)try{He?d.setAttributeNS(He,ce,Se):d.setAttribute(ce,Se),Fi(d)?wt(d):fm(t.removed)}catch{An(ce,d)}}It(j.afterSanitizeAttributes,d,null)},Gm=function D(d){let T=null,x=Pu(d);for(It(j.beforeSanitizeShadowDOM,d,null);T=x.nextNode();)It(j.uponSanitizeShadowNode,T,null),Uu(T),zu(T),T.content instanceof l&&D(T.content);It(j.afterSanitizeShadowDOM,d,null)};return t.sanitize=function(D){let d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},T=null,x=null,J=null,ke=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(d),t.removed=[],typeof D=="string"&&(Ur=!1),Ur){if(D.nodeName){let Ut=de(D.nodeName);if(!S[Ut]||Dt[Ut])throw Io("root node is forbidden and cannot be sanitized in-place")}}else if(D instanceof s)T=Du(""),x=T.ownerDocument.importNode(D,!0),x.nodeType===Ro.element&&x.nodeName==="BODY"||x.nodeName==="HTML"?T=x:T.appendChild(x);else{if(!$n&&!Xn&&!Nn&&D.indexOf("<")===-1)return v&&jo?v.createHTML(D):D;if(T=Du(D),!T)return $n?null:jo?C:""}T&&xi&&wt(T.firstChild);let ce=Pu(Ur?D:T);for(;J=ce.nextNode();)Uu(J),zu(J),J.content instanceof l&&Gm(J.content);if(Ur)return D;if($n){if(Ho)for(ke=O.call(T.ownerDocument);T.firstChild;)ke.appendChild(T.firstChild);else ke=T;return(b.shadowroot||b.shadowrootmode)&&(ke=I.call(r,ke,!0)),ke}let He=Nn?T.outerHTML:T.innerHTML;return Nn&&S["!doctype"]&&T.ownerDocument&&T.ownerDocument.doctype&&T.ownerDocument.doctype.name&&Fe(Sm,T.ownerDocument.doctype.name)&&(He=" +`+He),Xn&&_i([Z,Cn,kn],Ut=>{He=Po(He,Ut," ")}),v&&jo?v.createHTML(He):He},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,d,T){Qn||Ri({});let x=de(D),J=de(d);return Ru(x,J,T)},t.addHook=function(D,d){typeof d=="function"&&Do(j[D],d)},t.removeHook=function(D,d){if(d!==void 0){let T=Jv(j[D],d);return T===-1?void 0:e0(j[D],T,1)[0]}return fm(j[D])},t.removeHooks=function(D){j[D]=[]},t.removeAllHooks=function(){j=vm()},t}var wm=_m();var v0=new Tm.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=v0.toHtml(e);return wm.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 Et=ee(te(),1);function km(e){let[t,n]=(0,Et.useState)(""),[r,o]=(0,Et.useState)(!1),[l,i]=(0,Et.useState)(null),[s,a]=(0,Et.useState)([]),[u,m]=(0,Et.useState)(null);(0,Et.useEffect)(()=>{async function h(){try{let E=await(await fetch("/api/projects")).json();E.projects&&E.projects.length>0&&(a(E.projects),m(E.projects[0]))}catch(_){console.error("Failed to fetch projects:",_)}}h()},[]);let g=(0,Et.useCallback)(async()=>{if(!u){n("No project selected");return}o(!0),i(null);let h=new URLSearchParams({project:u}),_=await fetch(`/api/context/preview?${h}`),E=await _.text();_.ok?n(E):i("Failed to load preview"),o(!1)},[u]);return(0,Et.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 yu({title:e,description:t,children:n,defaultOpen:r=!0}){let[o,l]=(0,y.useState)(r);return y.default.createElement("div",{className:`settings-section-collapsible ${o?"open":""}`},y.default.createElement("button",{className:"section-header-btn",onClick:()=>l(!o),type:"button"},y.default.createElement("div",{className:"section-header-content"},y.default.createElement("span",{className:"section-title"},e),t&&y.default.createElement("span",{className:"section-description"},t)),y.default.createElement("svg",{className:`chevron-icon ${o?"rotated":""}`,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2"},y.default.createElement("polyline",{points:"6 9 12 15 18 9"}))),o&&y.default.createElement("div",{className:"section-content"},n))}function tt({label:e,tooltip:t,children:n}){return y.default.createElement("div",{className:"form-field"},y.default.createElement("label",{className:"form-field-label"},e,t&&y.default.createElement("span",{className:"tooltip-trigger",title:t},y.default.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2"},y.default.createElement("circle",{cx:"12",cy:"12",r:"10"}),y.default.createElement("path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"}),y.default.createElement("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})))),n)}function xr({id:e,label:t,description:n,checked:r,onChange:o,disabled:l}){return y.default.createElement("div",{className:"toggle-row"},y.default.createElement("div",{className:"toggle-info"},y.default.createElement("label",{htmlFor:e,className:"toggle-label"},t),n&&y.default.createElement("span",{className:"toggle-description"},n)),y.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},y.default.createElement("span",{className:"toggle-knob"})))}function Lm({isOpen:e,onClose:t,settings:n,onSave:r,isSaving:o,saveStatus:l}){let[i,s]=(0,y.useState)(n);(0,y.useEffect)(()=>{s(n)},[n]);let{preview:a,isLoading:u,error:m,projects:g,selectedProject:h,setSelectedProject:_}=km(i),E=(0,y.useCallback)((c,f)=>{let p={...i,[c]:f};s(p)},[i]),k=(0,y.useCallback)(()=>{r(i)},[i,r]),P=(0,y.useCallback)(c=>{let p=i[c]==="true"?"false":"true";E(c,p)},[i,E]);return(0,y.useEffect)(()=>{let c=f=>{f.key==="Escape"&&t()};if(e)return window.addEventListener("keydown",c),()=>window.removeEventListener("keydown",c)},[e,t]),e?y.default.createElement("div",{className:"modal-backdrop",onClick:t},y.default.createElement("div",{className:"context-settings-modal",onClick:c=>c.stopPropagation()},y.default.createElement("div",{className:"modal-header"},y.default.createElement("h2",null,"Settings"),y.default.createElement("div",{className:"header-controls"},y.default.createElement("label",{className:"preview-selector"},"Preview for:",y.default.createElement("select",{value:h||"",onChange:c=>_(c.target.value)},g.map(c=>y.default.createElement("option",{key:c,value:c},c)))),y.default.createElement("button",{onClick:t,className:"modal-close-btn",title:"Close (Esc)"},y.default.createElement("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2"},y.default.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),y.default.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"}))))),y.default.createElement("div",{className:"modal-body"},y.default.createElement("div",{className:"preview-column"},y.default.createElement("div",{className:"preview-content"},m?y.default.createElement("div",{style:{color:"#ff6b6b"}},"Error loading preview: ",m):y.default.createElement(Cm,{content:a,isLoading:u}))),y.default.createElement("div",{className:"settings-column"},y.default.createElement(yu,{title:"Loading",description:"How many observations to inject"},y.default.createElement(tt,{label:"Observations",tooltip:"Number of recent observations to include in context (1-200)"},y.default.createElement("input",{type:"number",min:"1",max:"200",value:i.CLAUDE_MEM_CONTEXT_OBSERVATIONS||"50",onChange:c=>E("CLAUDE_MEM_CONTEXT_OBSERVATIONS",c.target.value)})),y.default.createElement(tt,{label:"Sessions",tooltip:"Number of recent sessions to pull observations from (1-50)"},y.default.createElement("input",{type:"number",min:"1",max:"50",value:i.CLAUDE_MEM_CONTEXT_SESSION_COUNT||"10",onChange:c=>E("CLAUDE_MEM_CONTEXT_SESSION_COUNT",c.target.value)}))),y.default.createElement(yu,{title:"Display",description:"What to show in context tables"},y.default.createElement("div",{className:"display-subsection"},y.default.createElement("span",{className:"subsection-label"},"Full Observations"),y.default.createElement(tt,{label:"Count",tooltip:"How many observations show expanded details (0-20)"},y.default.createElement("input",{type:"number",min:"0",max:"20",value:i.CLAUDE_MEM_CONTEXT_FULL_COUNT||"5",onChange:c=>E("CLAUDE_MEM_CONTEXT_FULL_COUNT",c.target.value)})),y.default.createElement(tt,{label:"Field",tooltip:"Which field to expand for full observations"},y.default.createElement("select",{value:i.CLAUDE_MEM_CONTEXT_FULL_FIELD||"narrative",onChange:c=>E("CLAUDE_MEM_CONTEXT_FULL_FIELD",c.target.value)},y.default.createElement("option",{value:"narrative"},"Narrative"),y.default.createElement("option",{value:"facts"},"Facts")))),y.default.createElement("div",{className:"display-subsection"},y.default.createElement("span",{className:"subsection-label"},"Token Economics"),y.default.createElement("div",{className:"toggle-group"},y.default.createElement(xr,{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")}),y.default.createElement(xr,{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")}),y.default.createElement(xr,{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")})))),y.default.createElement(yu,{title:"Advanced",description:"AI provider and model selection",defaultOpen:!1},y.default.createElement(tt,{label:"AI Provider",tooltip:"Choose between Claude (via Agent SDK) or Gemini (via REST API)"},y.default.createElement("select",{value:i.CLAUDE_MEM_PROVIDER||"claude",onChange:c=>E("CLAUDE_MEM_PROVIDER",c.target.value)},y.default.createElement("option",{value:"claude"},"Claude (uses your Claude account)"),y.default.createElement("option",{value:"gemini"},"Gemini (uses API key)"),y.default.createElement("option",{value:"openrouter"},"OpenRouter (multi-model)"))),i.CLAUDE_MEM_PROVIDER==="claude"&&y.default.createElement(tt,{label:"Claude Model",tooltip:"Claude model used for generating observations"},y.default.createElement("select",{value:i.CLAUDE_MEM_MODEL||"haiku",onChange:c=>E("CLAUDE_MEM_MODEL",c.target.value)},y.default.createElement("option",{value:"haiku"},"haiku (fastest)"),y.default.createElement("option",{value:"sonnet"},"sonnet (balanced)"),y.default.createElement("option",{value:"opus"},"opus (highest quality)"))),i.CLAUDE_MEM_PROVIDER==="gemini"&&y.default.createElement(y.default.Fragment,null,y.default.createElement(tt,{label:"Gemini API Key",tooltip:"Your Google AI Studio API key (or set GEMINI_API_KEY env var)"},y.default.createElement("input",{type:"password",value:i.CLAUDE_MEM_GEMINI_API_KEY||"",onChange:c=>E("CLAUDE_MEM_GEMINI_API_KEY",c.target.value),placeholder:"Enter Gemini API key..."})),y.default.createElement(tt,{label:"Gemini Model",tooltip:"Gemini model used for generating observations"},y.default.createElement("select",{value:i.CLAUDE_MEM_GEMINI_MODEL||"gemini-2.5-flash-lite",onChange:c=>E("CLAUDE_MEM_GEMINI_MODEL",c.target.value)},y.default.createElement("option",{value:"gemini-2.5-flash-lite"},"gemini-2.5-flash-lite (10 RPM free)"),y.default.createElement("option",{value:"gemini-2.5-flash"},"gemini-2.5-flash (5 RPM free)"),y.default.createElement("option",{value:"gemini-3-flash-preview"},"gemini-3-flash-preview (5 RPM free)"))),y.default.createElement("div",{className:"toggle-group",style:{marginTop:"8px"}},y.default.createElement(xr,{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:c=>E("CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED",c?"true":"false")}))),i.CLAUDE_MEM_PROVIDER==="openrouter"&&y.default.createElement(y.default.Fragment,null,y.default.createElement(tt,{label:"OpenRouter API Key",tooltip:"Your OpenRouter API key from openrouter.ai (or set OPENROUTER_API_KEY env var)"},y.default.createElement("input",{type:"password",value:i.CLAUDE_MEM_OPENROUTER_API_KEY||"",onChange:c=>E("CLAUDE_MEM_OPENROUTER_API_KEY",c.target.value),placeholder:"Enter OpenRouter API key..."})),y.default.createElement(tt,{label:"OpenRouter Model",tooltip:"Model identifier from OpenRouter (e.g., anthropic/claude-3.5-sonnet, google/gemini-2.0-flash-thinking-exp)"},y.default.createElement("input",{type:"text",value:i.CLAUDE_MEM_OPENROUTER_MODEL||"xiaomi/mimo-v2-flash:free",onChange:c=>E("CLAUDE_MEM_OPENROUTER_MODEL",c.target.value),placeholder:"e.g., xiaomi/mimo-v2-flash:free"})),y.default.createElement(tt,{label:"Site URL (Optional)",tooltip:"Your site URL for OpenRouter analytics (optional)"},y.default.createElement("input",{type:"text",value:i.CLAUDE_MEM_OPENROUTER_SITE_URL||"",onChange:c=>E("CLAUDE_MEM_OPENROUTER_SITE_URL",c.target.value),placeholder:"https://yoursite.com"})),y.default.createElement(tt,{label:"App Name (Optional)",tooltip:"Your app name for OpenRouter analytics (optional)"},y.default.createElement("input",{type:"text",value:i.CLAUDE_MEM_OPENROUTER_APP_NAME||"claude-mem",onChange:c=>E("CLAUDE_MEM_OPENROUTER_APP_NAME",c.target.value),placeholder:"claude-mem"}))),y.default.createElement(tt,{label:"Worker Port",tooltip:"Port for the background worker service"},y.default.createElement("input",{type:"number",min:"1024",max:"65535",value:i.CLAUDE_MEM_WORKER_PORT||"37777",onChange:c=>E("CLAUDE_MEM_WORKER_PORT",c.target.value)})),y.default.createElement("div",{className:"toggle-group",style:{marginTop:"12px"}},y.default.createElement(xr,{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")}),y.default.createElement(xr,{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")}))))),y.default.createElement("div",{className:"modal-footer"},y.default.createElement("div",{className:"save-status"},l&&y.default.createElement("span",{className:l.includes("\u2713")?"success":l.includes("\u2717")?"error":""},l)),y.default.createElement("button",{className:"save-btn",onClick:k,disabled:o},o?"Saving...":"Save")))):null}var N=ee(te(),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"}],zo=[{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 y0(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 Nm({isOpen:e,onClose:t}){let[n,r]=(0,N.useState)(""),[o,l]=(0,N.useState)(!1),[i,s]=(0,N.useState)(null),[a,u]=(0,N.useState)(!1),[m,g]=(0,N.useState)(350),[h,_]=(0,N.useState)(!1),E=(0,N.useRef)(0),k=(0,N.useRef)(0),P=(0,N.useRef)(null),c=(0,N.useRef)(!0),[f,p]=(0,N.useState)(new Set(["DEBUG","INFO","WARN","ERROR"])),[v,C]=(0,N.useState)(new Set(["HOOK","WORKER","SDK","PARSER","DB","SYSTEM","HTTP","SESSION","CHROMA"])),[L,M]=(0,N.useState)(!1),O=(0,N.useMemo)(()=>n?n.split(` +`).map(y0):[],[n]),V=(0,N.useMemo)(()=>O.filter(S=>L?S.raw.includes("[ALIGNMENT]"):!S.level||!S.component?!0:f.has(S.level)&&v.has(S.component)),[O,f,v,L]),I=(0,N.useCallback)(()=>{if(!P.current)return!0;let{scrollTop:S,scrollHeight:G,clientHeight:b}=P.current;return G-S-b<50},[]),j=(0,N.useCallback)(()=>{P.current&&c.current&&(P.current.scrollTop=P.current.scrollHeight)},[]),Z=(0,N.useCallback)(async()=>{c.current=I(),l(!0),s(null);try{let S=await fetch("/api/logs");if(!S.ok)throw new Error(`Failed to fetch logs: ${S.statusText}`);let G=await S.json();r(G.logs||"")}catch(S){s(S instanceof Error?S.message:"Unknown error")}finally{l(!1)}},[I]);(0,N.useEffect)(()=>{j()},[n,j]);let Cn=(0,N.useCallback)(async()=>{if(confirm("Are you sure you want to clear all logs?")){l(!0),s(null);try{let S=await fetch("/api/logs/clear",{method:"POST"});if(!S.ok)throw new Error(`Failed to clear logs: ${S.statusText}`);r("")}catch(S){s(S instanceof Error?S.message:"Unknown error")}finally{l(!1)}}},[]),kn=(0,N.useCallback)(S=>{S.preventDefault(),_(!0),E.current=S.clientY,k.current=m},[m]);(0,N.useEffect)(()=>{if(!h)return;let S=b=>{let De=E.current-b.clientY,B=Math.min(Math.max(150,k.current+De),window.innerHeight-100);g(B)},G=()=>{_(!1)};return document.addEventListener("mousemove",S),document.addEventListener("mouseup",G),()=>{document.removeEventListener("mousemove",S),document.removeEventListener("mouseup",G)}},[h]),(0,N.useEffect)(()=>{e&&(c.current=!0,Z())},[e,Z]),(0,N.useEffect)(()=>{if(!e||!a)return;let S=setInterval(Z,2e3);return()=>clearInterval(S)},[e,a,Z]);let Ir=(0,N.useCallback)(S=>{p(G=>{let b=new Set(G);return b.has(S)?b.delete(S):b.add(S),b})},[]),Vn=(0,N.useCallback)(S=>{C(G=>{let b=new Set(G);return b.has(S)?b.delete(S):b.add(S),b})},[]),Gn=(0,N.useCallback)(S=>{p(S?new Set(["DEBUG","INFO","WARN","ERROR"]):new Set)},[]),Ln=(0,N.useCallback)(S=>{C(S?new Set(["HOOK","WORKER","SDK","PARSER","DB","SYSTEM","HTTP","SESSION","CHROMA"]):new Set)},[]);if(!e)return null;let he=S=>{let G=Fo.find($t=>$t.key===S.level),b=zo.find($t=>$t.key===S.component),De="var(--color-text-primary)",B="normal",Dt="transparent";return S.level==="ERROR"?(De="#f85149",Dt="rgba(248, 81, 73, 0.1)"):S.level==="WARN"?(De="#d29922",Dt="rgba(210, 153, 34, 0.05)"):S.isSpecial==="success"?De="#3fb950":S.isSpecial==="failure"?De="#f85149":S.isSpecial==="happyPath"?De="#d29922":G&&(De=G.color),{color:De,fontWeight:B,backgroundColor:Dt,padding:"1px 0",borderRadius:"2px"}},Xe=(S,G)=>{if(!S.timestamp)return N.default.createElement("div",{key:G,className:"log-line log-line-raw"},S.raw);let b=Fo.find(B=>B.key===S.level),De=zo.find(B=>B.key===S.component);return N.default.createElement("div",{key:G,className:"log-line",style:he(S)},N.default.createElement("span",{className:"log-timestamp"},"[",S.timestamp,"]")," ",N.default.createElement("span",{className:"log-level",style:{color:b?.color},title:S.level},"[",b?.icon||""," ",S.level?.padEnd(5),"]")," ",N.default.createElement("span",{className:"log-component",style:{color:De?.color},title:S.component},"[",De?.icon||""," ",S.component?.padEnd(7),"]")," ",S.correlationId&&N.default.createElement(N.default.Fragment,null,N.default.createElement("span",{className:"log-correlation"},"[",S.correlationId,"]")," "),N.default.createElement("span",{className:"log-message"},S.message))};return N.default.createElement("div",{className:"console-drawer",style:{height:`${m}px`}},N.default.createElement("div",{className:"console-resize-handle",onMouseDown:kn},N.default.createElement("div",{className:"console-resize-bar"})),N.default.createElement("div",{className:"console-header"},N.default.createElement("div",{className:"console-tabs"},N.default.createElement("div",{className:"console-tab active"},"Console")),N.default.createElement("div",{className:"console-controls"},N.default.createElement("label",{className:"console-auto-refresh"},N.default.createElement("input",{type:"checkbox",checked:a,onChange:S=>u(S.target.checked)}),"Auto-refresh"),N.default.createElement("button",{className:"console-control-btn",onClick:Z,disabled:o,title:"Refresh logs"},"\u21BB"),N.default.createElement("button",{className:"console-control-btn",onClick:()=>{c.current=!0,j()},title:"Scroll to bottom"},"\u2B07"),N.default.createElement("button",{className:"console-control-btn console-clear-btn",onClick:Cn,disabled:o,title:"Clear logs"},"\u{1F5D1}"),N.default.createElement("button",{className:"console-control-btn",onClick:t,title:"Close console"},"\u2715"))),N.default.createElement("div",{className:"console-filters"},N.default.createElement("div",{className:"console-filter-section"},N.default.createElement("span",{className:"console-filter-label"},"Quick:"),N.default.createElement("div",{className:"console-filter-chips"},N.default.createElement("button",{className:`console-filter-chip ${L?"active":""}`,onClick:()=>M(!L),style:{"--chip-color":"#f0883e"},title:"Show only session alignment logs"},"\u{1F517} Alignment"))),N.default.createElement("div",{className:"console-filter-section"},N.default.createElement("span",{className:"console-filter-label"},"Levels:"),N.default.createElement("div",{className:"console-filter-chips"},Fo.map(S=>N.default.createElement("button",{key:S.key,className:`console-filter-chip ${f.has(S.key)?"active":""}`,onClick:()=>Ir(S.key),style:{"--chip-color":S.color},title:S.label},S.icon," ",S.label)),N.default.createElement("button",{className:"console-filter-action",onClick:()=>Gn(f.size===0),title:f.size===Fo.length?"Select none":"Select all"},f.size===Fo.length?"\u25CB":"\u25CF"))),N.default.createElement("div",{className:"console-filter-section"},N.default.createElement("span",{className:"console-filter-label"},"Components:"),N.default.createElement("div",{className:"console-filter-chips"},zo.map(S=>N.default.createElement("button",{key:S.key,className:`console-filter-chip ${v.has(S.key)?"active":""}`,onClick:()=>Vn(S.key),style:{"--chip-color":S.color},title:S.label},S.icon," ",S.label)),N.default.createElement("button",{className:"console-filter-action",onClick:()=>Ln(v.size===0),title:v.size===zo.length?"Select none":"Select all"},v.size===zo.length?"\u25CB":"\u25CF")))),i&&N.default.createElement("div",{className:"console-error"},"\u26A0 ",i),N.default.createElement("div",{className:"console-content",ref:P},N.default.createElement("div",{className:"console-logs"},V.length===0?N.default.createElement("div",{className:"log-line log-line-empty"},"No logs available"):V.map((S,G)=>Xe(S,G)))))}var nt=ee(te(),1);var St={OBSERVATIONS:"/api/observations",SUMMARIES:"/api/summaries",PROMPTS:"/api/prompts",SETTINGS:"/api/settings",STATS:"/api/stats",PROCESSING_STATUS:"/api/processing-status",STREAM:"/stream"};var ki={SSE_RECONNECT_DELAY_MS:3e3,STATS_REFRESH_INTERVAL_MS:1e4,SAVE_STATUS_DISPLAY_DURATION_MS:3e3};function Am(){let[e,t]=(0,nt.useState)([]),[n,r]=(0,nt.useState)([]),[o,l]=(0,nt.useState)([]),[i,s]=(0,nt.useState)([]),[a,u]=(0,nt.useState)(!1),[m,g]=(0,nt.useState)(!1),[h,_]=(0,nt.useState)(0),E=(0,nt.useRef)(null),k=(0,nt.useRef)();return(0,nt.useEffect)(()=>{let P=()=>{E.current&&E.current.close();let c=new EventSource(St.STREAM);E.current=c,c.onopen=()=>{console.log("[SSE] Connected"),u(!0),k.current&&clearTimeout(k.current)},c.onerror=f=>{console.error("[SSE] Connection error:",f),u(!1),c.close(),k.current=setTimeout(()=>{k.current=void 0,console.log("[SSE] Attempting to reconnect..."),P()},ki.SSE_RECONNECT_DELAY_MS)},c.onmessage=f=>{let p=JSON.parse(f.data);switch(p.type){case"initial_load":console.log("[SSE] Initial load:",{projects:p.projects?.length||0}),s(p.projects||[]);break;case"new_observation":p.observation&&(console.log("[SSE] New observation:",p.observation.id),t(v=>[p.observation,...v]));break;case"new_summary":if(p.summary){let v=p.summary;console.log("[SSE] New summary:",v.id),r(C=>[v,...C])}break;case"new_prompt":if(p.prompt){let v=p.prompt;console.log("[SSE] New prompt:",v.id),l(C=>[v,...C])}break;case"processing_status":typeof p.isProcessing=="boolean"&&(console.log("[SSE] Processing status:",p.isProcessing,"Queue depth:",p.queueDepth),g(p.isProcessing),_(p.queueDepth||0));break}}};return P(),()=>{E.current&&E.current.close(),k.current&&clearTimeout(k.current)}},[]),{observations:e,summaries:n,prompts:o,projects:i,isProcessing:m,queueDepth:h,isConnected:a}}var Or=ee(te(),1);var ie={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:"false",CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:"false",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:"false",CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:"true",CLAUDE_MEM_CONTEXT_FULL_COUNT:"0",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",CLAUDE_MEM_EXCLUDED_PROJECTS:"",CLAUDE_MEM_FOLDER_MD_EXCLUDE:"[]"};function Mm(){let[e,t]=(0,Or.useState)(ie),[n,r]=(0,Or.useState)(!1),[o,l]=(0,Or.useState)("");return(0,Or.useEffect)(()=>{fetch(St.SETTINGS).then(s=>s.json()).then(s=>{t({CLAUDE_MEM_MODEL:s.CLAUDE_MEM_MODEL??ie.CLAUDE_MEM_MODEL,CLAUDE_MEM_CONTEXT_OBSERVATIONS:s.CLAUDE_MEM_CONTEXT_OBSERVATIONS??ie.CLAUDE_MEM_CONTEXT_OBSERVATIONS,CLAUDE_MEM_WORKER_PORT:s.CLAUDE_MEM_WORKER_PORT??ie.CLAUDE_MEM_WORKER_PORT,CLAUDE_MEM_WORKER_HOST:s.CLAUDE_MEM_WORKER_HOST??ie.CLAUDE_MEM_WORKER_HOST,CLAUDE_MEM_PROVIDER:s.CLAUDE_MEM_PROVIDER??ie.CLAUDE_MEM_PROVIDER,CLAUDE_MEM_GEMINI_API_KEY:s.CLAUDE_MEM_GEMINI_API_KEY??ie.CLAUDE_MEM_GEMINI_API_KEY,CLAUDE_MEM_GEMINI_MODEL:s.CLAUDE_MEM_GEMINI_MODEL??ie.CLAUDE_MEM_GEMINI_MODEL,CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED:s.CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED??ie.CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED,CLAUDE_MEM_OPENROUTER_API_KEY:s.CLAUDE_MEM_OPENROUTER_API_KEY??ie.CLAUDE_MEM_OPENROUTER_API_KEY,CLAUDE_MEM_OPENROUTER_MODEL:s.CLAUDE_MEM_OPENROUTER_MODEL??ie.CLAUDE_MEM_OPENROUTER_MODEL,CLAUDE_MEM_OPENROUTER_SITE_URL:s.CLAUDE_MEM_OPENROUTER_SITE_URL??ie.CLAUDE_MEM_OPENROUTER_SITE_URL,CLAUDE_MEM_OPENROUTER_APP_NAME:s.CLAUDE_MEM_OPENROUTER_APP_NAME??ie.CLAUDE_MEM_OPENROUTER_APP_NAME,CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS:s.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS??ie.CLAUDE_MEM_CONTEXT_SHOW_READ_TOKENS,CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS:s.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS??ie.CLAUDE_MEM_CONTEXT_SHOW_WORK_TOKENS,CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT:s.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT??ie.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_AMOUNT,CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT:s.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT??ie.CLAUDE_MEM_CONTEXT_SHOW_SAVINGS_PERCENT,CLAUDE_MEM_CONTEXT_FULL_COUNT:s.CLAUDE_MEM_CONTEXT_FULL_COUNT??ie.CLAUDE_MEM_CONTEXT_FULL_COUNT,CLAUDE_MEM_CONTEXT_FULL_FIELD:s.CLAUDE_MEM_CONTEXT_FULL_FIELD??ie.CLAUDE_MEM_CONTEXT_FULL_FIELD,CLAUDE_MEM_CONTEXT_SESSION_COUNT:s.CLAUDE_MEM_CONTEXT_SESSION_COUNT??ie.CLAUDE_MEM_CONTEXT_SESSION_COUNT,CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY:s.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY??ie.CLAUDE_MEM_CONTEXT_SHOW_LAST_SUMMARY,CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE:s.CLAUDE_MEM_CONTEXT_SHOW_LAST_MESSAGE??ie.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(St.SETTINGS,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)})).json();u.success?(t(s),l("\u2713 Saved"),setTimeout(()=>l(""),ki.SAVE_STATUS_DISPLAY_DURATION_MS)):l(`\u2717 Error: ${u.error}`),r(!1)},isSaving:n,saveStatus:o}}var Dr=ee(te(),1);function xm(){let[e,t]=(0,Dr.useState)({}),n=(0,Dr.useCallback)(async()=>{try{let o=await(await fetch(St.STATS)).json();t(o)}catch(r){console.error("Failed to load stats:",r)}},[]);return(0,Dr.useEffect)(()=>{n()},[n]),{stats:e,refreshStats:n}}var Tn=ee(te(),1);function Eu(e,t,n){let[r,o]=(0,Tn.useState)({isLoading:!1,hasMore:!0}),l=(0,Tn.useRef)(0),i=(0,Tn.useRef)(n),s=(0,Tn.useRef)(r),a=(0,Tn.useCallback)(async()=>{let u=i.current!==n;if(u){l.current=0,i.current=n;let _={isLoading:!1,hasMore:!0};o(_),s.current=_}if(!u&&(s.current.isLoading||!s.current.hasMore))return[];o(_=>({..._,isLoading:!0}));let m=new URLSearchParams({offset:l.current.toString(),limit:xo.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(_=>({..._,isLoading:!1,hasMore:h.hasMore})),l.current+=xo.PAGINATION_PAGE_SIZE,h.items},[n,e,t]);return{...r,loadMore:a}}function Om(e){let t=Eu(St.OBSERVATIONS,"observations",e),n=Eu(St.SUMMARIES,"summaries",e),r=Eu(St.PROMPTS,"prompts",e);return{observations:t,summaries:n,prompts:r}}var Pr=ee(te(),1),Im="claude-mem-theme";function E0(){return typeof window>"u"||window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function Dm(){try{let e=localStorage.getItem(Im);if(e==="system"||e==="light"||e==="dark")return e}catch(e){console.warn("Failed to read theme preference from localStorage:",e)}return"system"}function Pm(e){return e==="system"?E0():e}function Um(){let[e,t]=(0,Pr.useState)(Dm),[n,r]=(0,Pr.useState)(()=>Pm(Dm()));return(0,Pr.useEffect)(()=>{let l=Pm(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(Im,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 Rm(){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:_,prompts:E,projects:k,isProcessing:P,queueDepth:c,isConnected:f}=Am(),{settings:p,saveSettings:v,isSaving:C,saveStatus:L}=Mm(),{stats:M,refreshStats:O}=xm(),{preference:V,resolvedTheme:I,setThemePreference:j}=Um(),Z=Om(e),Cn=(0,W.useMemo)(()=>{let he=e?h.filter(Xe=>Xe.project===e):h;return Li(he,i)},[h,i,e]),kn=(0,W.useMemo)(()=>{let he=e?_.filter(Xe=>Xe.project===e):_;return Li(he,a)},[_,a,e]),Ir=(0,W.useMemo)(()=>{let he=e?E.filter(Xe=>Xe.project===e):E;return Li(he,m)},[E,m,e]),Vn=(0,W.useCallback)(()=>{r(he=>!he)},[]),Gn=(0,W.useCallback)(()=>{l(he=>!he)},[]),Ln=(0,W.useCallback)(async()=>{try{let[he,Xe,S]=await Promise.all([Z.observations.loadMore(),Z.summaries.loadMore(),Z.prompts.loadMore()]);he.length>0&&s(G=>[...G,...he]),Xe.length>0&&u(G=>[...G,...Xe]),S.length>0&&g(G=>[...G,...S])}catch(he){console.error("Failed to load more data:",he)}},[e,Z.observations,Z.summaries,Z.prompts]);return(0,W.useEffect)(()=>{s([]),u([]),g([]),Ln()},[e]),W.default.createElement(W.default.Fragment,null,W.default.createElement(Ap,{isConnected:f,projects:k,currentFilter:e,onFilterChange:t,isProcessing:P,queueDepth:c,themePreference:V,onThemeChange:j,onContextPreviewToggle:Vn}),W.default.createElement(Ip,{observations:Cn,summaries:kn,prompts:Ir,onLoadMore:Ln,isLoading:Z.observations.isLoading||Z.summaries.isLoading||Z.prompts.isLoading,hasMore:Z.observations.hasMore||Z.summaries.hasMore||Z.prompts.hasMore}),W.default.createElement(Lm,{isOpen:n,onClose:Vn,settings:p,onSave:v,isSaving:C,saveStatus:L}),W.default.createElement("button",{className:"console-toggle-btn",onClick:Gn,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(Nm,{isOpen:o,onClose:Gn}))}var Xt=ee(te(),1),Ni=class extends Xt.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?Xt.default.createElement("div",{style:{padding:"20px",color:"#ff6b6b",backgroundColor:"#1a1a1a",minHeight:"100vh"}},Xt.default.createElement("h1",{style:{fontSize:"24px",marginBottom:"10px"}},"Something went wrong"),Xt.default.createElement("p",{style:{marginBottom:"10px",color:"#8b949e"}},"The application encountered an error. Please refresh the page to try again."),this.state.error&&Xt.default.createElement("details",{style:{marginTop:"20px",color:"#8b949e"}},Xt.default.createElement("summary",{style:{cursor:"pointer",marginBottom:"10px"}},"Error details"),Xt.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 bm=document.getElementById("root");if(!bm)throw new Error("Root element not found");var C0=(0,Fm.createRoot)(bm);C0.render(Su.default.createElement(Ni,null,Su.default.createElement(Rm,null)));})(); +`+this.state.errorInfo.componentStack))):this.props.children}};var zm=document.getElementById("root");if(!zm)throw new Error("Root element not found");var S0=(0,Fm.createRoot)(zm);S0.render(Su.default.createElement(Ni,null,Su.default.createElement(Rm,null)));})(); /*! Bundled license information: react/cjs/react.production.min.js: diff --git a/scripts/build-hooks.js b/scripts/build-hooks.js index 9abaf7b2..0102864b 100644 --- a/scripts/build-hooks.js +++ b/scripts/build-hooks.js @@ -111,6 +111,21 @@ async function buildHooks() { 'tree-sitter-ruby': '^0.23.1', 'tree-sitter-rust': '^0.24.0', 'tree-sitter-typescript': '^0.23.2', + 'tree-sitter-kotlin': '^0.3.8', + 'tree-sitter-swift': '^0.7.1', + 'tree-sitter-php': '^0.24.2', + 'tree-sitter-elixir': '^0.3.5', + '@tree-sitter-grammars/tree-sitter-lua': '^0.4.1', + 'tree-sitter-scala': '^0.24.0', + 'tree-sitter-bash': '^0.25.1', + 'tree-sitter-haskell': '^0.23.1', + '@tree-sitter-grammars/tree-sitter-zig': '^1.1.2', + 'tree-sitter-css': '^0.25.0', + 'tree-sitter-scss': '^1.0.0', + '@tree-sitter-grammars/tree-sitter-toml': '^0.7.0', + '@tree-sitter-grammars/tree-sitter-yaml': '^0.7.1', + '@derekstride/tree-sitter-sql': '^0.3.11', + '@tree-sitter-grammars/tree-sitter-markdown': '^0.3.2', }, engines: { node: '>=18.0.0', @@ -197,6 +212,21 @@ async function buildHooks() { 'tree-sitter-java', 'tree-sitter-c', 'tree-sitter-cpp', + 'tree-sitter-kotlin', + 'tree-sitter-swift', + 'tree-sitter-php', + 'tree-sitter-elixir', + '@tree-sitter-grammars/tree-sitter-lua', + 'tree-sitter-scala', + 'tree-sitter-bash', + 'tree-sitter-haskell', + '@tree-sitter-grammars/tree-sitter-zig', + 'tree-sitter-css', + 'tree-sitter-scss', + '@tree-sitter-grammars/tree-sitter-toml', + '@tree-sitter-grammars/tree-sitter-yaml', + '@derekstride/tree-sitter-sql', + '@tree-sitter-grammars/tree-sitter-markdown', ], define: { '__DEFAULT_PACKAGE_VERSION__': `"${version}"` diff --git a/src/services/smart-file-read/parser.ts b/src/services/smart-file-read/parser.ts index 10d22b90..1adf22aa 100644 --- a/src/services/smart-file-read/parser.ts +++ b/src/services/smart-file-read/parser.ts @@ -3,13 +3,15 @@ * * No native bindings. No WASM. Just the CLI binary + query patterns. * - * Supported: JS, TS, Python, Go, Rust, Ruby, Java, C, C++, PHP + * Supported: JS, TS, Python, Go, Rust, Ruby, Java, C, C++, + * Kotlin, Swift, PHP, Elixir, Lua, Scala, Bash, Haskell, Zig, + * CSS, SCSS, TOML, YAML, SQL, Markdown * * by Copter Labs */ import { execFileSync } from "node:child_process"; -import { writeFileSync, mkdtempSync, rmSync, existsSync } from "node:fs"; +import { writeFileSync, readFileSync, mkdtempSync, rmSync, existsSync } from "node:fs"; import { join, dirname } from "node:path"; import { tmpdir } from "node:os"; import { createRequire } from "node:module"; @@ -25,7 +27,7 @@ const _require = typeof __filename !== 'undefined' export interface CodeSymbol { name: string; - kind: "function" | "class" | "method" | "interface" | "type" | "const" | "variable" | "export" | "struct" | "enum" | "trait" | "impl" | "property" | "getter" | "setter"; + kind: "function" | "class" | "method" | "interface" | "type" | "const" | "variable" | "export" | "struct" | "enum" | "trait" | "impl" | "property" | "getter" | "setter" | "mixin" | "section" | "code" | "metadata" | "reference"; signature: string; jsdoc?: string; lineStart: number; @@ -66,7 +68,28 @@ const LANG_MAP: Record = { ".cxx": "cpp", ".hpp": "cpp", ".hh": "cpp", + ".kt": "kotlin", + ".kts": "kotlin", + ".swift": "swift", ".php": "php", + ".ex": "elixir", + ".exs": "elixir", + ".lua": "lua", + ".scala": "scala", + ".sc": "scala", + ".sh": "bash", + ".bash": "bash", + ".zsh": "bash", + ".hs": "haskell", + ".zig": "zig", + ".css": "css", + ".scss": "scss", + ".toml": "toml", + ".yml": "yaml", + ".yaml": "yaml", + ".sql": "sql", + ".md": "markdown", + ".mdx": "markdown", }; export function detectLanguage(filePath: string): string { @@ -74,6 +97,135 @@ export function detectLanguage(filePath: string): string { return LANG_MAP[ext] || "unknown"; } +/** + * Detect language with fallback to user-configured grammar extensions. + * Bundled LANG_MAP takes priority. + */ +function detectLanguageWithUserGrammars(filePath: string, userConfig: UserGrammarConfig): string { + const ext = filePath.slice(filePath.lastIndexOf(".")); + if (LANG_MAP[ext]) return LANG_MAP[ext]; + if (userConfig.extensionToLanguage[ext]) return userConfig.extensionToLanguage[ext]; + return "unknown"; +} + +/** + * Get the query key for a language, checking user config for custom queries. + */ +function getUserAwareQueryKey(language: string, userConfig: UserGrammarConfig): string { + // If user config has a specific query key for this language, use it + if (userConfig.languageToQueryKey[language]) { + return userConfig.languageToQueryKey[language]; + } + // Otherwise fall back to the bundled query key mapping + return getQueryKey(language); +} + +// --- User-installable grammars via .claude-mem.json --- + +export interface UserGrammarEntry { + package: string; + extensions: string[]; + query?: string; +} + +export interface UserGrammarConfig { + /** language name → grammar entry */ + grammars: Record; + /** file extension → language name (for user-defined extensions only) */ + extensionToLanguage: Record; + /** language name → query content (custom .scm file content or "generic") */ + languageToQueryKey: Record; +} + +const userGrammarCache = new Map(); + +const EMPTY_USER_GRAMMAR_CONFIG: UserGrammarConfig = { + grammars: {}, + extensionToLanguage: {}, + languageToQueryKey: {}, +}; + +/** + * Load user grammar configuration from .claude-mem.json in a project root. + * Cached per project root. Returns empty config if file doesn't exist or is invalid. + * User entries do NOT override bundled grammars. + */ +export function loadUserGrammars(projectRoot: string): UserGrammarConfig { + if (userGrammarCache.has(projectRoot)) return userGrammarCache.get(projectRoot)!; + + const configPath = join(projectRoot, ".claude-mem.json"); + let rawConfig: Record; + + try { + const content = readFileSync(configPath, "utf-8"); + rawConfig = JSON.parse(content); + } catch { + userGrammarCache.set(projectRoot, EMPTY_USER_GRAMMAR_CONFIG); + return EMPTY_USER_GRAMMAR_CONFIG; + } + + const grammarsRaw = rawConfig.grammars; + if (!grammarsRaw || typeof grammarsRaw !== "object" || Array.isArray(grammarsRaw)) { + userGrammarCache.set(projectRoot, EMPTY_USER_GRAMMAR_CONFIG); + return EMPTY_USER_GRAMMAR_CONFIG; + } + + const config: UserGrammarConfig = { + grammars: {}, + extensionToLanguage: {}, + languageToQueryKey: {}, + }; + + for (const [language, entry] of Object.entries(grammarsRaw as Record)) { + // Skip if this language is already bundled + if (GRAMMAR_PACKAGES[language]) continue; + + if (!entry || typeof entry !== "object" || Array.isArray(entry)) continue; + const typedEntry = entry as Record; + + const pkg = typedEntry.package; + const extensions = typedEntry.extensions; + const queryPath = typedEntry.query; + + // Validate required fields + if (typeof pkg !== "string" || !Array.isArray(extensions)) continue; + if (!extensions.every((e: unknown) => typeof e === "string")) continue; + + config.grammars[language] = { + package: pkg, + extensions: extensions as string[], + query: typeof queryPath === "string" ? queryPath : undefined, + }; + + // Map extensions to language (skip extensions already handled by bundled LANG_MAP) + for (const ext of extensions as string[]) { + if (!LANG_MAP[ext]) { + config.extensionToLanguage[ext] = language; + } + } + + // Resolve query content + if (typeof queryPath === "string") { + const fullQueryPath = join(projectRoot, queryPath); + try { + const queryContent = readFileSync(fullQueryPath, "utf-8"); + // Store with a unique key to avoid collisions with built-in queries + const queryKey = `user_${language}`; + QUERIES[queryKey] = queryContent; + config.languageToQueryKey[language] = queryKey; + } catch { + console.error(`[smart-file-read] Custom query file not found: ${fullQueryPath}, falling back to generic`); + config.languageToQueryKey[language] = "generic"; + } + } else { + config.languageToQueryKey[language] = "generic"; + } + } + + userGrammarCache.set(projectRoot, config); + return config; +} + // --- Grammar path resolution --- const GRAMMAR_PACKAGES: Record = { @@ -87,12 +239,45 @@ const GRAMMAR_PACKAGES: Record = { java: "tree-sitter-java", c: "tree-sitter-c", cpp: "tree-sitter-cpp", + kotlin: "tree-sitter-kotlin", + swift: "tree-sitter-swift", php: "tree-sitter-php/php", + elixir: "tree-sitter-elixir", + lua: "@tree-sitter-grammars/tree-sitter-lua", + scala: "tree-sitter-scala", + bash: "tree-sitter-bash", + haskell: "tree-sitter-haskell", + zig: "@tree-sitter-grammars/tree-sitter-zig", + css: "tree-sitter-css", + scss: "tree-sitter-scss", + toml: "@tree-sitter-grammars/tree-sitter-toml", + yaml: "@tree-sitter-grammars/tree-sitter-yaml", + sql: "@derekstride/tree-sitter-sql", + markdown: "@tree-sitter-grammars/tree-sitter-markdown", +}; + +// Grammars where the parser source lives in a subdirectory of the npm package root, +// AND that subdirectory lacks its own package.json (so require.resolve won't find it). +// Maps language → subdirectory name under the package root. +const GRAMMAR_SUBDIR: Record = { + markdown: "tree-sitter-markdown", }; function resolveGrammarPath(language: string): string | null { const pkg = GRAMMAR_PACKAGES[language]; if (!pkg) return null; + + const subdir = GRAMMAR_SUBDIR[language]; + if (subdir) { + // Package root has no sub-package.json — resolve root then append subdir + try { + const rootPkgPath = _require.resolve(pkg + "/package.json"); + const resolved = join(dirname(rootPkgPath), subdir); + if (existsSync(join(resolved, "src"))) return resolved; + } catch { /* fall through */ } + return null; + } + try { const packageJsonPath = _require.resolve(pkg + "/package.json"); return dirname(packageJsonPath); @@ -101,6 +286,37 @@ function resolveGrammarPath(language: string): string | null { } } +/** + * Resolve grammar path with fallback to user-installed grammars. + * First tries bundled grammars, then falls back to the project's node_modules. + */ +export function resolveGrammarPathWithFallback(language: string, projectRoot?: string): string | null { + // Try bundled grammar first + const bundled = resolveGrammarPath(language); + if (bundled) return bundled; + + // Fall back to user-installed grammar in project's node_modules + if (!projectRoot) return null; + + const userConfig = loadUserGrammars(projectRoot); + const entry = userConfig.grammars[language]; + if (!entry) return null; + + try { + const packageJsonPath = join(projectRoot, "node_modules", entry.package, "package.json"); + if (existsSync(packageJsonPath)) { + const grammarDir = dirname(packageJsonPath); + // Verify it has a src/ directory (required by tree-sitter CLI) + if (existsSync(join(grammarDir, "src"))) return grammarDir; + } + } catch { + // Grammar package not installed + } + + console.error(`[smart-file-read] Grammar package not found for "${language}": ${entry.package} (install it in your project's node_modules)`); + return null; +} + // --- Query patterns (declarative symbol extraction) --- const QUERIES: Record = { @@ -152,6 +368,104 @@ const QUERIES: Record = { (interface_declaration name: (identifier) @name) @iface (enum_declaration name: (identifier) @name) @enm (import_declaration) @imp +`, + + kotlin: ` +(function_declaration (simple_identifier) @name) @func +(class_declaration (type_identifier) @name) @cls +(object_declaration (type_identifier) @name) @cls +(import_header) @imp +`, + + swift: ` +(function_declaration name: (simple_identifier) @name) @func +(class_declaration name: (type_identifier) @name) @cls +(protocol_declaration name: (type_identifier) @name) @iface +(import_declaration) @imp +`, + + php: ` +(function_definition name: (name) @name) @func +(class_declaration name: (name) @name) @cls +(interface_declaration name: (name) @name) @iface +(trait_declaration name: (name) @name) @trait_def +(method_declaration name: (name) @name) @method +(namespace_use_declaration) @imp +`, + + lua: ` +(function_declaration name: (identifier) @name) @func +(function_declaration name: (dot_index_expression) @name) @func +(function_declaration name: (method_index_expression) @name) @func +`, + + scala: ` +(function_definition name: (identifier) @name) @func +(class_definition name: (identifier) @name) @cls +(object_definition name: (identifier) @name) @cls +(trait_definition name: (identifier) @name) @trait_def +(import_declaration) @imp +`, + + bash: ` +(function_definition name: (word) @name) @func +`, + + haskell: ` +(function name: (variable) @name) @func +(type_synomym name: (name) @name) @tdef +(newtype name: (name) @name) @tdef +(data_type name: (name) @name) @tdef +(class name: (name) @name) @cls +(import) @imp +`, + + zig: ` +(function_declaration name: (identifier) @name) @func +(test_declaration) @func +`, + + css: ` +(rule_set (selectors) @name) @func +(media_statement) @cls +(keyframes_statement (keyframes_name) @name) @cls +(import_statement) @imp +`, + + scss: ` +(rule_set (selectors) @name) @func +(media_statement) @cls +(keyframes_statement (keyframes_name) @name) @cls +(import_statement) @imp +(mixin_statement name: (identifier) @name) @mixin_def +(function_statement name: (identifier) @name) @func +(include_statement) @imp +`, + + toml: ` +(table (bare_key) @name) @cls +(table (dotted_key) @name) @cls +(table_array_element (bare_key) @name) @cls +(table_array_element (dotted_key) @name) @cls +`, + + yaml: ` +(block_mapping_pair key: (flow_node) @name) @func +`, + + sql: ` +(create_table (object_reference) @name) @cls +(create_function (object_reference) @name) @func +(create_view (object_reference) @name) @cls +`, + + markdown: ` +(atx_heading heading_content: (inline) @name) @heading +(setext_heading heading_content: (paragraph) @name) @heading +(fenced_code_block (info_string (language) @name)) @code_block +(fenced_code_block) @code_block +(minus_metadata) @frontmatter +(link_reference_definition (link_label) @name) @ref `, generic: ` @@ -184,7 +498,21 @@ function getQueryKey(language: string): string { case "rust": return "rust"; case "ruby": return "ruby"; case "java": return "java"; + case "kotlin": return "kotlin"; + case "swift": return "swift"; case "php": return "php"; + case "elixir": return "generic"; + case "lua": return "lua"; + case "scala": return "scala"; + case "bash": return "bash"; + case "haskell": return "haskell"; + case "zig": return "zig"; + case "css": return "css"; + case "scss": return "scss"; + case "toml": return "toml"; + case "yaml": return "yaml"; + case "sql": return "sql"; + case "markdown": return "markdown"; default: return "generic"; } } @@ -320,6 +648,11 @@ const KIND_MAP: Record = { struct_def: "struct", trait_def: "trait", impl_def: "impl", + mixin_def: "mixin", + heading: "section", + code_block: "code", + frontmatter: "metadata", + ref: "reference", }; const CONTAINER_KINDS = new Set(["class", "struct", "impl", "trait"]); @@ -419,18 +752,36 @@ function buildSymbols(matches: RawMatch[], lines: string[], language: string): { const nameCapture = match.captures.find(c => c.tag === "name"); if (!kindCapture) continue; - const name = nameCapture?.text || "anonymous"; const startRow = kindCapture.startRow; const endRow = kindCapture.endRow; const kind = KIND_MAP[kindCapture.tag]; + const name = nameCapture?.text || "anonymous"; - const comment = findCommentAbove(lines, startRow); + // Markdown-specific: extract heading level and build signature + let signature: string; + if (language === "markdown" && kind === "section") { + const headingLine = lines[startRow] || ""; + const hashMatch = headingLine.match(/^(#{1,6})\s/); + const level = hashMatch ? hashMatch[1].length : 1; + signature = `${"#".repeat(level)} ${name}`; + } else if (language === "markdown" && kind === "code") { + const langTag = name !== "anonymous" ? name : ""; + signature = langTag ? "```" + langTag : "```"; + } else if (language === "markdown" && kind === "metadata") { + signature = "---frontmatter---"; + } else if (language === "markdown" && kind === "reference") { + signature = lines[startRow]?.trim() || name; + } else { + signature = extractSignatureFromLines(lines, startRow, endRow); + } + + const comment = language === "markdown" ? undefined : findCommentAbove(lines, startRow); const docstring = language === "python" ? findPythonDocstringFromLines(lines, startRow, endRow) : undefined; const sym: CodeSymbol = { name, kind, - signature: extractSignatureFromLines(lines, startRow, endRow), + signature, jsdoc: comment || docstring, lineStart: startRow, lineEnd: endRow, @@ -445,6 +796,34 @@ function buildSymbols(matches: RawMatch[], lines: string[], language: string): { symbols.push(sym); } + // Markdown: deduplicate code_block matches. The catch-all `(fenced_code_block) @code_block` + // pattern and the language-specific pattern both match the same block. Keep the named one. + if (language === "markdown") { + const codeBlocksByRange = new Map(); + const duplicateCodeBlocks = new Set(); + for (const sym of symbols) { + if (sym.kind !== "code") continue; + const rangeKey = `${sym.lineStart}:${sym.lineEnd}`; + const existing = codeBlocksByRange.get(rangeKey); + if (existing) { + // Prefer the named version (has actual language tag vs "anonymous") + if (sym.name !== "anonymous") { + duplicateCodeBlocks.add(existing); + codeBlocksByRange.set(rangeKey, sym); + } else { + duplicateCodeBlocks.add(sym); + } + } else { + codeBlocksByRange.set(rangeKey, sym); + } + } + if (duplicateCodeBlocks.size > 0) { + const filtered = symbols.filter(s => !duplicateCodeBlocks.has(s)); + symbols.length = 0; + symbols.push(...filtered); + } + } + // Nest methods inside containers const nested = new Set(); for (const container of containers) { @@ -463,11 +842,12 @@ function buildSymbols(matches: RawMatch[], lines: string[], language: string): { // --- Main parse functions --- -export function parseFile(content: string, filePath: string): FoldedFile { - const language = detectLanguage(filePath); +export function parseFile(content: string, filePath: string, projectRoot?: string): FoldedFile { + const userConfig = projectRoot ? loadUserGrammars(projectRoot) : EMPTY_USER_GRAMMAR_CONFIG; + const language = detectLanguageWithUserGrammars(filePath, userConfig); const lines = content.split("\n"); - const grammarPath = resolveGrammarPath(language); + const grammarPath = resolveGrammarPathWithFallback(language, projectRoot); if (!grammarPath) { return { filePath, language, symbols: [], imports: [], @@ -475,7 +855,7 @@ export function parseFile(content: string, filePath: string): FoldedFile { }; } - const queryKey = getQueryKey(language); + const queryKey = getUserAwareQueryKey(language, userConfig); const queryFile = getQueryFile(queryKey); // Write content to temp file with correct extension for language detection @@ -510,20 +890,22 @@ export function parseFile(content: string, filePath: string): FoldedFile { * Much faster than calling parseFile() per file (one process spawn per language vs per file). */ export function parseFilesBatch( - files: Array<{ absolutePath: string; relativePath: string; content: string }> + files: Array<{ absolutePath: string; relativePath: string; content: string }>, + projectRoot?: string ): Map { const results = new Map(); + const userConfig = projectRoot ? loadUserGrammars(projectRoot) : EMPTY_USER_GRAMMAR_CONFIG; // Group files by language (and thus by query + grammar) const languageGroups = new Map(); for (const file of files) { - const language = detectLanguage(file.relativePath); + const language = detectLanguageWithUserGrammars(file.relativePath, userConfig); if (!languageGroups.has(language)) languageGroups.set(language, []); languageGroups.get(language)!.push(file); } for (const [language, groupFiles] of languageGroups) { - const grammarPath = resolveGrammarPath(language); + const grammarPath = resolveGrammarPathWithFallback(language, projectRoot); if (!grammarPath) { // No grammar — return empty results for these files for (const file of groupFiles) { @@ -536,7 +918,7 @@ export function parseFilesBatch( continue; } - const queryKey = getQueryKey(language); + const queryKey = getUserAwareQueryKey(language, userConfig); const queryFile = getQueryFile(queryKey); // Run one batch query for all files of this language @@ -570,6 +952,10 @@ export function parseFilesBatch( // --- Formatting --- export function formatFoldedView(file: FoldedFile): string { + if (file.language === "markdown") { + return formatMarkdownFoldedView(file); + } + const parts: string[] = []; parts.push(`📁 ${file.filePath} (${file.language}, ${file.totalLines} lines)`); @@ -593,6 +979,64 @@ export function formatFoldedView(file: FoldedFile): string { return parts.join("\n"); } +function formatMarkdownFoldedView(file: FoldedFile): string { + const parts: string[] = []; + // Total width for the content column (before the line range) + const COL_WIDTH = 56; + + parts.push(`📄 ${file.filePath} (${file.language}, ${file.totalLines} lines)`); + + for (const sym of file.symbols) { + if (sym.kind === "section") { + // Extract heading level from the signature (count leading # characters) + const hashMatch = sym.signature.match(/^(#{1,6})\s/); + const level = hashMatch ? hashMatch[1].length : 1; + const indent = " ".repeat(level); + const lineRange = `L${sym.lineStart + 1}`; + const content = `${indent}${sym.signature}`; + parts.push(`${content.padEnd(COL_WIDTH)}${lineRange}`); + } else if (sym.kind === "code") { + // Find containing heading level for indentation + const containingLevel = findContainingHeadingLevel(file.symbols, sym.lineStart); + const indent = " ".repeat(containingLevel + 1); + const lineRange = sym.lineStart === sym.lineEnd + ? `L${sym.lineStart + 1}` + : `L${sym.lineStart + 1}-${sym.lineEnd + 1}`; + const content = `${indent}${sym.signature}`; + parts.push(`${content.padEnd(COL_WIDTH)}${lineRange}`); + } else if (sym.kind === "metadata") { + const lineRange = sym.lineStart === sym.lineEnd + ? `L${sym.lineStart + 1}` + : `L${sym.lineStart + 1}-${sym.lineEnd + 1}`; + const content = ` ${sym.signature}`; + parts.push(`${content.padEnd(COL_WIDTH)}${lineRange}`); + } else if (sym.kind === "reference") { + const containingLevel = findContainingHeadingLevel(file.symbols, sym.lineStart); + const indent = " ".repeat(containingLevel + 1); + const lineRange = `L${sym.lineStart + 1}`; + const content = `${indent}↗ ${sym.name}`; + parts.push(`${content.padEnd(COL_WIDTH)}${lineRange}`); + } + } + + return parts.join("\n"); +} + +/** + * Find the heading level of the most recent section heading before the given line. + * Returns 0 if no heading precedes the line. + */ +function findContainingHeadingLevel(symbols: CodeSymbol[], lineStart: number): number { + let bestLevel = 0; + for (const sym of symbols) { + if (sym.kind === "section" && sym.lineStart < lineStart) { + const hashMatch = sym.signature.match(/^(#{1,6})\s/); + bestLevel = hashMatch ? hashMatch[1].length : 1; + } + } + return bestLevel; +} + function formatSymbol(sym: CodeSymbol, indent: string): string { const parts: string[] = []; @@ -633,7 +1077,8 @@ function getSymbolIcon(kind: CodeSymbol["kind"]): string { function: "ƒ", method: "ƒ", class: "◆", interface: "◇", type: "◇", const: "●", variable: "○", export: "→", struct: "◆", enum: "▣", trait: "◇", impl: "◈", - property: "○", getter: "⇢", setter: "⇠", + property: "○", getter: "⇢", setter: "⇠", mixin: "◈", + section: "§", code: "⌘", metadata: "◊", reference: "↗", }; return icons[kind] || "·"; } @@ -659,6 +1104,31 @@ export function unfoldSymbol(content: string, filePath: string, symbolName: stri const lines = content.split("\n"); + // Markdown section unfold: return from heading to next heading of same or higher level + if (file.language === "markdown" && symbol.kind === "section") { + const hashMatch = symbol.signature.match(/^(#{1,6})\s/); + const level = hashMatch ? hashMatch[1].length : 1; + const start = symbol.lineStart; + + // Find the next heading at same or higher (lower number) level + let end = lines.length - 1; + for (const sym of file.symbols) { + if (sym.kind === "section" && sym.lineStart > start) { + const otherHashMatch = sym.signature.match(/^(#{1,6})\s/); + const otherLevel = otherHashMatch ? otherHashMatch[1].length : 1; + if (otherLevel <= level) { + end = sym.lineStart - 1; + // Trim trailing blank lines + while (end > start && lines[end].trim() === "") end--; + break; + } + } + } + + const extracted = lines.slice(start, end + 1).join("\n"); + return `\n${extracted}`; + } + // Include preceding comments/decorators let start = symbol.lineStart; for (let i = symbol.lineStart - 1; i >= 0; i--) { diff --git a/src/services/smart-file-read/search.ts b/src/services/smart-file-read/search.ts index 0c185564..4b31e333 100644 --- a/src/services/smart-file-read/search.ts +++ b/src/services/smart-file-read/search.ts @@ -12,7 +12,7 @@ import { readFile, readdir, stat } from "node:fs/promises"; import { join, relative } from "node:path"; -import { parseFilesBatch, formatFoldedView, type FoldedFile } from "./parser.js"; +import { parseFilesBatch, formatFoldedView, loadUserGrammars, type FoldedFile } from "./parser.js"; const CODE_EXTENSIONS = new Set([ ".js", ".jsx", ".ts", ".tsx", ".mjs", ".cjs", @@ -22,11 +22,22 @@ const CODE_EXTENSIONS = new Set([ ".rb", ".java", ".cs", - ".cpp", ".c", ".h", ".hpp", + ".cpp", ".cc", ".cxx", ".c", ".h", ".hpp", ".hh", ".swift", - ".kt", + ".kt", ".kts", ".php", ".vue", ".svelte", + ".ex", ".exs", + ".lua", + ".scala", ".sc", + ".sh", ".bash", ".zsh", + ".hs", + ".zig", + ".css", ".scss", + ".toml", + ".yml", ".yaml", + ".sql", + ".md", ".mdx", ]); const IGNORE_DIRS = new Set([ @@ -59,8 +70,9 @@ export interface SymbolMatch { /** * Walk a directory recursively, yielding file paths. + * extraExtensions: additional file extensions to include (from user grammar config). */ -async function* walkDir(dir: string, rootDir: string, maxDepth: number = 20): AsyncGenerator { +async function* walkDir(dir: string, rootDir: string, maxDepth: number = 20, extraExtensions?: Set): AsyncGenerator { if (maxDepth <= 0) return; let entries; @@ -77,10 +89,10 @@ async function* walkDir(dir: string, rootDir: string, maxDepth: number = 20): As const fullPath = join(dir, entry.name); if (entry.isDirectory()) { - yield* walkDir(fullPath, rootDir, maxDepth - 1); + yield* walkDir(fullPath, rootDir, maxDepth - 1, extraExtensions); } else if (entry.isFile()) { const ext = entry.name.slice(entry.name.lastIndexOf(".")); - if (CODE_EXTENSIONS.has(ext)) { + if (CODE_EXTENSIONS.has(ext) || (extraExtensions && extraExtensions.has(ext))) { yield fullPath; } } @@ -121,16 +133,29 @@ export async function searchCodebase( maxResults?: number; includeImports?: boolean; filePattern?: string; + projectRoot?: string; } = {} ): Promise { const maxResults = options.maxResults || 20; const queryLower = query.toLowerCase(); const queryParts = queryLower.split(/[\s_\-./]+/).filter(p => p.length > 0); + // Load user grammar config for extra file extensions + const projectRoot = options.projectRoot || rootDir; + const userConfig = loadUserGrammars(projectRoot); + const extraExtensions = new Set(); + for (const entry of Object.values(userConfig.grammars)) { + for (const ext of entry.extensions) { + if (!CODE_EXTENSIONS.has(ext)) { + extraExtensions.add(ext); + } + } + } + // Phase 1: Collect files const filesToParse: Array<{ absolutePath: string; relativePath: string; content: string }> = []; - for await (const filePath of walkDir(rootDir, rootDir)) { + for await (const filePath of walkDir(rootDir, rootDir, 20, extraExtensions.size > 0 ? extraExtensions : undefined)) { if (options.filePattern) { const relPath = relative(rootDir, filePath); if (!relPath.toLowerCase().includes(options.filePattern.toLowerCase())) continue; @@ -147,7 +172,7 @@ export async function searchCodebase( } // Phase 2: Batch parse (one CLI call per language) - const parsedFiles = parseFilesBatch(filesToParse); + const parsedFiles = parseFilesBatch(filesToParse, projectRoot); // Phase 3: Match query against symbols const foldedFiles: FoldedFile[] = [];