@bitkyc08/opencodex 2.7.9 → 2.7.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/gui/dist/assets/index-BU5WLK6k.js +40 -0
- package/gui/dist/index.html +1 -1
- package/package.json +1 -1
- package/src/providers/key-failover.ts +26 -0
- package/src/providers/registry.ts +3 -0
- package/src/router.ts +7 -2
- package/src/server/responses.ts +15 -9
- package/gui/dist/assets/index-BAAFKwsh.js +0 -40
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var l=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function ee(e,t){return E(e.type,t,e.props)}function D(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function te(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var ne=/\/+/g;function O(e,t){return typeof e==`object`&&e&&e.key!=null?te(``+e.key):t.toString(36)}function k(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function re(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,re(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+O(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(ne,`$&/`)+`/`),re(o,r,i,``,function(e){return e})):o!=null&&(D(o)&&(o=ee(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(ne,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u<e.length;u++)a=e[u],s=l+O(a,u),c+=re(a,r,i,s,o);else if(u=m(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+O(a,u++),c+=re(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return re(k(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function A(e,t,n){if(e==null)return e;var r=[],i=0;return re(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function ie(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var j=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},M={map:A,forEach:function(e,t,n){A(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return A(e,function(){t++}),t},toArray:function(e){return A(e,function(e){return e})||[]},only:function(e){if(!D(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=M,e.Component=v,e.Fragment=r,e.Profiler=a,e.PureComponent=b,e.StrictMode=i,e.Suspense=l,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=w,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return w.H.useMemoCache(e)}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=g({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!T.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return E(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)T.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return E(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=D,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:ie}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=w.T,n={};w.T=n;try{var r=e(),i=w.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(C,j)}catch(e){j(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),w.T=t}},e.unstable_useCacheRefresh=function(){return w.H.useCacheRefresh()},e.use=function(e){return w.H.use(e)},e.useActionState=function(e,t,n){return w.H.useActionState(e,t,n)},e.useCallback=function(e,t){return w.H.useCallback(e,t)},e.useContext=function(e){return w.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return w.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return w.H.useEffect(e,t)},e.useEffectEvent=function(e){return w.H.useEffectEvent(e)},e.useId=function(){return w.H.useId()},e.useImperativeHandle=function(e,t,n){return w.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return w.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return w.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return w.H.useMemo(e,t)},e.useOptimistic=function(e,t){return w.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return w.H.useReducer(e,t,n)},e.useRef=function(e){return w.H.useRef(e)},e.useState=function(e){return w.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return w.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return w.H.useTransition()},e.version=`19.2.7`})),u=o(((e,t)=>{t.exports=l()})),d=o((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,S||(S=!0,D());else{var t=n(l);t!==null&&O(x,t.startTime-e)}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-T<w)}function ee(){if(g=!1,S){var t=e.unstable_now();T=t;var i=!0;try{a:{m=!1,h&&(h=!1,v(C),C=-1),p=!0;var a=f;try{b:{for(b(t),d=n(c);d!==null&&!(d.expirationTime>t&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&O(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?D():S=!1}}}var D;if(typeof y==`function`)D=function(){y(ee)};else if(typeof MessageChannel<`u`){var te=new MessageChannel,ne=te.port2;te.port1.onmessage=ee,D=function(){ne.postMessage(null)}}else D=function(){_(ee,0)};function O(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):w=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_requestPaint=function(){g=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,O(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,D()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),f=o(((e,t)=>{t.exports=d()})),p=o((e=>{var t=u();function n(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function r(){}var i={d:{f:r,r:function(){throw Error(n(522))},D:r,C:r,L:r,m:r,X:r,S:r,M:r},p:0,findDOMNode:null},a=Symbol.for(`react.portal`);function o(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:a,key:r==null?null:``+r,children:e,containerInfo:t,implementation:n}}var s=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function c(e,t){if(e===`font`)return``;if(typeof t==`string`)return t===`use-credentials`?t:``}e.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,e.createPortal=function(e,t){var r=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(n(299));return o(e,t,null,r)},e.flushSync=function(e){var t=s.T,n=i.p;try{if(s.T=null,i.p=2,e)return e()}finally{s.T=t,i.p=n,i.d.f()}},e.preconnect=function(e,t){typeof e==`string`&&(t?(t=t.crossOrigin,t=typeof t==`string`?t===`use-credentials`?t:``:void 0):t=null,i.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&i.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=c(n,t.crossOrigin),a=typeof t.integrity==`string`?t.integrity:void 0,o=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?i.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:a,fetchPriority:o}):n===`script`&&i.d.X(e,{crossOrigin:r,integrity:a,fetchPriority:o,nonce:typeof t.nonce==`string`?t.nonce:void 0})}},e.preinitModule=function(e,t){if(typeof e==`string`)if(typeof t==`object`&&t){if(t.as==null||t.as===`script`){var n=c(t.as,t.crossOrigin);i.d.M(e,{crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0})}}else t??i.d.M(e)},e.preload=function(e,t){if(typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){var n=t.as,r=c(n,t.crossOrigin);i.d.L(e,n,{crossOrigin:r,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,type:typeof t.type==`string`?t.type:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==`string`?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==`string`?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==`string`?t.imageSizes:void 0,media:typeof t.media==`string`?t.media:void 0})}},e.preloadModule=function(e,t){if(typeof e==`string`)if(t){var n=c(t.as,t.crossOrigin);i.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0})}else i.d.m(e)},e.requestFormReset=function(e){i.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return s.H.useFormState(e,t,n)},e.useFormStatus=function(){return s.H.useHostTransitionStatus()},e.version=`19.2.7`})),m=o(((e,t)=>{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=p()})),h=o((e=>{var t=f(),n=u(),r=m();function i(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function a(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function o(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function s(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function c(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function l(e){if(o(e)!==e)throw Error(i(188))}function d(e){var t=e.alternate;if(!t){if(t=o(e),t===null)throw Error(i(188));return t===e?e:null}for(var n=e,r=t;;){var a=n.return;if(a===null)break;var s=a.alternate;if(s===null){if(r=a.return,r!==null){n=r;continue}break}if(a.child===s.child){for(s=a.child;s;){if(s===n)return l(a),e;if(s===r)return l(a),t;s=s.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=s;else{for(var c=!1,u=a.child;u;){if(u===n){c=!0,n=a,r=s;break}if(u===r){c=!0,r=a,n=s;break}u=u.sibling}if(!c){for(u=s.child;u;){if(u===n){c=!0,n=s,r=a;break}if(u===r){c=!0,r=s,n=a;break}u=u.sibling}if(!c)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(n.tag!==3)throw Error(i(188));return n.stateNode.current===n?e:t}function p(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=p(e),t!==null)return t;e=e.sibling}return null}var h=Object.assign,g=Symbol.for(`react.element`),_=Symbol.for(`react.transitional.element`),v=Symbol.for(`react.portal`),y=Symbol.for(`react.fragment`),b=Symbol.for(`react.strict_mode`),x=Symbol.for(`react.profiler`),S=Symbol.for(`react.consumer`),C=Symbol.for(`react.context`),w=Symbol.for(`react.forward_ref`),T=Symbol.for(`react.suspense`),E=Symbol.for(`react.suspense_list`),ee=Symbol.for(`react.memo`),D=Symbol.for(`react.lazy`),te=Symbol.for(`react.activity`),ne=Symbol.for(`react.memo_cache_sentinel`),O=Symbol.iterator;function k(e){return typeof e!=`object`||!e?null:(e=O&&e[O]||e[`@@iterator`],typeof e==`function`?e:null)}var re=Symbol.for(`react.client.reference`);function A(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===re?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case y:return`Fragment`;case x:return`Profiler`;case b:return`StrictMode`;case T:return`Suspense`;case E:return`SuspenseList`;case te:return`Activity`}if(typeof e==`object`)switch(e.$$typeof){case v:return`Portal`;case C:return e.displayName||`Context`;case S:return(e._context.displayName||`Context`)+`.Consumer`;case w:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case ee:return t=e.displayName||null,t===null?A(e.type)||`Memo`:t;case D:t=e._payload,e=e._init;try{return A(e(t))}catch{}}return null}var ie=Array.isArray,j=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,M=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,ae={pending:!1,data:null,method:null,action:null},N=[],P=-1;function oe(e){return{current:e}}function F(e){0>P||(e.current=N[P],N[P]=null,P--)}function I(e,t){P++,N[P]=e.current,e.current=t}var se=oe(null),ce=oe(null),le=oe(null),ue=oe(null);function de(e,t){switch(I(le,t),I(ce,e),I(se,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Vd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Vd(t),e=Hd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}F(se),I(se,e)}function fe(){F(se),F(ce),F(le)}function pe(e){e.memoizedState!==null&&I(ue,e);var t=se.current,n=Hd(t,e.type);t!==n&&(I(ce,e),I(se,n))}function me(e){ce.current===e&&(F(se),F(ce)),ue.current===e&&(F(ue),Qf._currentValue=ae)}var he,ge;function _e(e){if(he===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);he=t&&t[1]||``,ge=-1<e.stack.indexOf(`
|
|
2
|
+
at`)?` (<anonymous>)`:-1<e.stack.indexOf(`@`)?`@unknown:0:0`:``}return`
|
|
3
|
+
`+he+e+ge}var ve=!1;function ye(e,t){if(!e||ve)return``;ve=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){var r=e}Reflect.construct(e,[],n)}else{try{n.call()}catch(e){r=e}e.call(n.prototype)}}else{try{throw Error()}catch(e){r=e}(n=e())&&typeof n.catch==`function`&&n.catch(function(){})}}catch(e){if(e&&r&&typeof e.stack==`string`)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName=`DetermineComponentFrameRoot`;var i=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,`name`);i&&i.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:`DetermineComponentFrameRoot`});var a=r.DetermineComponentFrameRoot(),o=a[0],s=a[1];if(o&&s){var c=o.split(`
|
|
4
|
+
`),l=s.split(`
|
|
5
|
+
`);for(i=r=0;r<c.length&&!c[r].includes(`DetermineComponentFrameRoot`);)r++;for(;i<l.length&&!l[i].includes(`DetermineComponentFrameRoot`);)i++;if(r===c.length||i===l.length)for(r=c.length-1,i=l.length-1;1<=r&&0<=i&&c[r]!==l[i];)i--;for(;1<=r&&0<=i;r--,i--)if(c[r]!==l[i]){if(r!==1||i!==1)do if(r--,i--,0>i||c[r]!==l[i]){var u=`
|
|
6
|
+
`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(`<anonymous>`)&&(u=u.replace(`<anonymous>`,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{ve=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?_e(n):``}function be(e,t){switch(e.tag){case 26:case 27:case 5:return _e(e.type);case 16:return _e(`Lazy`);case 13:return e.child!==t&&t!==null?_e(`Suspense Fallback`):_e(`Suspense`);case 19:return _e(`SuspenseList`);case 0:case 15:return ye(e.type,!1);case 11:return ye(e.type.render,!1);case 1:return ye(e.type,!0);case 31:return _e(`Activity`);default:return``}}function xe(e){try{var t=``,n=null;do t+=be(e,n),n=e,e=e.return;while(e);return t}catch(e){return`
|
|
7
|
+
Error generating stack: `+e.message+`
|
|
8
|
+
`+e.stack}}var Se=Object.prototype.hasOwnProperty,Ce=t.unstable_scheduleCallback,we=t.unstable_cancelCallback,Te=t.unstable_shouldYield,Ee=t.unstable_requestPaint,De=t.unstable_now,Oe=t.unstable_getCurrentPriorityLevel,ke=t.unstable_ImmediatePriority,Ae=t.unstable_UserBlockingPriority,je=t.unstable_NormalPriority,Me=t.unstable_LowPriority,Ne=t.unstable_IdlePriority,Pe=t.log,Fe=t.unstable_setDisableYieldValue,Ie=null,Le=null;function Re(e){if(typeof Pe==`function`&&Fe(e),Le&&typeof Le.setStrictMode==`function`)try{Le.setStrictMode(Ie,e)}catch{}}var L=Math.clz32?Math.clz32:Ve,ze=Math.log,Be=Math.LN2;function Ve(e){return e>>>=0,e===0?32:31-(ze(e)/Be|0)|0}var He=256,Ue=262144,We=4194304;function Ge(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Ke(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=Ge(n))):i=Ge(o):i=Ge(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=Ge(n))):i=Ge(o)):i=Ge(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function qe(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Je(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Ye(){var e=We;return We<<=1,!(We&62914560)&&(We=4194304),e}function Xe(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Ze(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Qe(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0<n;){var u=31-L(n),d=1<<u;s[u]=0,c[u]=-1;var f=l[u];if(f!==null)for(l[u]=null,u=0;u<f.length;u++){var p=f[u];p!==null&&(p.lane&=-536870913)}n&=~d}r!==0&&$e(e,r,0),a!==0&&i===0&&e.tag!==0&&(e.suspendedLanes|=a&~(o&~t))}function $e(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-L(t);e.entangledLanes|=t,e.entanglements[r]=e.entanglements[r]|1073741824|n&261930}function et(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-L(n),i=1<<r;i&t|e[r]&t&&(e[r]|=t),n&=~i}}function tt(e,t){var n=t&-t;return n=n&42?1:nt(n),(n&(e.suspendedLanes|t))===0?n:0}function nt(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;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:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function rt(e){return e&=-e,2<e?8<e?e&134217727?32:268435456:8:2}function it(){var e=M.p;return e===0?(e=window.event,e===void 0?32:mp(e.type)):e}function at(e,t){var n=M.p;try{return M.p=e,t()}finally{M.p=n}}var ot=Math.random().toString(36).slice(2),st=`__reactFiber$`+ot,ct=`__reactProps$`+ot,lt=`__reactContainer$`+ot,ut=`__reactEvents$`+ot,dt=`__reactListeners$`+ot,ft=`__reactHandles$`+ot,pt=`__reactResources$`+ot,mt=`__reactMarker$`+ot;function ht(e){delete e[st],delete e[ct],delete e[ut],delete e[dt],delete e[ft]}function gt(e){var t=e[st];if(t)return t;for(var n=e.parentNode;n;){if(t=n[lt]||n[st]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=df(e);e!==null;){if(n=e[st])return n;e=df(e)}return t}e=n,n=e.parentNode}return null}function _t(e){if(e=e[st]||e[lt]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function vt(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(i(33))}function yt(e){var t=e[pt];return t||=e[pt]={hoistableStyles:new Map,hoistableScripts:new Map},t}function bt(e){e[mt]=!0}var xt=new Set,St={};function Ct(e,t){wt(e,t),wt(e+`Capture`,t)}function wt(e,t){for(St[e]=t,e=0;e<t.length;e++)xt.add(t[e])}var Tt=RegExp(`^[: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]*$`),Et={},Dt={};function Ot(e){return Se.call(Dt,e)?!0:Se.call(Et,e)?!1:Tt.test(e)?Dt[e]=!0:(Et[e]=!0,!1)}function kt(e,t,n){if(Ot(t))if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:e.removeAttribute(t);return;case`boolean`:var r=t.toLowerCase().slice(0,5);if(r!==`data-`&&r!==`aria-`){e.removeAttribute(t);return}}e.setAttribute(t,``+n)}}function At(e,t,n){if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(t);return}e.setAttribute(t,``+n)}}function jt(e,t,n,r){if(r===null)e.removeAttribute(n);else{switch(typeof r){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(n);return}e.setAttributeNS(t,n,``+r)}}function Mt(e){switch(typeof e){case`bigint`:case`boolean`:case`number`:case`string`:case`undefined`:return e;case`object`:return e;default:return``}}function Nt(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===`input`&&(t===`checkbox`||t===`radio`)}function Pt(e,t,n){var r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&r!==void 0&&typeof r.get==`function`&&typeof r.set==`function`){var i=r.get,a=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(e){n=``+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(e){n=``+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Ft(e){if(!e._valueTracker){var t=Nt(e)?`checked`:`value`;e._valueTracker=Pt(e,t,``+e[t])}}function It(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=``;return e&&(r=Nt(e)?e.checked?`true`:`false`:e.value),e=r,e===n?!1:(t.setValue(e),!0)}function Lt(e){if(e||=typeof document<`u`?document:void 0,e===void 0)return null;try{return e.activeElement||e.body}catch{return e.body}}var Rt=/[\n"\\]/g;function zt(e){return e.replace(Rt,function(e){return`\\`+e.charCodeAt(0).toString(16)+` `})}function Bt(e,t,n,r,i,a,o,s){e.name=``,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`?e.type=o:e.removeAttribute(`type`),t==null?o!==`submit`&&o!==`reset`||e.removeAttribute(`value`):o===`number`?(t===0&&e.value===``||e.value!=t)&&(e.value=``+Mt(t)):e.value!==``+Mt(t)&&(e.value=``+Mt(t)),t==null?n==null?r!=null&&e.removeAttribute(`value`):Ht(e,o,Mt(n)):Ht(e,o,Mt(t)),i==null&&a!=null&&(e.defaultChecked=!!a),i!=null&&(e.checked=i&&typeof i!=`function`&&typeof i!=`symbol`),s!=null&&typeof s!=`function`&&typeof s!=`symbol`&&typeof s!=`boolean`?e.name=``+Mt(s):e.removeAttribute(`name`)}function Vt(e,t,n,r,i,a,o,s){if(a!=null&&typeof a!=`function`&&typeof a!=`symbol`&&typeof a!=`boolean`&&(e.type=a),t!=null||n!=null){if(!(a!==`submit`&&a!==`reset`||t!=null)){Ft(e);return}n=n==null?``:``+Mt(n),t=t==null?n:``+Mt(t),s||t===e.value||(e.value=t),e.defaultValue=t}r??=i,r=typeof r!=`function`&&typeof r!=`symbol`&&!!r,e.checked=s?e.checked:!!r,e.defaultChecked=!!r,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`&&(e.name=o),Ft(e)}function Ht(e,t,n){t===`number`&&Lt(e.ownerDocument)===e||e.defaultValue===``+n||(e.defaultValue=``+n)}function Ut(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i<n.length;i++)t[`$`+n[i]]=!0;for(n=0;n<e.length;n++)i=t.hasOwnProperty(`$`+e[n].value),e[n].selected!==i&&(e[n].selected=i),i&&r&&(e[n].defaultSelected=!0)}else{for(n=``+Mt(n),t=null,i=0;i<e.length;i++){if(e[i].value===n){e[i].selected=!0,r&&(e[i].defaultSelected=!0);return}t!==null||e[i].disabled||(t=e[i])}t!==null&&(t.selected=!0)}}function Wt(e,t,n){if(t!=null&&(t=``+Mt(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n==null?``:``+Mt(n)}function Gt(e,t,n,r){if(t==null){if(r!=null){if(n!=null)throw Error(i(92));if(ie(r)){if(1<r.length)throw Error(i(93));r=r[0]}n=r}n??=``,t=n}n=Mt(t),e.defaultValue=n,r=e.textContent,r===n&&r!==``&&r!==null&&(e.value=r),Ft(e)}function Kt(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var qt=new Set(`animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp`.split(` `));function Jt(e,t,n){var r=t.indexOf(`--`)===0;n==null||typeof n==`boolean`||n===``?r?e.setProperty(t,``):t===`float`?e.cssFloat=``:e[t]=``:r?e.setProperty(t,n):typeof n!=`number`||n===0||qt.has(t)?t===`float`?e.cssFloat=n:e[t]=(``+n).trim():e[t]=n+`px`}function Yt(e,t,n){if(t!=null&&typeof t!=`object`)throw Error(i(62));if(e=e.style,n!=null){for(var r in n)!n.hasOwnProperty(r)||t!=null&&t.hasOwnProperty(r)||(r.indexOf(`--`)===0?e.setProperty(r,``):r===`float`?e.cssFloat=``:e[r]=``);for(var a in t)r=t[a],t.hasOwnProperty(a)&&n[a]!==r&&Jt(e,a,r)}else for(var o in t)t.hasOwnProperty(o)&&Jt(e,o,t[o])}function Xt(e){if(e.indexOf(`-`)===-1)return!1;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 Zt=new Map([[`acceptCharset`,`accept-charset`],[`htmlFor`,`for`],[`httpEquiv`,`http-equiv`],[`crossOrigin`,`crossorigin`],[`accentHeight`,`accent-height`],[`alignmentBaseline`,`alignment-baseline`],[`arabicForm`,`arabic-form`],[`baselineShift`,`baseline-shift`],[`capHeight`,`cap-height`],[`clipPath`,`clip-path`],[`clipRule`,`clip-rule`],[`colorInterpolation`,`color-interpolation`],[`colorInterpolationFilters`,`color-interpolation-filters`],[`colorProfile`,`color-profile`],[`colorRendering`,`color-rendering`],[`dominantBaseline`,`dominant-baseline`],[`enableBackground`,`enable-background`],[`fillOpacity`,`fill-opacity`],[`fillRule`,`fill-rule`],[`floodColor`,`flood-color`],[`floodOpacity`,`flood-opacity`],[`fontFamily`,`font-family`],[`fontSize`,`font-size`],[`fontSizeAdjust`,`font-size-adjust`],[`fontStretch`,`font-stretch`],[`fontStyle`,`font-style`],[`fontVariant`,`font-variant`],[`fontWeight`,`font-weight`],[`glyphName`,`glyph-name`],[`glyphOrientationHorizontal`,`glyph-orientation-horizontal`],[`glyphOrientationVertical`,`glyph-orientation-vertical`],[`horizAdvX`,`horiz-adv-x`],[`horizOriginX`,`horiz-origin-x`],[`imageRendering`,`image-rendering`],[`letterSpacing`,`letter-spacing`],[`lightingColor`,`lighting-color`],[`markerEnd`,`marker-end`],[`markerMid`,`marker-mid`],[`markerStart`,`marker-start`],[`overlinePosition`,`overline-position`],[`overlineThickness`,`overline-thickness`],[`paintOrder`,`paint-order`],[`panose-1`,`panose-1`],[`pointerEvents`,`pointer-events`],[`renderingIntent`,`rendering-intent`],[`shapeRendering`,`shape-rendering`],[`stopColor`,`stop-color`],[`stopOpacity`,`stop-opacity`],[`strikethroughPosition`,`strikethrough-position`],[`strikethroughThickness`,`strikethrough-thickness`],[`strokeDasharray`,`stroke-dasharray`],[`strokeDashoffset`,`stroke-dashoffset`],[`strokeLinecap`,`stroke-linecap`],[`strokeLinejoin`,`stroke-linejoin`],[`strokeMiterlimit`,`stroke-miterlimit`],[`strokeOpacity`,`stroke-opacity`],[`strokeWidth`,`stroke-width`],[`textAnchor`,`text-anchor`],[`textDecoration`,`text-decoration`],[`textRendering`,`text-rendering`],[`transformOrigin`,`transform-origin`],[`underlinePosition`,`underline-position`],[`underlineThickness`,`underline-thickness`],[`unicodeBidi`,`unicode-bidi`],[`unicodeRange`,`unicode-range`],[`unitsPerEm`,`units-per-em`],[`vAlphabetic`,`v-alphabetic`],[`vHanging`,`v-hanging`],[`vIdeographic`,`v-ideographic`],[`vMathematical`,`v-mathematical`],[`vectorEffect`,`vector-effect`],[`vertAdvY`,`vert-adv-y`],[`vertOriginX`,`vert-origin-x`],[`vertOriginY`,`vert-origin-y`],[`wordSpacing`,`word-spacing`],[`writingMode`,`writing-mode`],[`xmlnsXlink`,`xmlns:xlink`],[`xHeight`,`x-height`]]),Qt=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function $t(e){return Qt.test(``+e)?`javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')`:e}function en(){}var tn=null;function nn(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var rn=null,an=null;function on(e){var t=_t(e);if(t&&(e=t.stateNode)){var n=e[ct]||null;a:switch(e=t.stateNode,t.type){case`input`:if(Bt(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,n.type===`radio`&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll(`input[name="`+zt(``+t)+`"][type="radio"]`),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=r[ct]||null;if(!a)throw Error(i(90));Bt(r,a.value,a.defaultValue,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name)}}for(t=0;t<n.length;t++)r=n[t],r.form===e.form&&It(r)}break a;case`textarea`:Wt(e,n.value,n.defaultValue);break a;case`select`:t=n.value,t!=null&&Ut(e,!!n.multiple,t,!1)}}}var sn=!1;function cn(e,t,n){if(sn)return e(t,n);sn=!0;try{return e(t)}finally{if(sn=!1,(rn!==null||an!==null)&&(bu(),rn&&(t=rn,e=an,an=rn=null,on(t),e)))for(t=0;t<e.length;t++)on(e[t])}}function ln(e,t){var n=e.stateNode;if(n===null)return null;var r=n[ct]||null;if(r===null)return null;n=r[t];a:switch(t){case`onClick`:case`onClickCapture`:case`onDoubleClick`:case`onDoubleClickCapture`:case`onMouseDown`:case`onMouseDownCapture`:case`onMouseMove`:case`onMouseMoveCapture`:case`onMouseUp`:case`onMouseUpCapture`:case`onMouseEnter`:(r=!r.disabled)||(e=e.type,r=!(e===`button`||e===`input`||e===`select`||e===`textarea`)),e=!r;break a;default:e=!1}if(e)return null;if(n&&typeof n!=`function`)throw Error(i(231,t,typeof n));return n}var un=!(typeof window>`u`||window.document===void 0||window.document.createElement===void 0),dn=!1;if(un)try{var fn={};Object.defineProperty(fn,"passive",{get:function(){dn=!0}}),window.addEventListener(`test`,fn,fn),window.removeEventListener(`test`,fn,fn)}catch{dn=!1}var pn=null,mn=null,hn=null;function gn(){if(hn)return hn;var e,t=mn,n=t.length,r,i=`value`in pn?pn.value:pn.textContent,a=i.length;for(e=0;e<n&&t[e]===i[e];e++);var o=n-e;for(r=1;r<=o&&t[n-r]===i[a-r];r++);return hn=i.slice(e,1<r?1-r:void 0)}function _n(e){var t=e.keyCode;return`charCode`in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function vn(){return!0}function yn(){return!1}function bn(e){function t(t,n,r,i,a){for(var o in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=i,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(o)&&(t=e[o],this[o]=t?t(i):i[o]);return this.isDefaultPrevented=(i.defaultPrevented==null?!1===i.returnValue:i.defaultPrevented)?vn:yn,this.isPropagationStopped=yn,this}return h(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():typeof e.returnValue!=`unknown`&&(e.returnValue=!1),this.isDefaultPrevented=vn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():typeof e.cancelBubble!=`unknown`&&(e.cancelBubble=!0),this.isPropagationStopped=vn)},persist:function(){},isPersistent:vn}),t}var xn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Sn=bn(xn),Cn=h({},xn,{view:0,detail:0}),wn=bn(Cn),Tn,En,Dn,On=h({},Cn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zn,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return`movementX`in e?e.movementX:(e!==Dn&&(Dn&&e.type===`mousemove`?(Tn=e.screenX-Dn.screenX,En=e.screenY-Dn.screenY):En=Tn=0,Dn=e),Tn)},movementY:function(e){return`movementY`in e?e.movementY:En}}),kn=bn(On),An=bn(h({},On,{dataTransfer:0})),jn=bn(h({},Cn,{relatedTarget:0})),Mn=bn(h({},xn,{animationName:0,elapsedTime:0,pseudoElement:0})),Nn=bn(h({},xn,{clipboardData:function(e){return`clipboardData`in e?e.clipboardData:window.clipboardData}})),Pn=bn(h({},xn,{data:0})),Fn={Esc:`Escape`,Spacebar:` `,Left:`ArrowLeft`,Up:`ArrowUp`,Right:`ArrowRight`,Down:`ArrowDown`,Del:`Delete`,Win:`OS`,Menu:`ContextMenu`,Apps:`ContextMenu`,Scroll:`ScrollLock`,MozPrintableKey:`Unidentified`},In={8:`Backspace`,9:`Tab`,12:`Clear`,13:`Enter`,16:`Shift`,17:`Control`,18:`Alt`,19:`Pause`,20:`CapsLock`,27:`Escape`,32:` `,33:`PageUp`,34:`PageDown`,35:`End`,36:`Home`,37:`ArrowLeft`,38:`ArrowUp`,39:`ArrowRight`,40:`ArrowDown`,45:`Insert`,46:`Delete`,112:`F1`,113:`F2`,114:`F3`,115:`F4`,116:`F5`,117:`F6`,118:`F7`,119:`F8`,120:`F9`,121:`F10`,122:`F11`,123:`F12`,144:`NumLock`,145:`ScrollLock`,224:`Meta`},Ln={Alt:`altKey`,Control:`ctrlKey`,Meta:`metaKey`,Shift:`shiftKey`};function Rn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Ln[e])?!!t[e]:!1}function zn(){return Rn}var Bn=bn(h({},Cn,{key:function(e){if(e.key){var t=Fn[e.key]||e.key;if(t!==`Unidentified`)return t}return e.type===`keypress`?(e=_n(e),e===13?`Enter`:String.fromCharCode(e)):e.type===`keydown`||e.type===`keyup`?In[e.keyCode]||`Unidentified`:``},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zn,charCode:function(e){return e.type===`keypress`?_n(e):0},keyCode:function(e){return e.type===`keydown`||e.type===`keyup`?e.keyCode:0},which:function(e){return e.type===`keypress`?_n(e):e.type===`keydown`||e.type===`keyup`?e.keyCode:0}})),Vn=bn(h({},On,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Hn=bn(h({},Cn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zn})),Un=bn(h({},xn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Wn=bn(h({},On,{deltaX:function(e){return`deltaX`in e?e.deltaX:`wheelDeltaX`in e?-e.wheelDeltaX:0},deltaY:function(e){return`deltaY`in e?e.deltaY:`wheelDeltaY`in e?-e.wheelDeltaY:`wheelDelta`in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),Gn=bn(h({},xn,{newState:0,oldState:0})),Kn=[9,13,27,32],qn=un&&`CompositionEvent`in window,Jn=null;un&&`documentMode`in document&&(Jn=document.documentMode);var Yn=un&&`TextEvent`in window&&!Jn,Xn=un&&(!qn||Jn&&8<Jn&&11>=Jn),Zn=` `,Qn=!1;function $n(e,t){switch(e){case`keyup`:return Kn.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function er(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var tr=!1;function nr(e,t){switch(e){case`compositionend`:return er(t);case`keypress`:return t.which===32?(Qn=!0,Zn):null;case`textInput`:return e=t.data,e===Zn&&Qn?null:e;default:return null}}function rr(e,t){if(tr)return e===`compositionend`||!qn&&$n(e,t)?(e=gn(),hn=mn=pn=null,tr=!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.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case`compositionend`:return Xn&&t.locale!==`ko`?null:t.data;default:return null}}var ir={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function ar(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t===`input`?!!ir[e.type]:t===`textarea`}function or(e,t,n,r){rn?an?an.push(r):an=[r]:rn=r,t=Ed(t,`onChange`),0<t.length&&(n=new Sn(`onChange`,`change`,null,n,r),e.push({event:n,listeners:t}))}var sr=null,cr=null;function lr(e){yd(e,0)}function ur(e){if(It(vt(e)))return e}function dr(e,t){if(e===`change`)return t}var fr=!1;if(un){var pr;if(un){var mr=`oninput`in document;if(!mr){var hr=document.createElement(`div`);hr.setAttribute(`oninput`,`return;`),mr=typeof hr.oninput==`function`}pr=mr}else pr=!1;fr=pr&&(!document.documentMode||9<document.documentMode)}function gr(){sr&&(sr.detachEvent(`onpropertychange`,_r),cr=sr=null)}function _r(e){if(e.propertyName===`value`&&ur(cr)){var t=[];or(t,cr,e,nn(e)),cn(lr,t)}}function vr(e,t,n){e===`focusin`?(gr(),sr=t,cr=n,sr.attachEvent(`onpropertychange`,_r)):e===`focusout`&&gr()}function yr(e){if(e===`selectionchange`||e===`keyup`||e===`keydown`)return ur(cr)}function br(e,t){if(e===`click`)return ur(t)}function xr(e,t){if(e===`input`||e===`change`)return ur(t)}function Sr(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var Cr=typeof Object.is==`function`?Object.is:Sr;function wr(e,t){if(Cr(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var i=n[r];if(!Se.call(t,i)||!Cr(e[i],t[i]))return!1}return!0}function Tr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Er(e,t){var n=Tr(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=Tr(n)}}function Dr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Dr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Or(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Lt(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Lt(e.document)}return t}function kr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var Ar=un&&`documentMode`in document&&11>=document.documentMode,jr=null,Mr=null,Nr=null,Pr=!1;function Fr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Pr||jr==null||jr!==Lt(r)||(r=jr,`selectionStart`in r&&kr(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}),Nr&&wr(Nr,r)||(Nr=r,r=Ed(Mr,`onSelect`),0<r.length&&(t=new Sn(`onSelect`,`select`,null,t,n),e.push({event:t,listeners:r}),t.target=jr)))}function Ir(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n[`Webkit`+e]=`webkit`+t,n[`Moz`+e]=`moz`+t,n}var Lr={animationend:Ir(`Animation`,`AnimationEnd`),animationiteration:Ir(`Animation`,`AnimationIteration`),animationstart:Ir(`Animation`,`AnimationStart`),transitionrun:Ir(`Transition`,`TransitionRun`),transitionstart:Ir(`Transition`,`TransitionStart`),transitioncancel:Ir(`Transition`,`TransitionCancel`),transitionend:Ir(`Transition`,`TransitionEnd`)},Rr={},zr={};un&&(zr=document.createElement(`div`).style,`AnimationEvent`in window||(delete Lr.animationend.animation,delete Lr.animationiteration.animation,delete Lr.animationstart.animation),`TransitionEvent`in window||delete Lr.transitionend.transition);function Br(e){if(Rr[e])return Rr[e];if(!Lr[e])return e;var t=Lr[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in zr)return Rr[e]=t[n];return e}var Vr=Br(`animationend`),Hr=Br(`animationiteration`),Ur=Br(`animationstart`),Wr=Br(`transitionrun`),Gr=Br(`transitionstart`),Kr=Br(`transitioncancel`),qr=Br(`transitionend`),Jr=new Map,Yr=`abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel`.split(` `);Yr.push(`scrollEnd`);function Xr(e,t){Jr.set(e,t),Ct(t,[e])}var Zr=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},Qr=[],$r=0,ei=0;function ti(){for(var e=$r,t=ei=$r=0;t<e;){var n=Qr[t];Qr[t++]=null;var r=Qr[t];Qr[t++]=null;var i=Qr[t];Qr[t++]=null;var a=Qr[t];if(Qr[t++]=null,r!==null&&i!==null){var o=r.pending;o===null?i.next=i:(i.next=o.next,o.next=i),r.pending=i}a!==0&&ai(n,i,a)}}function ni(e,t,n,r){Qr[$r++]=e,Qr[$r++]=t,Qr[$r++]=n,Qr[$r++]=r,ei|=r,e.lanes|=r,e=e.alternate,e!==null&&(e.lanes|=r)}function ri(e,t,n,r){return ni(e,t,n,r),oi(e)}function ii(e,t){return ni(e,null,null,t),oi(e)}function ai(e,t,n){e.lanes|=n;var r=e.alternate;r!==null&&(r.lanes|=n);for(var i=!1,a=e.return;a!==null;)a.childLanes|=n,r=a.alternate,r!==null&&(r.childLanes|=n),a.tag===22&&(e=a.stateNode,e===null||e._visibility&1||(i=!0)),e=a,a=a.return;return e.tag===3?(a=e.stateNode,i&&t!==null&&(i=31-L(n),e=a.hiddenUpdates,r=e[i],r===null?e[i]=[t]:r.push(t),t.lane=n|536870912),a):null}function oi(e){if(50<du)throw du=0,fu=null,Error(i(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var si={};function ci(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.refCleanup=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 li(e,t,n,r){return new ci(e,t,n,r)}function ui(e){return e=e.prototype,!(!e||!e.isReactComponent)}function di(e,t){var n=e.alternate;return n===null?(n=li(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&65011712,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.refCleanup=e.refCleanup,n}function fi(e,t){e.flags&=65011714;var n=e.alternate;return n===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function pi(e,t,n,r,a,o){var s=0;if(r=e,typeof e==`function`)ui(e)&&(s=1);else if(typeof e==`string`)s=Uf(e,n,se.current)?26:e===`html`||e===`head`||e===`body`?27:5;else a:switch(e){case te:return e=li(31,n,t,a),e.elementType=te,e.lanes=o,e;case y:return mi(n.children,a,o,t);case b:s=8,a|=24;break;case x:return e=li(12,n,t,a|2),e.elementType=x,e.lanes=o,e;case T:return e=li(13,n,t,a),e.elementType=T,e.lanes=o,e;case E:return e=li(19,n,t,a),e.elementType=E,e.lanes=o,e;default:if(typeof e==`object`&&e)switch(e.$$typeof){case C:s=10;break a;case S:s=9;break a;case w:s=11;break a;case ee:s=14;break a;case D:s=16,r=null;break a}s=29,n=Error(i(130,e===null?`null`:typeof e,``)),r=null}return t=li(s,n,t,a),t.elementType=e,t.type=r,t.lanes=o,t}function mi(e,t,n,r){return e=li(7,e,r,t),e.lanes=n,e}function hi(e,t,n){return e=li(6,e,null,t),e.lanes=n,e}function gi(e){var t=li(18,null,null,0);return t.stateNode=e,t}function _i(e,t,n){return t=li(4,e.children===null?[]:e.children,e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var vi=new WeakMap;function yi(e,t){if(typeof e==`object`&&e){var n=vi.get(e);return n===void 0?(t={value:e,source:t,stack:xe(t)},vi.set(e,t),t):n}return{value:e,source:t,stack:xe(t)}}var bi=[],xi=0,Si=null,Ci=0,wi=[],Ti=0,Ei=null,Di=1,Oi=``;function ki(e,t){bi[xi++]=Ci,bi[xi++]=Si,Si=e,Ci=t}function Ai(e,t,n){wi[Ti++]=Di,wi[Ti++]=Oi,wi[Ti++]=Ei,Ei=e;var r=Di;e=Oi;var i=32-L(r)-1;r&=~(1<<i),n+=1;var a=32-L(t)+i;if(30<a){var o=i-i%5;a=(r&(1<<o)-1).toString(32),r>>=o,i-=o,Di=1<<32-L(t)+i|n<<i|r,Oi=a+e}else Di=1<<a|n<<i|r,Oi=e}function ji(e){e.return!==null&&(ki(e,1),Ai(e,1,0))}function Mi(e){for(;e===Si;)Si=bi[--xi],bi[xi]=null,Ci=bi[--xi],bi[xi]=null;for(;e===Ei;)Ei=wi[--Ti],wi[Ti]=null,Oi=wi[--Ti],wi[Ti]=null,Di=wi[--Ti],wi[Ti]=null}function Ni(e,t){wi[Ti++]=Di,wi[Ti++]=Oi,wi[Ti++]=Ei,Di=t.id,Oi=t.overflow,Ei=e}var Pi=null,R=null,z=!1,Fi=null,Ii=!1,Li=Error(i(519));function Ri(e){throw Wi(yi(Error(i(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?`text`:`HTML`,``)),e)),Li}function zi(e){var t=e.stateNode,n=e.type,r=e.memoizedProps;switch(t[st]=e,t[ct]=r,n){case`dialog`:Q(`cancel`,t),Q(`close`,t);break;case`iframe`:case`object`:case`embed`:Q(`load`,t);break;case`video`:case`audio`:for(n=0;n<_d.length;n++)Q(_d[n],t);break;case`source`:Q(`error`,t);break;case`img`:case`image`:case`link`:Q(`error`,t),Q(`load`,t);break;case`details`:Q(`toggle`,t);break;case`input`:Q(`invalid`,t),Vt(t,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case`select`:Q(`invalid`,t);break;case`textarea`:Q(`invalid`,t),Gt(t,r.value,r.defaultValue,r.children)}n=r.children,typeof n!=`string`&&typeof n!=`number`&&typeof n!=`bigint`||t.textContent===``+n||!0===r.suppressHydrationWarning||Md(t.textContent,n)?(r.popover!=null&&(Q(`beforetoggle`,t),Q(`toggle`,t)),r.onScroll!=null&&Q(`scroll`,t),r.onScrollEnd!=null&&Q(`scrollend`,t),r.onClick!=null&&(t.onclick=en),t=!0):t=!1,t||Ri(e,!0)}function Bi(e){for(Pi=e.return;Pi;)switch(Pi.tag){case 5:case 31:case 13:Ii=!1;return;case 27:case 3:Ii=!0;return;default:Pi=Pi.return}}function Vi(e){if(e!==Pi)return!1;if(!z)return Bi(e),z=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=!(n!==`form`&&n!==`button`)||Ud(e.type,e.memoizedProps)),n=!n),n&&R&&Ri(e),Bi(e),t===13){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));R=uf(e)}else if(t===31){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));R=uf(e)}else t===27?(t=R,Zd(e.type)?(e=lf,lf=null,R=e):R=t):R=Pi?cf(e.stateNode.nextSibling):null;return!0}function Hi(){R=Pi=null,z=!1}function Ui(){var e=Fi;return e!==null&&(Zl===null?Zl=e:Zl.push.apply(Zl,e),Fi=null),e}function Wi(e){Fi===null?Fi=[e]:Fi.push(e)}var Gi=oe(null),Ki=null,qi=null;function Ji(e,t,n){I(Gi,t._currentValue),t._currentValue=n}function Yi(e){e._currentValue=Gi.current,F(Gi)}function Xi(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)===t?r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t):(e.childLanes|=t,r!==null&&(r.childLanes|=t)),e===n)break;e=e.return}}function Zi(e,t,n,r){var a=e.child;for(a!==null&&(a.return=e);a!==null;){var o=a.dependencies;if(o!==null){var s=a.child;o=o.firstContext;a:for(;o!==null;){var c=o;o=a;for(var l=0;l<t.length;l++)if(c.context===t[l]){o.lanes|=n,c=o.alternate,c!==null&&(c.lanes|=n),Xi(o.return,n,e),r||(s=null);break a}o=c.next}}else if(a.tag===18){if(s=a.return,s===null)throw Error(i(341));s.lanes|=n,o=s.alternate,o!==null&&(o.lanes|=n),Xi(s,n,e),s=null}else s=a.child;if(s!==null)s.return=a;else for(s=a;s!==null;){if(s===e){s=null;break}if(a=s.sibling,a!==null){a.return=s.return,s=a;break}s=s.return}a=s}}function Qi(e,t,n,r){e=null;for(var a=t,o=!1;a!==null;){if(!o){if(a.flags&524288)o=!0;else if(a.flags&262144)break}if(a.tag===10){var s=a.alternate;if(s===null)throw Error(i(387));if(s=s.memoizedProps,s!==null){var c=a.type;Cr(a.pendingProps.value,s.value)||(e===null?e=[c]:e.push(c))}}else if(a===ue.current){if(s=a.alternate,s===null)throw Error(i(387));s.memoizedState.memoizedState!==a.memoizedState.memoizedState&&(e===null?e=[Qf]:e.push(Qf))}a=a.return}e!==null&&Zi(t,e,n,r),t.flags|=262144}function $i(e){for(e=e.firstContext;e!==null;){if(!Cr(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function ea(e){Ki=e,qi=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function ta(e){return ra(Ki,e)}function na(e,t){return Ki===null&&ea(e),ra(e,t)}function ra(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},qi===null){if(e===null)throw Error(i(308));qi=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else qi=qi.next=t;return n}var ia=typeof AbortController<`u`?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},aa=t.unstable_scheduleCallback,oa=t.unstable_NormalPriority,sa={$$typeof:C,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function ca(){return{controller:new ia,data:new Map,refCount:0}}function la(e){e.refCount--,e.refCount===0&&aa(oa,function(){e.controller.abort()})}var ua=null,da=0,fa=0,pa=null;function ma(e,t){if(ua===null){var n=ua=[];da=0,fa=dd(),pa={status:`pending`,value:void 0,then:function(e){n.push(e)}}}return da++,t.then(ha,ha),t}function ha(){if(--da===0&&ua!==null){pa!==null&&(pa.status=`fulfilled`);var e=ua;ua=null,fa=0,pa=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function ga(e,t){var n=[],r={status:`pending`,value:null,reason:null,then:function(e){n.push(e)}};return e.then(function(){r.status=`fulfilled`,r.value=t;for(var e=0;e<n.length;e++)(0,n[e])(t)},function(e){for(r.status=`rejected`,r.reason=e,e=0;e<n.length;e++)(0,n[e])(void 0)}),r}var _a=j.S;j.S=function(e,t){eu=De(),typeof t==`object`&&t&&typeof t.then==`function`&&ma(e,t),_a!==null&&_a(e,t)};var va=oe(null);function ya(){var e=va.current;return e===null?K.pooledCache:e}function ba(e,t){t===null?I(va,va.current):I(va,t.pool)}function xa(){var e=ya();return e===null?null:{parent:sa._currentValue,pool:e}}var Sa=Error(i(460)),Ca=Error(i(474)),wa=Error(i(542)),Ta={then:function(){}};function Ea(e){return e=e.status,e===`fulfilled`||e===`rejected`}function Da(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(en,en),t=n),t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,ja(e),e;default:if(typeof t.status==`string`)t.then(en,en);else{if(e=K,e!==null&&100<e.shellSuspendCounter)throw Error(i(482));e=t,e.status=`pending`,e.then(function(e){if(t.status===`pending`){var n=t;n.status=`fulfilled`,n.value=e}},function(e){if(t.status===`pending`){var n=t;n.status=`rejected`,n.reason=e}})}switch(t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,ja(e),e}throw ka=t,Sa}}function Oa(e){try{var t=e._init;return t(e._payload)}catch(e){throw typeof e==`object`&&e&&typeof e.then==`function`?(ka=e,Sa):e}}var ka=null;function Aa(){if(ka===null)throw Error(i(459));var e=ka;return ka=null,e}function ja(e){if(e===Sa||e===wa)throw Error(i(483))}var Ma=null,Na=0;function Pa(e){var t=Na;return Na+=1,Ma===null&&(Ma=[]),Da(Ma,e,t)}function Fa(e,t){t=t.props.ref,e.ref=t===void 0?null:t}function Ia(e,t){throw t.$$typeof===g?Error(i(525)):(e=Object.prototype.toString.call(t),Error(i(31,e===`[object Object]`?`object with keys {`+Object.keys(t).join(`, `)+`}`:e)))}function La(e){function t(t,n){if(e){var r=t.deletions;r===null?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;r!==null;)t(n,r),r=r.sibling;return null}function r(e){for(var t=new Map;e!==null;)e.key===null?t.set(e.index,e):t.set(e.key,e),e=e.sibling;return t}function a(e,t){return e=di(e,t),e.index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?(r=t.alternate,r===null?(t.flags|=67108866,n):(r=r.index,r<n?(t.flags|=67108866,n):r)):(t.flags|=1048576,n)}function s(t){return e&&t.alternate===null&&(t.flags|=67108866),t}function c(e,t,n,r){return t===null||t.tag!==6?(t=hi(n,e.mode,r),t.return=e,t):(t=a(t,n),t.return=e,t)}function l(e,t,n,r){var i=n.type;return i===y?d(e,t,n.props.children,r,n.key):t!==null&&(t.elementType===i||typeof i==`object`&&i&&i.$$typeof===D&&Oa(i)===t.type)?(t=a(t,n.props),Fa(t,n),t.return=e,t):(t=pi(n.type,n.key,n.props,null,e.mode,r),Fa(t,n),t.return=e,t)}function u(e,t,n,r){return t===null||t.tag!==4||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?(t=_i(n,e.mode,r),t.return=e,t):(t=a(t,n.children||[]),t.return=e,t)}function d(e,t,n,r,i){return t===null||t.tag!==7?(t=mi(n,e.mode,r,i),t.return=e,t):(t=a(t,n),t.return=e,t)}function f(e,t,n){if(typeof t==`string`&&t!==``||typeof t==`number`||typeof t==`bigint`)return t=hi(``+t,e.mode,n),t.return=e,t;if(typeof t==`object`&&t){switch(t.$$typeof){case _:return n=pi(t.type,t.key,t.props,null,e.mode,n),Fa(n,t),n.return=e,n;case v:return t=_i(t,e.mode,n),t.return=e,t;case D:return t=Oa(t),f(e,t,n)}if(ie(t)||k(t))return t=mi(t,e.mode,n,null),t.return=e,t;if(typeof t.then==`function`)return f(e,Pa(t),n);if(t.$$typeof===C)return f(e,na(e,t),n);Ia(e,t)}return null}function p(e,t,n,r){var i=t===null?null:t.key;if(typeof n==`string`&&n!==``||typeof n==`number`||typeof n==`bigint`)return i===null?c(e,t,``+n,r):null;if(typeof n==`object`&&n){switch(n.$$typeof){case _:return n.key===i?l(e,t,n,r):null;case v:return n.key===i?u(e,t,n,r):null;case D:return n=Oa(n),p(e,t,n,r)}if(ie(n)||k(n))return i===null?d(e,t,n,r,null):null;if(typeof n.then==`function`)return p(e,t,Pa(n),r);if(n.$$typeof===C)return p(e,t,na(e,n),r);Ia(e,n)}return null}function m(e,t,n,r,i){if(typeof r==`string`&&r!==``||typeof r==`number`||typeof r==`bigint`)return e=e.get(n)||null,c(t,e,``+r,i);if(typeof r==`object`&&r){switch(r.$$typeof){case _:return e=e.get(r.key===null?n:r.key)||null,l(t,e,r,i);case v:return e=e.get(r.key===null?n:r.key)||null,u(t,e,r,i);case D:return r=Oa(r),m(e,t,n,r,i)}if(ie(r)||k(r))return e=e.get(n)||null,d(t,e,r,i,null);if(typeof r.then==`function`)return m(e,t,n,Pa(r),i);if(r.$$typeof===C)return m(e,t,n,na(t,r),i);Ia(t,r)}return null}function h(i,a,s,c){for(var l=null,u=null,d=a,h=a=0,g=null;d!==null&&h<s.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),z&&ki(i,h),l;if(d===null){for(;h<s.length;h++)d=f(i,s[h],c),d!==null&&(a=o(d,a,h),u===null?l=d:u.sibling=d,u=d);return z&&ki(i,h),l}for(d=r(d);h<s.length;h++)g=m(d,i,h,s[h],c),g!==null&&(e&&g.alternate!==null&&d.delete(g.key===null?h:g.key),a=o(g,a,h),u===null?l=g:u.sibling=g,u=g);return e&&d.forEach(function(e){return t(i,e)}),z&&ki(i,h),l}function g(a,s,c,l){if(c==null)throw Error(i(151));for(var u=null,d=null,h=s,g=s=0,_=null,v=c.next();h!==null&&!v.done;g++,v=c.next()){h.index>g?(_=h,h=null):_=h.sibling;var y=p(a,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(a,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(a,h),z&&ki(a,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(a,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return z&&ki(a,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,a,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(a,e)}),z&&ki(a,g),u}function b(e,r,o,c){if(typeof o==`object`&&o&&o.type===y&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case _:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===y){if(r.tag===7){n(e,r.sibling),c=a(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===D&&Oa(l)===r.type){n(e,r.sibling),c=a(r,o.props),Fa(c,o),c.return=e,e=c;break a}n(e,r);break}else t(e,r);r=r.sibling}o.type===y?(c=mi(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=pi(o.type,o.key,o.props,null,e.mode,c),Fa(c,o),c.return=e,e=c)}return s(e);case v:a:{for(l=o.key;r!==null;){if(r.key===l)if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=a(r,o.children||[]),c.return=e,e=c;break a}else{n(e,r);break}else t(e,r);r=r.sibling}c=_i(o,e.mode,c),c.return=e,e=c}return s(e);case D:return o=Oa(o),b(e,r,o,c)}if(ie(o))return h(e,r,o,c);if(k(o)){if(l=k(o),typeof l!=`function`)throw Error(i(150));return o=l.call(o),g(e,r,o,c)}if(typeof o.then==`function`)return b(e,r,Pa(o),c);if(o.$$typeof===C)return b(e,r,na(e,o),c);Ia(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=a(r,o),c.return=e,e=c):(n(e,r),c=hi(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{Na=0;var i=b(e,t,n,r);return Ma=null,i}catch(t){if(t===Sa||t===wa)throw t;var a=li(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Ra=La(!0),za=La(!1),Ba=!1;function Va(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Ha(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Ua(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Wa(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,G&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=oi(e),ai(e,null,n),t}return ni(e,r,t,n),oi(e)}function Ga(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,et(e,n)}}function Ka(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var qa=!1;function Ja(){if(qa){var e=pa;if(e!==null)throw e}}function Ya(e,t,n,r){qa=!1;var i=e.updateQueue;Ba=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(J&f)===f:(r&f)===f){f!==0&&f===fa&&(qa=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var m=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(m=g.payload,typeof m==`function`){d=m.call(_,d,f);break a}d=m;break a;case 3:m.flags=m.flags&-65537|128;case 0:if(m=g.payload,f=typeof m==`function`?m.call(_,d,f):m,f==null)break a;d=h({},d,f);break a;case 2:Ba=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),Gl|=o,e.lanes=o,e.memoizedState=d}}function Xa(e,t){if(typeof e!=`function`)throw Error(i(191,e));e.call(t)}function Za(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)Xa(n[e],t)}var Qa=oe(null),$a=oe(0);function eo(e,t){e=Wl,I($a,e),I(Qa,t),Wl=e|t.baseLanes}function to(){I($a,Wl),I(Qa,Qa.current)}function no(){Wl=$a.current,F(Qa),F($a)}var ro=oe(null),io=null;function ao(e){var t=e.alternate;I(uo,uo.current&1),I(ro,e),io===null&&(t===null||Qa.current!==null||t.memoizedState!==null)&&(io=e)}function oo(e){I(uo,uo.current),I(ro,e),io===null&&(io=e)}function so(e){e.tag===22?(I(uo,uo.current),I(ro,e),io===null&&(io=e)):co(e)}function co(){I(uo,uo.current),I(ro,ro.current)}function lo(e){F(ro),io===e&&(io=null),F(uo)}var uo=oe(0);function fo(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||af(n)||of(n)))return t}else if(t.tag===19&&(t.memoizedProps.revealOrder===`forwards`||t.memoizedProps.revealOrder===`backwards`||t.memoizedProps.revealOrder===`unstable_legacy-backwards`||t.memoizedProps.revealOrder===`together`)){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var po=0,B=null,V=null,mo=null,ho=!1,go=!1,_o=!1,vo=0,yo=0,bo=null,xo=0;function H(){throw Error(i(321))}function So(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Cr(e[n],t[n]))return!1;return!0}function Co(e,t,n,r,i,a){return po=a,B=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,j.H=e===null||e.memoizedState===null?Bs:Vs,_o=!1,a=n(r,i),_o=!1,go&&(a=To(t,n,r,i)),wo(e),a}function wo(e){j.H=zs;var t=V!==null&&V.next!==null;if(po=0,mo=V=B=null,ho=!1,yo=0,bo=null,t)throw Error(i(300));e===null||ic||(e=e.dependencies,e!==null&&$i(e)&&(ic=!0))}function To(e,t,n,r){B=e;var a=0;do{if(go&&(bo=null),yo=0,go=!1,25<=a)throw Error(i(301));if(a+=1,mo=V=null,e.updateQueue!=null){var o=e.updateQueue;o.lastEffect=null,o.events=null,o.stores=null,o.memoCache!=null&&(o.memoCache.index=0)}j.H=Hs,o=t(n,r)}while(go);return o}function Eo(){var e=j.H,t=e.useState()[0];return t=typeof t.then==`function`?No(t):t,e=e.useState()[0],(V===null?null:V.memoizedState)!==e&&(B.flags|=1024),t}function Do(){var e=vo!==0;return vo=0,e}function Oo(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function ko(e){if(ho){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}ho=!1}po=0,mo=V=B=null,go=!1,yo=vo=0,bo=null}function Ao(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return mo===null?B.memoizedState=mo=e:mo=mo.next=e,mo}function jo(){if(V===null){var e=B.alternate;e=e===null?null:e.memoizedState}else e=V.next;var t=mo===null?B.memoizedState:mo.next;if(t!==null)mo=t,V=e;else{if(e===null)throw B.alternate===null?Error(i(467)):Error(i(310));V=e,e={memoizedState:V.memoizedState,baseState:V.baseState,baseQueue:V.baseQueue,queue:V.queue,next:null},mo===null?B.memoizedState=mo=e:mo=mo.next=e}return mo}function Mo(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function No(e){var t=yo;return yo+=1,bo===null&&(bo=[]),e=Da(bo,e,t),t=B,(mo===null?t.memoizedState:mo.next)===null&&(t=t.alternate,j.H=t===null||t.memoizedState===null?Bs:Vs),e}function Po(e){if(typeof e==`object`&&e){if(typeof e.then==`function`)return No(e);if(e.$$typeof===C)return ta(e)}throw Error(i(438,String(e)))}function Fo(e){var t=null,n=B.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var r=B.alternate;r!==null&&(r=r.updateQueue,r!==null&&(r=r.memoCache,r!=null&&(t={data:r.data.map(function(e){return e.slice()}),index:0})))}if(t??={data:[],index:0},n===null&&(n=Mo(),B.updateQueue=n),n.memoCache=t,n=t.data[t.index],n===void 0)for(n=t.data[t.index]=Array(e),r=0;r<e;r++)n[r]=ne;return t.index++,n}function Io(e,t){return typeof t==`function`?t(e):t}function Lo(e){return Ro(jo(),V,e)}function Ro(e,t,n){var r=e.queue;if(r===null)throw Error(i(311));r.lastRenderedReducer=n;var a=e.baseQueue,o=r.pending;if(o!==null){if(a!==null){var s=a.next;a.next=o.next,o.next=s}t.baseQueue=a=o,r.pending=null}if(o=e.baseState,a===null)e.memoizedState=o;else{t=a.next;var c=s=null,l=null,u=t,d=!1;do{var f=u.lane&-536870913;if(f===u.lane?(po&f)===f:(J&f)===f){var p=u.revertLane;if(p===0)l!==null&&(l=l.next={lane:0,revertLane:0,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),f===fa&&(d=!0);else if((po&p)===p){u=u.next,p===fa&&(d=!0);continue}else f={lane:0,revertLane:u.revertLane,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=f,s=o):l=l.next=f,B.lanes|=p,Gl|=p;f=u.action,_o&&n(o,f),o=u.hasEagerState?u.eagerState:n(o,f)}else p={lane:f,revertLane:u.revertLane,gesture:u.gesture,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=p,s=o):l=l.next=p,B.lanes|=f,Gl|=f;u=u.next}while(u!==null&&u!==t);if(l===null?s=o:l.next=c,!Cr(o,e.memoizedState)&&(ic=!0,d&&(n=pa,n!==null)))throw n;e.memoizedState=o,e.baseState=s,e.baseQueue=l,r.lastRenderedState=o}return a===null&&(r.lanes=0),[e.memoizedState,r.dispatch]}function zo(e){var t=jo(),n=t.queue;if(n===null)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(a!==null){n.pending=null;var s=a=a.next;do o=e(o,s.action),s=s.next;while(s!==a);Cr(o,t.memoizedState)||(ic=!0),t.memoizedState=o,t.baseQueue===null&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function Bo(e,t,n){var r=B,a=jo(),o=z;if(o){if(n===void 0)throw Error(i(407));n=n()}else n=t();var s=!Cr((V||a).memoizedState,n);if(s&&(a.memoizedState=n,ic=!0),a=a.queue,ds(Uo.bind(null,r,a,e),[e]),a.getSnapshot!==t||s||mo!==null&&mo.memoizedState.tag&1){if(r.flags|=2048,os(9,{destroy:void 0},Ho.bind(null,r,a,n,t),null),K===null)throw Error(i(349));o||po&127||Vo(r,t,n)}return n}function Vo(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=B.updateQueue,t===null?(t=Mo(),B.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function Ho(e,t,n,r){t.value=n,t.getSnapshot=r,Wo(t)&&Go(e)}function Uo(e,t,n){return n(function(){Wo(t)&&Go(e)})}function Wo(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Cr(e,n)}catch{return!0}}function Go(e){var t=ii(e,2);t!==null&&hu(t,e,2)}function Ko(e){var t=Ao();if(typeof e==`function`){var n=e;if(e=n(),_o){Re(!0);try{n()}finally{Re(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Io,lastRenderedState:e},t}function qo(e,t,n,r){return e.baseState=n,Ro(e,V,typeof r==`function`?r:Io)}function Jo(e,t,n,r,a){if(Is(e))throw Error(i(485));if(e=t.action,e!==null){var o={payload:a,action:e,next:null,isTransition:!0,status:`pending`,value:null,reason:null,listeners:[],then:function(e){o.listeners.push(e)}};j.T===null?o.isTransition=!1:n(!0),r(o),n=t.pending,n===null?(o.next=t.pending=o,Yo(t,o)):(o.next=n.next,t.pending=n.next=o)}}function Yo(e,t){var n=t.action,r=t.payload,i=e.state;if(t.isTransition){var a=j.T,o={};j.T=o;try{var s=n(i,r),c=j.S;c!==null&&c(o,s),Xo(e,t,s)}catch(n){Qo(e,t,n)}finally{a!==null&&o.types!==null&&(a.types=o.types),j.T=a}}else try{a=n(i,r),Xo(e,t,a)}catch(n){Qo(e,t,n)}}function Xo(e,t,n){typeof n==`object`&&n&&typeof n.then==`function`?n.then(function(n){Zo(e,t,n)},function(n){return Qo(e,t,n)}):Zo(e,t,n)}function Zo(e,t,n){t.status=`fulfilled`,t.value=n,$o(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,Yo(e,n)))}function Qo(e,t,n){var r=e.pending;if(e.pending=null,r!==null){r=r.next;do t.status=`rejected`,t.reason=n,$o(t),t=t.next;while(t!==r)}e.action=null}function $o(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function es(e,t){return t}function ts(e,t){if(z){var n=K.formState;if(n!==null){a:{var r=B;if(z){if(R){b:{for(var i=R,a=Ii;i.nodeType!==8;){if(!a){i=null;break b}if(i=cf(i.nextSibling),i===null){i=null;break b}}a=i.data,i=a===`F!`||a===`F`?i:null}if(i){R=cf(i.nextSibling),r=i.data===`F!`;break a}}Ri(r)}r=!1}r&&(t=n[0])}}return n=Ao(),n.memoizedState=n.baseState=t,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:es,lastRenderedState:t},n.queue=r,n=Ns.bind(null,B,r),r.dispatch=n,r=Ko(!1),a=Fs.bind(null,B,!1,r.queue),r=Ao(),i={state:t,dispatch:null,action:e,pending:null},r.queue=i,n=Jo.bind(null,B,i,a,n),i.dispatch=n,r.memoizedState=e,[t,n,!1]}function ns(e){return rs(jo(),V,e)}function rs(e,t,n){if(t=Ro(e,t,es)[0],e=Lo(Io)[0],typeof t==`object`&&t&&typeof t.then==`function`)try{var r=No(t)}catch(e){throw e===Sa?wa:e}else r=t;t=jo();var i=t.queue,a=i.dispatch;return n!==t.memoizedState&&(B.flags|=2048,os(9,{destroy:void 0},is.bind(null,i,n),null)),[r,a,e]}function is(e,t){e.action=t}function as(e){var t=jo(),n=V;if(n!==null)return rs(t,n,e);jo(),t=t.memoizedState,n=jo();var r=n.queue.dispatch;return n.memoizedState=e,[t,r,!1]}function os(e,t,n,r){return e={tag:e,create:n,deps:r,inst:t,next:null},t=B.updateQueue,t===null&&(t=Mo(),B.updateQueue=t),n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function ss(){return jo().memoizedState}function cs(e,t,n,r){var i=Ao();B.flags|=e,i.memoizedState=os(1|t,{destroy:void 0},n,r===void 0?null:r)}function ls(e,t,n,r){var i=jo();r=r===void 0?null:r;var a=i.memoizedState.inst;V!==null&&r!==null&&So(r,V.memoizedState.deps)?i.memoizedState=os(t,a,n,r):(B.flags|=e,i.memoizedState=os(1|t,a,n,r))}function us(e,t){cs(8390656,8,e,t)}function ds(e,t){ls(2048,8,e,t)}function fs(e){B.flags|=4;var t=B.updateQueue;if(t===null)t=Mo(),B.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function ps(e){var t=jo().memoizedState;return fs({ref:t,nextImpl:e}),function(){if(G&2)throw Error(i(440));return t.impl.apply(void 0,arguments)}}function ms(e,t){return ls(4,2,e,t)}function hs(e,t){return ls(4,4,e,t)}function gs(e,t){if(typeof t==`function`){e=e();var n=t(e);return function(){typeof n==`function`?n():t(null)}}if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function _s(e,t,n){n=n==null?null:n.concat([e]),ls(4,4,gs.bind(null,t,e),n)}function vs(){}function ys(e,t){var n=jo();t=t===void 0?null:t;var r=n.memoizedState;return t!==null&&So(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function bs(e,t){var n=jo();t=t===void 0?null:t;var r=n.memoizedState;if(t!==null&&So(t,r[1]))return r[0];if(r=e(),_o){Re(!0);try{e()}finally{Re(!1)}}return n.memoizedState=[r,t],r}function xs(e,t,n){return n===void 0||po&1073741824&&!(J&261930)?e.memoizedState=t:(e.memoizedState=n,e=mu(),B.lanes|=e,Gl|=e,n)}function Ss(e,t,n,r){return Cr(n,t)?n:Qa.current===null?!(po&42)||po&1073741824&&!(J&261930)?(ic=!0,e.memoizedState=n):(e=mu(),B.lanes|=e,Gl|=e,t):(e=xs(e,n,r),Cr(e,t)||(ic=!0),e)}function Cs(e,t,n,r,i){var a=M.p;M.p=a!==0&&8>a?a:8;var o=j.T,s={};j.T=s,Fs(e,!1,t,n);try{var c=i(),l=j.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?Ps(e,t,ga(c,r),pu(e)):Ps(e,t,r,pu(e))}catch(n){Ps(e,t,{then:function(){},status:`rejected`,reason:n},pu())}finally{M.p=a,o!==null&&s.types!==null&&(o.types=s.types),j.T=o}}function ws(){}function Ts(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=Es(e).queue;Cs(e,a,t,ae,n===null?ws:function(){return Ds(e),n(r)})}function Es(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:ae,baseState:ae,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Io,lastRenderedState:ae},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Io,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Ds(e){var t=Es(e);t.next===null&&(t=e.alternate.memoizedState),Ps(e,t.next.queue,{},pu())}function Os(){return ta(Qf)}function ks(){return jo().memoizedState}function As(){return jo().memoizedState}function js(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=pu();e=Ua(n);var r=Wa(t,e,n);r!==null&&(hu(r,t,n),Ga(r,t,n)),t={cache:ca()},e.payload=t;return}t=t.return}}function Ms(e,t,n){var r=pu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Is(e)?Ls(t,n):(n=ri(e,t,n,r),n!==null&&(hu(n,e,r),Rs(n,t,r)))}function Ns(e,t,n){Ps(e,t,n,pu())}function Ps(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Is(e))Ls(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,Cr(s,o))return ni(e,t,i,0),K===null&&ti(),!1}catch{}if(n=ri(e,t,i,r),n!==null)return hu(n,e,r),Rs(n,t,r),!0}return!1}function Fs(e,t,n,r){if(r={lane:2,revertLane:dd(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Is(e)){if(t)throw Error(i(479))}else t=ri(e,n,r,2),t!==null&&hu(t,e,2)}function Is(e){var t=e.alternate;return e===B||t!==null&&t===B}function Ls(e,t){go=ho=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Rs(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,et(e,n)}}var zs={readContext:ta,use:Po,useCallback:H,useContext:H,useEffect:H,useImperativeHandle:H,useLayoutEffect:H,useInsertionEffect:H,useMemo:H,useReducer:H,useRef:H,useState:H,useDebugValue:H,useDeferredValue:H,useTransition:H,useSyncExternalStore:H,useId:H,useHostTransitionStatus:H,useFormState:H,useActionState:H,useOptimistic:H,useMemoCache:H,useCacheRefresh:H};zs.useEffectEvent=H;var Bs={readContext:ta,use:Po,useCallback:function(e,t){return Ao().memoizedState=[e,t===void 0?null:t],e},useContext:ta,useEffect:us,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),cs(4194308,4,gs.bind(null,t,e),n)},useLayoutEffect:function(e,t){return cs(4194308,4,e,t)},useInsertionEffect:function(e,t){cs(4,2,e,t)},useMemo:function(e,t){var n=Ao();t=t===void 0?null:t;var r=e();if(_o){Re(!0);try{e()}finally{Re(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=Ao();if(n!==void 0){var i=n(t);if(_o){Re(!0);try{n(t)}finally{Re(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=Ms.bind(null,B,e),[r.memoizedState,e]},useRef:function(e){var t=Ao();return e={current:e},t.memoizedState=e},useState:function(e){e=Ko(e);var t=e.queue,n=Ns.bind(null,B,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:vs,useDeferredValue:function(e,t){return xs(Ao(),e,t)},useTransition:function(){var e=Ko(!1);return e=Cs.bind(null,B,e.queue,!0,!1),Ao().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=B,a=Ao();if(z){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),K===null)throw Error(i(349));J&127||Vo(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,us(Uo.bind(null,r,o,e),[e]),r.flags|=2048,os(9,{destroy:void 0},Ho.bind(null,r,o,n,t),null),n},useId:function(){var e=Ao(),t=K.identifierPrefix;if(z){var n=Oi,r=Di;n=(r&~(1<<32-L(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=vo++,0<n&&(t+=`H`+n.toString(32)),t+=`_`}else n=xo++,t=`_`+t+`r_`+n.toString(32)+`_`;return e.memoizedState=t},useHostTransitionStatus:Os,useFormState:ts,useActionState:ts,useOptimistic:function(e){var t=Ao();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=Fs.bind(null,B,!0,n),n.dispatch=t,[e,t]},useMemoCache:Fo,useCacheRefresh:function(){return Ao().memoizedState=js.bind(null,B)},useEffectEvent:function(e){var t=Ao(),n={impl:e};return t.memoizedState=n,function(){if(G&2)throw Error(i(440));return n.impl.apply(void 0,arguments)}}},Vs={readContext:ta,use:Po,useCallback:ys,useContext:ta,useEffect:ds,useImperativeHandle:_s,useInsertionEffect:ms,useLayoutEffect:hs,useMemo:bs,useReducer:Lo,useRef:ss,useState:function(){return Lo(Io)},useDebugValue:vs,useDeferredValue:function(e,t){return Ss(jo(),V.memoizedState,e,t)},useTransition:function(){var e=Lo(Io)[0],t=jo().memoizedState;return[typeof e==`boolean`?e:No(e),t]},useSyncExternalStore:Bo,useId:ks,useHostTransitionStatus:Os,useFormState:ns,useActionState:ns,useOptimistic:function(e,t){return qo(jo(),V,e,t)},useMemoCache:Fo,useCacheRefresh:As};Vs.useEffectEvent=ps;var Hs={readContext:ta,use:Po,useCallback:ys,useContext:ta,useEffect:ds,useImperativeHandle:_s,useInsertionEffect:ms,useLayoutEffect:hs,useMemo:bs,useReducer:zo,useRef:ss,useState:function(){return zo(Io)},useDebugValue:vs,useDeferredValue:function(e,t){var n=jo();return V===null?xs(n,e,t):Ss(n,V.memoizedState,e,t)},useTransition:function(){var e=zo(Io)[0],t=jo().memoizedState;return[typeof e==`boolean`?e:No(e),t]},useSyncExternalStore:Bo,useId:ks,useHostTransitionStatus:Os,useFormState:as,useActionState:as,useOptimistic:function(e,t){var n=jo();return V===null?(n.baseState=e,[e,n.queue.dispatch]):qo(n,V,e,t)},useMemoCache:Fo,useCacheRefresh:As};Hs.useEffectEvent=ps;function Us(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:h({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Ws={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=pu(),i=Ua(r);i.payload=t,n!=null&&(i.callback=n),t=Wa(e,i,r),t!==null&&(hu(t,e,r),Ga(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=pu(),i=Ua(r);i.tag=1,i.payload=t,n!=null&&(i.callback=n),t=Wa(e,i,r),t!==null&&(hu(t,e,r),Ga(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=pu(),r=Ua(n);r.tag=2,t!=null&&(r.callback=t),t=Wa(e,r,n),t!==null&&(hu(t,e,n),Ga(t,e,n))}};function Gs(e,t,n,r,i,a,o){return e=e.stateNode,typeof e.shouldComponentUpdate==`function`?e.shouldComponentUpdate(r,a,o):t.prototype&&t.prototype.isPureReactComponent?!wr(n,r)||!wr(i,a):!0}function Ks(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps==`function`&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps==`function`&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Ws.enqueueReplaceState(t,t.state,null)}function qs(e,t){var n=t;if(`ref`in t)for(var r in n={},t)r!==`ref`&&(n[r]=t[r]);if(e=e.defaultProps)for(var i in n===t&&(n=h({},n)),e)n[i]===void 0&&(n[i]=e[i]);return n}function Js(e){Zr(e)}function Ys(e){console.error(e)}function Xs(e){Zr(e)}function Zs(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(e){setTimeout(function(){throw e})}}function Qs(e,t,n){try{var r=e.onCaughtError;r(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function $s(e,t,n){return n=Ua(n),n.tag=3,n.payload={element:null},n.callback=function(){Zs(e,t)},n}function ec(e){return e=Ua(e),e.tag=3,e}function tc(e,t,n,r){var i=n.type.getDerivedStateFromError;if(typeof i==`function`){var a=r.value;e.payload=function(){return i(a)},e.callback=function(){Qs(t,n,r)}}var o=n.stateNode;o!==null&&typeof o.componentDidCatch==`function`&&(e.callback=function(){Qs(t,n,r),typeof i!=`function`&&(ru===null?ru=new Set([this]):ru.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:e===null?``:e})})}function nc(e,t,n,r,a){if(n.flags|=32768,typeof r==`object`&&r&&typeof r.then==`function`){if(t=n.alternate,t!==null&&Qi(t,n,a,!0),n=ro.current,n!==null){switch(n.tag){case 31:case 13:return io===null?Du():n.alternate===null&&X===0&&(X=3),n.flags&=-257,n.flags|=65536,n.lanes=a,r===Ta?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([r]):t.add(r),Gu(e,r,a)),!1;case 22:return n.flags|=65536,r===Ta?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([r])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([r]):n.add(r)),Gu(e,r,a)),!1}throw Error(i(435,n.tag))}return Gu(e,r,a),Du(),!1}if(z)return t=ro.current,t===null?(r!==Li&&(t=Error(i(423),{cause:r}),Wi(yi(t,n))),e=e.current.alternate,e.flags|=65536,a&=-a,e.lanes|=a,r=yi(r,n),a=$s(e.stateNode,r,a),Ka(e,a),X!==4&&(X=2)):(!(t.flags&65536)&&(t.flags|=256),t.flags|=65536,t.lanes=a,r!==Li&&(e=Error(i(422),{cause:r}),Wi(yi(e,n)))),!1;var o=Error(i(520),{cause:r});if(o=yi(o,n),Xl===null?Xl=[o]:Xl.push(o),X!==4&&(X=2),t===null)return!0;r=yi(r,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=a&-a,n.lanes|=e,e=$s(n.stateNode,r,e),Ka(n,e),!1;case 1:if(t=n.type,o=n.stateNode,!(n.flags&128)&&(typeof t.getDerivedStateFromError==`function`||o!==null&&typeof o.componentDidCatch==`function`&&(ru===null||!ru.has(o))))return n.flags|=65536,a&=-a,n.lanes|=a,a=ec(a),tc(a,e,n,r),Ka(n,a),!1}n=n.return}while(n!==null);return!1}var rc=Error(i(461)),ic=!1;function ac(e,t,n,r){t.child=e===null?za(t,null,n,r):Ra(t,e.child,n,r)}function oc(e,t,n,r,i){n=n.render;var a=t.ref;if(`ref`in r){var o={};for(var s in r)s!==`ref`&&(o[s]=r[s])}else o=r;return ea(t),r=Co(e,t,n,o,a,i),s=Do(),e!==null&&!ic?(Oo(e,t,i),Ac(e,t,i)):(z&&s&&ji(t),t.flags|=1,ac(e,t,r,i),t.child)}function sc(e,t,n,r,i){if(e===null){var a=n.type;return typeof a==`function`&&!ui(a)&&a.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=a,cc(e,t,a,r,i)):(e=pi(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(a=e.child,!jc(e,i)){var o=a.memoizedProps;if(n=n.compare,n=n===null?wr:n,n(o,r)&&e.ref===t.ref)return Ac(e,t,i)}return t.flags|=1,e=di(a,r),e.ref=t.ref,e.return=t,t.child=e}function cc(e,t,n,r,i){if(e!==null){var a=e.memoizedProps;if(wr(a,r)&&e.ref===t.ref)if(ic=!1,t.pendingProps=r=a,jc(e,i))e.flags&131072&&(ic=!0);else return t.lanes=e.lanes,Ac(e,t,i)}return gc(e,t,n,r,i)}function lc(e,t,n,r){var i=r.children,a=e===null?null:e.memoizedState;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),r.mode===`hidden`){if(t.flags&128){if(a=a===null?n:a.baseLanes|n,e!==null){for(r=t.child=e.child,i=0;r!==null;)i=i|r.lanes|r.childLanes,r=r.sibling;r=i&~a}else r=0,t.child=null;return dc(e,t,a,n,r)}if(n&536870912)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&ba(t,a===null?null:a.cachePool),a===null?to():eo(t,a),so(t);else return r=t.lanes=536870912,dc(e,t,a===null?n:a.baseLanes|n,n,r)}else a===null?(e!==null&&ba(t,null),to(),co(t)):(ba(t,a.cachePool),eo(t,a),co(t),t.memoizedState=null);return ac(e,t,i,n),t.child}function uc(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function dc(e,t,n,r,i){var a=ya();return a=a===null?null:{parent:sa._currentValue,pool:a},t.memoizedState={baseLanes:n,cachePool:a},e!==null&&ba(t,null),to(),so(t),e!==null&&Qi(e,t,r,!0),t.childLanes=i,null}function fc(e,t){return t=Tc({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function pc(e,t,n){return Ra(t,e.child,null,n),e=fc(t,t.pendingProps),e.flags|=2,lo(t),t.memoizedState=null,e}function mc(e,t,n){var r=t.pendingProps,a=(t.flags&128)!=0;if(t.flags&=-129,e===null){if(z){if(r.mode===`hidden`)return e=fc(t,r),t.lanes=536870912,uc(null,e);if(oo(t),(e=R)?(e=rf(e,Ii),e=e!==null&&e.data===`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:Ei===null?null:{id:Di,overflow:Oi},retryLane:536870912,hydrationErrors:null},n=gi(e),n.return=t,t.child=n,Pi=t,R=null)):e=null,e===null)throw Ri(t);return t.lanes=536870912,null}return fc(t,r)}var o=e.memoizedState;if(o!==null){var s=o.dehydrated;if(oo(t),a)if(t.flags&256)t.flags&=-257,t=pc(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(i(558));else if(ic||Qi(e,t,n,!1),a=(n&e.childLanes)!==0,ic||a){if(r=K,r!==null&&(s=tt(r,n),s!==0&&s!==o.retryLane))throw o.retryLane=s,ii(e,s),hu(r,e,s),rc;Du(),t=pc(e,t,n)}else e=o.treeContext,R=cf(s.nextSibling),Pi=t,z=!0,Fi=null,Ii=!1,e!==null&&Ni(t,e),t=fc(t,r),t.flags|=4096;return t}return e=di(e.child,{mode:r.mode,children:r.children}),e.ref=t.ref,t.child=e,e.return=t,e}function hc(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!=`function`&&typeof n!=`object`)throw Error(i(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function gc(e,t,n,r,i){return ea(t),n=Co(e,t,n,r,void 0,i),r=Do(),e!==null&&!ic?(Oo(e,t,i),Ac(e,t,i)):(z&&r&&ji(t),t.flags|=1,ac(e,t,n,i),t.child)}function _c(e,t,n,r,i,a){return ea(t),t.updateQueue=null,n=To(t,r,n,i),wo(e),r=Do(),e!==null&&!ic?(Oo(e,t,a),Ac(e,t,a)):(z&&r&&ji(t),t.flags|=1,ac(e,t,n,a),t.child)}function vc(e,t,n,r,i){if(ea(t),t.stateNode===null){var a=si,o=n.contextType;typeof o==`object`&&o&&(a=ta(o)),a=new n(r,a),t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,a.updater=Ws,t.stateNode=a,a._reactInternals=t,a=t.stateNode,a.props=r,a.state=t.memoizedState,a.refs={},Va(t),o=n.contextType,a.context=typeof o==`object`&&o?ta(o):si,a.state=t.memoizedState,o=n.getDerivedStateFromProps,typeof o==`function`&&(Us(t,n,o,r),a.state=t.memoizedState),typeof n.getDerivedStateFromProps==`function`||typeof a.getSnapshotBeforeUpdate==`function`||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(o=a.state,typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount(),o!==a.state&&Ws.enqueueReplaceState(a,a.state,null),Ya(t,r,a,i),Ja(),a.state=t.memoizedState),typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!0}else if(e===null){a=t.stateNode;var s=t.memoizedProps,c=qs(n,s);a.props=c;var l=a.context,u=n.contextType;o=si,typeof u==`object`&&u&&(o=ta(u));var d=n.getDerivedStateFromProps;u=typeof d==`function`||typeof a.getSnapshotBeforeUpdate==`function`,s=t.pendingProps!==s,u||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(s||l!==o)&&Ks(t,a,r,o),Ba=!1;var f=t.memoizedState;a.state=f,Ya(t,r,a,i),Ja(),l=t.memoizedState,s||f!==l||Ba?(typeof d==`function`&&(Us(t,n,d,r),l=t.memoizedState),(c=Ba||Gs(t,n,c,r,f,l,o))?(u||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount()),typeof a.componentDidMount==`function`&&(t.flags|=4194308)):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),a.props=r,a.state=l,a.context=o,r=c):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,Ha(e,t),o=t.memoizedProps,u=qs(n,o),a.props=u,d=t.pendingProps,f=a.context,l=n.contextType,c=si,typeof l==`object`&&l&&(c=ta(l)),s=n.getDerivedStateFromProps,(l=typeof s==`function`||typeof a.getSnapshotBeforeUpdate==`function`)||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(o!==d||f!==c)&&Ks(t,a,r,c),Ba=!1,f=t.memoizedState,a.state=f,Ya(t,r,a,i),Ja();var p=t.memoizedState;o!==d||f!==p||Ba||e!==null&&e.dependencies!==null&&$i(e.dependencies)?(typeof s==`function`&&(Us(t,n,s,r),p=t.memoizedState),(u=Ba||Gs(t,n,u,r,f,p,c)||e!==null&&e.dependencies!==null&&$i(e.dependencies))?(l||typeof a.UNSAFE_componentWillUpdate!=`function`&&typeof a.componentWillUpdate!=`function`||(typeof a.componentWillUpdate==`function`&&a.componentWillUpdate(r,p,c),typeof a.UNSAFE_componentWillUpdate==`function`&&a.UNSAFE_componentWillUpdate(r,p,c)),typeof a.componentDidUpdate==`function`&&(t.flags|=4),typeof a.getSnapshotBeforeUpdate==`function`&&(t.flags|=1024)):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),a.props=r,a.state=p,a.context=c,r=u):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return a=r,hc(e,t),r=(t.flags&128)!=0,a||r?(a=t.stateNode,n=r&&typeof n.getDerivedStateFromError!=`function`?null:a.render(),t.flags|=1,e!==null&&r?(t.child=Ra(t,e.child,null,i),t.child=Ra(t,null,n,i)):ac(e,t,n,i),t.memoizedState=a.state,e=t.child):e=Ac(e,t,i),e}function yc(e,t,n,r){return Hi(),t.flags|=256,ac(e,t,n,r),t.child}var bc={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function xc(e){return{baseLanes:e,cachePool:xa()}}function Sc(e,t,n){return e=e===null?0:e.childLanes&~n,t&&(e|=Jl),e}function Cc(e,t,n){var r=t.pendingProps,a=!1,o=(t.flags&128)!=0,s;if((s=o)||(s=e!==null&&e.memoizedState===null?!1:(uo.current&2)!=0),s&&(a=!0,t.flags&=-129),s=(t.flags&32)!=0,t.flags&=-33,e===null){if(z){if(a?ao(t):co(t),(e=R)?(e=rf(e,Ii),e=e!==null&&e.data!==`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:Ei===null?null:{id:Di,overflow:Oi},retryLane:536870912,hydrationErrors:null},n=gi(e),n.return=t,t.child=n,Pi=t,R=null)):e=null,e===null)throw Ri(t);return of(e)?t.lanes=32:t.lanes=536870912,null}var c=r.children;return r=r.fallback,a?(co(t),a=t.mode,c=Tc({mode:`hidden`,children:c},a),r=mi(r,a,n,null),c.return=t,r.return=t,c.sibling=r,t.child=c,r=t.child,r.memoizedState=xc(n),r.childLanes=Sc(e,s,n),t.memoizedState=bc,uc(null,r)):(ao(t),wc(t,c))}var l=e.memoizedState;if(l!==null&&(c=l.dehydrated,c!==null)){if(o)t.flags&256?(ao(t),t.flags&=-257,t=Ec(e,t,n)):t.memoizedState===null?(co(t),c=r.fallback,a=t.mode,r=Tc({mode:`visible`,children:r.children},a),c=mi(c,a,n,null),c.flags|=2,r.return=t,c.return=t,r.sibling=c,t.child=r,Ra(t,e.child,null,n),r=t.child,r.memoizedState=xc(n),r.childLanes=Sc(e,s,n),t.memoizedState=bc,t=uc(null,r)):(co(t),t.child=e.child,t.flags|=128,t=null);else if(ao(t),of(c)){if(s=c.nextSibling&&c.nextSibling.dataset,s)var u=s.dgst;s=u,r=Error(i(419)),r.stack=``,r.digest=s,Wi({value:r,source:null,stack:null}),t=Ec(e,t,n)}else if(ic||Qi(e,t,n,!1),s=(n&e.childLanes)!==0,ic||s){if(s=K,s!==null&&(r=tt(s,n),r!==0&&r!==l.retryLane))throw l.retryLane=r,ii(e,r),hu(s,e,r),rc;af(c)||Du(),t=Ec(e,t,n)}else af(c)?(t.flags|=192,t.child=e.child,t=null):(e=l.treeContext,R=cf(c.nextSibling),Pi=t,z=!0,Fi=null,Ii=!1,e!==null&&Ni(t,e),t=wc(t,r.children),t.flags|=4096);return t}return a?(co(t),c=r.fallback,a=t.mode,l=e.child,u=l.sibling,r=di(l,{mode:`hidden`,children:r.children}),r.subtreeFlags=l.subtreeFlags&65011712,u===null?(c=mi(c,a,n,null),c.flags|=2):c=di(u,c),c.return=t,r.return=t,r.sibling=c,t.child=r,uc(null,r),r=t.child,c=e.child.memoizedState,c===null?c=xc(n):(a=c.cachePool,a===null?a=xa():(l=sa._currentValue,a=a.parent===l?a:{parent:l,pool:l}),c={baseLanes:c.baseLanes|n,cachePool:a}),r.memoizedState=c,r.childLanes=Sc(e,s,n),t.memoizedState=bc,uc(e.child,r)):(ao(t),n=e.child,e=n.sibling,n=di(n,{mode:`visible`,children:r.children}),n.return=t,n.sibling=null,e!==null&&(s=t.deletions,s===null?(t.deletions=[e],t.flags|=16):s.push(e)),t.child=n,t.memoizedState=null,n)}function wc(e,t){return t=Tc({mode:`visible`,children:t},e.mode),t.return=e,e.child=t}function Tc(e,t){return e=li(22,e,null,t),e.lanes=0,e}function Ec(e,t,n){return Ra(t,e.child,null,n),e=wc(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Dc(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Xi(e.return,t,n)}function Oc(e,t,n,r,i,a){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i,treeForkCount:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=i,o.treeForkCount=a)}function kc(e,t,n){var r=t.pendingProps,i=r.revealOrder,a=r.tail;r=r.children;var o=uo.current,s=(o&2)!=0;if(s?(o=o&1|2,t.flags|=128):o&=1,I(uo,o),ac(e,t,r,n),r=z?Ci:0,!s&&e!==null&&e.flags&128)a:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Dc(e,n,t);else if(e.tag===19)Dc(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break a;for(;e.sibling===null;){if(e.return===null||e.return===t)break a;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(i){case`forwards`:for(n=t.child,i=null;n!==null;)e=n.alternate,e!==null&&fo(e)===null&&(i=n),n=n.sibling;n=i,n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),Oc(t,!1,i,n,a,r);break;case`backwards`:case`unstable_legacy-backwards`:for(n=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&fo(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}Oc(t,!0,n,null,a,r);break;case`together`:Oc(t,!1,null,null,void 0,r);break;default:t.memoizedState=null}return t.child}function Ac(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Gl|=t.lanes,(n&t.childLanes)===0)if(e!==null){if(Qi(e,t,n,!1),(n&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(i(153));if(t.child!==null){for(e=t.child,n=di(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=di(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function jc(e,t){return(e.lanes&t)===0?(e=e.dependencies,!!(e!==null&&$i(e))):!0}function Mc(e,t,n){switch(t.tag){case 3:de(t,t.stateNode.containerInfo),Ji(t,sa,e.memoizedState.cache),Hi();break;case 27:case 5:pe(t);break;case 4:de(t,t.stateNode.containerInfo);break;case 10:Ji(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,oo(t),null;break;case 13:var r=t.memoizedState;if(r!==null)return r.dehydrated===null?(n&t.child.childLanes)===0?(ao(t),e=Ac(e,t,n),e===null?null:e.sibling):Cc(e,t,n):(ao(t),t.flags|=128,null);ao(t);break;case 19:var i=(e.flags&128)!=0;if(r=(n&t.childLanes)!==0,r||=(Qi(e,t,n,!1),(n&t.childLanes)!==0),i){if(r)return kc(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),I(uo,uo.current),r)break;return null;case 22:return t.lanes=0,lc(e,t,n,t.pendingProps);case 24:Ji(t,sa,e.memoizedState.cache)}return Ac(e,t,n)}function Nc(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps)ic=!0;else{if(!jc(e,n)&&!(t.flags&128))return ic=!1,Mc(e,t,n);ic=!!(e.flags&131072)}else ic=!1,z&&t.flags&1048576&&Ai(t,Ci,t.index);switch(t.lanes=0,t.tag){case 16:a:{var r=t.pendingProps;if(e=Oa(t.elementType),t.type=e,typeof e==`function`)ui(e)?(r=qs(e,r),t.tag=1,t=vc(null,t,e,r,n)):(t.tag=0,t=gc(null,t,e,r,n));else{if(e!=null){var a=e.$$typeof;if(a===w){t.tag=11,t=oc(null,t,e,r,n);break a}else if(a===ee){t.tag=14,t=sc(null,t,e,r,n);break a}}throw t=A(e)||e,Error(i(306,t,``))}}return t;case 0:return gc(e,t,t.type,t.pendingProps,n);case 1:return r=t.type,a=qs(r,t.pendingProps),vc(e,t,r,a,n);case 3:a:{if(de(t,t.stateNode.containerInfo),e===null)throw Error(i(387));r=t.pendingProps;var o=t.memoizedState;a=o.element,Ha(e,t),Ya(t,r,null,n);var s=t.memoizedState;if(r=s.cache,Ji(t,sa,r),r!==o.cache&&Zi(t,[sa],n,!0),Ja(),r=s.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:s.cache},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){t=yc(e,t,r,n);break a}else if(r!==a){a=yi(Error(i(424)),t),Wi(a),t=yc(e,t,r,n);break a}else{switch(e=t.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName===`HTML`?e.ownerDocument.body:e}for(R=cf(e.firstChild),Pi=t,z=!0,Fi=null,Ii=!0,n=za(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(Hi(),r===a){t=Ac(e,t,n);break a}ac(e,t,r,n)}t=t.child}return t;case 26:return hc(e,t),e===null?(n=kf(t.type,null,t.pendingProps,null))?t.memoizedState=n:z||(n=t.type,e=t.pendingProps,r=Bd(le.current).createElement(n),r[st]=t,r[ct]=e,Pd(r,n,e),bt(r),t.stateNode=r):t.memoizedState=kf(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return pe(t),e===null&&z&&(r=t.stateNode=ff(t.type,t.pendingProps,le.current),Pi=t,Ii=!0,a=R,Zd(t.type)?(lf=a,R=cf(r.firstChild)):R=a),ac(e,t,t.pendingProps.children,n),hc(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&z&&((a=r=R)&&(r=tf(r,t.type,t.pendingProps,Ii),r===null?a=!1:(t.stateNode=r,Pi=t,R=cf(r.firstChild),Ii=!1,a=!0)),a||Ri(t)),pe(t),a=t.type,o=t.pendingProps,s=e===null?null:e.memoizedProps,r=o.children,Ud(a,o)?r=null:s!==null&&Ud(a,s)&&(t.flags|=32),t.memoizedState!==null&&(a=Co(e,t,Eo,null,null,n),Qf._currentValue=a),hc(e,t),ac(e,t,r,n),t.child;case 6:return e===null&&z&&((e=n=R)&&(n=nf(n,t.pendingProps,Ii),n===null?e=!1:(t.stateNode=n,Pi=t,R=null,e=!0)),e||Ri(t)),null;case 13:return Cc(e,t,n);case 4:return de(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Ra(t,null,r,n):ac(e,t,r,n),t.child;case 11:return oc(e,t,t.type,t.pendingProps,n);case 7:return ac(e,t,t.pendingProps,n),t.child;case 8:return ac(e,t,t.pendingProps.children,n),t.child;case 12:return ac(e,t,t.pendingProps.children,n),t.child;case 10:return r=t.pendingProps,Ji(t,t.type,r.value),ac(e,t,r.children,n),t.child;case 9:return a=t.type._context,r=t.pendingProps.children,ea(t),a=ta(a),r=r(a),t.flags|=1,ac(e,t,r,n),t.child;case 14:return sc(e,t,t.type,t.pendingProps,n);case 15:return cc(e,t,t.type,t.pendingProps,n);case 19:return kc(e,t,n);case 31:return mc(e,t,n);case 22:return lc(e,t,n,t.pendingProps);case 24:return ea(t),r=ta(sa),e===null?(a=ya(),a===null&&(a=K,o=ca(),a.pooledCache=o,o.refCount++,o!==null&&(a.pooledCacheLanes|=n),a=o),t.memoizedState={parent:r,cache:a},Va(t),Ji(t,sa,a)):((e.lanes&n)!==0&&(Ha(e,t),Ya(t,null,null,n),Ja()),a=e.memoizedState,o=t.memoizedState,a.parent===r?(r=o.cache,Ji(t,sa,r),r!==a.cache&&Zi(t,[sa],n,!0)):(a={parent:r,cache:r},t.memoizedState=a,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=a),Ji(t,sa,r))),ac(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(i(156,t.tag))}function Pc(e){e.flags|=4}function Fc(e,t,n,r,i){if((t=(e.mode&32)!=0)&&(t=!1),t){if(e.flags|=16777216,(i&335544128)===i)if(e.stateNode.complete)e.flags|=8192;else if(wu())e.flags|=8192;else throw ka=Ta,Ca}else e.flags&=-16777217}function Ic(e,t){if(t.type!==`stylesheet`||t.state.loading&4)e.flags&=-16777217;else if(e.flags|=16777216,!Wf(t))if(wu())e.flags|=8192;else throw ka=Ta,Ca}function Lc(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag===22?536870912:Ye(),e.lanes|=t,Yl|=t)}function Rc(e,t){if(!z)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 U(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags&65011712,r|=i.flags&65011712,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function zc(e,t,n){var r=t.pendingProps;switch(Mi(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return U(t),null;case 1:return U(t),null;case 3:return n=t.stateNode,r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),Yi(sa),fe(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(Vi(t)?Pc(t):e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Ui())),U(t),null;case 26:var a=t.type,o=t.memoizedState;return e===null?(Pc(t),o===null?(U(t),Fc(t,a,null,r,n)):(U(t),Ic(t,o))):o?o===e.memoizedState?(U(t),t.flags&=-16777217):(Pc(t),U(t),Ic(t,o)):(e=e.memoizedProps,e!==r&&Pc(t),U(t),Fc(t,a,e,r,n)),null;case 27:if(me(t),n=le.current,a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&Pc(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return U(t),null}e=se.current,Vi(t)?zi(t,e):(e=ff(a,r,n),t.stateNode=e,Pc(t))}return U(t),null;case 5:if(me(t),a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&Pc(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return U(t),null}if(o=se.current,Vi(t))zi(t,o);else{var s=Bd(le.current);switch(o){case 1:o=s.createElementNS(`http://www.w3.org/2000/svg`,a);break;case 2:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,a);break;default:switch(a){case`svg`:o=s.createElementNS(`http://www.w3.org/2000/svg`,a);break;case`math`:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,a);break;case`script`:o=s.createElement(`div`),o.innerHTML=`<script><\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(a,{is:r.is}):s.createElement(a)}}o[st]=t,o[ct]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(Pd(o,a,r),a){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&Pc(t)}}return U(t),Fc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&Pc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=le.current,Vi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=Pi,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[st]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Md(e.nodeValue,n)),e||Ri(t,!0)}else e=Bd(e).createTextNode(r),e[st]=t,t.stateNode=e}return U(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=Vi(t),n!==null){if(e===null){if(!r)throw Error(i(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(557));e[st]=t}else Hi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;U(t),e=!1}else n=Ui(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(lo(t),t):(lo(t),null);if(t.flags&128)throw Error(i(558))}return U(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=Vi(t),r!==null&&r.dehydrated!==null){if(e===null){if(!a)throw Error(i(318));if(a=t.memoizedState,a=a===null?null:a.dehydrated,!a)throw Error(i(317));a[st]=t}else Hi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;U(t),a=!1}else a=Ui(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(lo(t),t):(lo(t),null)}return lo(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,a=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(a=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Lc(t,t.updateQueue),U(t),null);case 4:return fe(),e===null&&Sd(t.stateNode.containerInfo),U(t),null;case 10:return Yi(t.type),U(t),null;case 19:if(F(uo),r=t.memoizedState,r===null)return U(t),null;if(a=(t.flags&128)!=0,o=r.rendering,o===null)if(a)Rc(r,!1);else{if(X!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=fo(e),o!==null){for(t.flags|=128,Rc(r,!1),e=o.updateQueue,t.updateQueue=e,Lc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)fi(n,e),n=n.sibling;return I(uo,uo.current&1|2),z&&ki(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&De()>tu&&(t.flags|=128,a=!0,Rc(r,!1),t.lanes=4194304)}else{if(!a)if(e=fo(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,Lc(t,e),Rc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!z)return U(t),null}else 2*De()-r.renderingStartTime>tu&&n!==536870912&&(t.flags|=128,a=!0,Rc(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(U(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=De(),e.sibling=null,n=uo.current,I(uo,a?n&1|2:n&1),z&&ki(t,r.treeForkCount),e);case 22:case 23:return lo(t),no(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(U(t),t.subtreeFlags&6&&(t.flags|=8192)):U(t),n=t.updateQueue,n!==null&&Lc(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&F(va),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Yi(sa),U(t),null;case 25:return null;case 30:return null}throw Error(i(156,t.tag))}function Bc(e,t){switch(Mi(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Yi(sa),fe(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return me(t),null;case 31:if(t.memoizedState!==null){if(lo(t),t.alternate===null)throw Error(i(340));Hi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(lo(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));Hi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return F(uo),null;case 4:return fe(),null;case 10:return Yi(t.type),null;case 22:case 23:return lo(t),no(),e!==null&&F(va),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Yi(sa),null;case 25:return null;default:return null}}function Vc(e,t){switch(Mi(t),t.tag){case 3:Yi(sa),fe();break;case 26:case 27:case 5:me(t);break;case 4:fe();break;case 31:t.memoizedState!==null&&lo(t);break;case 13:lo(t);break;case 19:F(uo);break;case 10:Yi(t.type);break;case 22:case 23:lo(t),no(),e!==null&&F(va);break;case 24:Yi(sa)}}function Hc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Z(t,t.return,e)}}function Uc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Z(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Z(t,t.return,e)}}function Wc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Za(t,n)}catch(t){Z(e,e.return,t)}}}function Gc(e,t,n){n.props=qs(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Z(e,t,n)}}function Kc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Z(e,t,n)}}function qc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null)if(typeof r==`function`)try{r()}catch(n){Z(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Z(e,t,n)}else n.current=null}function Jc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){Z(e,e.return,t)}}function Yc(e,t,n){try{var r=e.stateNode;Fd(r,e.type,n,t),r[ct]=t}catch(t){Z(e,e.return,t)}}function Xc(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Zd(e.type)||e.tag===4}function Zc(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||Xc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Zd(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Qc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=en));else if(r!==4&&(r===27&&Zd(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Qc(e,t,n),e=e.sibling;e!==null;)Qc(e,t,n),e=e.sibling}function $c(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&&(r===27&&Zd(e.type)&&(n=e.stateNode),e=e.child,e!==null))for($c(e,t,n),e=e.sibling;e!==null;)$c(e,t,n),e=e.sibling}function el(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Pd(t,r,n),t[st]=e,t[ct]=n}catch(t){Z(e,e.return,t)}}var tl=!1,nl=!1,rl=!1,il=typeof WeakSet==`function`?WeakSet:Set,al=null;function ol(e,t){if(e=e.containerInfo,Rd=sp,e=Or(e),kr(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||a!==0&&f.nodeType!==3||(c=s+a),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===a&&(c=s),p===o&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(zd={focusedElem:e,selectionRange:n},sp=!1,al=t;al!==null;)if(t=al,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,al=e;else for(;al!==null;){switch(t=al,o=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n<e.length;n++)a=e[n],a.ref.impl=a.nextImpl;break;case 11:case 15:break;case 1:if(e&1024&&o!==null){e=void 0,n=t,a=o.memoizedProps,o=o.memoizedState,r=n.stateNode;try{var h=qs(n.type,a);e=r.getSnapshotBeforeUpdate(h,o),r.__reactInternalSnapshotBeforeUpdate=e}catch(e){Z(n,n.return,e)}}break;case 3:if(e&1024){if(e=t.stateNode.containerInfo,n=e.nodeType,n===9)ef(e);else if(n===1)switch(e.nodeName){case`HEAD`:case`HTML`:case`BODY`:ef(e);break;default:e.textContent=``}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if(e&1024)throw Error(i(163))}if(e=t.sibling,e!==null){e.return=t.return,al=e;break}al=t.return}}function sl(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:xl(e,n),r&4&&Hc(5,n);break;case 1:if(xl(e,n),r&4)if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(e){Z(n,n.return,e)}else{var i=qs(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(i,t,e.__reactInternalSnapshotBeforeUpdate)}catch(e){Z(n,n.return,e)}}r&64&&Wc(n),r&512&&Kc(n,n.return);break;case 3:if(xl(e,n),r&64&&(e=n.updateQueue,e!==null)){if(t=null,n.child!==null)switch(n.child.tag){case 27:case 5:t=n.child.stateNode;break;case 1:t=n.child.stateNode}try{Za(e,t)}catch(e){Z(n,n.return,e)}}break;case 27:t===null&&r&4&&el(n);case 26:case 5:xl(e,n),t===null&&r&4&&Jc(n),r&512&&Kc(n,n.return);break;case 12:xl(e,n);break;case 31:xl(e,n),r&4&&fl(e,n);break;case 13:xl(e,n),r&4&&pl(e,n),r&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=Ju.bind(null,n),sf(e,n))));break;case 22:if(r=n.memoizedState!==null||tl,!r){t=t!==null&&t.memoizedState!==null||nl,i=tl;var a=nl;tl=r,(nl=t)&&!a?Cl(e,n,(n.subtreeFlags&8772)!=0):xl(e,n),tl=i,nl=a}break;case 30:break;default:xl(e,n)}}function cl(e){var t=e.alternate;t!==null&&(e.alternate=null,cl(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&ht(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var W=null,ll=!1;function ul(e,t,n){for(n=n.child;n!==null;)dl(e,t,n),n=n.sibling}function dl(e,t,n){if(Le&&typeof Le.onCommitFiberUnmount==`function`)try{Le.onCommitFiberUnmount(Ie,n)}catch{}switch(n.tag){case 26:nl||qc(n,t),ul(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:nl||qc(n,t);var r=W,i=ll;Zd(n.type)&&(W=n.stateNode,ll=!1),ul(e,t,n),pf(n.stateNode),W=r,ll=i;break;case 5:nl||qc(n,t);case 6:if(r=W,i=ll,W=null,ul(e,t,n),W=r,ll=i,W!==null)if(ll)try{(W.nodeType===9?W.body:W.nodeName===`HTML`?W.ownerDocument.body:W).removeChild(n.stateNode)}catch(e){Z(n,t,e)}else try{W.removeChild(n.stateNode)}catch(e){Z(n,t,e)}break;case 18:W!==null&&(ll?(e=W,Qd(e.nodeType===9?e.body:e.nodeName===`HTML`?e.ownerDocument.body:e,n.stateNode),Np(e)):Qd(W,n.stateNode));break;case 4:r=W,i=ll,W=n.stateNode.containerInfo,ll=!0,ul(e,t,n),W=r,ll=i;break;case 0:case 11:case 14:case 15:Uc(2,n,t),nl||Uc(4,n,t),ul(e,t,n);break;case 1:nl||(qc(n,t),r=n.stateNode,typeof r.componentWillUnmount==`function`&&Gc(n,t,r)),ul(e,t,n);break;case 21:ul(e,t,n);break;case 22:nl=(r=nl)||n.memoizedState!==null,ul(e,t,n),nl=r;break;default:ul(e,t,n)}}function fl(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Np(e)}catch(e){Z(t,t.return,e)}}}function pl(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Np(e)}catch(e){Z(t,t.return,e)}}function ml(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new il),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new il),t;default:throw Error(i(435,e.tag))}}function hl(e,t){var n=ml(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=Yu.bind(null,e,t);t.then(r,r)}})}function gl(e,t){var n=t.deletions;if(n!==null)for(var r=0;r<n.length;r++){var a=n[r],o=e,s=t,c=s;a:for(;c!==null;){switch(c.tag){case 27:if(Zd(c.type)){W=c.stateNode,ll=!1;break a}break;case 5:W=c.stateNode,ll=!1;break a;case 3:case 4:W=c.stateNode.containerInfo,ll=!0;break a}c=c.return}if(W===null)throw Error(i(160));dl(o,s,a),W=null,ll=!1,o=a.alternate,o!==null&&(o.return=null),a.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)vl(t,e),t=t.sibling}var _l=null;function vl(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:gl(t,e),yl(e),r&4&&(Uc(3,e,e.return),Hc(3,e),Uc(5,e,e.return));break;case 1:gl(t,e),yl(e),r&512&&(nl||n===null||qc(n,n.return)),r&64&&tl&&(e=e.updateQueue,e!==null&&(r=e.callbacks,r!==null&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=n===null?r:n.concat(r))));break;case 26:var a=_l;if(gl(t,e),yl(e),r&512&&(nl||n===null||qc(n,n.return)),r&4){var o=n===null?null:n.memoizedState;if(r=e.memoizedState,n===null)if(r===null)if(e.stateNode===null){a:{r=e.type,n=e.memoizedProps,a=a.ownerDocument||a;b:switch(r){case`title`:o=a.getElementsByTagName(`title`)[0],(!o||o[mt]||o[st]||o.namespaceURI===`http://www.w3.org/2000/svg`||o.hasAttribute(`itemprop`))&&(o=a.createElement(r),a.head.insertBefore(o,a.querySelector(`head > title`))),Pd(o,r,n),o[st]=e,bt(o),r=o;break a;case`link`:var s=Vf(`link`,`href`,a).get(r+(n.href||``));if(s){for(var c=0;c<s.length;c++)if(o=s[c],o.getAttribute(`href`)===(n.href==null||n.href===``?null:n.href)&&o.getAttribute(`rel`)===(n.rel==null?null:n.rel)&&o.getAttribute(`title`)===(n.title==null?null:n.title)&&o.getAttribute(`crossorigin`)===(n.crossOrigin==null?null:n.crossOrigin)){s.splice(c,1);break b}}o=a.createElement(r),Pd(o,r,n),a.head.appendChild(o);break;case`meta`:if(s=Vf(`meta`,`content`,a).get(r+(n.content||``))){for(c=0;c<s.length;c++)if(o=s[c],o.getAttribute(`content`)===(n.content==null?null:``+n.content)&&o.getAttribute(`name`)===(n.name==null?null:n.name)&&o.getAttribute(`property`)===(n.property==null?null:n.property)&&o.getAttribute(`http-equiv`)===(n.httpEquiv==null?null:n.httpEquiv)&&o.getAttribute(`charset`)===(n.charSet==null?null:n.charSet)){s.splice(c,1);break b}}o=a.createElement(r),Pd(o,r,n),a.head.appendChild(o);break;default:throw Error(i(468,r))}o[st]=e,bt(o),r=o}e.stateNode=r}else Hf(a,e.type,e.stateNode);else e.stateNode=If(a,r,e.memoizedProps);else o===r?r===null&&e.stateNode!==null&&Yc(e,e.memoizedProps,n.memoizedProps):(o===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):o.count--,r===null?Hf(a,e.type,e.stateNode):If(a,r,e.memoizedProps))}break;case 27:gl(t,e),yl(e),r&512&&(nl||n===null||qc(n,n.return)),n!==null&&r&4&&Yc(e,e.memoizedProps,n.memoizedProps);break;case 5:if(gl(t,e),yl(e),r&512&&(nl||n===null||qc(n,n.return)),e.flags&32){a=e.stateNode;try{Kt(a,``)}catch(t){Z(e,e.return,t)}}r&4&&e.stateNode!=null&&(a=e.memoizedProps,Yc(e,a,n===null?a:n.memoizedProps)),r&1024&&(rl=!0);break;case 6:if(gl(t,e),yl(e),r&4){if(e.stateNode===null)throw Error(i(162));r=e.memoizedProps,n=e.stateNode;try{n.nodeValue=r}catch(t){Z(e,e.return,t)}}break;case 3:if(Bf=null,a=_l,_l=gf(t.containerInfo),gl(t,e),_l=a,yl(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{Np(t.containerInfo)}catch(t){Z(e,e.return,t)}rl&&(rl=!1,bl(e));break;case 4:r=_l,_l=gf(e.stateNode.containerInfo),gl(t,e),yl(e),_l=r;break;case 12:gl(t,e),yl(e);break;case 31:gl(t,e),yl(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,hl(e,r)));break;case 13:gl(t,e),yl(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&($l=De()),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,hl(e,r)));break;case 22:a=e.memoizedState!==null;var l=n!==null&&n.memoizedState!==null,u=tl,d=nl;if(tl=u||a,nl=d||l,gl(t,e),nl=d,tl=u,yl(e),r&8192)a:for(t=e.stateNode,t._visibility=a?t._visibility&-2:t._visibility|1,a&&(n===null||l||tl||nl||Sl(e)),n=null,t=e;;){if(t.tag===5||t.tag===26){if(n===null){l=n=t;try{if(o=l.stateNode,a)s=o.style,typeof s.setProperty==`function`?s.setProperty(`display`,`none`,`important`):s.display=`none`;else{c=l.stateNode;var f=l.memoizedProps.style,p=f!=null&&f.hasOwnProperty(`display`)?f.display:null;c.style.display=p==null||typeof p==`boolean`?``:(``+p).trim()}}catch(e){Z(l,l.return,e)}}}else if(t.tag===6){if(n===null){l=t;try{l.stateNode.nodeValue=a?``:l.memoizedProps}catch(e){Z(l,l.return,e)}}}else if(t.tag===18){if(n===null){l=t;try{var m=l.stateNode;a?$d(m,!0):$d(l.stateNode,!1)}catch(e){Z(l,l.return,e)}}}else if((t.tag!==22&&t.tag!==23||t.memoizedState===null||t===e)&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break a;for(;t.sibling===null;){if(t.return===null||t.return===e)break a;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}r&4&&(r=e.updateQueue,r!==null&&(n=r.retryQueue,n!==null&&(r.retryQueue=null,hl(e,n))));break;case 19:gl(t,e),yl(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,hl(e,r)));break;case 30:break;case 21:break;default:gl(t,e),yl(e)}}function yl(e){var t=e.flags;if(t&2){try{for(var n,r=e.return;r!==null;){if(Xc(r)){n=r;break}r=r.return}if(n==null)throw Error(i(160));switch(n.tag){case 27:var a=n.stateNode;$c(e,Zc(e),a);break;case 5:var o=n.stateNode;n.flags&32&&(Kt(o,``),n.flags&=-33),$c(e,Zc(e),o);break;case 3:case 4:var s=n.stateNode.containerInfo;Qc(e,Zc(e),s);break;default:throw Error(i(161))}}catch(t){Z(e,e.return,t)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function bl(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;bl(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function xl(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)sl(e,t.alternate,t),t=t.sibling}function Sl(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:Uc(4,t,t.return),Sl(t);break;case 1:qc(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount==`function`&&Gc(t,t.return,n),Sl(t);break;case 27:pf(t.stateNode);case 26:case 5:qc(t,t.return),Sl(t);break;case 22:t.memoizedState===null&&Sl(t);break;case 30:Sl(t);break;default:Sl(t)}e=e.sibling}}function Cl(e,t,n){for(n&&=(t.subtreeFlags&8772)!=0,t=t.child;t!==null;){var r=t.alternate,i=e,a=t,o=a.flags;switch(a.tag){case 0:case 11:case 15:Cl(i,a,n),Hc(4,a);break;case 1:if(Cl(i,a,n),r=a,i=r.stateNode,typeof i.componentDidMount==`function`)try{i.componentDidMount()}catch(e){Z(r,r.return,e)}if(r=a,i=r.updateQueue,i!==null){var s=r.stateNode;try{var c=i.shared.hiddenCallbacks;if(c!==null)for(i.shared.hiddenCallbacks=null,i=0;i<c.length;i++)Xa(c[i],s)}catch(e){Z(r,r.return,e)}}n&&o&64&&Wc(a),Kc(a,a.return);break;case 27:el(a);case 26:case 5:Cl(i,a,n),n&&r===null&&o&4&&Jc(a),Kc(a,a.return);break;case 12:Cl(i,a,n);break;case 31:Cl(i,a,n),n&&o&4&&fl(i,a);break;case 13:Cl(i,a,n),n&&o&4&&pl(i,a);break;case 22:a.memoizedState===null&&Cl(i,a,n),Kc(a,a.return);break;case 30:break;default:Cl(i,a,n)}t=t.sibling}}function wl(e,t){var n=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==n&&(e!=null&&e.refCount++,n!=null&&la(n))}function Tl(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&la(e))}function El(e,t,n,r){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)Dl(e,t,n,r),t=t.sibling}function Dl(e,t,n,r){var i=t.flags;switch(t.tag){case 0:case 11:case 15:El(e,t,n,r),i&2048&&Hc(9,t);break;case 1:El(e,t,n,r);break;case 3:El(e,t,n,r),i&2048&&(e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&la(e)));break;case 12:if(i&2048){El(e,t,n,r),e=t.stateNode;try{var a=t.memoizedProps,o=a.id,s=a.onPostCommit;typeof s==`function`&&s(o,t.alternate===null?`mount`:`update`,e.passiveEffectDuration,-0)}catch(e){Z(t,t.return,e)}}else El(e,t,n,r);break;case 31:El(e,t,n,r);break;case 13:El(e,t,n,r);break;case 23:break;case 22:a=t.stateNode,o=t.alternate,t.memoizedState===null?a._visibility&2?El(e,t,n,r):(a._visibility|=2,Ol(e,t,n,r,(t.subtreeFlags&10256)!=0||!1)):a._visibility&2?El(e,t,n,r):kl(e,t),i&2048&&wl(o,t);break;case 24:El(e,t,n,r),i&2048&&Tl(t.alternate,t);break;default:El(e,t,n,r)}}function Ol(e,t,n,r,i){for(i&&=(t.subtreeFlags&10256)!=0||!1,t=t.child;t!==null;){var a=e,o=t,s=n,c=r,l=o.flags;switch(o.tag){case 0:case 11:case 15:Ol(a,o,s,c,i),Hc(8,o);break;case 23:break;case 22:var u=o.stateNode;o.memoizedState===null?(u._visibility|=2,Ol(a,o,s,c,i)):u._visibility&2?Ol(a,o,s,c,i):kl(a,o),i&&l&2048&&wl(o.alternate,o);break;case 24:Ol(a,o,s,c,i),i&&l&2048&&Tl(o.alternate,o);break;default:Ol(a,o,s,c,i)}t=t.sibling}}function kl(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var n=e,r=t,i=r.flags;switch(r.tag){case 22:kl(n,r),i&2048&&wl(r.alternate,r);break;case 24:kl(n,r),i&2048&&Tl(r.alternate,r);break;default:kl(n,r)}t=t.sibling}}var Al=8192;function jl(e,t,n){if(e.subtreeFlags&Al)for(e=e.child;e!==null;)Ml(e,t,n),e=e.sibling}function Ml(e,t,n){switch(e.tag){case 26:jl(e,t,n),e.flags&Al&&e.memoizedState!==null&&Gf(n,_l,e.memoizedState,e.memoizedProps);break;case 5:jl(e,t,n);break;case 3:case 4:var r=_l;_l=gf(e.stateNode.containerInfo),jl(e,t,n),_l=r;break;case 22:e.memoizedState===null&&(r=e.alternate,r!==null&&r.memoizedState!==null?(r=Al,Al=16777216,jl(e,t,n),Al=r):jl(e,t,n));break;default:jl(e,t,n)}}function Nl(e){var t=e.alternate;if(t!==null&&(e=t.child,e!==null)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(e!==null)}}function Pl(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];al=r,Ll(r,e)}Nl(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)Fl(e),e=e.sibling}function Fl(e){switch(e.tag){case 0:case 11:case 15:Pl(e),e.flags&2048&&Uc(9,e,e.return);break;case 3:Pl(e);break;case 12:Pl(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,Il(e)):Pl(e);break;default:Pl(e)}}function Il(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];al=r,Ll(r,e)}Nl(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:Uc(8,t,t.return),Il(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,Il(t));break;default:Il(t)}e=e.sibling}}function Ll(e,t){for(;al!==null;){var n=al;switch(n.tag){case 0:case 11:case 15:Uc(8,n,t);break;case 23:case 22:if(n.memoizedState!==null&&n.memoizedState.cachePool!==null){var r=n.memoizedState.cachePool.pool;r!=null&&r.refCount++}break;case 24:la(n.memoizedState.cache)}if(r=n.child,r!==null)r.return=n,al=r;else a:for(n=e;al!==null;){r=al;var i=r.sibling,a=r.return;if(cl(r),r===n){al=null;break a}if(i!==null){i.return=a,al=i;break a}al=a}}}var Rl={getCacheForType:function(e){var t=ta(sa),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return ta(sa).controller.signal}},zl=typeof WeakMap==`function`?WeakMap:Map,G=0,K=null,q=null,J=0,Y=0,Bl=null,Vl=!1,Hl=!1,Ul=!1,Wl=0,X=0,Gl=0,Kl=0,ql=0,Jl=0,Yl=0,Xl=null,Zl=null,Ql=!1,$l=0,eu=0,tu=1/0,nu=null,ru=null,iu=0,au=null,ou=null,su=0,cu=0,lu=null,uu=null,du=0,fu=null;function pu(){return G&2&&J!==0?J&-J:j.T===null?it():dd()}function mu(){if(Jl===0)if(!(J&536870912)||z){var e=Ue;Ue<<=1,!(Ue&3932160)&&(Ue=262144),Jl=e}else Jl=536870912;return e=ro.current,e!==null&&(e.flags|=32),Jl}function hu(e,t,n){(e===K&&(Y===2||Y===9)||e.cancelPendingCommit!==null)&&(Su(e,0),yu(e,J,Jl,!1)),Ze(e,n),(!(G&2)||e!==K)&&(e===K&&(!(G&2)&&(Kl|=n),X===4&&yu(e,J,Jl,!1)),rd(e))}function gu(e,t,n){if(G&6)throw Error(i(327));var r=!n&&(t&127)==0&&(t&e.expiredLanes)===0||qe(e,t),a=r?Au(e,t):Ou(e,t,!0),o=r;do{if(a===0){Hl&&!r&&yu(e,t,0,!1);break}else{if(n=e.current.alternate,o&&!vu(n)){a=Ou(e,t,!1),o=!1;continue}if(a===2){if(o=t,e.errorRecoveryDisabledLanes&o)var s=0;else s=e.pendingLanes&-536870913,s=s===0?s&536870912?536870912:0:s;if(s!==0){t=s;a:{var c=e;a=Xl;var l=c.current.memoizedState.isDehydrated;if(l&&(Su(c,s).flags|=256),s=Ou(c,s,!1),s!==2){if(Ul&&!l){c.errorRecoveryDisabledLanes|=o,Kl|=o,a=4;break a}o=Zl,Zl=a,o!==null&&(Zl===null?Zl=o:Zl.push.apply(Zl,o))}a=s}if(o=!1,a!==2)continue}}if(a===1){Su(e,0),yu(e,t,0,!0);break}a:{switch(r=e,o=a,o){case 0:case 1:throw Error(i(345));case 4:if((t&4194048)!==t)break;case 6:yu(r,t,Jl,!Vl);break a;case 2:Zl=null;break;case 3:case 5:break;default:throw Error(i(329))}if((t&62914560)===t&&(a=$l+300-De(),10<a)){if(yu(r,t,Jl,!Vl),Ke(r,0,!0)!==0)break a;su=t,r.timeoutHandle=Kd(_u.bind(null,r,n,Zl,nu,Ql,t,Jl,Kl,Yl,Vl,o,`Throttled`,-0,0),a);break a}_u(r,n,Zl,nu,Ql,t,Jl,Kl,Yl,Vl,o,null,-0,0)}}break}while(1);rd(e)}function _u(e,t,n,r,i,a,o,s,c,l,u,d,f,p){if(e.timeoutHandle=-1,d=t.subtreeFlags,d&8192||(d&16785408)==16785408){d={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:en},Ml(t,a,d);var m=(a&62914560)===a?$l-De():(a&4194048)===a?eu-De():0;if(m=qf(d,m),m!==null){su=a,e.cancelPendingCommit=m(Lu.bind(null,e,t,a,n,r,i,o,s,c,u,d,null,f,p)),yu(e,a,o,!l);return}}Lu(e,t,a,n,r,i,o,s,c)}function vu(e){for(var t=e;;){var n=t.tag;if((n===0||n===11||n===15)&&t.flags&16384&&(n=t.updateQueue,n!==null&&(n=n.stores,n!==null)))for(var r=0;r<n.length;r++){var i=n[r],a=i.getSnapshot;i=i.value;try{if(!Cr(a(),i))return!1}catch{return!1}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function yu(e,t,n,r){t&=~ql,t&=~Kl,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var i=t;0<i;){var a=31-L(i),o=1<<a;r[a]=-1,i&=~o}n!==0&&$e(e,n,t)}function bu(){return G&6?!0:(id(0,!1),!1)}function xu(){if(q!==null){if(Y===0)var e=q.return;else e=q,qi=Ki=null,ko(e),Ma=null,Na=0,e=q;for(;e!==null;)Vc(e.alternate,e),e=e.return;q=null}}function Su(e,t){var n=e.timeoutHandle;n!==-1&&(e.timeoutHandle=-1,qd(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),su=0,xu(),K=e,q=n=di(e.current,null),J=t,Y=0,Bl=null,Vl=!1,Hl=qe(e,t),Ul=!1,Yl=Jl=ql=Kl=Gl=X=0,Zl=Xl=null,Ql=!1,t&8&&(t|=t&32);var r=e.entangledLanes;if(r!==0)for(e=e.entanglements,r&=t;0<r;){var i=31-L(r),a=1<<i;t|=e[i],r&=~a}return Wl=t,ti(),n}function Cu(e,t){B=null,j.H=zs,t===Sa||t===wa?(t=Aa(),Y=3):t===Ca?(t=Aa(),Y=4):Y=t===rc?8:typeof t==`object`&&t&&typeof t.then==`function`?6:1,Bl=t,q===null&&(X=1,Zs(e,yi(t,e.current)))}function wu(){var e=ro.current;return e===null?!0:(J&4194048)===J?io===null:(J&62914560)===J||J&536870912?e===io:!1}function Tu(){var e=j.H;return j.H=zs,e===null?zs:e}function Eu(){var e=j.A;return j.A=Rl,e}function Du(){X=4,Vl||(J&4194048)!==J&&ro.current!==null||(Hl=!0),!(Gl&134217727)&&!(Kl&134217727)||K===null||yu(K,J,Jl,!1)}function Ou(e,t,n){var r=G;G|=2;var i=Tu(),a=Eu();(K!==e||J!==t)&&(nu=null,Su(e,t)),t=!1;var o=X;a:do try{if(Y!==0&&q!==null){var s=q,c=Bl;switch(Y){case 8:xu(),o=6;break a;case 3:case 2:case 9:case 6:ro.current===null&&(t=!0);var l=Y;if(Y=0,Bl=null,Pu(e,s,c,l),n&&Hl){o=0;break a}break;default:l=Y,Y=0,Bl=null,Pu(e,s,c,l)}}ku(),o=X;break}catch(t){Cu(e,t)}while(1);return t&&e.shellSuspendCounter++,qi=Ki=null,G=r,j.H=i,j.A=a,q===null&&(K=null,J=0,ti()),o}function ku(){for(;q!==null;)Mu(q)}function Au(e,t){var n=G;G|=2;var r=Tu(),a=Eu();K!==e||J!==t?(nu=null,tu=De()+500,Su(e,t)):Hl=qe(e,t);a:do try{if(Y!==0&&q!==null){t=q;var o=Bl;b:switch(Y){case 1:Y=0,Bl=null,Pu(e,t,o,1);break;case 2:case 9:if(Ea(o)){Y=0,Bl=null,Nu(t);break}t=function(){Y!==2&&Y!==9||K!==e||(Y=7),rd(e)},o.then(t,t);break a;case 3:Y=7;break a;case 4:Y=5;break a;case 7:Ea(o)?(Y=0,Bl=null,Nu(t)):(Y=0,Bl=null,Pu(e,t,o,7));break;case 5:var s=null;switch(q.tag){case 26:s=q.memoizedState;case 5:case 27:var c=q;if(s?Wf(s):c.stateNode.complete){Y=0,Bl=null;var l=c.sibling;if(l!==null)q=l;else{var u=c.return;u===null?q=null:(q=u,Fu(u))}break b}}Y=0,Bl=null,Pu(e,t,o,5);break;case 6:Y=0,Bl=null,Pu(e,t,o,6);break;case 8:xu(),X=6;break a;default:throw Error(i(462))}}ju();break}catch(t){Cu(e,t)}while(1);return qi=Ki=null,j.H=r,j.A=a,G=n,q===null?(K=null,J=0,ti(),X):0}function ju(){for(;q!==null&&!Te();)Mu(q)}function Mu(e){var t=Nc(e.alternate,e,Wl);e.memoizedProps=e.pendingProps,t===null?Fu(e):q=t}function Nu(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=_c(n,t,t.pendingProps,t.type,void 0,J);break;case 11:t=_c(n,t,t.pendingProps,t.type.render,t.ref,J);break;case 5:ko(t);default:Vc(n,t),t=q=fi(t,Wl),t=Nc(n,t,Wl)}e.memoizedProps=e.pendingProps,t===null?Fu(e):q=t}function Pu(e,t,n,r){qi=Ki=null,ko(t),Ma=null,Na=0;var i=t.return;try{if(nc(e,i,t,n,J)){X=1,Zs(e,yi(n,e.current)),q=null;return}}catch(t){if(i!==null)throw q=i,t;X=1,Zs(e,yi(n,e.current)),q=null;return}t.flags&32768?(z||r===1?e=!0:Hl||J&536870912?e=!1:(Vl=e=!0,(r===2||r===9||r===3||r===6)&&(r=ro.current,r!==null&&r.tag===13&&(r.flags|=16384))),Iu(t,e)):Fu(t)}function Fu(e){var t=e;do{if(t.flags&32768){Iu(t,Vl);return}e=t.return;var n=zc(t.alternate,t,Wl);if(n!==null){q=n;return}if(t=t.sibling,t!==null){q=t;return}q=t=e}while(t!==null);X===0&&(X=5)}function Iu(e,t){do{var n=Bc(e.alternate,e);if(n!==null){n.flags&=32767,q=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){q=e;return}q=e=n}while(e!==null);X=6,q=null}function Lu(e,t,n,r,a,o,s,c,l){e.cancelPendingCommit=null;do Hu();while(iu!==0);if(G&6)throw Error(i(327));if(t!==null){if(t===e.current)throw Error(i(177));if(o=t.lanes|t.childLanes,o|=ei,Qe(e,n,o,s,c,l),e===K&&(q=K=null,J=0),ou=t,au=e,su=n,cu=o,lu=a,uu=r,t.subtreeFlags&10256||t.flags&10256?(e.callbackNode=null,e.callbackPriority=0,Xu(je,function(){return Uu(),null})):(e.callbackNode=null,e.callbackPriority=0),r=(t.flags&13878)!=0,t.subtreeFlags&13878||r){r=j.T,j.T=null,a=M.p,M.p=2,s=G,G|=4;try{ol(e,t,n)}finally{G=s,M.p=a,j.T=r}}iu=1,Ru(),zu(),Bu()}}function Ru(){if(iu===1){iu=0;var e=au,t=ou,n=(t.flags&13878)!=0;if(t.subtreeFlags&13878||n){n=j.T,j.T=null;var r=M.p;M.p=2;var i=G;G|=4;try{vl(t,e);var a=zd,o=Or(e.containerInfo),s=a.focusedElem,c=a.selectionRange;if(o!==s&&s&&s.ownerDocument&&Dr(s.ownerDocument.documentElement,s)){if(c!==null&&kr(s)){var l=c.start,u=c.end;if(u===void 0&&(u=l),`selectionStart`in s)s.selectionStart=l,s.selectionEnd=Math.min(u,s.value.length);else{var d=s.ownerDocument||document,f=d&&d.defaultView||window;if(f.getSelection){var p=f.getSelection(),m=s.textContent.length,h=Math.min(c.start,m),g=c.end===void 0?h:Math.min(c.end,m);!p.extend&&h>g&&(o=g,g=h,h=o);var _=Er(s,h),v=Er(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;s<d.length;s++){var b=d[s];b.element.scrollLeft=b.left,b.element.scrollTop=b.top}}sp=!!Rd,zd=Rd=null}finally{G=i,M.p=r,j.T=n}}e.current=t,iu=2}}function zu(){if(iu===2){iu=0;var e=au,t=ou,n=(t.flags&8772)!=0;if(t.subtreeFlags&8772||n){n=j.T,j.T=null;var r=M.p;M.p=2;var i=G;G|=4;try{sl(e,t.alternate,t)}finally{G=i,M.p=r,j.T=n}}iu=3}}function Bu(){if(iu===4||iu===3){iu=0,Ee();var e=au,t=ou,n=su,r=uu;t.subtreeFlags&10256||t.flags&10256?iu=5:(iu=0,ou=au=null,Vu(e,e.pendingLanes));var i=e.pendingLanes;if(i===0&&(ru=null),rt(n),t=t.stateNode,Le&&typeof Le.onCommitFiberRoot==`function`)try{Le.onCommitFiberRoot(Ie,t,void 0,(t.current.flags&128)==128)}catch{}if(r!==null){t=j.T,i=M.p,M.p=2,j.T=null;try{for(var a=e.onRecoverableError,o=0;o<r.length;o++){var s=r[o];a(s.value,{componentStack:s.stack})}}finally{j.T=t,M.p=i}}su&3&&Hu(),rd(e),i=e.pendingLanes,n&261930&&i&42?e===fu?du++:(du=0,fu=e):du=0,id(0,!1)}}function Vu(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,la(t)))}function Hu(){return Ru(),zu(),Bu(),Uu()}function Uu(){if(iu!==5)return!1;var e=au,t=cu;cu=0;var n=rt(su),r=j.T,a=M.p;try{M.p=32>n?32:n,j.T=null,n=lu,lu=null;var o=au,s=su;if(iu=0,ou=au=null,su=0,G&6)throw Error(i(331));var c=G;if(G|=4,Fl(o.current),Dl(o,o.current,s,n),G=c,id(0,!1),Le&&typeof Le.onPostCommitFiberRoot==`function`)try{Le.onPostCommitFiberRoot(Ie,o)}catch{}return!0}finally{M.p=a,j.T=r,Vu(e,t)}}function Wu(e,t,n){t=yi(n,t),t=$s(e.stateNode,t,2),e=Wa(e,t,2),e!==null&&(Ze(e,2),rd(e))}function Z(e,t,n){if(e.tag===3)Wu(e,e,n);else for(;t!==null;){if(t.tag===3){Wu(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(ru===null||!ru.has(r))){e=yi(n,e),n=ec(2),r=Wa(t,n,2),r!==null&&(tc(n,r,t,e),Ze(r,2),rd(r));break}}t=t.return}}function Gu(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new zl;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Ul=!0,i.add(n),e=Ku.bind(null,e,t,n),t.then(e,e))}function Ku(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,K===e&&(J&n)===n&&(X===4||X===3&&(J&62914560)===J&&300>De()-$l?!(G&2)&&Su(e,0):ql|=n,Yl===J&&(Yl=0)),rd(e)}function qu(e,t){t===0&&(t=Ye()),e=ii(e,t),e!==null&&(Ze(e,t),rd(e))}function Ju(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),qu(e,n)}function Yu(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}r!==null&&r.delete(t),qu(e,n)}function Xu(e,t){return Ce(e,t)}var Zu=null,Qu=null,$u=!1,ed=!1,td=!1,nd=0;function rd(e){e!==Qu&&e.next===null&&(Qu===null?Zu=Qu=e:Qu=Qu.next=e),ed=!0,$u||($u=!0,ud())}function id(e,t){if(!td&&ed){td=!0;do for(var n=!1,r=Zu;r!==null;){if(!t)if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-L(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,ld(r,a))}else a=J,a=Ke(r,r===K?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||qe(r,a)||(n=!0,ld(r,a));r=r.next}while(n);td=!1}}function ad(){od()}function od(){ed=$u=!1;var e=0;nd!==0&&Gd()&&(e=nd);for(var t=De(),n=null,r=Zu;r!==null;){var i=r.next,a=sd(r,t);a===0?(r.next=null,n===null?Zu=i:n.next=i,i===null&&(Qu=n)):(n=r,(e!==0||a&3)&&(ed=!0)),r=i}iu!==0&&iu!==5||id(e,!1),nd!==0&&(nd=0)}function sd(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0<a;){var o=31-L(a),s=1<<o,c=i[o];c===-1?((s&n)===0||(s&r)!==0)&&(i[o]=Je(s,t)):c<=t&&(e.expiredLanes|=s),a&=~s}if(t=K,n=J,n=Ke(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r=e.callbackNode,n===0||e===t&&(Y===2||Y===9)||e.cancelPendingCommit!==null)return r!==null&&r!==null&&we(r),e.callbackNode=null,e.callbackPriority=0;if(!(n&3)||qe(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(r!==null&&we(r),rt(n)){case 2:case 8:n=Ae;break;case 32:n=je;break;case 268435456:n=Ne;break;default:n=je}return r=cd.bind(null,e),n=Ce(n,r),e.callbackPriority=t,e.callbackNode=n,t}return r!==null&&r!==null&&we(r),e.callbackPriority=2,e.callbackNode=null,2}function cd(e,t){if(iu!==0&&iu!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(Hu()&&e.callbackNode!==n)return null;var r=J;return r=Ke(e,e===K?r:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r===0?null:(gu(e,r,t),sd(e,De()),e.callbackNode!=null&&e.callbackNode===n?cd.bind(null,e):null)}function ld(e,t){if(Hu())return null;gu(e,t,!0)}function ud(){Yd(function(){G&6?Ce(ke,ad):od()})}function dd(){if(nd===0){var e=fa;e===0&&(e=He,He<<=1,!(He&261888)&&(He=256)),nd=e}return nd}function fd(e){return e==null||typeof e==`symbol`||typeof e==`boolean`?null:typeof e==`function`?e:$t(``+e)}function pd(e,t){var n=t.ownerDocument.createElement(`input`);return n.name=t.name,n.value=t.value,e.id&&n.setAttribute(`form`,e.id),t.parentNode.insertBefore(n,t),e=new FormData(e),n.parentNode.removeChild(n),e}function md(e,t,n,r,i){if(t===`submit`&&n&&n.stateNode===i){var a=fd((i[ct]||null).action),o=r.submitter;o&&(t=(t=o[ct]||null)?fd(t.formAction):o.getAttribute(`formAction`),t!==null&&(a=t,o=null));var s=new Sn(`action`,`action`,null,r,i);e.push({event:s,listeners:[{instance:null,listener:function(){if(r.defaultPrevented){if(nd!==0){var e=o?pd(i,o):new FormData(i);Ts(n,{pending:!0,data:e,method:i.method,action:a},null,e)}}else typeof a==`function`&&(s.preventDefault(),e=o?pd(i,o):new FormData(i),Ts(n,{pending:!0,data:e,method:i.method,action:a},a,e))},currentTarget:i}]})}}for(var hd=0;hd<Yr.length;hd++){var gd=Yr[hd];Xr(gd.toLowerCase(),`on`+(gd[0].toUpperCase()+gd.slice(1)))}Xr(Vr,`onAnimationEnd`),Xr(Hr,`onAnimationIteration`),Xr(Ur,`onAnimationStart`),Xr(`dblclick`,`onDoubleClick`),Xr(`focusin`,`onFocus`),Xr(`focusout`,`onBlur`),Xr(Wr,`onTransitionRun`),Xr(Gr,`onTransitionStart`),Xr(Kr,`onTransitionCancel`),Xr(qr,`onTransitionEnd`),wt(`onMouseEnter`,[`mouseout`,`mouseover`]),wt(`onMouseLeave`,[`mouseout`,`mouseover`]),wt(`onPointerEnter`,[`pointerout`,`pointerover`]),wt(`onPointerLeave`,[`pointerout`,`pointerover`]),Ct(`onChange`,`change click focusin focusout input keydown keyup selectionchange`.split(` `)),Ct(`onSelect`,`focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange`.split(` `)),Ct(`onBeforeInput`,[`compositionend`,`keypress`,`textInput`,`paste`]),Ct(`onCompositionEnd`,`compositionend focusout keydown keypress keyup mousedown`.split(` `)),Ct(`onCompositionStart`,`compositionstart focusout keydown keypress keyup mousedown`.split(` `)),Ct(`onCompositionUpdate`,`compositionupdate focusout keydown keypress keyup mousedown`.split(` `));var _d=`abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting`.split(` `),vd=new Set(`beforetoggle cancel close invalid load scroll scrollend toggle`.split(` `).concat(_d));function yd(e,t){t=(t&4)!=0;for(var n=0;n<e.length;n++){var r=e[n],i=r.event;r=r.listeners;a:{var a=void 0;if(t)for(var o=r.length-1;0<=o;o--){var s=r[o],c=s.instance,l=s.currentTarget;if(s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){Zr(e)}i.currentTarget=null,a=c}else for(o=0;o<r.length;o++){if(s=r[o],c=s.instance,l=s.currentTarget,s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){Zr(e)}i.currentTarget=null,a=c}}}}function Q(e,t){var n=t[ut];n===void 0&&(n=t[ut]=new Set);var r=e+`__bubble`;n.has(r)||(Cd(t,e,2,!1),n.add(r))}function bd(e,t,n){var r=0;t&&(r|=4),Cd(n,e,r,t)}var xd=`_reactListening`+Math.random().toString(36).slice(2);function Sd(e){if(!e[xd]){e[xd]=!0,xt.forEach(function(t){t!==`selectionchange`&&(vd.has(t)||bd(t,!1,e),bd(t,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[xd]||(t[xd]=!0,bd(`selectionchange`,!1,t))}}function Cd(e,t,n,r){switch(mp(t)){case 2:var i=cp;break;case 8:i=lp;break;default:i=up}n=i.bind(null,t,n,e),i=void 0,!dn||t!==`touchstart`&&t!==`touchmove`&&t!==`wheel`||(i=!0),r?i===void 0?e.addEventListener(t,n,!0):e.addEventListener(t,n,{capture:!0,passive:i}):i===void 0?e.addEventListener(t,n,!1):e.addEventListener(t,n,{passive:i})}function wd(e,t,n,r,i){var a=r;if(!(t&1)&&!(t&2)&&r!==null)a:for(;;){if(r===null)return;var s=r.tag;if(s===3||s===4){var c=r.stateNode.containerInfo;if(c===i)break;if(s===4)for(s=r.return;s!==null;){var l=s.tag;if((l===3||l===4)&&s.stateNode.containerInfo===i)return;s=s.return}for(;c!==null;){if(s=gt(c),s===null)return;if(l=s.tag,l===5||l===6||l===26||l===27){r=a=s;continue a}c=c.parentNode}}r=r.return}cn(function(){var r=a,i=nn(n),s=[];a:{var c=Jr.get(e);if(c!==void 0){var l=Sn,u=e;switch(e){case`keypress`:if(_n(n)===0)break a;case`keydown`:case`keyup`:l=Bn;break;case`focusin`:u=`focus`,l=jn;break;case`focusout`:u=`blur`,l=jn;break;case`beforeblur`:case`afterblur`:l=jn;break;case`click`:if(n.button===2)break a;case`auxclick`:case`dblclick`:case`mousedown`:case`mousemove`:case`mouseup`:case`mouseout`:case`mouseover`:case`contextmenu`:l=kn;break;case`drag`:case`dragend`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`dragstart`:case`drop`:l=An;break;case`touchcancel`:case`touchend`:case`touchmove`:case`touchstart`:l=Hn;break;case Vr:case Hr:case Ur:l=Mn;break;case qr:l=Un;break;case`scroll`:case`scrollend`:l=wn;break;case`wheel`:l=Wn;break;case`copy`:case`cut`:case`paste`:l=Nn;break;case`gotpointercapture`:case`lostpointercapture`:case`pointercancel`:case`pointerdown`:case`pointermove`:case`pointerout`:case`pointerover`:case`pointerup`:l=Vn;break;case`toggle`:case`beforetoggle`:l=Gn}var d=(t&4)!=0,f=!d&&(e===`scroll`||e===`scrollend`),p=d?c===null?null:c+`Capture`:c;d=[];for(var m=r,h;m!==null;){var g=m;if(h=g.stateNode,g=g.tag,g!==5&&g!==26&&g!==27||h===null||p===null||(g=ln(m,p),g!=null&&d.push(Td(m,g,h))),f)break;m=m.return}0<d.length&&(c=new l(c,u,null,n,i),s.push({event:c,listeners:d}))}}if(!(t&7)){a:{if(c=e===`mouseover`||e===`pointerover`,l=e===`mouseout`||e===`pointerout`,c&&n!==tn&&(u=n.relatedTarget||n.fromElement)&&(gt(u)||u[lt]))break a;if((l||c)&&(c=i.window===i?i:(c=i.ownerDocument)?c.defaultView||c.parentWindow:window,l?(u=n.relatedTarget||n.toElement,l=r,u=u?gt(u):null,u!==null&&(f=o(u),d=u.tag,u!==f||d!==5&&d!==27&&d!==6)&&(u=null)):(l=null,u=r),l!==u)){if(d=kn,g=`onMouseLeave`,p=`onMouseEnter`,m=`mouse`,(e===`pointerout`||e===`pointerover`)&&(d=Vn,g=`onPointerLeave`,p=`onPointerEnter`,m=`pointer`),f=l==null?c:vt(l),h=u==null?c:vt(u),c=new d(g,m+`leave`,l,n,i),c.target=f,c.relatedTarget=h,g=null,gt(i)===r&&(d=new d(p,m+`enter`,u,n,i),d.target=h,d.relatedTarget=f,g=d),f=g,l&&u)b:{for(d=Dd,p=l,m=u,h=0,g=p;g;g=d(g))h++;g=0;for(var _=m;_;_=d(_))g++;for(;0<h-g;)p=d(p),h--;for(;0<g-h;)m=d(m),g--;for(;h--;){if(p===m||m!==null&&p===m.alternate){d=p;break b}p=d(p),m=d(m)}d=null}else d=null;l!==null&&Od(s,c,l,d,!1),u!==null&&f!==null&&Od(s,f,u,d,!0)}}a:{if(c=r?vt(r):window,l=c.nodeName&&c.nodeName.toLowerCase(),l===`select`||l===`input`&&c.type===`file`)var v=dr;else if(ar(c))if(fr)v=xr;else{v=yr;var y=vr}else l=c.nodeName,!l||l.toLowerCase()!==`input`||c.type!==`checkbox`&&c.type!==`radio`?r&&Xt(r.elementType)&&(v=dr):v=br;if(v&&=v(e,r)){or(s,v,n,i);break a}y&&y(e,c,r),e===`focusout`&&r&&c.type===`number`&&r.memoizedProps.value!=null&&Ht(c,`number`,c.value)}switch(y=r?vt(r):window,e){case`focusin`:(ar(y)||y.contentEditable===`true`)&&(jr=y,Mr=r,Nr=null);break;case`focusout`:Nr=Mr=jr=null;break;case`mousedown`:Pr=!0;break;case`contextmenu`:case`mouseup`:case`dragend`:Pr=!1,Fr(s,n,i);break;case`selectionchange`:if(Ar)break;case`keydown`:case`keyup`:Fr(s,n,i)}var b;if(qn)b:{switch(e){case`compositionstart`:var x=`onCompositionStart`;break b;case`compositionend`:x=`onCompositionEnd`;break b;case`compositionupdate`:x=`onCompositionUpdate`;break b}x=void 0}else tr?$n(e,n)&&(x=`onCompositionEnd`):e===`keydown`&&n.keyCode===229&&(x=`onCompositionStart`);x&&(Xn&&n.locale!==`ko`&&(tr||x!==`onCompositionStart`?x===`onCompositionEnd`&&tr&&(b=gn()):(pn=i,mn=`value`in pn?pn.value:pn.textContent,tr=!0)),y=Ed(r,x),0<y.length&&(x=new Pn(x,e,null,n,i),s.push({event:x,listeners:y}),b?x.data=b:(b=er(n),b!==null&&(x.data=b)))),(b=Yn?nr(e,n):rr(e,n))&&(x=Ed(r,`onBeforeInput`),0<x.length&&(y=new Pn(`onBeforeInput`,`beforeinput`,null,n,i),s.push({event:y,listeners:x}),y.data=b)),md(s,e,r,n,i)}yd(s,t)})}function Td(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Ed(e,t){for(var n=t+`Capture`,r=[];e!==null;){var i=e,a=i.stateNode;if(i=i.tag,i!==5&&i!==26&&i!==27||a===null||(i=ln(e,n),i!=null&&r.unshift(Td(e,i,a)),i=ln(e,t),i!=null&&r.push(Td(e,i,a))),e.tag===3)return r;e=e.return}return[]}function Dd(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function Od(e,t,n,r,i){for(var a=t._reactName,o=[];n!==null&&n!==r;){var s=n,c=s.alternate,l=s.stateNode;if(s=s.tag,c!==null&&c===r)break;s!==5&&s!==26&&s!==27||l===null||(c=l,i?(l=ln(n,a),l!=null&&o.unshift(Td(n,l,c))):i||(l=ln(n,a),l!=null&&o.push(Td(n,l,c)))),n=n.return}o.length!==0&&e.push({event:t,listeners:o})}var kd=/\r\n?/g,Ad=/\u0000|\uFFFD/g;function jd(e){return(typeof e==`string`?e:``+e).replace(kd,`
|
|
9
|
+
`).replace(Ad,``)}function Md(e,t){return t=jd(t),jd(e)===t}function $(e,t,n,r,a,o){switch(n){case`children`:typeof r==`string`?t===`body`||t===`textarea`&&r===``||Kt(e,r):(typeof r==`number`||typeof r==`bigint`)&&t!==`body`&&Kt(e,``+r);break;case`className`:At(e,`class`,r);break;case`tabIndex`:At(e,`tabindex`,r);break;case`dir`:case`role`:case`viewBox`:case`width`:case`height`:At(e,n,r);break;case`style`:Yt(e,r,o);break;case`data`:if(t!==`object`){At(e,`data`,r);break}case`src`:case`href`:if(r===``&&(t!==`a`||n!==`href`)){e.removeAttribute(n);break}if(r==null||typeof r==`function`||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=$t(``+r),e.setAttribute(n,r);break;case`action`:case`formAction`:if(typeof r==`function`){e.setAttribute(n,`javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')`);break}else typeof o==`function`&&(n===`formAction`?(t!==`input`&&$(e,t,`name`,a.name,a,null),$(e,t,`formEncType`,a.formEncType,a,null),$(e,t,`formMethod`,a.formMethod,a,null),$(e,t,`formTarget`,a.formTarget,a,null)):($(e,t,`encType`,a.encType,a,null),$(e,t,`method`,a.method,a,null),$(e,t,`target`,a.target,a,null)));if(r==null||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=$t(``+r),e.setAttribute(n,r);break;case`onClick`:r!=null&&(e.onclick=en);break;case`onScroll`:r!=null&&Q(`scroll`,e);break;case`onScrollEnd`:r!=null&&Q(`scrollend`,e);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(i(61));if(n=r.__html,n!=null){if(a.children!=null)throw Error(i(60));e.innerHTML=n}}break;case`multiple`:e.multiple=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`muted`:e.muted=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`defaultValue`:case`defaultChecked`:case`innerHTML`:case`ref`:break;case`autoFocus`:break;case`xlinkHref`:if(r==null||typeof r==`function`||typeof r==`boolean`||typeof r==`symbol`){e.removeAttribute(`xlink:href`);break}n=$t(``+r),e.setAttributeNS(`http://www.w3.org/1999/xlink`,`xlink:href`,n);break;case`contentEditable`:case`spellCheck`:case`draggable`:case`value`:case`autoReverse`:case`externalResourcesRequired`:case`focusable`:case`preserveAlpha`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``+r):e.removeAttribute(n);break;case`inert`:case`allowFullScreen`:case`async`:case`autoPlay`:case`controls`:case`default`:case`defer`:case`disabled`:case`disablePictureInPicture`:case`disableRemotePlayback`:case`formNoValidate`:case`hidden`:case`loop`:case`noModule`:case`noValidate`:case`open`:case`playsInline`:case`readOnly`:case`required`:case`reversed`:case`scoped`:case`seamless`:case`itemScope`:r&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``):e.removeAttribute(n);break;case`capture`:case`download`:!0===r?e.setAttribute(n,``):!1!==r&&r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,r):e.removeAttribute(n);break;case`cols`:case`rows`:case`size`:case`span`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`&&!isNaN(r)&&1<=r?e.setAttribute(n,r):e.removeAttribute(n);break;case`rowSpan`:case`start`:r==null||typeof r==`function`||typeof r==`symbol`||isNaN(r)?e.removeAttribute(n):e.setAttribute(n,r);break;case`popover`:Q(`beforetoggle`,e),Q(`toggle`,e),kt(e,`popover`,r);break;case`xlinkActuate`:jt(e,`http://www.w3.org/1999/xlink`,`xlink:actuate`,r);break;case`xlinkArcrole`:jt(e,`http://www.w3.org/1999/xlink`,`xlink:arcrole`,r);break;case`xlinkRole`:jt(e,`http://www.w3.org/1999/xlink`,`xlink:role`,r);break;case`xlinkShow`:jt(e,`http://www.w3.org/1999/xlink`,`xlink:show`,r);break;case`xlinkTitle`:jt(e,`http://www.w3.org/1999/xlink`,`xlink:title`,r);break;case`xlinkType`:jt(e,`http://www.w3.org/1999/xlink`,`xlink:type`,r);break;case`xmlBase`:jt(e,`http://www.w3.org/XML/1998/namespace`,`xml:base`,r);break;case`xmlLang`:jt(e,`http://www.w3.org/XML/1998/namespace`,`xml:lang`,r);break;case`xmlSpace`:jt(e,`http://www.w3.org/XML/1998/namespace`,`xml:space`,r);break;case`is`:kt(e,`is`,r);break;case`innerText`:case`textContent`:break;default:(!(2<n.length)||n[0]!==`o`&&n[0]!==`O`||n[1]!==`n`&&n[1]!==`N`)&&(n=Zt.get(n)||n,kt(e,n,r))}}function Nd(e,t,n,r,a,o){switch(n){case`style`:Yt(e,r,o);break;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(i(61));if(n=r.__html,n!=null){if(a.children!=null)throw Error(i(60));e.innerHTML=n}}break;case`children`:typeof r==`string`?Kt(e,r):(typeof r==`number`||typeof r==`bigint`)&&Kt(e,``+r);break;case`onScroll`:r!=null&&Q(`scroll`,e);break;case`onScrollEnd`:r!=null&&Q(`scrollend`,e);break;case`onClick`:r!=null&&(e.onclick=en);break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`innerHTML`:case`ref`:break;case`innerText`:case`textContent`:break;default:if(!St.hasOwnProperty(n))a:{if(n[0]===`o`&&n[1]===`n`&&(a=n.endsWith(`Capture`),t=n.slice(2,a?n.length-7:void 0),o=e[ct]||null,o=o==null?null:o[n],typeof o==`function`&&e.removeEventListener(t,o,a),typeof r==`function`)){typeof o!=`function`&&o!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(t,r,a);break a}n in e?e[n]=r:!0===r?e.setAttribute(n,``):kt(e,n,r)}}}function Pd(e,t,n){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`img`:Q(`error`,e),Q(`load`,e);var r=!1,a=!1,o;for(o in n)if(n.hasOwnProperty(o)){var s=n[o];if(s!=null)switch(o){case`src`:r=!0;break;case`srcSet`:a=!0;break;case`children`:case`dangerouslySetInnerHTML`:throw Error(i(137,t));default:$(e,t,o,s,n,null)}}a&&$(e,t,`srcSet`,n.srcSet,n,null),r&&$(e,t,`src`,n.src,n,null);return;case`input`:Q(`invalid`,e);var c=o=s=a=null,l=null,u=null;for(r in n)if(n.hasOwnProperty(r)){var d=n[r];if(d!=null)switch(r){case`name`:a=d;break;case`type`:s=d;break;case`checked`:l=d;break;case`defaultChecked`:u=d;break;case`value`:o=d;break;case`defaultValue`:c=d;break;case`children`:case`dangerouslySetInnerHTML`:if(d!=null)throw Error(i(137,t));break;default:$(e,t,r,d,n,null)}}Vt(e,o,c,l,u,s,a,!1);return;case`select`:for(a in Q(`invalid`,e),r=s=o=null,n)if(n.hasOwnProperty(a)&&(c=n[a],c!=null))switch(a){case`value`:o=c;break;case`defaultValue`:s=c;break;case`multiple`:r=c;default:$(e,t,a,c,n,null)}t=o,n=s,e.multiple=!!r,t==null?n!=null&&Ut(e,!!r,n,!0):Ut(e,!!r,t,!1);return;case`textarea`:for(s in Q(`invalid`,e),o=a=r=null,n)if(n.hasOwnProperty(s)&&(c=n[s],c!=null))switch(s){case`value`:r=c;break;case`defaultValue`:a=c;break;case`children`:o=c;break;case`dangerouslySetInnerHTML`:if(c!=null)throw Error(i(91));break;default:$(e,t,s,c,n,null)}Gt(e,r,a,o);return;case`option`:for(l in n)if(n.hasOwnProperty(l)&&(r=n[l],r!=null))switch(l){case`selected`:e.selected=r&&typeof r!=`function`&&typeof r!=`symbol`;break;default:$(e,t,l,r,n,null)}return;case`dialog`:Q(`beforetoggle`,e),Q(`toggle`,e),Q(`cancel`,e),Q(`close`,e);break;case`iframe`:case`object`:Q(`load`,e);break;case`video`:case`audio`:for(r=0;r<_d.length;r++)Q(_d[r],e);break;case`image`:Q(`error`,e),Q(`load`,e);break;case`details`:Q(`toggle`,e);break;case`embed`:case`source`:case`link`:Q(`error`,e),Q(`load`,e);case`area`:case`base`:case`br`:case`col`:case`hr`:case`keygen`:case`meta`:case`param`:case`track`:case`wbr`:case`menuitem`:for(u in n)if(n.hasOwnProperty(u)&&(r=n[u],r!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:throw Error(i(137,t));default:$(e,t,u,r,n,null)}return;default:if(Xt(t)){for(d in n)n.hasOwnProperty(d)&&(r=n[d],r!==void 0&&Nd(e,t,d,r,n,void 0));return}}for(c in n)n.hasOwnProperty(c)&&(r=n[c],r!=null&&$(e,t,c,r,n,null))}function Fd(e,t,n,r){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`input`:var a=null,o=null,s=null,c=null,l=null,u=null,d=null;for(m in n){var f=n[m];if(n.hasOwnProperty(m)&&f!=null)switch(m){case`checked`:break;case`value`:break;case`defaultValue`:l=f;default:r.hasOwnProperty(m)||$(e,t,m,null,r,f)}}for(var p in r){var m=r[p];if(f=n[p],r.hasOwnProperty(p)&&(m!=null||f!=null))switch(p){case`type`:o=m;break;case`name`:a=m;break;case`checked`:u=m;break;case`defaultChecked`:d=m;break;case`value`:s=m;break;case`defaultValue`:c=m;break;case`children`:case`dangerouslySetInnerHTML`:if(m!=null)throw Error(i(137,t));break;default:m!==f&&$(e,t,p,m,r,f)}}Bt(e,s,c,l,u,d,o,a);return;case`select`:for(o in m=s=c=p=null,n)if(l=n[o],n.hasOwnProperty(o)&&l!=null)switch(o){case`value`:break;case`multiple`:m=l;default:r.hasOwnProperty(o)||$(e,t,o,null,r,l)}for(a in r)if(o=r[a],l=n[a],r.hasOwnProperty(a)&&(o!=null||l!=null))switch(a){case`value`:p=o;break;case`defaultValue`:c=o;break;case`multiple`:s=o;default:o!==l&&$(e,t,a,o,r,l)}t=c,n=s,r=m,p==null?!!r!=!!n&&(t==null?Ut(e,!!n,n?[]:``,!1):Ut(e,!!n,t,!0)):Ut(e,!!n,p,!1);return;case`textarea`:for(c in m=p=null,n)if(a=n[c],n.hasOwnProperty(c)&&a!=null&&!r.hasOwnProperty(c))switch(c){case`value`:break;case`children`:break;default:$(e,t,c,null,r,a)}for(s in r)if(a=r[s],o=n[s],r.hasOwnProperty(s)&&(a!=null||o!=null))switch(s){case`value`:p=a;break;case`defaultValue`:m=a;break;case`children`:break;case`dangerouslySetInnerHTML`:if(a!=null)throw Error(i(91));break;default:a!==o&&$(e,t,s,a,r,o)}Wt(e,p,m);return;case`option`:for(var h in n)if(p=n[h],n.hasOwnProperty(h)&&p!=null&&!r.hasOwnProperty(h))switch(h){case`selected`:e.selected=!1;break;default:$(e,t,h,null,r,p)}for(l in r)if(p=r[l],m=n[l],r.hasOwnProperty(l)&&p!==m&&(p!=null||m!=null))switch(l){case`selected`:e.selected=p&&typeof p!=`function`&&typeof p!=`symbol`;break;default:$(e,t,l,p,r,m)}return;case`img`:case`link`:case`area`:case`base`:case`br`:case`col`:case`embed`:case`hr`:case`keygen`:case`meta`:case`param`:case`source`:case`track`:case`wbr`:case`menuitem`:for(var g in n)p=n[g],n.hasOwnProperty(g)&&p!=null&&!r.hasOwnProperty(g)&&$(e,t,g,null,r,p);for(u in r)if(p=r[u],m=n[u],r.hasOwnProperty(u)&&p!==m&&(p!=null||m!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:if(p!=null)throw Error(i(137,t));break;default:$(e,t,u,p,r,m)}return;default:if(Xt(t)){for(var _ in n)p=n[_],n.hasOwnProperty(_)&&p!==void 0&&!r.hasOwnProperty(_)&&Nd(e,t,_,void 0,r,p);for(d in r)p=r[d],m=n[d],!r.hasOwnProperty(d)||p===m||p===void 0&&m===void 0||Nd(e,t,d,p,r,m);return}}for(var v in n)p=n[v],n.hasOwnProperty(v)&&p!=null&&!r.hasOwnProperty(v)&&$(e,t,v,null,r,p);for(f in r)p=r[f],m=n[f],!r.hasOwnProperty(f)||p===m||p==null&&m==null||$(e,t,f,p,r,m)}function Id(e){switch(e){case`css`:case`script`:case`font`:case`img`:case`image`:case`input`:case`link`:return!0;default:return!1}}function Ld(){if(typeof performance.getEntriesByType==`function`){for(var e=0,t=0,n=performance.getEntriesByType(`resource`),r=0;r<n.length;r++){var i=n[r],a=i.transferSize,o=i.initiatorType,s=i.duration;if(a&&s&&Id(o)){for(o=0,s=i.responseEnd,r+=1;r<n.length;r++){var c=n[r],l=c.startTime;if(l>s)break;var u=c.transferSize,d=c.initiatorType;u&&Id(d)&&(c=c.responseEnd,o+=u*(c<s?1:(s-l)/(c-l)))}if(--r,t+=8*(a+o)/(i.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e==`number`)?e:5}var Rd=null,zd=null;function Bd(e){return e.nodeType===9?e:e.ownerDocument}function Vd(e){switch(e){case`http://www.w3.org/2000/svg`:return 1;case`http://www.w3.org/1998/Math/MathML`:return 2;default:return 0}}function Hd(e,t){if(e===0)switch(t){case`svg`:return 1;case`math`:return 2;default:return 0}return e===1&&t===`foreignObject`?0:e}function Ud(e,t){return e===`textarea`||e===`noscript`||typeof t.children==`string`||typeof t.children==`number`||typeof t.children==`bigint`||typeof t.dangerouslySetInnerHTML==`object`&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Wd=null;function Gd(){var e=window.event;return e&&e.type===`popstate`?e===Wd?!1:(Wd=e,!0):(Wd=null,!1)}var Kd=typeof setTimeout==`function`?setTimeout:void 0,qd=typeof clearTimeout==`function`?clearTimeout:void 0,Jd=typeof Promise==`function`?Promise:void 0,Yd=typeof queueMicrotask==`function`?queueMicrotask:Jd===void 0?Kd:function(e){return Jd.resolve(null).then(e).catch(Xd)};function Xd(e){setTimeout(function(){throw e})}function Zd(e){return e===`head`}function Qd(e,t){var n=t,r=0;do{var i=n.nextSibling;if(e.removeChild(n),i&&i.nodeType===8)if(n=i.data,n===`/$`||n===`/&`){if(r===0){e.removeChild(i),Np(t);return}r--}else if(n===`$`||n===`$?`||n===`$~`||n===`$!`||n===`&`)r++;else if(n===`html`)pf(e.ownerDocument.documentElement);else if(n===`head`){n=e.ownerDocument.head,pf(n);for(var a=n.firstChild;a;){var o=a.nextSibling,s=a.nodeName;a[mt]||s===`SCRIPT`||s===`STYLE`||s===`LINK`&&a.rel.toLowerCase()===`stylesheet`||n.removeChild(a),a=o}}else n===`body`&&pf(e.ownerDocument.body);n=i}while(n);Np(t)}function $d(e,t){var n=e;e=0;do{var r=n.nextSibling;if(n.nodeType===1?t?(n._stashedDisplay=n.style.display,n.style.display=`none`):(n.style.display=n._stashedDisplay||``,n.getAttribute(`style`)===``&&n.removeAttribute(`style`)):n.nodeType===3&&(t?(n._stashedText=n.nodeValue,n.nodeValue=``):n.nodeValue=n._stashedText||``),r&&r.nodeType===8)if(n=r.data,n===`/$`){if(e===0)break;e--}else n!==`$`&&n!==`$?`&&n!==`$~`&&n!==`$!`||e++;n=r}while(n)}function ef(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case`HTML`:case`HEAD`:case`BODY`:ef(n),ht(n);continue;case`SCRIPT`:case`STYLE`:continue;case`LINK`:if(n.rel.toLowerCase()===`stylesheet`)continue}e.removeChild(n)}}function tf(e,t,n,r){for(;e.nodeType===1;){var i=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!r&&(e.nodeName!==`INPUT`||e.type!==`hidden`))break}else if(!r)if(t===`input`&&e.type===`hidden`){var a=i.name==null?null:``+i.name;if(i.type===`hidden`&&e.getAttribute(`name`)===a)return e}else return e;else if(!e[mt])switch(t){case`meta`:if(!e.hasAttribute(`itemprop`))break;return e;case`link`:if(a=e.getAttribute(`rel`),a===`stylesheet`&&e.hasAttribute(`data-precedence`)||a!==i.rel||e.getAttribute(`href`)!==(i.href==null||i.href===``?null:i.href)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin)||e.getAttribute(`title`)!==(i.title==null?null:i.title))break;return e;case`style`:if(e.hasAttribute(`data-precedence`))break;return e;case`script`:if(a=e.getAttribute(`src`),(a!==(i.src==null?null:i.src)||e.getAttribute(`type`)!==(i.type==null?null:i.type)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin))&&a&&e.hasAttribute(`async`)&&!e.hasAttribute(`itemprop`))break;return e;default:return e}if(e=cf(e.nextSibling),e===null)break}return null}function nf(e,t,n){if(t===``)return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!n||(e=cf(e.nextSibling),e===null))return null;return e}function rf(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!t||(e=cf(e.nextSibling),e===null))return null;return e}function af(e){return e.data===`$?`||e.data===`$~`}function of(e){return e.data===`$!`||e.data===`$?`&&e.ownerDocument.readyState!==`loading`}function sf(e,t){var n=e.ownerDocument;if(e.data===`$~`)e._reactRetry=t;else if(e.data!==`$?`||n.readyState!==`loading`)t();else{var r=function(){t(),n.removeEventListener(`DOMContentLoaded`,r)};n.addEventListener(`DOMContentLoaded`,r),e._reactRetry=r}}function cf(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t===`$`||t===`$!`||t===`$?`||t===`$~`||t===`&`||t===`F!`||t===`F`)break;if(t===`/$`||t===`/&`)return null}}return e}var lf=null;function uf(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`/$`||n===`/&`){if(t===0)return cf(e.nextSibling);t--}else n!==`$`&&n!==`$!`&&n!==`$?`&&n!==`$~`&&n!==`&`||t++}e=e.nextSibling}return null}function df(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`$`||n===`$!`||n===`$?`||n===`$~`||n===`&`){if(t===0)return e;t--}else n!==`/$`&&n!==`/&`||t++}e=e.previousSibling}return null}function ff(e,t,n){switch(t=Bd(n),e){case`html`:if(e=t.documentElement,!e)throw Error(i(452));return e;case`head`:if(e=t.head,!e)throw Error(i(453));return e;case`body`:if(e=t.body,!e)throw Error(i(454));return e;default:throw Error(i(451))}}function pf(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);ht(e)}var mf=new Map,hf=new Set;function gf(e){return typeof e.getRootNode==`function`?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var _f=M.d;M.d={f:vf,r:yf,D:Sf,C:Cf,L:wf,m:Tf,X:Df,S:Ef,M:Of};function vf(){var e=_f.f(),t=bu();return e||t}function yf(e){var t=_t(e);t!==null&&t.tag===5&&t.type===`form`?Ds(t):_f.r(e)}var bf=typeof document>`u`?null:document;function xf(e,t,n){var r=bf;if(r&&typeof t==`string`&&t){var i=zt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),hf.has(i)||(hf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Pd(t,`link`,e),bt(t),r.head.appendChild(t)))}}function Sf(e){_f.D(e),xf(`dns-prefetch`,e,null)}function Cf(e,t){_f.C(e,t),xf(`preconnect`,e,t)}function wf(e,t,n){_f.L(e,t,n);var r=bf;if(r&&e&&t){var i=`link[rel="preload"][as="`+zt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+zt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+zt(n.imageSizes)+`"]`)):i+=`[href="`+zt(e)+`"]`;var a=i;switch(t){case`style`:a=Af(e);break;case`script`:a=Pf(e)}mf.has(a)||(e=h({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),mf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(jf(a))||t===`script`&&r.querySelector(Ff(a))||(t=r.createElement(`link`),Pd(t,`link`,e),bt(t),r.head.appendChild(t)))}}function Tf(e,t){_f.m(e,t);var n=bf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+zt(r)+`"][href="`+zt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Pf(e)}if(!mf.has(a)&&(e=h({rel:`modulepreload`,href:e},t),mf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(Ff(a)))return}r=n.createElement(`link`),Pd(r,`link`,e),bt(r),n.head.appendChild(r)}}}function Ef(e,t,n){_f.S(e,t,n);var r=bf;if(r&&e){var i=yt(r).hoistableStyles,a=Af(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(jf(a)))s.loading=5;else{e=h({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=mf.get(a))&&Rf(e,n);var c=o=r.createElement(`link`);bt(c),Pd(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Lf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Df(e,t){_f.X(e,t);var n=bf;if(n&&e){var r=yt(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=h({src:e,async:!0},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),bt(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Of(e,t){_f.M(e,t);var n=bf;if(n&&e){var r=yt(n).hoistableScripts,i=Pf(e),a=r.get(i);a||(a=n.querySelector(Ff(i)),a||(e=h({src:e,async:!0,type:`module`},t),(t=mf.get(i))&&zf(e,t),a=n.createElement(`script`),bt(a),Pd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function kf(e,t,n,r){var a=(a=le.current)?gf(a):null;if(!a)throw Error(i(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Af(n.href),n=yt(a).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Af(n.href);var o=yt(a).hoistableStyles,s=o.get(e);if(s||(a=a.ownerDocument||a,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=a.querySelector(jf(e)))&&!o._p&&(s.instance=o,s.state.loading=5),mf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},mf.set(e,n),o||Nf(a,e,n,s.state))),t&&r===null)throw Error(i(528,``));return s}if(t&&r!==null)throw Error(i(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Pf(n),n=yt(a).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(i(444,e))}}function Af(e){return`href="`+zt(e)+`"`}function jf(e){return`link[rel="stylesheet"][`+e+`]`}function Mf(e){return h({},e,{"data-precedence":e.precedence,precedence:null})}function Nf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Pd(t,`link`,n),bt(t),e.head.appendChild(t))}function Pf(e){return`[src="`+zt(e)+`"]`}function Ff(e){return`script[async]`+e}function If(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+zt(n.href)+`"]`);if(r)return t.instance=r,bt(r),r;var a=h({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),bt(r),Pd(r,`style`,a),Lf(r,n.precedence,e),t.instance=r;case`stylesheet`:a=Af(n.href);var o=e.querySelector(jf(a));if(o)return t.state.loading|=4,t.instance=o,bt(o),o;r=Mf(n),(a=mf.get(a))&&Rf(r,a),o=(e.ownerDocument||e).createElement(`link`),bt(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Pd(o,`link`,r),t.state.loading|=4,Lf(o,n.precedence,e),t.instance=o;case`script`:return o=Pf(n.src),(a=e.querySelector(Ff(o)))?(t.instance=a,bt(a),a):(r=n,(a=mf.get(o))&&(r=h({},n),zf(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),bt(a),Pd(a,`link`,r),e.head.appendChild(a),t.instance=a);case`void`:return null;default:throw Error(i(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Lf(r,n.precedence,e));return t.instance}function Lf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o<r.length;o++){var s=r[o];if(s.dataset.precedence===t)a=s;else if(a!==i)break}a?a.parentNode.insertBefore(e,a.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function Rf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.title??=t.title}function zf(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.integrity??=t.integrity}var Bf=null;function Vf(e,t,n){if(Bf===null){var r=new Map,i=Bf=new Map;i.set(n,r)}else i=Bf,r=i.get(n),r||(r=new Map,i.set(n,r));if(r.has(e))return r;for(r.set(e,null),n=n.getElementsByTagName(e),i=0;i<n.length;i++){var a=n[i];if(!(a[mt]||a[st]||e===`link`&&a.getAttribute(`rel`)===`stylesheet`)&&a.namespaceURI!==`http://www.w3.org/2000/svg`){var o=a.getAttribute(t)||``;o=e+o;var s=r.get(o);s?s.push(a):r.set(o,[a])}}return r}function Hf(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t===`title`?e.querySelector(`head > title`):null)}function Uf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Wf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Gf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Af(r.href),a=t.querySelector(jf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Jf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,bt(a);return}a=t.ownerDocument||t,r=Mf(r),(i=mf.get(i))&&Rf(r,i),a=a.createElement(`link`),bt(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Pd(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=Jf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var Kf=0;function qf(e,t){return e.stylesheets&&e.count===0&&Xf(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var r=setTimeout(function(){if(e.stylesheets&&Xf(e,e.stylesheets),e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}},6e4+t);0<e.imgBytes&&Kf===0&&(Kf=62500*Ld());var i=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&Xf(e,e.stylesheets),e.unsuspend)){var t=e.unsuspend;e.unsuspend=null,t()}},(e.imgBytes>Kf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Jf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Xf(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Yf=null;function Xf(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Yf=new Map,t.forEach(Zf,e),Yf=null,Jf.call(e))}function Zf(e,t){if(!(t.state.loading&4)){var n=Yf.get(e);if(n)var r=n.get(null);else{n=new Map,Yf.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a<i.length;a++){var o=i[a];(o.nodeName===`LINK`||o.getAttribute(`media`)!==`not all`)&&(n.set(o.dataset.precedence,o),r=o)}r&&n.set(null,r)}i=t.instance,o=i.getAttribute(`data-precedence`),a=n.get(o)||r,a===r&&n.set(null,i),n.set(o,i),this.count++,r=Jf.bind(this),i.addEventListener(`load`,r),i.addEventListener(`error`,r),a?a.parentNode.insertBefore(i,a.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(i,e.firstChild)),t.state.loading|=4}}var Qf={$$typeof:C,Provider:null,Consumer:null,_currentValue:ae,_currentValue2:ae,_threadCount:0};function $f(e,t,n,r,i,a,o,s,c){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=Xe(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Xe(0),this.hiddenUpdates=Xe(null),this.identifierPrefix=r,this.onUncaughtError=i,this.onCaughtError=a,this.onRecoverableError=o,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=c,this.incompleteTransitions=new Map}function ep(e,t,n,r,i,a,o,s,c,l,u,d){return e=new $f(e,t,n,o,c,l,u,d,s),t=1,!0===a&&(t|=24),a=li(3,null,null,t),e.current=a,a.stateNode=e,t=ca(),t.refCount++,e.pooledCache=t,t.refCount++,a.memoizedState={element:r,isDehydrated:n,cache:t},Va(a),e}function tp(e){return e?(e=si,e):si}function np(e,t,n,r,i,a){i=tp(i),r.context===null?r.context=i:r.pendingContext=i,r=Ua(t),r.payload={element:n},a=a===void 0?null:a,a!==null&&(r.callback=a),n=Wa(e,r,t),n!==null&&(hu(n,e,t),Ga(n,e,t))}function rp(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function ip(e,t){rp(e,t),(e=e.alternate)&&rp(e,t)}function ap(e){if(e.tag===13||e.tag===31){var t=ii(e,67108864);t!==null&&hu(t,e,67108864),ip(e,67108864)}}function op(e){if(e.tag===13||e.tag===31){var t=pu();t=nt(t);var n=ii(e,t);n!==null&&hu(n,e,t),ip(e,t)}}var sp=!0;function cp(e,t,n,r){var i=j.T;j.T=null;var a=M.p;try{M.p=2,up(e,t,n,r)}finally{M.p=a,j.T=i}}function lp(e,t,n,r){var i=j.T;j.T=null;var a=M.p;try{M.p=8,up(e,t,n,r)}finally{M.p=a,j.T=i}}function up(e,t,n,r){if(sp){var i=dp(r);if(i===null)wd(e,t,r,fp,n),Cp(e,r);else if(Tp(i,e,t,n,r))r.stopPropagation();else if(Cp(e,r),t&4&&-1<Sp.indexOf(e)){for(;i!==null;){var a=_t(i);if(a!==null)switch(a.tag){case 3:if(a=a.stateNode,a.current.memoizedState.isDehydrated){var o=Ge(a.pendingLanes);if(o!==0){var s=a;for(s.pendingLanes|=2,s.entangledLanes|=2;o;){var c=1<<31-L(o);s.entanglements[1]|=c,o&=~c}rd(a),!(G&6)&&(tu=De()+500,id(0,!1))}}break;case 31:case 13:s=ii(a,2),s!==null&&hu(s,a,2),bu(),ip(a,2)}if(a=dp(r),a===null&&wd(e,t,r,fp,n),a===i)break;i=a}i!==null&&r.stopPropagation()}else wd(e,t,r,null,n)}}function dp(e){return e=nn(e),pp(e)}var fp=null;function pp(e){if(fp=null,e=gt(e),e!==null){var t=o(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=s(t),e!==null)return e;e=null}else if(n===31){if(e=c(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return fp=e,null}function mp(e){switch(e){case`beforetoggle`:case`cancel`:case`click`:case`close`:case`contextmenu`:case`copy`:case`cut`:case`auxclick`:case`dblclick`:case`dragend`:case`dragstart`:case`drop`:case`focusin`:case`focusout`:case`input`:case`invalid`:case`keydown`:case`keypress`:case`keyup`:case`mousedown`:case`mouseup`:case`paste`:case`pause`:case`play`:case`pointercancel`:case`pointerdown`:case`pointerup`:case`ratechange`:case`reset`:case`resize`:case`seeked`:case`submit`:case`toggle`:case`touchcancel`:case`touchend`:case`touchstart`:case`volumechange`:case`change`:case`selectionchange`:case`textInput`:case`compositionstart`:case`compositionend`:case`compositionupdate`:case`beforeblur`:case`afterblur`:case`beforeinput`:case`blur`:case`fullscreenchange`:case`focus`:case`hashchange`:case`popstate`:case`select`:case`selectstart`:return 2;case`drag`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`mousemove`:case`mouseout`:case`mouseover`:case`pointermove`:case`pointerout`:case`pointerover`:case`scroll`:case`touchmove`:case`wheel`:case`mouseenter`:case`mouseleave`:case`pointerenter`:case`pointerleave`:return 8;case`message`:switch(Oe()){case ke:return 2;case Ae:return 8;case je:case Me:return 32;case Ne:return 268435456;default:return 32}default:return 32}}var hp=!1,gp=null,_p=null,vp=null,yp=new Map,bp=new Map,xp=[],Sp=`mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset`.split(` `);function Cp(e,t){switch(e){case`focusin`:case`focusout`:gp=null;break;case`dragenter`:case`dragleave`:_p=null;break;case`mouseover`:case`mouseout`:vp=null;break;case`pointerover`:case`pointerout`:yp.delete(t.pointerId);break;case`gotpointercapture`:case`lostpointercapture`:bp.delete(t.pointerId)}}function wp(e,t,n,r,i,a){return e===null||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[i]},t!==null&&(t=_t(t),t!==null&&ap(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,i!==null&&t.indexOf(i)===-1&&t.push(i),e)}function Tp(e,t,n,r,i){switch(t){case`focusin`:return gp=wp(gp,e,t,n,r,i),!0;case`dragenter`:return _p=wp(_p,e,t,n,r,i),!0;case`mouseover`:return vp=wp(vp,e,t,n,r,i),!0;case`pointerover`:var a=i.pointerId;return yp.set(a,wp(yp.get(a)||null,e,t,n,r,i)),!0;case`gotpointercapture`:return a=i.pointerId,bp.set(a,wp(bp.get(a)||null,e,t,n,r,i)),!0}return!1}function Ep(e){var t=gt(e.target);if(t!==null){var n=o(t);if(n!==null){if(t=n.tag,t===13){if(t=s(n),t!==null){e.blockedOn=t,at(e.priority,function(){op(n)});return}}else if(t===31){if(t=c(n),t!==null){e.blockedOn=t,at(e.priority,function(){op(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Dp(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=dp(e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);tn=r,n.target.dispatchEvent(r),tn=null}else return t=_t(n),t!==null&&ap(t),e.blockedOn=n,!1;t.shift()}return!0}function Op(e,t,n){Dp(e)&&n.delete(t)}function kp(){hp=!1,gp!==null&&Dp(gp)&&(gp=null),_p!==null&&Dp(_p)&&(_p=null),vp!==null&&Dp(vp)&&(vp=null),yp.forEach(Op),bp.forEach(Op)}function Ap(e,n){e.blockedOn===n&&(e.blockedOn=null,hp||(hp=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,kp)))}var jp=null;function Mp(e){jp!==e&&(jp=e,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){jp===e&&(jp=null);for(var t=0;t<e.length;t+=3){var n=e[t],r=e[t+1],i=e[t+2];if(typeof r!=`function`){if(pp(r||n)===null)continue;break}var a=_t(n);a!==null&&(e.splice(t,3),t-=3,Ts(a,{pending:!0,data:i,method:n.method,action:r},r,i))}}))}function Np(e){function t(t){return Ap(t,e)}gp!==null&&Ap(gp,e),_p!==null&&Ap(_p,e),vp!==null&&Ap(vp,e),yp.forEach(t),bp.forEach(t);for(var n=0;n<xp.length;n++){var r=xp[n];r.blockedOn===e&&(r.blockedOn=null)}for(;0<xp.length&&(n=xp[0],n.blockedOn===null);)Ep(n),n.blockedOn===null&&xp.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(r=0;r<n.length;r+=3){var i=n[r],a=n[r+1],o=i[ct]||null;if(typeof a==`function`)o||Mp(n);else if(o){var s=null;if(a&&a.hasAttribute(`formAction`)){if(i=a,o=a[ct]||null)s=o.formAction;else if(pp(i)!==null)continue}else s=o.action;typeof s==`function`?n[r+1]=s:(n.splice(r,3),r-=3),Mp(n)}}}function Pp(){function e(e){e.canIntercept&&e.info===`react-transition`&&e.intercept({handler:function(){return new Promise(function(e){return i=e})},focusReset:`manual`,scroll:`manual`})}function t(){i!==null&&(i(),i=null),r||setTimeout(n,20)}function n(){if(!r&&!navigation.transition){var e=navigation.currentEntry;e&&e.url!=null&&navigation.navigate(e.url,{state:e.getState(),info:`react-transition`,history:`replace`})}}if(typeof navigation==`object`){var r=!1,i=null;return navigation.addEventListener(`navigate`,e),navigation.addEventListener(`navigatesuccess`,t),navigation.addEventListener(`navigateerror`,t),setTimeout(n,100),function(){r=!0,navigation.removeEventListener(`navigate`,e),navigation.removeEventListener(`navigatesuccess`,t),navigation.removeEventListener(`navigateerror`,t),i!==null&&(i(),i=null)}}}function Fp(e){this._internalRoot=e}Ip.prototype.render=Fp.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(i(409));var n=t.current;np(n,pu(),e,t,null,null)},Ip.prototype.unmount=Fp.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;np(e.current,2,null,e,null,null),bu(),t[lt]=null}};function Ip(e){this._internalRoot=e}Ip.prototype.unstable_scheduleHydration=function(e){if(e){var t=it();e={blockedOn:null,target:e,priority:t};for(var n=0;n<xp.length&&t!==0&&t<xp[n].priority;n++);xp.splice(n,0,e),n===0&&Ep(e)}};var Lp=n.version;if(Lp!==`19.2.7`)throw Error(i(527,Lp,`19.2.7`));M.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render==`function`?Error(i(188)):(e=Object.keys(e).join(`,`),Error(i(268,e)));return e=d(t),e=e===null?null:p(e),e=e===null?null:e.stateNode,e};var Rp={bundleType:0,version:`19.2.7`,rendererPackageName:`react-dom`,currentDispatcherRef:j,reconcilerVersion:`19.2.7`};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`){var zp=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!zp.isDisabled&&zp.supportsFiber)try{Ie=zp.inject(Rp),Le=zp}catch{}}e.createRoot=function(e,t){if(!a(e))throw Error(i(299));var n=!1,r=``,o=Js,s=Ys,c=Xs;return t!=null&&(!0===t.unstable_strictMode&&(n=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onUncaughtError!==void 0&&(o=t.onUncaughtError),t.onCaughtError!==void 0&&(s=t.onCaughtError),t.onRecoverableError!==void 0&&(c=t.onRecoverableError)),t=ep(e,1,!1,null,null,n,r,null,o,s,c,Pp),e[lt]=t.current,Sd(e),new Fp(t)}})),g=o(((e,t)=>{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=h()})),_=c(u(),1),v=c(g(),1),y={en:{day:`d`,hour:`h`,minute:`m`,second:`s`},de:{day:`T`,hour:`Std`,minute:`Min`,second:`Sek`},ko:{day:`일`,hour:`시간`,minute:`분`,second:`초`},zh:{day:`天`,hour:`小时`,minute:`分钟`,second:`秒`}};function b(e,t){let n=Math.max(0,Math.floor(e)),r=y[t]??y.en;if(n<300)return`${n}${r.second}`;let i=Math.floor(n/60);if(i<60)return`${i}${r.minute}`;let a=Math.floor(i/60);if(a<24){let e=i%60;return e>0?`${a}${r.hour} ${e}${r.minute}`:`${a}${r.hour}`}let o=Math.floor(a/24),s=a%24;return s>0?`${o}${r.day} ${s}${r.hour}`:`${o}${r.day}`}var x=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),S=o(((e,t)=>{t.exports=x()}))(),C=e=>({viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`,...e}),w=e=>(0,S.jsxs)(`svg`,{...C(e),children:[(0,S.jsx)(`rect`,{x:`3`,y:`3`,width:`7`,height:`7`,rx:`1.5`}),(0,S.jsx)(`rect`,{x:`14`,y:`3`,width:`7`,height:`7`,rx:`1.5`}),(0,S.jsx)(`rect`,{x:`3`,y:`14`,width:`7`,height:`7`,rx:`1.5`}),(0,S.jsx)(`rect`,{x:`14`,y:`14`,width:`7`,height:`7`,rx:`1.5`})]}),T=e=>(0,S.jsxs)(`svg`,{...C(e),children:[(0,S.jsx)(`rect`,{x:`3`,y:`4`,width:`18`,height:`7`,rx:`2`}),(0,S.jsx)(`rect`,{x:`3`,y:`13`,width:`18`,height:`7`,rx:`2`}),(0,S.jsx)(`path`,{d:`M7 7.5h.01M7 16.5h.01`})]}),E=e=>(0,S.jsxs)(`svg`,{...C(e),children:[(0,S.jsx)(`path`,{d:`M12 2 4 6v6l8 4 8-4V6l-8-4Z`}),(0,S.jsx)(`path`,{d:`m4 6 8 4 8-4M12 10v8`})]}),ee=e=>(0,S.jsxs)(`svg`,{...C(e),children:[(0,S.jsx)(`rect`,{x:`4`,y:`8`,width:`16`,height:`11`,rx:`3`}),(0,S.jsx)(`path`,{d:`M12 8V4M8 2h8`}),(0,S.jsx)(`circle`,{cx:`9`,cy:`13`,r:`1`}),(0,S.jsx)(`circle`,{cx:`15`,cy:`13`,r:`1`})]}),D=e=>(0,S.jsx)(`svg`,{...C(e),children:(0,S.jsx)(`path`,{d:`M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01`})}),te=e=>(0,S.jsxs)(`svg`,{...C(e),children:[(0,S.jsx)(`path`,{d:`m4 17 6-5-6-5`}),(0,S.jsx)(`path`,{d:`M12 19h8`})]}),ne=e=>(0,S.jsx)(`svg`,{...C(e),children:(0,S.jsx)(`path`,{d:`M22 12h-4l-3 9L9 3l-3 9H2`})}),O=e=>(0,S.jsx)(`svg`,{...C(e),children:(0,S.jsx)(`path`,{d:`m20 6-11 11-5-5`})}),k=e=>(0,S.jsx)(`svg`,{...C(e),children:(0,S.jsx)(`path`,{d:`M18 6 6 18M6 6l12 12`})}),re=e=>(0,S.jsx)(`svg`,{...C(e),children:(0,S.jsx)(`path`,{d:`M12 5v14M5 12h14`})}),A=e=>(0,S.jsx)(`svg`,{...C(e),children:(0,S.jsx)(`path`,{d:`M21 12a9 9 0 0 1-9 9 9.8 9.8 0 0 1-6.7-2.7L3 16M3 21v-5h5M3 12a9 9 0 0 1 9-9 9.8 9.8 0 0 1 6.7 2.7L21 8M21 3v5h-5`})}),ie=e=>(0,S.jsx)(`svg`,{...C(e),children:(0,S.jsx)(`path`,{d:`M3 6h18M8 6V4h8v2M19 6l-1 14H6L5 6`})}),j=e=>(0,S.jsxs)(`svg`,{...C(e),children:[(0,S.jsx)(`path`,{d:`M10.3 3.7 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.7a2 2 0 0 0-3.4 0Z`}),(0,S.jsx)(`path`,{d:`M12 9v4M12 17h.01`})]}),M=e=>(0,S.jsxs)(`svg`,{...C(e),children:[(0,S.jsx)(`circle`,{cx:`12`,cy:`12`,r:`10`}),(0,S.jsx)(`path`,{d:`M12 16v-4M12 8h.01`})]}),ae=e=>(0,S.jsxs)(`svg`,{...C(e),children:[(0,S.jsx)(`circle`,{cx:`11`,cy:`11`,r:`7`}),(0,S.jsx)(`path`,{d:`m21 21-4.3-4.3`})]}),N=e=>(0,S.jsx)(`svg`,{...C(e),children:(0,S.jsx)(`path`,{d:`M12 19V5M5 12l7-7 7 7`})}),P=e=>(0,S.jsx)(`svg`,{...C(e),children:(0,S.jsx)(`path`,{d:`M12 5v14M19 12l-7 7-7-7`})}),oe=e=>(0,S.jsx)(`svg`,{...C(e),children:(0,S.jsx)(`path`,{d:`m9 18 6-6-6-6`})}),F=e=>(0,S.jsx)(`svg`,{...C(e),children:(0,S.jsx)(`path`,{d:`M9 19c-5 1.5-5-2.5-7-3m14 6v-3.9a3.4 3.4 0 0 0-.9-2.6c3-.3 6.2-1.5 6.2-6.7A5.2 5.2 0 0 0 20 4.8 4.9 4.9 0 0 0 19.9 1S18.7.6 16 2.5a13.4 13.4 0 0 0-7 0C6.3.6 5.1 1 5.1 1A4.9 4.9 0 0 0 5 4.8a5.2 5.2 0 0 0-1.4 3.7c0 5.1 3.1 6.4 6.1 6.7a3.4 3.4 0 0 0-.9 2.5V22`})}),I=e=>(0,S.jsxs)(`svg`,{...C(e),children:[(0,S.jsx)(`path`,{d:`M18.4 5.6a9 9 0 1 1-12.8 0`}),(0,S.jsx)(`path`,{d:`M12 2v10`})]}),se=e=>(0,S.jsx)(`svg`,{...C(e),children:(0,S.jsx)(`path`,{d:`M15 3h6v6M10 14 21 3M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`})}),ce=e=>(0,S.jsxs)(`svg`,{...C(e),children:[(0,S.jsx)(`circle`,{cx:`7.5`,cy:`15.5`,r:`4.5`}),(0,S.jsx)(`path`,{d:`m10.7 12.3 9.6-9.6M16 7l3 3M14 9l2 2`})]}),le=e=>(0,S.jsxs)(`svg`,{...C(e),children:[(0,S.jsx)(`rect`,{x:`4`,y:`11`,width:`16`,height:`10`,rx:`2`}),(0,S.jsx)(`path`,{d:`M8 11V7a4 4 0 0 1 8 0v4`})]}),ue=e=>(0,S.jsxs)(`svg`,{...C(e),children:[(0,S.jsx)(`path`,{d:`M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z`}),(0,S.jsx)(`path`,{d:`M13 5v2`}),(0,S.jsx)(`path`,{d:`M13 17v2`}),(0,S.jsx)(`path`,{d:`M13 11v2`})]}),de=e=>(0,S.jsx)(`svg`,{...C(e),children:(0,S.jsx)(`path`,{d:`M9 17H7A5 5 0 0 1 7 7h2M15 7h2a5 5 0 0 1 0 10h-2M8 12h8`})}),fe=e=>(0,S.jsxs)(`svg`,{...C(e),children:[(0,S.jsx)(`circle`,{cx:`12`,cy:`12`,r:`4`}),(0,S.jsx)(`path`,{d:`M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4`})]}),pe=e=>(0,S.jsx)(`svg`,{...C(e),children:(0,S.jsx)(`path`,{d:`M21 12.8A9 9 0 1 1 11.2 3 7 7 0 0 0 21 12.8Z`})}),me=e=>(0,S.jsxs)(`svg`,{...C(e),children:[(0,S.jsx)(`rect`,{x:`2`,y:`3`,width:`20`,height:`14`,rx:`2`}),(0,S.jsx)(`path`,{d:`M8 21h8M12 17v4`})]}),he=e=>(0,S.jsxs)(`svg`,{...C(e),children:[(0,S.jsx)(`circle`,{cx:`12`,cy:`12`,r:`9`}),(0,S.jsx)(`path`,{d:`M3 12h18M12 3a14 14 0 0 1 0 18M12 3a14 14 0 0 0 0 18`})]}),ge=e=>(0,S.jsx)(`svg`,{...C(e),children:(0,S.jsx)(`path`,{d:`M12 3v18M5.6 5.6l12.8 12.8M3 12h18M5.6 18.4 18.4 5.6`})}),_e={"nav.dashboard":`Dashboard`,"nav.providers":`Providers`,"nav.models":`Models`,"nav.subagents":`Subagents`,"nav.logs":`Logs`,"nav.debug":`Debug`,"nav.usage":`Usage`,"common.github":`GitHub`,"common.save":`Save`,"common.cancel":`Cancel`,"common.remove":`Remove`,"common.loading":`Loading…`,"theme.label":`Theme`,"theme.light":`Light`,"theme.dark":`Dark`,"theme.system":`System`,"lang.label":`Language`,"dash.subtitle":`Live status of the local opencodex proxy, its providers, and the models routed into Codex.`,"dash.status":`Status`,"dash.online":`Online`,"dash.offline":`Offline`,"dash.version":`Version`,"dash.uptime":`Uptime`,"dash.providers":`Providers`,"dash.tokens30d":`Tokens (30d)`,"dash.coverage":`{pct} coverage`,"dash.activeProviders":`Active providers`,"dash.noProviders":`No providers configured. Run {cmd}.`,"dash.col.name":`Name`,"dash.col.adapter":`Adapter`,"dash.col.baseUrl":`Base URL`,"dash.col.model":`Model`,"dash.availableModels":`Available models`,"dash.noModels":`No models found. Check provider API keys.`,"dash.cannotConnect":`Cannot connect to proxy. Is it running?`,"dash.runStart":`Run {cmd} to start the proxy.`,"dash.stop":`Stop Proxy`,"dash.stopConfirm":`Stop the proxy and restore native Codex?`,"dash.stopping":`Stopping…`,"dash.codexAutoStart":`Start opencodex with Codex`,"dash.codexAutoStartHint":`When enabled, the Codex shim runs ocx ensure before every Codex CLI/App launch. Disable this to leave Codex untouched.`,"dash.searchModel":`Search sidecar model`,"dash.searchModelHint":`Model used for web_search on non-OpenAI routed models. Requires ChatGPT login.`,"dash.searchReasoning":`Search reasoning effort`,"dash.visionModel":`Vision sidecar model`,"dash.visionModelHint":`Model used to describe images for text-only routed models. Requires ChatGPT login.`,"dash.webSearchSidecar":`Web search sidecar`,"dash.webSearchSidecarHint":`Choose the backend and model used for web search on routed models.`,"dash.visionSidecar":`Vision sidecar`,"dash.visionSidecarHint":`Choose the backend and model used to describe images for text-only routed models.`,"dash.sidecarBackend":`Backend`,"dash.sidecarModel":`Model`,"dash.backendAuto":`Auto`,"dash.backendOpenAI":`OpenAI`,"dash.backendAnthropic":`Anthropic`,"dash.sidecarSaved":`Sidecar settings saved. Applied on the next request.`,"dash.sidecarSaveFailed":`Failed to save sidecar settings.`,"dash.injectionLabel":`Sub-agent delegation`,"dash.injectionHint":`Pick a routed model to inject into the delegation prompt. The agent will be told to use it for sub-tasks.`,"dash.injectionActive":`Active`,"dash.injectionNone":`None`,"dash.injectionEffortLabel":`Reasoning effort`,"dash.injectionEffortNone":`Model default`,"dash.effortCapLabel":`V2 ultra effort limit`,"dash.subagentEffortCapLabel":`V2 sub-agent effort limit`,"dash.effortCapHelp":`Limits the reasoning effort for V2 ultra-mode turns. When set, incoming max-effort requests (from ultra mode) are capped to the selected level. The sub-agent limit applies only to spawned child agents. Caps only lower effort, never raise it. If a model doesn't support the capped level, it snaps down to the nearest supported level.`,"dash.effortCapNone":`No cap`,"dash.maintenance":`Maintenance`,"dash.maintenanceHint":`Refresh Codex's model catalog or install a newer opencodex release.`,"dash.syncModels":`Sync models`,"dash.syncing":`Syncing…`,"dash.syncOk":`Sync complete. {count} model(s) appended.`,"dash.syncStaleHint":`If Codex App still shows an older list, restart its long-lived app-server process.`,"dash.syncFailed":`Sync failed: {error}`,"dash.projectConfigTitle":`Project Codex config bypasses OpenCodex`,"dash.projectConfigHint":`These repo-local settings override the OpenCodex proxy (e.g. route to OpenCode Go directly). Remove them so ~/.codex/config.toml routing applies in that project.`,"dash.checkUpdate":`Check update`,"dash.updateTitle":`Update opencodex`,"dash.updateDesc":`Check npm for the selected channel, then choose whether to restart the proxy after installation.`,"dash.updateChannel":`Channel`,"dash.updateChecking":`Checking for updates…`,"dash.updateInstalled":`Installed`,"dash.updateLatest":`Latest`,"dash.updateAvailable":`Update available`,"dash.updateCurrent":`Up to date`,"dash.updateCommand":`Command`,"dash.updateSource":`This is a source checkout. Update it from the terminal with the shown command.`,"dash.updateUnavailable":`Could not read the latest version from npm. Try again later.`,"dash.updateRetry":`Retry`,"dash.updateRecheck":`Re-check`,"dash.updateCannotAuto":`One-click update is unavailable ({reason}).`,"dash.updateReason.source_checkout":`source checkout`,"dash.updateReason.latest_unavailable":`npm registry unreachable`,"dash.updateReason.already_latest":`already on latest`,"dash.updateReason.unknown":`update unavailable`,"dash.updateRestart":`Restart after update`,"dash.updateRestartHint":`Recommended. The current GUI keeps running the old code until the proxy restarts.`,"dash.runUpdate":`Update`,"dash.updateReconnecting":`Waiting for the restarted proxy…`,"dash.updateStatus.running":`Updating opencodex.`,"dash.updateStatus.restarting":`Update installed. Restarting proxy.`,"dash.updateStatus.succeeded":`Update finished.`,"dash.updateStatus.failed":`Update failed.`,"prov.subtitle":`Configure the upstream providers opencodex routes into Codex. Log in with an account, add a provider, or edit the raw config.`,"prov.add":`Add Provider`,"prov.editJson":`Edit JSON`,"prov.accountLogin":`Account login`,"prov.noOauth":`No OAuth providers available.`,"prov.loggedIn":`logged in`,"prov.notLoggedIn":`not logged in`,"prov.logout":`Logout`,"prov.login":`Login`,"prov.loginWith":`Login with {provider}`,"prov.waitingBrowser":`Waiting for browser…`,"prov.didntOpen":`Didn't open? Click here`,"prov.port":`Port`,"prov.default":`Default`,"prov.loadingConfig":`Loading…`,"prov.saved":`Saved! Restart proxy to apply.`,"prov.loadConfigFail":`Failed to load config`,"prov.invalidJson":`Invalid JSON`,"prov.saveFailed":`Save failed`,"prov.loginFailStart":`{provider} login failed to start`,"prov.loginError":`{provider} login error: {error}`,"prov.loginRequestFail":`{provider} login request failed`,"prov.loginOk":`Logged in to {provider}. Run {cmd} (or it applies live) to list its models.`,"prov.logoutOk":`Logged out of {provider}.`,"prov.removed":`Removed "{name}".`,"prov.removeFail":`Failed to remove "{name}".`,"prov.added":`Added "{name}". Live now — run {cmd} (or restart) to list its models in Codex's picker.`,"prov.removeConfirm":`Remove provider "{name}"? Its models disappear from Codex's picker.`,"prov.hasApiKey":`api key configured`,"prov.hasHeaders":`custom headers configured`,"prov.accounts":`Accounts ({n})`,"prov.accountsAria":`Toggle {name} accounts`,"prov.accountActive":`Active`,"prov.accountReauth":`Re-login`,"prov.accountAdd":`Add account`,"prov.accountNoLabel":`account {id}`,"prov.accountSwitchTitle":`Use this account`,"prov.accountSwitched":`Switched to {email}.`,"prov.accountSwitchFail":`Failed to switch account`,"prov.accountRemoved":`Removed {email}.`,"prov.accountRemoveAria":`Remove {email}`,"prov.accountRemoveConfirm":`Remove account {email}? Its login is deleted from this proxy.`,"prov.keyAdd":`Add API key`,"prov.keyAdded":`Added API key to {name}.`,"prov.keyAddFail":`Failed to add API key`,"prov.keyPlaceholder":`Paste API key`,"prov.keySwitchTitle":`Use this key`,"prov.keySwitched":`Switched to key {key}.`,"prov.keySwitchFail":`Failed to switch key`,"prov.keyRemoved":`Removed key {key}.`,"prov.keyRemoveAria":`Remove key {key}`,"prov.keyRemoveConfirm":`Remove API key {key}? It is deleted from this proxy's config.`,"prov.activeBadge":`Active`,"prov.disabledBadge":`Disabled`,"prov.defaultBadge":`Default`,"prov.enable":`Enable`,"prov.disable":`Disable`,"prov.enabled":`Enabled "{name}". Its models can appear in Codex again.`,"prov.disabled":`Disabled "{name}". Settings are kept, but its models are hidden.`,"prov.enableFail":`Failed to enable "{name}".`,"prov.disableFail":`Failed to disable "{name}".`,"prov.enableAria":`Enable provider {name}`,"prov.disableAria":`Disable provider {name}`,"prov.defaultCannotDisable":`Default provider can't be disabled`,"models.subtitle":`Toggle which models Codex sees — native GPT passthrough and routed providers, grouped by provider (click a header to collapse). Disabled models are hidden from the catalog + model picker. Changes apply on the next Codex turn — opencodex invalidates Codex's 5-min model cache so no restart is needed.`,"models.nativeGroupLabel":`OpenAI native`,"models.nativeHint":`Passthrough models served over your ChatGPT login. Toggling one off hides it from the Codex picker (the catalog entry is kept, so re-enabling restores it exactly).`,"models.active":`{active}/{total} active`,"models.allOn":`All on`,"models.allOff":`All off`,"models.cap350k":`Cap 350k`,"models.capApplied":`Context cap applied — takes effect on the next Codex turn.`,"models.capSaveFailed":`Failed to save context cap`,"models.contextCapped":`350k cap`,"models.contextCapLabel":`Context cap`,"models.v2Label":`Sub-agent`,"models.v2DocsLink":`What is v1 / v2?`,"models.v2Mode_v1":`v1`,"models.v2Mode_default":`base`,"models.v2Mode_v2":`v2`,"models.v2ModeDesc_v1":`All models → v1 surface`,"models.v2ModeDesc_default":`Upstream defaults (sol/terra=v2, luna=v1)`,"models.v2ModeDesc_v2":`All models → v2 surface`,"models.v2Help":`Controls the multi-agent surface for all models.
|
|
10
|
+
|
|
11
|
+
v1: Classic single-thread agent. Every model uses the v1 collab surface.
|
|
12
|
+
base: Upstream defaults — sol/terra use v2, luna uses v1, others follow the codex feature flag.
|
|
13
|
+
v2: Multi-thread agent with spawn_agent. Every model uses the v2 collab surface.
|
|
14
|
+
|
|
15
|
+
Changes apply to new sessions.`,"dash.multiAgent":`Sub-agent`,"models.v2Conflict":`[agents] max_threads is set — codex will refuse to start; remove it from config.toml`,"models.v2Applied":`multi_agent_v2 updated — applies to new sessions (restart the Codex app to refresh the picker)`,"models.v2ThreadsLabel":`Max threads`,"models.v2ThreadsDefault":`default (4)`,"models.v2ThreadsApplied":`Thread limit updated — applies to new sessions`,"models.v2ThreadsInvalid":`Thread limit must be an integer >= 1`,"models.v2ThreadsApply":`Apply`,"models.capValue":`Cap {value}`,"models.contextCappedValue":`{value} cap`,"models.setAll":`Set all`,"models.custom":`Custom…`,"models.customApply":`Apply`,"models.customPlaceholder":`Tokens (e.g. 420000)`,"models.applied":`Applied — takes effect on the next Codex turn.`,"models.saveFailed":`Save failed`,"models.networkError":`Network error — is the proxy running?`,"models.loadFail":`Failed to load models — is the proxy running?`,"models.noRouted":`No routed models`,"models.noRoutedHint":`Log into a provider or add one first.`,"models.loading":`Loading…`,"models.search":`Search models…`,"models.showMore":`Show {n} more`,"models.allowlistLabel":`Only selected`,"models.allowlistHint":`Only checked models ship to the catalog (empty = all). Useful for providers exposing thousands of models.`,"models.selectedCount":`{n} selected`,"models.orderHint":`Picker order: Subagents picks (in the selected order) → remaining routed models alphabetically by provider, then model ID → native models. Visibility switches only filter models; they do not change this order.`,"sub.subtitle":`Codex's {cmd} advertises only the first 5 models (by priority) as overrides. Pick up to 5 here — native gpt or routed — and opencodex sets their catalog priority so exactly these lead. Any other model is still callable by its exact name; this only controls what's shown.`,"sub.featured":`Featured`,"sub.orderHint":`The order shown here sets positions 1–5 at the top of the Codex model picker and the default model candidates for {cmd}.`,"sub.noneSelected":`None selected — pick from the list below.`,"sub.models":`Models`,"sub.search":`Search models (native gpt + routed)…`,"sub.noModels":`No models — log into a provider or add one first.`,"sub.saved":`Saved {n} models. Start a new Codex session (or run {cmd}) to see them as spawn_agent overrides.`,"sub.saveFailed":`Save failed`,"sub.networkError":`Network error — is the proxy running?`,"sub.loadFail":`Failed to load models — is the proxy running?`,"sub.loading":`Loading…`,"sub.moveUp":`Move {m} up`,"sub.moveDown":`Move {m} down`,"sub.removeAria":`Remove {m}`,"logs.title":`Request Logs`,"logs.subtitle":`Recent requests routed through the local opencodex proxy, newest first.`,"logs.autoRefresh":`Auto-refresh`,"logs.noRequests":`No requests yet.`,"logs.filter.surface.label":`Surface`,"logs.filter.surface.all":`All`,"logs.filter.surface.claude":`Claude`,"logs.filter.surface.codex":`Codex`,"logs.badge.claude":`Claude`,"logs.col.time":`Time`,"logs.col.request":`Request`,"logs.col.model":`Model`,"logs.col.effort":`Effort`,"logs.col.provider":`Provider`,"logs.col.status":`Status`,"logs.col.tokens":`Tokens`,"logs.col.error":`Error`,"logs.col.upstreamReason":`Upstream reason`,"logs.col.duration":`Duration`,"logs.tokens.reported":`reported`,"logs.tokens.unreported":`unreported`,"logs.tokens.unsupported":`unsupported`,"logs.tokens.estimated":`estimated`,"logs.tokens.input":`input`,"logs.tokens.output":`output`,"logs.tokens.cacheRead":`cache read (c)`,"logs.tokens.cacheWrite":`cache write (w)`,"logs.tokens.reasoning":`reasoning`,"logs.tokens.noCache":`no cache data`,"logs.tokens.noCacheNote":`this provider does not report cache tokens`,"logs.tokens.estimatedNote":`estimated (provider reports no exact usage)`,"logs.details":`Details`,"logs.detailTitle":`Request details`,"logs.detailRaw":`Raw log entry`,"debug.title":`Debug`,"debug.subtitle":`Opt-in provider transport and usage-extraction diagnostics. Request errors and 502s stay on Logs.`,"debug.debug":`Provider debug`,"debug.usage":`Usage extraction`,"debug.injection":`Injection log`,"debug.claude":`Claude inbound`,"debug.claudeInbound.title":`Claude inbound requests`,"debug.claudeInbound.sub":`What Claude Code/Desktop actually sends (thinking, effort, metadata) — no prompt text is stored.`,"debug.claudeInbound.empty":`No requests captured yet. Send a message from Claude while this is on.`,"debug.claudeInbound.time":`Time`,"debug.claudeInbound.endpoint":`Endpoint`,"debug.claudeInbound.model":`Model`,"debug.claudeInbound.none":`none`,"debug.reset":`Clear runtime overrides`,"debug.refresh":`Refresh`,"debug.follow":`Follow`,"debug.streamProvider":`Provider`,"debug.streamUsage":`Usage`,"debug.streamInjection":`Injection`,"debug.loading":`Loading debug settings…`,"debug.emptyTitle":`Debug logging is off`,"debug.empty":`Turn on Provider debug or Usage extraction in the card above. Lines appear here after you send a request through the proxy.`,"debug.noLinesTitle":`Waiting for lines`,"debug.noLines.provider":`Provider debug is on, but it only records transport anomalies (dropped or malformed frames, and Cursor dial/retry events). A clean request through a provider like Anthropic can produce no lines.`,"debug.noLines.usage":`Usage extraction is on but nothing has been captured yet. Send a chat/request through Codex and it appears here.`,"debug.noLines.injection":`Injection log is on but nothing has been captured yet. It records multi-agent guidance injection and effort-cap decisions on collab and sub-agent turns.`,"usage.title":`Usage`,"usage.subtitle":`Local token accounting from your proxy. Missing usage is never shown as zero.`,"usage.loading":`Loading usage data…`,"usage.empty":`No usage recorded yet. Send a request through the proxy to see activity here.`,"usage.range.all":`All`,"usage.range.30d":`30d`,"usage.range.7d":`7d`,"usage.card.requests":`Requests`,"usage.card.measured":`Measured`,"usage.card.reported":`Reported`,"usage.card.totalTokens":`Total tokens`,"usage.card.cachedTokens":`Cache reads`,"usage.card.cachedTokensHint":`Prompt tokens served from the provider cache (reads). Cache writes are shown below when present.`,"usage.card.cacheWriteTokens":`cache writes`,"usage.card.coverage":`Coverage`,"usage.card.activeDays":`Active days`,"usage.section.heatmap":`Daily activity`,"usage.section.models":`Models`,"usage.section.providers":`Providers`,"usage.section.coverage":`Coverage breakdown`,"usage.coverage.measured":`Measured`,"usage.coverage.reported":`Provider reported`,"usage.coverage.estimated":`Estimated`,"usage.coverage.note":`Measured entries include provider-reported and estimated token counts. Unreported and unsupported requests are tracked but never inflated to zero tokens.`,"usage.search.models":`Search models…`,"usage.col.requests":`Requests`,"usage.col.measured":`Measured`,"usage.col.reported":`Reported`,"usage.col.tokens":`Tokens`,"usage.col.share":`Share`,"usage.heatmap.less":`Less`,"usage.heatmap.more":`More`,"modal.addNamed":`Add: {label}`,"modal.add":`Add provider`,"modal.search":`Search providers…`,"modal.logInWith":`Log in with {label}`,"modal.waitingBrowser":`Waiting for browser…`,"modal.providerName":`Provider name`,"modal.adapter":`Adapter`,"modal.baseUrl":`Base URL`,"modal.defaultModel":`Default model (optional)`,"modal.nameRequired":`Provider name is required`,"modal.baseUrlRequired":`Base URL is required`,"modal.networkError":`Network error — is the proxy running?`,"modal.loginFailStart":`Login failed to start`,"modal.waitingLogin":`Waiting for browser login…`,"modal.loggingIn":`Logging in…`,"modal.loginTimeout":`Login timed out — try again.`,"nav.codexAuth":`Codex Auth`,"nav.api":`API`,"codexAuth.mainAccount":`Main Account`,"codexAuth.appLogin":`App login`,"codexAuth.accountPool":`Account Pool`,"codexAuth.add":`Add`,"codexAuth.refreshQuota":`Refresh quotas`,"codexAuth.refreshingQuota":`Refreshing...`,"codexAuth.quotaRefreshed":`Quotas refreshed`,"codexAuth.quotaRefreshFailed":`Failed to refresh quotas`,"codexAuth.noPool":`No pool accounts added yet.`,"codexAuth.weekly":`Week`,"codexAuth.fiveHour":`5h`,"codexAuth.monthly":`30d`,"codexAuth.resets":`resets`,"codexAuth.today":`Today`,"codexAuth.current":`CURRENT`,"codexAuth.nextSession":`NEXT SESSION`,"codexAuth.switchTitle":`Switch active account?`,"codexAuth.switchDesc":`This applies from the next Codex session. Current session stays on the existing account.`,"codexAuth.cacheWarning":`Prompt cache resets on account switch. New session starts with empty cache.`,"codexAuth.setAsNext":`Set as Next Session`,"codexAuth.cancel":`Cancel`,"codexAuth.switchBack":`Switch back to Main?`,"codexAuth.switchBackDesc":`Next Codex session will use your App login account again.`,"codexAuth.autoSwitch":`Auto-switch at 80%`,"codexAuth.autoSwitchDesc":`New sessions switch when the relevant quota window reaches the threshold; Go/Free use 30d only`,"codexAuth.switched":`{email} will be used from next session`,"codexAuth.removeConfirm":`Remove {id}?`,"codexAuth.addTitle":`Add Codex Account`,"codexAuth.addIdLabel":`Account ID (slug)`,"codexAuth.addJsonLabel":`auth.json content`,"codexAuth.addHelp":`Copy from another machine's ~/.codex/auth.json, or use codex-auth export.`,"codexAuth.importBtn":`Import`,"codexAuth.importInvalidJson":`Invalid JSON`,"codexAuth.importMissingTokens":`Missing access_token or refresh_token in JSON`,"codexAuth.importMissingId":`Account ID is required`,"codexAuth.accountAdded":`Account added to pool`,"codexAuth.addPickDesc":`Login with another ChatGPT account to add it to the pool.`,"codexAuth.oauthLogin":`OAuth Login`,"codexAuth.oauthDesc":`Opens ChatGPT login in browser`,"codexAuth.importAuthJson":`Import auth.json`,"codexAuth.importAuthJsonDesc":`From another Codex install or codex-auth export`,"codexAuth.back":`Back`,"codexAuth.oauthAlreadyInProgress":`Login already in progress. Complete it in your browser.`,"codexAuth.oauthWaiting":`Waiting for ChatGPT login to complete in your browser...`,"codexAuth.copyLoginLink":`Copy login link`,"codexAuth.loginLinkCopied":`Login link copied`,"codexAuth.loginLinkCopyFailed":`Could not copy login link.`,"codexAuth.oauthCancelled":`Login was cancelled.`,"codexAuth.needsReauth":`Re-login`,"codexAuth.tokenExpired":`Token expired — re-add this account to refresh`,"codexAuth.emailCollision":`This account matches your main Codex login. Use a different account.`,"codexAuth.resetCreditsTitle":`Reset Credits`,"codexAuth.resetCreditsAvailable":`You have {count} reset credit(s) available.`,"codexAuth.resetCreditsDesc":`Each credit resets your current hourly and weekly usage limits instantly.`,"codexAuth.noResetCredits":`You don't have any reset credits.`,"codexAuth.earnCreditsHint":`Credits are earned monthly and via the referral program.`,"codexAuth.creditsExpireNote":`Credits expire 30 days after earning.`,"codexAuth.useOneCredit":`Use 1 Credit`,"codexAuth.confirmResetTitle":`Use Reset Credit?`,"codexAuth.confirmResetDesc":`This will instantly reset your current rate limits. You have {count} credit(s) remaining.`,"codexAuth.irreversible":`This action cannot be undone.`,"codexAuth.useCredit":`Use Credit`,"codexAuth.redeeming":`Resetting...`,"codexAuth.resetSuccess":`Rate limits reset! {remaining} credit(s) remaining.`,"codexAuth.resetNothingToReset":`No rate-limit window needs resetting right now.`,"codexAuth.resetNoCredit":`No reset credits available.`,"codexAuth.resetError":`Failed to redeem reset credit. Please try again.`,"codexAuth.fifoNote":`The oldest credit is used first.`,"codexAuth.confirmWhichCredit":`Credit from {date} will be used.`,"codexAuth.creditNext":`Next to use`,"codexAuth.creditLabel":`Credit #{n}`,"codexAuth.creditNextBadge":`NEXT`,"codexAuth.creditGranted":`Granted {date}`,"codexAuth.creditExpires":`Expires {date} ({days}d left)`,"api.title":`API Access`,"api.subtitle":`Use generated API keys to access the opencodex proxy from external apps. Keys authenticate via the {authHeader} or {altHeader} header.`,"api.endpoint":`Endpoint`,"api.endpointNote":`Compatible with OpenAI Responses API format.`,"api.newKeyTitle":`New key created`,"api.newKeyNote":`Copy this key now — it won't be shown again.`,"api.copy":`Copy`,"api.copied":`Copied`,"api.dismiss":`Dismiss`,"api.generateTitle":`Generate key`,"api.keyNamePlaceholder":`Key name (optional)`,"api.generate":`Generate`,"api.generating":`Creating…`,"api.activeKeys":`Active keys ({count})`,"api.noKeys":`No API keys yet. Generate one above.`,"api.colName":`Name`,"api.colKey":`Key`,"api.colCreated":`Created`,"api.confirm":`Confirm`,"api.deleteAria":`Delete API key`,"api.usageTitle":`Usage example`,"nav.claude":`Claude`,"claude.subtitle":`Use GPT, Gemini, and other models inside Claude Code.`,"claude.enabledLabel":`Claude connection`,"claude.enabledHint":`When off, Claude Code cannot use this proxy.`,"claude.systemEnv":`Auto-connect`,"claude.systemEnvDesc":`When on, running claude in any terminal automatically goes through the proxy.`,"claude.systemEnvWarn":`⚠ You must fully quit and relaunch your terminal app for this to take effect. Not recommended.`,"claude.fastMode":`Fast Mode (OpenAI)`,"claude.fastModeDesc":`Controls service_tier for OpenAI models. ON = priority (faster). OFF = default. Auto = passthrough (client decides).`,"claude.fastAuto":`Auto`,"claude.fastOn":`ON`,"claude.fastOff":`OFF`,"claude.autoContext":`Use big context automatically`,"claude.autoContextDesc":`Controls how far the 1M marking goes. ON: every model above 200k tokens (GPT models etc.) gets a big-context row. OFF: only true 1M models get one.`,"claude.autoContextInert":`Inactive because a legacy context-size value (maxContextTokens) exists in the config file. Remove it there to re-enable.`,"claude.autoCompactWindow":`Auto-summarize point`,"claude.autoCompactDefault":`350k (default)`,"claude.autoCompactWindowDesc":`Older messages are summarized when the chat reaches this point. It never exceeds each model's own limit, so 200k models are unaffected.`,"claude.autoCompactWindowWarn":`Changing this can break GPT models — set higher than a model's real limit, chats will error before the summary kicks in.`,"claude.injectAgents":`Auto-register subagents`,"claude.injectAgentsDesc":`Registers the models picked on the Subagents tab (plus the current default model) as dispatchable Claude Code agents (ocx-*). Applies from the next session.`,"claude.webSearchSidecar":`Web search sidecar override`,"claude.webSearchSidecarHint":`Override the main web search sidecar for Claude Code requests.`,"claude.visionSidecar":`Vision sidecar override`,"claude.visionSidecarHint":`Override the main vision sidecar for Claude Code requests.`,"claude.useMainSetting":`Use main setting`,"claude.sidecarModelPlaceholder":`Main setting model`,"claude.quickstart":`Get started`,"claude.quickstartHint":`{cmd} opens Claude Code through the proxy. Your claude.ai login stays active.`,"claude.manualEnv":`Manual setup (advanced)`,"claude.smallFastModel":`Background helper model`,"claude.smallFastModelHint":`The model Claude Code uses for background work like chat summaries and topic detection. The haiku subagent alias uses it too. Empty = Claude default (Haiku).`,"claude.slotUnset":`Use Claude default`,"claude.modelMap":`Model interception`,"claude.modelMapHint":`Intercepts requests for a specific model and reroutes them to the one you pick. Empty by default — nothing happens until you add a rule.`,"claude.mapFrom":`Original model (e.g. claude-sonnet-4-5)`,"claude.mapTo":`Swap to (e.g. gemini/gemini-3-pro)`,"claude.addMapping":`Add rule`,"claude.removeMapping":`Remove rule`,"claude.aliases":`Available models`,"claude.aliasesHint":`Models that appear in Claude Code's /model menu.`,"claude.loading":`Loading…`,"claude.loadFail":`Failed to load Claude settings`,"claude.saved":`Saved.`,"claude.saveFailed":`Save failed`,"claude.networkError":`Network error — is the proxy running?`,"claude.toggleAria":`Toggle Claude connection`,"claude.none":`None`},ve={en:_e,de:{"nav.dashboard":`Übersicht`,"nav.providers":`Anbieter`,"nav.models":`Modelle`,"nav.subagents":`Sub-Agenten`,"nav.logs":`Protokolle`,"nav.debug":`Fehlerdiagnose`,"nav.usage":`Nutzung`,"common.github":`GitHub`,"common.save":`Speichern`,"common.cancel":`Abbrechen`,"common.remove":`Entfernen`,"common.loading":`Lädt…`,"theme.label":`Design`,"theme.light":`Hell`,"theme.dark":`Dunkel`,"theme.system":`System`,"lang.label":`Sprache`,"dash.subtitle":`Live-Status des lokalen opencodex-Proxys, seiner Anbieter und der in Codex gerouteten Modelle.`,"dash.status":`Status`,"dash.online":`Online`,"dash.offline":`Offline`,"dash.version":`Version`,"dash.uptime":`Laufzeit`,"dash.providers":`Anbieter`,"dash.tokens30d":`Tokens (30d)`,"dash.coverage":`{pct} Abdeckung`,"dash.activeProviders":`Aktive Anbieter`,"dash.noProviders":`Keine Anbieter konfiguriert. Führe {cmd} aus.`,"dash.col.name":`Name`,"dash.col.adapter":`Adapter`,"dash.col.baseUrl":`Basis-URL`,"dash.col.model":`Modell`,"dash.availableModels":`Verfügbare Modelle`,"dash.noModels":`Keine Modelle gefunden. Prüfe die API-Schlüssel des Anbieters.`,"dash.cannotConnect":`Keine Verbindung zum Proxy. Läuft er?`,"dash.runStart":`Führe {cmd} aus, um den Proxy zu starten.`,"dash.stop":`Proxy stoppen`,"dash.stopConfirm":`Proxy stoppen und natives Codex wiederherstellen?`,"dash.stopping":`Wird gestoppt…`,"dash.codexAutoStart":`opencodex mit Codex starten`,"dash.codexAutoStartHint":`Wenn aktiviert, führt das Codex-Shim vor jedem Codex-CLI-/App-Start „ocx ensure" aus. Deaktiviere dies, um Codex unverändert zu lassen.`,"dash.searchModel":`Such-Sidecar-Modell`,"dash.searchModelHint":`Modell für web_search bei nicht über OpenAI gerouteten Modellen. Erfordert ChatGPT-Login.`,"dash.searchReasoning":`Such-Reasoning-Aufwand`,"dash.visionModel":`Vision-Sidecar-Modell`,"dash.visionModelHint":`Modell zur Beschreibung von Bildern für nur-Text-Routen. Erfordert ChatGPT-Login.`,"dash.webSearchSidecar":`Websuche-Sidecar`,"dash.webSearchSidecarHint":`Backend und Modell für die Websuche gerouteter Modelle auswählen.`,"dash.visionSidecar":`Vision-Sidecar`,"dash.visionSidecarHint":`Backend und Modell zur Bildbeschreibung für reine Textmodelle auswählen.`,"dash.sidecarBackend":`Backend`,"dash.sidecarModel":`Modell`,"dash.backendAuto":`Automatisch`,"dash.backendOpenAI":`OpenAI`,"dash.backendAnthropic":`Anthropic`,"dash.sidecarSaved":`Sidecar-Einstellungen gespeichert. Angewendet bei der nächsten Anfrage.`,"dash.sidecarSaveFailed":`Sidecar-Einstellungen konnten nicht gespeichert werden.`,"dash.injectionLabel":`Sub-Agent-Delegation`,"dash.injectionHint":`Wähle ein geroutetes Modell für den Delegations-Prompt. Der Agent wird angewiesen, es für Teilaufgaben zu nutzen.`,"dash.injectionActive":`Aktiv`,"dash.injectionNone":`Keine`,"dash.injectionEffortLabel":`Reasoning-Aufwand`,"dash.injectionEffortNone":`Modell-Standard`,"dash.effortCapLabel":`V2 Ultra Effort-Limit`,"dash.subagentEffortCapLabel":`V2 Sub-Agent Effort-Limit`,"dash.effortCapHelp":`Begrenzt die Reasoning-Intensität für V2-Ultra-Modus-Turns. Wenn gesetzt, werden eingehende Max-Anfragen (aus dem Ultra-Modus) auf das gewählte Niveau begrenzt. Das Sub-Agent-Limit gilt nur für erzeugte Kind-Agenten. Limits senken die Intensität nur, sie erhöhen sie nie. Wenn ein Modell das gewählte Niveau nicht unterstützt, wird automatisch auf das nächste unterstützte Niveau herabgesetzt.`,"dash.effortCapNone":`Kein Limit`,"dash.maintenance":`Wartung`,"dash.maintenanceHint":`Aktualisiere Codex’ Modellkatalog oder installiere eine neuere opencodex-Version.`,"dash.syncModels":`Modelle synchronisieren`,"dash.syncing":`Synchronisiere…`,"dash.syncOk":`Synchronisierung abgeschlossen. {count} Modell(e) angehängt.`,"dash.syncStaleHint":`Falls die Codex-App weiterhin eine alte Liste zeigt, starte ihren langlebigen App-Server-Prozess neu.`,"dash.syncFailed":`Synchronisierung fehlgeschlagen: {error}`,"dash.projectConfigTitle":`Projekt-Codex-Konfig umgeht OpenCodex`,"dash.projectConfigHint":`Diese repo-lokalen Einstellungen überschreiben den OpenCodex-Proxy (z. B. direkt zu OpenCode Go routen). Entferne sie, damit die Routing aus ~/.codex/config.toml in diesem Projekt greift.`,"dash.checkUpdate":`Update prüfen`,"dash.updateTitle":`opencodex aktualisieren`,"dash.updateDesc":`Prüfe npm auf den ausgewählten Kanal und wähle dann, ob der Proxy nach der Installation neu gestartet wird.`,"dash.updateChannel":`Kanal`,"dash.updateChecking":`Updates werden geprüft…`,"dash.updateInstalled":`Installiert`,"dash.updateLatest":`Neueste`,"dash.updateAvailable":`Update verfügbar`,"dash.updateCurrent":`Auf dem neuesten Stand`,"dash.updateCommand":`Befehl`,"dash.updateSource":`Dies ist ein Source-Checkout. Aktualisiere es im Terminal mit dem angezeigten Befehl.`,"dash.updateUnavailable":`Die neueste Version konnte nicht von npm gelesen werden. Versuche es später erneut.`,"dash.updateRetry":`Wiederholen`,"dash.updateRecheck":`Erneut prüfen`,"dash.updateCannotAuto":`Ein-Klick-Update ist nicht verfügbar ({reason}).`,"dash.updateReason.source_checkout":`Quellcode-Checkout`,"dash.updateReason.latest_unavailable":`npm-Registry nicht erreichbar`,"dash.updateReason.already_latest":`bereits auf dem neuesten Stand`,"dash.updateReason.unknown":`Update nicht verfügbar`,"dash.updateRestart":`Nach Update neu starten`,"dash.updateRestartHint":`Empfohlen. Die aktuelle GUI läuft weiter mit altem Code, bis der Proxy neu startet.`,"dash.runUpdate":`Aktualisieren`,"dash.updateReconnecting":`Warten auf den neu gestarteten Proxy…`,"dash.updateStatus.running":`opencodex wird aktualisiert.`,"dash.updateStatus.restarting":`Update installiert. Proxy wird neu gestartet.`,"dash.updateStatus.succeeded":`Update abgeschlossen.`,"dash.updateStatus.failed":`Update fehlgeschlagen.`,"prov.subtitle":`Konfiguriere die Upstream-Anbieter, die opencodex in Codex routet. Melde dich mit einem Konto an, füge einen Anbieter hinzu oder bearbeite die Rohkonfiguration.`,"prov.add":`Anbieter hinzufügen`,"prov.editJson":`JSON bearbeiten`,"prov.accountLogin":`Konto-Login`,"prov.noOauth":`Keine OAuth-Anbieter verfügbar.`,"prov.loggedIn":`angemeldet`,"prov.notLoggedIn":`nicht angemeldet`,"prov.logout":`Abmelden`,"prov.login":`Anmelden`,"prov.loginWith":`Anmelden mit {provider}`,"prov.waitingBrowser":`Warten auf Browser…`,"prov.didntOpen":`Hat sich nicht geöffnet? Hier klicken`,"prov.port":`Port`,"prov.default":`Standard`,"prov.loadingConfig":`Lädt…`,"prov.saved":`Gespeichert! Proxy neu starten, um anzuwenden.`,"prov.loadConfigFail":`Konfiguration konnte nicht geladen werden`,"prov.invalidJson":`Ungültiges JSON`,"prov.saveFailed":`Speichern fehlgeschlagen`,"prov.loginFailStart":`{provider}-Login konnte nicht gestartet werden`,"prov.loginError":`{provider}-Login-Fehler: {error}`,"prov.loginRequestFail":`{provider}-Login-Anfrage fehlgeschlagen`,"prov.loginOk":`Bei {provider} angemeldet. Führe {cmd} aus (oder es gilt live), um seine Modelle aufzulisten.`,"prov.logoutOk":`Von {provider} abgemeldet.`,"prov.removed":`"{name}" entfernt.`,"prov.removeFail":`"{name}" konnte nicht entfernt werden.`,"prov.added":`"{name}" hinzugefügt. Sofort aktiv — führe {cmd} aus (oder starte neu), um seine Modelle in Codex’ Auswahl zu listen.`,"prov.removeConfirm":`Anbieter "{name}" entfernen? Seine Modelle verschwinden aus Codex’ Auswahl.`,"prov.hasApiKey":`API-Schlüssel konfiguriert`,"prov.hasHeaders":`benutzerdefinierte Header konfiguriert`,"prov.accounts":`Konten ({n})`,"prov.accountsAria":`{name}-Konten umschalten`,"prov.accountActive":`Aktiv`,"prov.accountReauth":`Erneut anmelden`,"prov.accountAdd":`Konto hinzufügen`,"prov.accountNoLabel":`Konto {id}`,"prov.accountSwitchTitle":`Dieses Konto verwenden`,"prov.accountSwitched":`Zu {email} gewechselt.`,"prov.accountSwitchFail":`Konto-Wechsel fehlgeschlagen`,"prov.accountRemoved":`{email} entfernt.`,"prov.accountRemoveAria":`{email} entfernen`,"prov.accountRemoveConfirm":`Konto {email} entfernen? Sein Login wird aus diesem Proxy gelöscht.`,"prov.keyAdd":`API-Schlüssel hinzufügen`,"prov.keyAdded":`API-Schlüssel zu {name} hinzugefügt.`,"prov.keyAddFail":`API-Schlüssel konnte nicht hinzugefügt werden`,"prov.keyPlaceholder":`API-Schlüssel einfügen`,"prov.keySwitchTitle":`Diesen Schlüssel verwenden`,"prov.keySwitched":`Zu Schlüssel {key} gewechselt.`,"prov.keySwitchFail":`Schlüssel-Wechsel fehlgeschlagen`,"prov.keyRemoved":`Schlüssel {key} entfernt.`,"prov.keyRemoveAria":`Schlüssel {key} entfernen`,"prov.keyRemoveConfirm":`API-Schlüssel {key} entfernen? Er wird aus der Proxy-Konfiguration gelöscht.`,"prov.activeBadge":`Aktiv`,"prov.disabledBadge":`Deaktiviert`,"prov.defaultBadge":`Standard`,"prov.enable":`Aktivieren`,"prov.disable":`Deaktivieren`,"prov.enabled":`"{name}" aktiviert. Seine Modelle können wieder in Codex erscheinen.`,"prov.disabled":`"{name}" deaktiviert. Einstellungen bleiben erhalten, aber seine Modelle sind verborgen.`,"prov.enableFail":`"{name}" konnte nicht aktiviert werden.`,"prov.disableFail":`"{name}" konnte nicht deaktiviert werden.`,"prov.enableAria":`Anbieter {name} aktivieren`,"prov.disableAria":`Anbieter {name} deaktivieren`,"prov.defaultCannotDisable":`Standard-Anbieter kann nicht deaktiviert werden`,"models.subtitle":`Steuere, welche Modelle Codex sieht — natives GPT-Passthrough und geroutete Anbieter, nach Anbieter gruppiert (Kopfzeile zum Einklappen anklicken). Deaktivierte Modelle sind im Katalog und in der Modellauswahl verborgen. Änderungen gelten bei der nächsten Codex-Runde — opencodex invalidiert Codex 5-Minuten-Modell-Cache, kein Neustart nötig.`,"models.nativeGroupLabel":`OpenAI nativ`,"models.nativeHint":`Passthrough-Modelle über deinen ChatGPT-Login. Ausblenden entfernt sie aus der Codex-Auswahl (Katalogeintrag bleibt, Reaktivierung stellt exakt wieder her).`,"models.active":`{active}/{total} aktiv`,"models.allOn":`Alle an`,"models.allOff":`Alle aus`,"models.cap350k":`Limit 350k`,"models.capApplied":`Kontext-Limit angewendet — greift bei der nächsten Codex-Runde.`,"models.capSaveFailed":`Kontext-Limit konnte nicht gespeichert werden`,"models.contextCapped":`350k-Limit`,"models.contextCapLabel":`Kontext-Limit`,"models.v2Label":`Sub-Agent`,"models.v2DocsLink":`Was ist v1 / v2?`,"models.v2Mode_v1":`v1`,"models.v2Mode_default":`base`,"models.v2Mode_v2":`v2`,"models.v2ModeDesc_v1":`Alle Modelle → v1-Oberfläche`,"models.v2ModeDesc_default":`Upstream-Standard (sol/terra=v2, luna=v1)`,"models.v2ModeDesc_v2":`Alle Modelle → v2-Oberfläche`,"models.v2Help":`Steuert die Multi-Agent-Oberfläche für alle Modelle.
|
|
16
|
+
|
|
17
|
+
v1: Klassischer Single-Thread-Agent. Jedes Modell nutzt die v1-Collab-Oberfläche.
|
|
18
|
+
base: Upstream-Standard — sol/terra nutzen v2, luna v1, andere folgen dem Codex-Feature-Flag.
|
|
19
|
+
v2: Multi-Thread-Agent mit spawn_agent. Jedes Modell nutzt die v2-Collab-Oberfläche.
|
|
20
|
+
|
|
21
|
+
Änderungen gelten für neue Sitzungen.`,"dash.multiAgent":`Sub-Agent`,"models.v2Conflict":`[agents] max_threads ist gesetzt — codex verweigert den Start; entferne es aus config.toml`,"models.v2Applied":`multi_agent_v2 aktualisiert — gilt für neue Sitzungen (Codex-App neu starten, um die Auswahl zu aktualisieren)`,"models.v2ThreadsLabel":`Max. Threads`,"models.v2ThreadsDefault":`Standard (4)`,"models.v2ThreadsApplied":`Thread-Limit aktualisiert — gilt für neue Sitzungen`,"models.v2ThreadsInvalid":`Thread-Limit muss eine ganze Zahl >= 1 sein`,"models.v2ThreadsApply":`Anwenden`,"models.capValue":`Limit {value}`,"models.contextCappedValue":`{value}-Limit`,"models.setAll":`Alle setzen`,"models.custom":`Benutzerdefiniert…`,"models.customApply":`Anwenden`,"models.customPlaceholder":`Tokens (z. B. 420000)`,"models.applied":`Angewendet — greift bei der nächsten Codex-Runde.`,"models.saveFailed":`Speichern fehlgeschlagen`,"models.networkError":`Netzwerkfehler — läuft der Proxy?`,"models.loadFail":`Modelle konnten nicht geladen werden — läuft der Proxy?`,"models.noRouted":`Keine gerouteten Modelle`,"models.noRoutedHint":`Melde dich zuerst bei einem Anbieter an oder füge einen hinzu.`,"models.loading":`Lädt…`,"models.search":`Modelle suchen…`,"models.showMore":`{n} weitere anzeigen`,"models.allowlistLabel":`Nur ausgewählte`,"models.allowlistHint":`Nur geprüfte Modelle gehen in den Katalog (leer = alle). Nützlich für Anbieter mit tausenden Modellen.`,"models.selectedCount":`{n} ausgewählt`,"models.orderHint":`Reihenfolge in der Modellauswahl: Subagents-Auswahl (in der festgelegten Reihenfolge) → übrige geroutete Modelle alphabetisch nach Anbieter, dann Modell-ID → native Modelle. Sichtbarkeitsschalter filtern nur; sie ändern diese Reihenfolge nicht.`,"sub.subtitle":`Codex {cmd} bewirbt nur die ersten 5 Modelle (nach Priorität) als Overrides. Wähle hier bis zu 5 — natives gpt oder geroutet — und opencodex setzt ihre Katalog-Priorität, sodass genau diese führen. Jedes andere Modell bleibt über seinen exakten Namen aufrufbar; dies steuert nur die Anzeige.`,"sub.featured":`Empfohlen`,"sub.orderHint":`Die hier gewählte und angezeigte Reihenfolge bestimmt die Plätze 1–5 oben in der Codex-Modellauswahl und die Standard-Modellkandidaten für {cmd}.`,"sub.noneSelected":`Nichts ausgewählt — wähle aus der Liste unten.`,"sub.models":`Modelle`,"sub.search":`Modelle suchen (nativ gpt + geroutet)…`,"sub.noModels":`Keine Modelle — melde dich zuerst bei einem Anbieter an oder füge einen hinzu.`,"sub.saved":`{n} Modelle gespeichert. Starte eine neue Codex-Sitzung (oder führe {cmd} aus), um sie als spawn_agent-Overrides zu sehen.`,"sub.saveFailed":`Speichern fehlgeschlagen`,"sub.networkError":`Netzwerkfehler — läuft der Proxy?`,"sub.loadFail":`Modelle konnten nicht geladen werden — läuft der Proxy?`,"sub.loading":`Lädt…`,"sub.moveUp":`{m} nach oben`,"sub.moveDown":`{m} nach unten`,"sub.removeAria":`{m} entfernen`,"logs.title":`Anfrage-Protokolle`,"logs.subtitle":`Letzte Anfragen über den lokalen opencodex-Proxy, neueste zuerst.`,"logs.autoRefresh":`Auto-Aktualisierung`,"logs.noRequests":`Noch keine Anfragen.`,"logs.filter.surface.label":`Oberfläche`,"logs.filter.surface.all":`Alle`,"logs.filter.surface.claude":`Claude`,"logs.filter.surface.codex":`Codex`,"logs.badge.claude":`Claude`,"logs.col.time":`Zeit`,"logs.col.request":`Anfrage`,"logs.col.model":`Modell`,"logs.col.effort":`Aufwand`,"logs.col.provider":`Anbieter`,"logs.col.status":`Status`,"logs.col.tokens":`Tokens`,"logs.col.error":`Fehler`,"logs.col.upstreamReason":`Upstream-Grund`,"logs.col.duration":`Dauer`,"logs.tokens.reported":`gemeldet`,"logs.tokens.unreported":`nicht gemeldet`,"logs.tokens.unsupported":`nicht unterstützt`,"logs.tokens.estimated":`geschätzt`,"logs.tokens.input":`Eingabe`,"logs.tokens.output":`Ausgabe`,"logs.tokens.cacheRead":`Cache-Treffer (c)`,"logs.tokens.cacheWrite":`Cache-Schreiben (w)`,"logs.tokens.reasoning":`Reasoning`,"logs.tokens.noCache":`keine Cache-Daten`,"logs.tokens.noCacheNote":`dieser Anbieter meldet keine Cache-Tokens`,"logs.tokens.estimatedNote":`Schätzung (Anbieter meldet keine exakte Nutzung)`,"logs.details":`Details`,"logs.detailTitle":`Anfragedetails`,"logs.detailRaw":`Roh-Protokolleintrag`,"debug.title":`Fehlerdiagnose`,"debug.subtitle":`Opt-in-Diagnose für Provider-Transport und Nutzungs-Extraktion. Anfragefehler und 502er bleiben unter Protokolle.`,"debug.debug":`Provider-Diagnose`,"debug.usage":`Nutzungs-Extraktion`,"debug.injection":`Injektions-Log`,"debug.claude":`Claude-Inbound`,"debug.claudeInbound.title":`Claude-Inbound-Anfragen`,"debug.claudeInbound.sub":`Zeigt, was Claude Code/Desktop tatsächlich sendet (thinking, effort, metadata) — kein Prompt-Text wird gespeichert.`,"debug.claudeInbound.empty":`Noch keine Anfragen erfasst. Sende bei aktivierter Erfassung eine Nachricht aus Claude.`,"debug.claudeInbound.time":`Zeit`,"debug.claudeInbound.endpoint":`Endpunkt`,"debug.claudeInbound.model":`Modell`,"debug.claudeInbound.none":`keine`,"debug.reset":`Laufzeit-Überschreibungen löschen`,"debug.refresh":`Aktualisieren`,"debug.follow":`Folgen`,"debug.streamProvider":`Anbieter`,"debug.streamUsage":`Nutzung`,"debug.streamInjection":`Injektion`,"debug.loading":`Lade Diagnose-Einstellungen…`,"debug.emptyTitle":`Diagnose-Logging ist aus`,"debug.empty":`Aktiviere Provider-Diagnose oder Nutzungs-Extraktion in der Karte oben. Zeilen erscheinen hier, nachdem du eine Anfrage über den Proxy gesendet hast.`,"debug.noLinesTitle":`Warte auf Zeilen`,"debug.noLines.provider":`Anbieter-Debug ist an, erfasst aber nur Transport-Anomalien (verworfene oder fehlerhafte Frames sowie Cursor-Dial/Retry-Ereignisse). Eine saubere Anfrage über einen Anbieter wie Anthropic kann null Zeilen erzeugen.`,"debug.noLines.usage":`Nutzungserfassung ist an, aber es wurde noch nichts erfasst. Sende einen Chat/eine Anfrage über Codex, dann erscheint es hier.`,"debug.noLines.injection":`Injektions-Log ist an, aber es wurde noch nichts erfasst. Es erfasst Multi-Agent-Guidance-Injektion und Effort-Cap-Entscheidungen bei Collab- und Sub-Agent-Turns.`,"usage.title":`Nutzung`,"usage.subtitle":`Lokale Token-Buchhaltung deines Proxys. Fehlende Nutzung wird nie als Null angezeigt.`,"usage.loading":`Lade Nutzungsdaten…`,"usage.empty":`Noch keine Nutzung erfasst. Sende eine Anfrage über den Proxy, um Aktivität hier zu sehen.`,"usage.range.all":`Alle`,"usage.range.30d":`30d`,"usage.range.7d":`7d`,"usage.card.requests":`Anfragen`,"usage.card.measured":`Gemessen`,"usage.card.reported":`Gemeldet`,"usage.card.totalTokens":`Gesamt-Tokens`,"usage.card.cachedTokens":`Cache-Treffer-Tokens`,"usage.card.cachedTokensHint":`Prompt-Tokens aus dem Provider-Cache (Treffer). Cache-Schreibvorgänge werden darunter separat angezeigt.`,"usage.card.cacheWriteTokens":`Cache-Schreiben`,"usage.card.coverage":`Abdeckung`,"usage.card.activeDays":`Aktive Tage`,"usage.section.heatmap":`Tägliche Aktivität`,"usage.section.models":`Modelle`,"usage.section.providers":`Anbieter`,"usage.section.coverage":`Abdeckungs-Aufschlüsselung`,"usage.coverage.measured":`Gemessen`,"usage.coverage.reported":`Anbieter gemeldet`,"usage.coverage.estimated":`Geschätzt`,"usage.coverage.note":`Gemessene Einträge enthalten anbieter-gemeldete und geschätzte Token-Zahlen. Nicht gemeldete und nicht unterstützte Anfragen werden erfasst, aber nie auf Null aufgebläht.`,"usage.search.models":`Modelle suchen…`,"usage.col.requests":`Anfragen`,"usage.col.measured":`Gemessen`,"usage.col.reported":`Gemeldet`,"usage.col.tokens":`Tokens`,"usage.col.share":`Anteil`,"usage.heatmap.less":`Weniger`,"usage.heatmap.more":`Mehr`,"modal.addNamed":`Hinzufügen: {label}`,"modal.add":`Anbieter hinzufügen`,"modal.search":`Anbieter suchen…`,"modal.logInWith":`Anmelden mit {label}`,"modal.waitingBrowser":`Warten auf Browser…`,"modal.providerName":`Anbietername`,"modal.adapter":`Adapter`,"modal.baseUrl":`Basis-URL`,"modal.defaultModel":`Standardmodell (optional)`,"modal.nameRequired":`Anbietername ist erforderlich`,"modal.baseUrlRequired":`Basis-URL ist erforderlich`,"modal.networkError":`Netzwerkfehler — läuft der Proxy?`,"modal.loginFailStart":`Login konnte nicht gestartet werden`,"modal.waitingLogin":`Warten auf Browser-Login…`,"modal.loggingIn":`Anmelden…`,"modal.loginTimeout":`Login-Zeitüberschreitung — versuche es erneut.`,"nav.codexAuth":`Codex-Auth`,"nav.api":`API`,"codexAuth.mainAccount":`Hauptkonto`,"codexAuth.appLogin":`App-Login`,"codexAuth.accountPool":`Kontopool`,"codexAuth.add":`Hinzufügen`,"codexAuth.refreshQuota":`Kontingente aktualisieren`,"codexAuth.refreshingQuota":`Aktualisiere…`,"codexAuth.quotaRefreshed":`Kontingente aktualisiert`,"codexAuth.quotaRefreshFailed":`Kontingente konnten nicht aktualisiert werden`,"codexAuth.noPool":`Noch keine Pool-Konten hinzugefügt.`,"codexAuth.weekly":`Woche`,"codexAuth.fiveHour":`5h`,"codexAuth.monthly":`30d`,"codexAuth.resets":`zurücksetzen`,"codexAuth.today":`Heute`,"codexAuth.current":`AKTUELL`,"codexAuth.nextSession":`NÄCHSTE SITZUNG`,"codexAuth.switchTitle":`Aktives Konto wechseln?`,"codexAuth.switchDesc":`Dies gilt ab der nächsten Codex-Sitzung. Die aktuelle Sitzung bleibt beim bestehenden Konto.`,"codexAuth.cacheWarning":`Prompt-Cache wird beim Kontowechsel zurückgesetzt. Neue Sitzung startet mit leerem Cache.`,"codexAuth.setAsNext":`Als nächste Sitzung festlegen`,"codexAuth.cancel":`Abbrechen`,"codexAuth.switchBack":`Zurück zum Hauptkonto?`,"codexAuth.switchBackDesc":`Die nächste Codex-Sitzung verwendet wieder dein App-Login-Konto.`,"codexAuth.autoSwitch":`Auto-Wechsel bei 80%`,"codexAuth.autoSwitchDesc":`Neue Sitzungen wechseln, wenn das entsprechende Kontingent-Fenster den Schwellenwert erreicht; Go/Free nutzen nur 30d`,"codexAuth.switched":`{email} wird ab der nächsten Sitzung verwendet`,"codexAuth.removeConfirm":`{id} entfernen?`,"codexAuth.addTitle":`Codex-Konto hinzufügen`,"codexAuth.addIdLabel":`Konto-ID (slug)`,"codexAuth.addJsonLabel":`auth.json-Inhalt`,"codexAuth.addHelp":`Kopiere von ~/.codex/auth.json einer anderen Maschine oder nutze codex-auth export.`,"codexAuth.importBtn":`Importieren`,"codexAuth.importInvalidJson":`Ungültiges JSON`,"codexAuth.importMissingTokens":`access_token oder refresh_token fehlen in JSON`,"codexAuth.importMissingId":`Konto-ID ist erforderlich`,"codexAuth.accountAdded":`Konto zum Pool hinzugefügt`,"codexAuth.addPickDesc":`Melde dich mit einem anderen ChatGPT-Konto an, um es zum Pool hinzuzufügen.`,"codexAuth.oauthLogin":`OAuth-Login`,"codexAuth.oauthDesc":`Öffnet ChatGPT-Login im Browser`,"codexAuth.importAuthJson":`auth.json importieren`,"codexAuth.importAuthJsonDesc":`Von einer anderen Codex-Installation oder codex-auth export`,"codexAuth.back":`Zurück`,"codexAuth.oauthAlreadyInProgress":`Login läuft bereits. Schließe es in deinem Browser ab.`,"codexAuth.oauthWaiting":`Warte auf Abschluss des ChatGPT-Logins in deinem Browser…`,"codexAuth.copyLoginLink":`Login-Link kopieren`,"codexAuth.loginLinkCopied":`Login-Link kopiert`,"codexAuth.loginLinkCopyFailed":`Login-Link konnte nicht kopiert werden.`,"codexAuth.oauthCancelled":`Login wurde abgebrochen.`,"codexAuth.needsReauth":`Erneut anmelden`,"codexAuth.tokenExpired":`Token abgelaufen — füge dieses Konto erneut hinzu, um zu aktualisieren`,"codexAuth.emailCollision":`Dieses Konto entspricht deinem Haupt-Codex-Login. Nutze ein anderes Konto.`,"codexAuth.resetCreditsTitle":`Gutschriften zurücksetzen`,"codexAuth.resetCreditsAvailable":`Du hast {count} Reset-Gutschrift(en) verfügbar.`,"codexAuth.resetCreditsDesc":`Jede Gutschrift setzt deine aktuellen stündlichen und wöchentlichen Nutzungsgrenzen sofort zurück.`,"codexAuth.noResetCredits":`Du hast keine Reset-Gutschriften.`,"codexAuth.earnCreditsHint":`Gutschriften werden monatlich und über das Empfehlungsprogramm verdient.`,"codexAuth.creditsExpireNote":`Gutschriften verfallen 30 Tage nach Erhalt.`,"codexAuth.useOneCredit":`1 Gutschrift nutzen`,"codexAuth.confirmResetTitle":`Reset-Gutschrift nutzen?`,"codexAuth.confirmResetDesc":`Dies setzt deine aktuellen Ratenbegrenzungen sofort zurück. Du hast noch {count} Gutschrift(en).`,"codexAuth.irreversible":`Diese Aktion kann nicht rückgängig gemacht werden.`,"codexAuth.useCredit":`Gutschrift nutzen`,"codexAuth.redeeming":`Wird zurückgesetzt…`,"codexAuth.resetSuccess":`Ratenbegrenzungen zurückgesetzt! {remaining} Gutschrift(en) übrig.`,"codexAuth.resetNothingToReset":`Kein Ratenbegrenzungs-Fenster muss gerade zurückgesetzt werden.`,"codexAuth.resetNoCredit":`Keine Reset-Gutschriften verfügbar.`,"codexAuth.resetError":`Reset-Gutschrift konnte nicht eingelöst werden. Bitte erneut versuchen.`,"codexAuth.fifoNote":`Die älteste Gutschrift wird zuerst verwendet.`,"codexAuth.confirmWhichCredit":`Gutschrift vom {date} wird verwendet.`,"codexAuth.creditNext":`Als nächstes`,"codexAuth.creditLabel":`Gutschrift #{n}`,"codexAuth.creditNextBadge":`NÄCHSTE`,"codexAuth.creditGranted":`Erhalten {date}`,"codexAuth.creditExpires":`Läuft ab {date} ({days} Tage übrig)`,"api.title":`API-Zugriff`,"api.subtitle":`Nutze generierte API-Schlüssel, um von externen Apps auf den opencodex-Proxy zuzugreifen. Schlüssel authentifizieren über den {authHeader}- oder {altHeader}-Header.`,"api.endpoint":`Endpunkt`,"api.endpointNote":`Kompatibel mit dem OpenAI Responses API-Format.`,"api.newKeyTitle":`Neuer Schlüssel erstellt`,"api.newKeyNote":`Kopiere diesen Schlüssel jetzt — er wird nicht erneut angezeigt.`,"api.copy":`Kopieren`,"api.copied":`Kopiert`,"api.dismiss":`Schließen`,"api.generateTitle":`Schlüssel generieren`,"api.keyNamePlaceholder":`Schlüsselname (optional)`,"api.generate":`Generieren`,"api.generating":`Erstelle…`,"api.activeKeys":`Aktive Schlüssel ({count})`,"api.noKeys":`Noch keine API-Schlüssel. Erstelle oben einen.`,"api.colName":`Name`,"api.colKey":`Schlüssel`,"api.colCreated":`Erstellt`,"api.confirm":`Bestätigen`,"api.deleteAria":`API-Schlüssel löschen`,"api.usageTitle":`Nutzungsbeispiel`,"nav.claude":`Claude`,"claude.subtitle":`GPT, Gemini und andere Modelle in Claude Code verwenden.`,"claude.enabledLabel":`Claude-Verbindung`,"claude.enabledHint":`Wenn aus, kann Claude Code diesen Proxy nicht verwenden.`,"claude.systemEnv":`Auto-Verbindung`,"claude.systemEnvDesc":`Wenn an, wird claude in jedem Terminal automatisch über den Proxy geleitet.`,"claude.systemEnvWarn":`⚠ Die Terminal-App muss vollständig beendet und neu gestartet werden. Nicht empfohlen.`,"claude.fastMode":`Fast Mode (OpenAI)`,"claude.fastModeDesc":`Steuert service_tier für OpenAI-Modelle. ON = Priorität (schneller). OFF = Standard. Auto = Durchleitung.`,"claude.fastAuto":`Auto`,"claude.fastOn":`ON`,"claude.fastOff":`OFF`,"claude.autoContext":`Großen Kontext automatisch nutzen`,"claude.autoContextDesc":`Steuert, wie weit die 1M-Markierung geht. AN: jedes Modell über 200k Tokens (GPT-Modelle usw.) erhält eine Big-Context-Zeile. AUS: nur echte 1M-Modelle.`,"claude.autoContextInert":`Inaktiv, weil in der Konfigurationsdatei ein alter Kontextgrößen-Wert (maxContextTokens) steht. Dort entfernen, um es wieder zu aktivieren.`,"claude.autoCompactWindow":`Punkt für Auto-Zusammenfassung`,"claude.autoCompactDefault":`350k (Standard)`,"claude.autoCompactWindowDesc":`Ältere Nachrichten werden an diesem Punkt zusammengefasst. Das eigene Limit jedes Modells wird nie überschritten — 200k-Modelle bleiben unberührt.`,"claude.autoCompactWindowWarn":`Eine Änderung kann GPT-Modelle stören — liegt der Wert über dem echten Modelllimit, kommt es vor der Zusammenfassung zu Fehlern.`,"claude.injectAgents":`Subagenten automatisch registrieren`,"claude.injectAgentsDesc":`Registriert die im Subagenten-Tab gewählten Modelle (plus das aktuelle Standardmodell) als aufrufbare Claude-Code-Agenten (ocx-*). Gilt ab der nächsten Sitzung.`,"claude.webSearchSidecar":`Websuche-Sidecar überschreiben`,"claude.webSearchSidecarHint":`Überschreibt den allgemeinen Websuche-Sidecar für Claude-Code-Anfragen.`,"claude.visionSidecar":`Vision-Sidecar überschreiben`,"claude.visionSidecarHint":`Überschreibt den allgemeinen Vision-Sidecar für Claude-Code-Anfragen.`,"claude.useMainSetting":`Haupteinstellung verwenden`,"claude.sidecarModelPlaceholder":`Modell der Haupteinstellung`,"claude.quickstart":`Erste Schritte`,"claude.quickstartHint":`{cmd} öffnet Claude Code über den Proxy. Dein claude.ai-Login bleibt aktiv.`,"claude.manualEnv":`Manuelle Einrichtung (erweitert)`,"claude.smallFastModel":`Hintergrund-Hilfsmodell`,"claude.smallFastModelHint":`Das Modell für Hintergrundarbeit wie Chat-Zusammenfassungen und Themenerkennung. Auch der haiku-Alias der Subagenten nutzt es. Leer = Claude-Standard (Haiku).`,"claude.slotUnset":`Claude-Standard verwenden`,"claude.modelMap":`Modell-Abfangen`,"claude.modelMapHint":`Fängt Anfragen für ein bestimmtes Modell ab und leitet sie an das gewählte Modell um. Standardmäßig leer — wirkt erst mit einer Regel.`,"claude.mapFrom":`Originalmodell (z. B. claude-sonnet-4-5)`,"claude.mapTo":`Ersetzen durch (z. B. gemini/gemini-3-pro)`,"claude.addMapping":`Regel hinzufügen`,"claude.removeMapping":`Regel entfernen`,"claude.aliases":`Verfügbare Modelle`,"claude.aliasesHint":`Modelle, die im /model-Menü von Claude Code erscheinen.`,"claude.loading":`Lädt…`,"claude.loadFail":`Claude-Einstellungen konnten nicht geladen werden`,"claude.saved":`Gespeichert.`,"claude.saveFailed":`Speichern fehlgeschlagen`,"claude.networkError":`Netzwerkfehler — läuft der Proxy?`,"claude.toggleAria":`Claude-Verbindung umschalten`,"claude.none":`Keine`},ko:{"nav.dashboard":`대시보드`,"nav.providers":`프로바이더`,"nav.models":`모델`,"nav.subagents":`서브에이전트`,"nav.logs":`로그`,"nav.debug":`디버그`,"nav.usage":`사용량`,"common.github":`GitHub`,"common.save":`저장`,"common.cancel":`취소`,"common.remove":`삭제`,"common.loading":`불러오는 중…`,"theme.label":`테마`,"theme.light":`라이트`,"theme.dark":`다크`,"theme.system":`시스템`,"lang.label":`언어`,"dash.subtitle":`로컬 opencodex 프록시와 프로바이더, 그리고 Codex로 라우팅되는 모델의 실시간 상태입니다.`,"dash.status":`상태`,"dash.online":`온라인`,"dash.offline":`오프라인`,"dash.version":`버전`,"dash.uptime":`가동 시간`,"dash.providers":`프로바이더`,"dash.tokens30d":`토큰 (30일)`,"dash.coverage":`커버리지 {pct}`,"dash.activeProviders":`활성 프로바이더`,"dash.noProviders":`설정된 프로바이더가 없습니다. {cmd} 를 실행하세요.`,"dash.col.name":`이름`,"dash.col.adapter":`어댑터`,"dash.col.baseUrl":`Base URL`,"dash.col.model":`모델`,"dash.availableModels":`사용 가능한 모델`,"dash.noModels":`모델을 찾을 수 없습니다. 프로바이더 API 키를 확인하세요.`,"dash.cannotConnect":`프록시에 연결할 수 없습니다. 실행 중인가요?`,"dash.runStart":`{cmd} 를 실행해 프록시를 시작하세요.`,"dash.stop":`프록시 중지`,"dash.stopConfirm":`프록시를 중지하고 Codex 원본 설정을 복원할까요?`,"dash.stopping":`중지 중…`,"dash.codexAutoStart":`Codex 실행 시 opencodex 시작`,"dash.codexAutoStartHint":`켜져 있으면 Codex CLI/App 실행 전 shim이 ocx ensure를 실행합니다. 끄면 Codex를 건드리지 않습니다.`,"dash.searchModel":`서치 사이드카 모델`,"dash.searchModelHint":`비-OpenAI 라우팅 모델의 web_search에 사용되는 모델입니다. ChatGPT 로그인 필요.`,"dash.searchReasoning":`서치 추론 강도`,"dash.visionModel":`비전 사이드카 모델`,"dash.visionModelHint":`텍스트 전용 라우팅 모델에 이미지를 설명하는 데 사용되는 모델입니다. ChatGPT 로그인 필요.`,"dash.webSearchSidecar":`웹 검색 사이드카`,"dash.webSearchSidecarHint":`라우팅 모델의 웹 검색에 쓸 백엔드와 모델을 고릅니다.`,"dash.visionSidecar":`비전 사이드카`,"dash.visionSidecarHint":`텍스트 전용 라우팅 모델이 이미지를 읽을 때 쓸 백엔드와 모델을 고릅니다.`,"dash.sidecarBackend":`백엔드`,"dash.sidecarModel":`모델`,"dash.backendAuto":`자동`,"dash.backendOpenAI":`OpenAI`,"dash.backendAnthropic":`Anthropic`,"dash.sidecarSaved":`사이드카 설정이 저장됐습니다. 다음 요청부터 적용됩니다.`,"dash.sidecarSaveFailed":`사이드카 설정 저장에 실패했습니다.`,"dash.injectionLabel":`서브에이전트 위임`,"dash.injectionHint":`위임 프롬프트에 주입할 라우팅 모델을 선택합니다. 에이전트가 서브태스크에 이 모델을 사용하도록 안내됩니다.`,"dash.injectionActive":`활성`,"dash.injectionNone":`없음`,"dash.injectionEffortLabel":`추론 강도`,"dash.injectionEffortNone":`모델 기본값`,"dash.effortCapLabel":`V2 ultra 추론 강도 제한`,"dash.subagentEffortCapLabel":`V2 서브에이전트 추론 강도 제한`,"dash.effortCapHelp":`V2 ultra 모드 턴의 추론 강도를 제한합니다. 설정하면 ultra 모드에서 들어오는 max 요청이 선택한 수준으로 내려갑니다. 서브에이전트 제한은 스폰된 자식 에이전트에만 적용됩니다. 강도를 낮추기만 하고 올리지는 않습니다. 모델이 해당 수준을 지원하지 않으면 가장 가까운 지원 수준으로 내려갑니다.`,"dash.effortCapNone":`상한 없음`,"dash.maintenance":`유지보수`,"dash.maintenanceHint":`Codex 모델 카탈로그를 새로고침하거나 최신 opencodex 릴리스를 설치합니다.`,"dash.syncModels":`모델 동기화`,"dash.syncing":`동기화 중…`,"dash.syncOk":`동기화 완료. {count}개 모델이 추가됐습니다.`,"dash.syncStaleHint":`Codex App에 여전히 예전 목록이 보이면 오래 실행 중인 app-server 프로세스를 재시작하세요.`,"dash.syncFailed":`동기화 실패: {error}`,"dash.projectConfigTitle":`프로젝트 Codex 설정이 OpenCodex를 우회합니다`,"dash.projectConfigHint":`저장소 로컬 설정이 OpenCodex 프록시를 덮어씁니다(예: OpenCode Go로 직접 라우팅). 해당 프로젝트에서 ~/.codex/config.toml 프록시를 쓰려면 제거하세요.`,"dash.checkUpdate":`업데이트 확인`,"dash.updateTitle":`opencodex 업데이트`,"dash.updateDesc":`선택한 채널의 npm 최신 버전을 확인한 뒤, 설치 후 프록시를 재시작할지 선택합니다.`,"dash.updateChannel":`채널`,"dash.updateChecking":`업데이트 확인 중…`,"dash.updateInstalled":`설치됨`,"dash.updateLatest":`최신`,"dash.updateAvailable":`업데이트 가능`,"dash.updateCurrent":`최신 상태`,"dash.updateCommand":`명령`,"dash.updateSource":`현재는 소스 체크아웃입니다. 표시된 명령을 터미널에서 실행해 업데이트하세요.`,"dash.updateUnavailable":`npm에서 최신 버전을 읽지 못했습니다. 잠시 후 다시 시도하세요.`,"dash.updateRetry":`재시도`,"dash.updateRecheck":`다시 확인`,"dash.updateCannotAuto":`원클릭 업데이트를 사용할 수 없습니다 ({reason}).`,"dash.updateReason.source_checkout":`소스 체크아웃`,"dash.updateReason.latest_unavailable":`npm 레지스트리에 연결할 수 없음`,"dash.updateReason.already_latest":`이미 최신 버전`,"dash.updateReason.unknown":`업데이트 불가`,"dash.updateRestart":`업데이트 후 재시작`,"dash.updateRestartHint":`권장. 프록시를 재시작하기 전까지 현재 GUI는 이전 코드로 계속 실행됩니다.`,"dash.runUpdate":`업데이트`,"dash.updateReconnecting":`재시작된 프록시를 기다리는 중…`,"dash.updateStatus.running":`opencodex 업데이트 중입니다.`,"dash.updateStatus.restarting":`업데이트 설치 완료. 프록시를 재시작하는 중입니다.`,"dash.updateStatus.succeeded":`업데이트가 완료됐습니다.`,"dash.updateStatus.failed":`업데이트에 실패했습니다.`,"prov.subtitle":`opencodex가 Codex로 라우팅하는 업스트림 프로바이더를 설정합니다. 계정으로 로그인하거나, 프로바이더를 추가하거나, 원본 설정을 편집하세요.`,"prov.add":`프로바이더 추가`,"prov.editJson":`JSON 편집`,"prov.accountLogin":`계정 로그인`,"prov.noOauth":`사용 가능한 OAuth 프로바이더가 없습니다.`,"prov.loggedIn":`로그인됨`,"prov.notLoggedIn":`로그인 안 됨`,"prov.logout":`로그아웃`,"prov.login":`로그인`,"prov.loginWith":`{provider} 로 로그인`,"prov.waitingBrowser":`브라우저 대기 중…`,"prov.didntOpen":`안 열렸나요? 여기를 클릭하세요`,"prov.port":`포트`,"prov.default":`기본값`,"prov.loadingConfig":`불러오는 중…`,"prov.saved":`저장됨! 적용하려면 프록시를 재시작하세요.`,"prov.loadConfigFail":`설정을 불러오지 못했습니다`,"prov.invalidJson":`잘못된 JSON`,"prov.saveFailed":`저장 실패`,"prov.loginFailStart":`{provider} 로그인을 시작하지 못했습니다`,"prov.loginError":`{provider} 로그인 오류: {error}`,"prov.loginRequestFail":`{provider} 로그인 요청 실패`,"prov.loginOk":`{provider} 에 로그인했습니다. 모델을 표시하려면 {cmd} 를 실행하세요(또는 실시간 적용됩니다).`,"prov.logoutOk":`{provider} 에서 로그아웃했습니다.`,"prov.removed":`"{name}" 을(를) 삭제했습니다.`,"prov.removeFail":`"{name}" 삭제에 실패했습니다.`,"prov.added":`"{name}" 을(를) 추가했습니다. 지금 활성화됨 — Codex 모델 선택기에 표시하려면 {cmd} 를 실행하세요(또는 재시작).`,"prov.removeConfirm":`프로바이더 "{name}" 을(를) 삭제할까요? 해당 모델이 Codex 선택기에서 사라집니다.`,"prov.hasApiKey":`API 키 설정됨`,"prov.hasHeaders":`커스텀 헤더 설정됨`,"prov.accounts":`계정 ({n})`,"prov.accountsAria":`{name} 계정 목록 열기/닫기`,"prov.accountActive":`활성`,"prov.accountReauth":`재로그인`,"prov.accountAdd":`계정 추가`,"prov.accountNoLabel":`계정 {id}`,"prov.accountSwitchTitle":`이 계정 사용`,"prov.accountSwitched":`{email} 계정으로 전환했습니다.`,"prov.accountSwitchFail":`계정 전환에 실패했습니다`,"prov.accountRemoved":`{email} 계정을 제거했습니다.`,"prov.accountRemoveAria":`{email} 제거`,"prov.accountRemoveConfirm":`{email} 계정을 제거할까요? 이 프록시에서 로그인이 삭제됩니다.`,"prov.keyAdd":`API 키 추가`,"prov.keyAdded":`{name}에 API 키를 추가했습니다.`,"prov.keyAddFail":`API 키 추가에 실패했습니다`,"prov.keyPlaceholder":`API 키 붙여넣기`,"prov.keySwitchTitle":`이 키 사용`,"prov.keySwitched":`{key} 키로 전환했습니다.`,"prov.keySwitchFail":`키 전환에 실패했습니다`,"prov.keyRemoved":`{key} 키를 제거했습니다.`,"prov.keyRemoveAria":`{key} 키 제거`,"prov.keyRemoveConfirm":`API 키 {key}를 제거할까요? 이 프록시 설정에서 삭제됩니다.`,"prov.activeBadge":`활성`,"prov.disabledBadge":`비활성`,"prov.defaultBadge":`기본`,"prov.enable":`활성화`,"prov.disable":`비활성화`,"prov.enabled":`"{name}" 을(를) 활성화했습니다. 해당 모델을 다시 Codex에서 사용할 수 있습니다.`,"prov.disabled":`"{name}" 을(를) 비활성화했습니다. 설정은 유지되고 모델은 숨겨집니다.`,"prov.enableFail":`"{name}" 활성화에 실패했습니다.`,"prov.disableFail":`"{name}" 비활성화에 실패했습니다.`,"prov.enableAria":`{name} 프로바이더 활성화`,"prov.disableAria":`{name} 프로바이더 비활성화`,"prov.defaultCannotDisable":`기본 프로바이더는 비활성화할 수 없습니다`,"models.subtitle":`Codex가 보는 모델을 켜고 끕니다 — 네이티브 GPT passthrough와 라우팅된 모델을 프로바이더별로 묶어 보여줍니다(헤더를 클릭하면 접힘). 비활성화된 모델은 카탈로그와 모델 선택기에서 숨겨집니다. 변경 사항은 다음 Codex 턴에 적용됩니다 — opencodex가 Codex의 5분 모델 캐시를 무효화하므로 재시작이 필요 없습니다.`,"models.nativeGroupLabel":`OpenAI 네이티브`,"models.nativeHint":`ChatGPT 로그인으로 서빙되는 passthrough 모델입니다. 끄면 Codex 선택기에서 숨겨지고, 카탈로그 항목은 유지되므로 다시 켜면 그대로 복원됩니다.`,"models.active":`{active}/{total} 활성`,"models.allOn":`모두 켜기`,"models.allOff":`모두 끄기`,"models.cap350k":`350k 제한`,"models.capApplied":`컨텍스트 제한 적용됨 — 다음 Codex 턴부터 반영됩니다.`,"models.capSaveFailed":`컨텍스트 제한 저장 실패`,"models.contextCapped":`350k 제한`,"models.contextCapLabel":`컨텍스트 제한`,"models.v2Label":`서브에이전트`,"models.v2Mode_v1":`v1`,"models.v2Mode_default":`base`,"models.v2Mode_v2":`v2`,"models.v2ModeDesc_v1":`전 모델 → v1 서피스`,"models.v2ModeDesc_default":`업스트림 기본값 (sol/terra=v2, luna=v1)`,"models.v2ModeDesc_v2":`전 모델 → v2 서피스`,"models.v2Help":`모든 모델의 멀티에이전트 서피스를 제어합니다.
|
|
22
|
+
|
|
23
|
+
v1: 단일 스레드 에이전트. 모든 모델이 v1 서피스를 사용합니다.
|
|
24
|
+
base: 업스트림 기본값 — sol/terra는 v2, luna는 v1, 나머지는 codex 플래그를 따릅니다.
|
|
25
|
+
v2: 멀티 스레드 에이전트(spawn_agent). 모든 모델이 v2 서피스를 사용합니다.
|
|
26
|
+
|
|
27
|
+
새 세션부터 적용됩니다.`,"models.v2DocsLink":`v1 / v2가 뭔가요?`,"dash.multiAgent":`서브에이전트`,"models.v2Conflict":`[agents] max_threads가 남아 있어 codex가 부팅을 거부합니다 — config.toml에서 제거하세요`,"models.v2Applied":`multi_agent_v2 변경됨 — 새 세션부터 적용 (피커 갱신은 Codex 앱 재시작)`,"models.v2ThreadsLabel":`최대 스레드`,"models.v2ThreadsDefault":`기본값 (4)`,"models.v2ThreadsApplied":`스레드 한도 변경됨 — 새 세션부터 적용`,"models.v2ThreadsInvalid":`스레드 한도는 1 이상 정수여야 합니다`,"models.v2ThreadsApply":`적용`,"models.capValue":`{value} 제한`,"models.contextCappedValue":`{value} 제한`,"models.setAll":`전체 적용`,"models.custom":`직접 입력…`,"models.customApply":`적용`,"models.customPlaceholder":`토큰 (예: 420000)`,"models.applied":`적용됨 — 다음 Codex 턴부터 반영됩니다.`,"models.saveFailed":`저장 실패`,"models.networkError":`네트워크 오류 — 프록시가 실행 중인가요?`,"models.loadFail":`모델을 불러오지 못했습니다 — 프록시가 실행 중인가요?`,"models.noRouted":`라우팅된 모델 없음`,"models.noRoutedHint":`먼저 프로바이더에 로그인하거나 추가하세요.`,"models.loading":`불러오는 중…`,"models.search":`모델 검색…`,"models.showMore":`{n}개 더 보기`,"models.allowlistLabel":`선택만 노출`,"models.allowlistHint":`체크한 모델만 카탈로그에 노출돼요 (비우면 전체). 수천 개 모델을 노출하는 프로바이더에 유용해요.`,"models.selectedCount":`{n}개 선택`,"models.orderHint":`피커 순서: Subagents에서 지정한 순서 → 나머지 라우팅 모델(프로바이더, 모델 ID 순 알파벳 정렬) → 네이티브 모델. 노출 토글은 모델을 필터링할 뿐 이 순서를 바꾸지 않습니다.`,"sub.subtitle":`Codex의 {cmd} 는 우선순위 상위 5개 모델만 오버라이드로 노출합니다. 여기서 최대 5개를 선택하면 — 네이티브 gpt 또는 라우팅된 모델 — opencodex가 카탈로그 우선순위를 설정해 정확히 이들이 앞에 옵니다. 다른 모델도 정확한 이름으로 호출할 수 있으며, 이 설정은 표시 항목만 제어합니다.`,"sub.featured":`추천`,"sub.orderHint":`여기서 선택해 표시된 순서가 Codex 모델 피커 최상단 1~5위와 {cmd}의 기본 모델 후보를 결정합니다.`,"sub.noneSelected":`선택된 항목 없음 — 아래 목록에서 선택하세요.`,"sub.models":`모델`,"sub.search":`모델 검색(네이티브 gpt + 라우팅)…`,"sub.noModels":`모델 없음 — 먼저 프로바이더에 로그인하거나 추가하세요.`,"sub.saved":`{n}개 모델을 저장했습니다. spawn_agent 오버라이드로 보려면 새 Codex 세션을 시작하거나 {cmd} 를 실행하세요.`,"sub.saveFailed":`저장 실패`,"sub.networkError":`네트워크 오류 — 프록시가 실행 중인가요?`,"sub.loadFail":`모델을 불러오지 못했습니다 — 프록시가 실행 중인가요?`,"sub.loading":`불러오는 중…`,"sub.moveUp":`{m} 위로 이동`,"sub.moveDown":`{m} 아래로 이동`,"sub.removeAria":`{m} 삭제`,"logs.title":`요청 로그`,"logs.subtitle":`로컬 opencodex 프록시를 거친 최근 요청입니다. 최신순.`,"logs.autoRefresh":`자동 새로고침`,"logs.noRequests":`아직 요청이 없습니다.`,"logs.filter.surface.label":`표면`,"logs.filter.surface.all":`전체`,"logs.filter.surface.claude":`Claude`,"logs.filter.surface.codex":`Codex`,"logs.badge.claude":`Claude`,"logs.col.time":`시간`,"logs.col.request":`요청`,"logs.col.model":`모델`,"logs.col.effort":`추론 강도`,"logs.col.provider":`프로바이더`,"logs.col.status":`상태`,"logs.col.tokens":`토큰`,"logs.col.error":`오류`,"logs.col.upstreamReason":`업스트림 원인`,"logs.col.duration":`소요 시간`,"logs.tokens.reported":`측정됨`,"logs.tokens.unreported":`미보고`,"logs.tokens.unsupported":`미지원`,"logs.tokens.estimated":`추정`,"logs.tokens.input":`입력`,"logs.tokens.output":`출력`,"logs.tokens.cacheRead":`캐시 히트 (c)`,"logs.tokens.cacheWrite":`캐시 생성 (w)`,"logs.tokens.reasoning":`추론`,"logs.tokens.noCache":`캐시 미보고`,"logs.tokens.noCacheNote":`이 프로바이더는 캐시 토큰 수치를 제공하지 않습니다`,"logs.tokens.estimatedNote":`추정치 (프로바이더가 정확한 사용량을 제공하지 않음)`,"logs.details":`상세보기`,"logs.detailTitle":`요청 상세`,"logs.detailRaw":`원본 로그`,"debug.title":`디버그`,"debug.subtitle":`선택적 provider transport 및 usage 추출 진단. 요청 오류와 502는 Logs에 표시됩니다.`,"debug.debug":`Provider debug`,"debug.usage":`Usage 추출`,"debug.injection":`주입 로그`,"debug.claude":`Claude 인바운드`,"debug.claudeInbound.title":`Claude 인바운드 요청`,"debug.claudeInbound.sub":`Claude Code/Desktop이 실제로 보내는 값(thinking, effort, metadata)을 보여줍니다 — 프롬프트 원문은 저장하지 않습니다.`,"debug.claudeInbound.empty":`아직 캡처된 요청이 없습니다. 켜진 상태에서 Claude로 메시지를 보내보세요.`,"debug.claudeInbound.time":`시간`,"debug.claudeInbound.endpoint":`엔드포인트`,"debug.claudeInbound.model":`모델`,"debug.claudeInbound.none":`없음`,"debug.reset":`런타임 재정의 해제`,"debug.refresh":`새로고침`,"debug.follow":`Follow`,"debug.streamProvider":`Provider`,"debug.streamUsage":`Usage`,"debug.streamInjection":`Injection`,"debug.loading":`디버그 설정 로딩 중…`,"debug.emptyTitle":`디버그 로깅 꺼짐`,"debug.empty":`위 카드에서 Provider debug 또는 Usage extraction을 켜세요. 프록시로 요청을 보낸 뒤 라인이 표시됩니다.`,"debug.noLinesTitle":`라인 대기 중`,"debug.noLines.provider":`공급자 디버그는 켜져 있지만 전송 이상(드롭되거나 잘못된 프레임, Cursor dial/retry 이벤트)만 기록합니다. Anthropic 같은 공급자로의 정상 요청은 라인을 생성하지 않을 수 있습니다.`,"debug.noLines.usage":`사용량 추출은 켜져 있지만 아직 캡처된 항목이 없습니다. Codex로 요청을 보내면 여기에 표시됩니다.`,"debug.noLines.injection":`주입 로그는 켜져 있지만 아직 캡처된 항목이 없습니다. Collab 및 서브 에이전트 턴의 멀티 에이전트 가이던스 주입과 effort-cap 결정을 기록합니다.`,"usage.title":`사용량`,"usage.subtitle":`프록시의 로컬 토큰 집계입니다. 누락된 사용량은 0으로 표시하지 않습니다.`,"usage.loading":`사용량 데이터를 불러오는 중…`,"usage.empty":`아직 기록된 사용량이 없습니다. 프록시로 요청을 보내면 여기에 표시됩니다.`,"usage.range.all":`전체`,"usage.range.30d":`30일`,"usage.range.7d":`7일`,"usage.card.requests":`요청`,"usage.card.measured":`측정됨`,"usage.card.reported":`측정됨`,"usage.card.totalTokens":`총 토큰`,"usage.card.cachedTokens":`캐시 히트 토큰`,"usage.card.cachedTokensHint":`프로바이더 캐시에서 읽어온 프롬프트 토큰(히트)입니다. 캐시 생성(쓰기)은 아래에 별도 표시됩니다.`,"usage.card.cacheWriteTokens":`캐시 생성`,"usage.card.coverage":`커버리지`,"usage.card.activeDays":`활동일`,"usage.section.heatmap":`일별 활동`,"usage.section.models":`모델`,"usage.section.providers":`프로바이더`,"usage.section.coverage":`커버리지 상세`,"usage.coverage.measured":`측정됨`,"usage.coverage.reported":`제공자 보고`,"usage.coverage.estimated":`추정`,"usage.coverage.note":`측정됨 항목은 제공자 보고와 추정 토큰 수치를 함께 포함합니다. 미보고/미지원 요청은 추적만 하고 0으로 환산하지 않습니다.`,"usage.search.models":`모델 검색…`,"usage.col.requests":`요청`,"usage.col.measured":`측정됨`,"usage.col.reported":`측정됨`,"usage.col.tokens":`토큰`,"usage.col.share":`비율`,"usage.heatmap.less":`적음`,"usage.heatmap.more":`많음`,"modal.addNamed":`추가: {label}`,"modal.add":`프로바이더 추가`,"modal.search":`프로바이더 검색…`,"modal.logInWith":`{label} 로 로그인`,"modal.waitingBrowser":`브라우저 대기 중…`,"modal.providerName":`프로바이더 이름`,"modal.adapter":`어댑터`,"modal.baseUrl":`Base URL`,"modal.defaultModel":`기본 모델(선택)`,"modal.nameRequired":`프로바이더 이름을 입력하세요`,"modal.baseUrlRequired":`Base URL을 입력하세요`,"modal.networkError":`네트워크 오류 — 프록시가 실행 중인가요?`,"modal.loginFailStart":`로그인을 시작하지 못했습니다`,"modal.waitingLogin":`브라우저 로그인 대기 중…`,"modal.loggingIn":`로그인 중…`,"modal.loginTimeout":`로그인 시간 초과 — 다시 시도하세요.`,"nav.api":`API`,"nav.codexAuth":`Codex 인증`,"codexAuth.mainAccount":`메인 계정`,"codexAuth.appLogin":`앱 로그인`,"codexAuth.accountPool":`계정 풀`,"codexAuth.add":`추가`,"codexAuth.refreshQuota":`할당량 새로고침`,"codexAuth.refreshingQuota":`새로고침 중...`,"codexAuth.quotaRefreshed":`할당량을 다시 조회했습니다`,"codexAuth.quotaRefreshFailed":`할당량 재조회에 실패했습니다`,"codexAuth.noPool":`풀 계정이 아직 없습니다.`,"codexAuth.weekly":`주간`,"codexAuth.fiveHour":`5h`,"codexAuth.monthly":`30일`,"codexAuth.resets":`리셋`,"codexAuth.today":`오늘`,"codexAuth.current":`현재`,"codexAuth.nextSession":`다음 세션`,"codexAuth.switchTitle":`활성 계정을 변경하시겠습니까?`,"codexAuth.switchDesc":`다음 Codex 세션부터 적용됩니다. 현재 세션은 기존 계정을 유지합니다.`,"codexAuth.cacheWarning":`계정 전환 시 프롬프트 캐시가 초기화됩니다.`,"codexAuth.setAsNext":`다음 세션으로 설정`,"codexAuth.cancel":`취소`,"codexAuth.switchBack":`메인 계정으로 돌아가시겠습니까?`,"codexAuth.switchBackDesc":`다음 Codex 세션에서 앱 로그인 계정을 사용합니다.`,"codexAuth.autoSwitch":`80% 초과 시 자동 전환`,"codexAuth.autoSwitchDesc":`새 세션은 해당 플랜의 기준 창이 임계값에 도달하면 전환합니다. Go/Free는 30일만 봅니다`,"codexAuth.switched":`다음 세션부터 {email}을(를) 사용합니다`,"codexAuth.removeConfirm":`{id}을(를) 삭제하시겠습니까?`,"codexAuth.addTitle":`Codex 계정 추가`,"codexAuth.addIdLabel":`계정 ID (슬러그)`,"codexAuth.addJsonLabel":`auth.json 내용`,"codexAuth.addHelp":`다른 머신의 ~/.codex/auth.json을 복사하거나, codex-auth export를 사용하세요.`,"codexAuth.importBtn":`가져오기`,"codexAuth.importInvalidJson":`유효하지 않은 JSON`,"codexAuth.importMissingTokens":`JSON에 access_token 또는 refresh_token이 없습니다`,"codexAuth.importMissingId":`계정 ID를 입력하세요`,"codexAuth.accountAdded":`풀에 계정이 추가되었습니다`,"codexAuth.addPickDesc":`다른 ChatGPT 계정으로 로그인하여 풀에 추가하세요.`,"codexAuth.oauthLogin":`OAuth 로그인`,"codexAuth.oauthDesc":`브라우저에서 ChatGPT 로그인 열기`,"codexAuth.importAuthJson":`auth.json 가져오기`,"codexAuth.importAuthJsonDesc":`다른 Codex 설치 또는 codex-auth export에서`,"codexAuth.back":`뒤로`,"codexAuth.oauthAlreadyInProgress":`로그인이 이미 진행 중입니다. 브라우저에서 완료하세요.`,"codexAuth.oauthWaiting":`브라우저에서 ChatGPT 로그인 완료를 기다리는 중...`,"codexAuth.copyLoginLink":`로그인 링크 복사`,"codexAuth.loginLinkCopied":`로그인 링크를 복사했습니다`,"codexAuth.loginLinkCopyFailed":`로그인 링크를 복사하지 못했습니다.`,"codexAuth.oauthCancelled":`로그인이 취소되었습니다.`,"codexAuth.needsReauth":`재로그인`,"codexAuth.tokenExpired":`토큰 만료 — 계정을 다시 추가하여 갱신하세요`,"codexAuth.emailCollision":`이 계정은 메인 Codex 로그인과 동일합니다. 다른 계정을 사용하세요.`,"codexAuth.resetCreditsTitle":`리셋 크레딧`,"codexAuth.resetCreditsAvailable":`사용 가능한 리셋 크레딧이 {count}개 있습니다.`,"codexAuth.resetCreditsDesc":`크레딧 1개로 현재 시간/주간 사용량 제한을 즉시 초기화합니다.`,"codexAuth.noResetCredits":`사용 가능한 리셋 크레딧이 없습니다.`,"codexAuth.earnCreditsHint":`크레딧은 매월 자동 지급되며 추천 프로그램으로도 획득할 수 있습니다.`,"codexAuth.creditsExpireNote":`크레딧은 획득 후 30일 뒤 만료됩니다.`,"codexAuth.useOneCredit":`크레딧 1개 사용`,"codexAuth.confirmResetTitle":`리셋 크레딧을 사용하시겠습니까?`,"codexAuth.confirmResetDesc":`현재 사용량 제한이 즉시 초기화됩니다. 남은 크레딧: {count}개.`,"codexAuth.irreversible":`이 작업은 되돌릴 수 없습니다.`,"codexAuth.useCredit":`크레딧 사용`,"codexAuth.redeeming":`초기화 중...`,"codexAuth.resetSuccess":`사용량 제한이 초기화되었습니다! 남은 크레딧: {remaining}개.`,"codexAuth.resetNothingToReset":`현재 초기화할 사용량 윈도우가 없습니다.`,"codexAuth.resetNoCredit":`사용 가능한 리셋 크레딧이 없습니다.`,"codexAuth.resetError":`리셋 크레딧 사용에 실패했습니다. 다시 시도해 주세요.`,"codexAuth.fifoNote":`가장 오래된 크레딧부터 사용됩니다.`,"codexAuth.confirmWhichCredit":`{date}에 획득한 크레딧이 사용됩니다.`,"codexAuth.creditNext":`다음 사용 대상`,"codexAuth.creditLabel":`크레딧 #{n}`,"codexAuth.creditNextBadge":`NEXT`,"codexAuth.creditGranted":`획득 {date}`,"codexAuth.creditExpires":`만료 {date} ({days}일 남음)`,"api.title":`API 액세스`,"api.subtitle":`생성한 API 키로 외부 앱에서 opencodex 프록시에 접근합니다. {authHeader} 또는 {altHeader} 헤더로 인증합니다.`,"api.endpoint":`엔드포인트`,"api.endpointNote":`OpenAI Responses API 형식과 호환됩니다.`,"api.newKeyTitle":`새 키 생성됨`,"api.newKeyNote":`지금 키를 복사하세요. 다시 표시되지 않습니다.`,"api.copy":`복사`,"api.copied":`복사됨`,"api.dismiss":`닫기`,"api.generateTitle":`키 생성`,"api.keyNamePlaceholder":`키 이름 (선택)`,"api.generate":`생성`,"api.generating":`생성 중…`,"api.activeKeys":`활성 키 ({count})`,"api.noKeys":`아직 API 키가 없습니다. 위에서 하나 생성하세요.`,"api.colName":`이름`,"api.colKey":`키`,"api.colCreated":`생성일`,"api.confirm":`확인`,"api.deleteAria":`API 키 삭제`,"api.usageTitle":`사용 예시`,"nav.claude":`Claude`,"claude.subtitle":`Claude Code에서 GPT, Gemini 등 다른 모델도 쓸 수 있게 해줍니다.`,"claude.enabledLabel":`Claude 연결`,"claude.enabledHint":`끄면 Claude Code가 이 프록시를 사용할 수 없습니다.`,"claude.systemEnv":`자동 연결`,"claude.systemEnvDesc":`켜면 터미널에서 claude를 바로 실행해도 프록시를 거칩니다.`,"claude.systemEnvWarn":`⚠ 터미널 앱을 완전히 종료했다 다시 열어야 적용됩니다. 사용을 권장하지 않습니다.`,"claude.fastMode":`Fast Mode (OpenAI)`,"claude.fastModeDesc":`OpenAI 모델의 추론 속도를 제어합니다. ON = 빠른 추론. OFF = 기본 속도. Auto = 클라이언트 설정 그대로.`,"claude.fastAuto":`Auto`,"claude.fastOn":`ON`,"claude.fastOff":`OFF`,"claude.autoContext":`큰 컨텍스트 자동 활용`,"claude.autoContextDesc":`1M 표기를 어디까지 붙일지 정합니다. 켜면 20만 토큰을 넘는 모델 전부(GPT 계열 등)에 큰 컨텍스트 행이 생기고, 끄면 진짜 1M 모델에만 생깁니다.`,"claude.autoContextInert":`설정 파일에 이전 방식의 컨텍스트 크기 값(maxContextTokens)이 있어 이 기능이 지금은 적용되지 않아요. 설정에서 그 값을 지우면 다시 켜집니다.`,"claude.autoCompactWindow":`자동 요약 지점`,"claude.autoCompactDefault":`350k (기본값)`,"claude.autoCompactWindowDesc":`대화가 이 지점에 다다르면 오래된 내용을 자동 요약합니다. 모델마다 자기 한도를 넘지 않는 선에서만 적용되니 200k 모델은 영향받지 않아요.`,"claude.autoCompactWindowWarn":`값을 직접 바꾸면 GPT 모델들이 제대로 동작하지 않을 수 있어요 — 모델의 실제 한도보다 크게 잡으면 요약이 되기 전에 대화가 오류로 멈춥니다.`,"claude.injectAgents":`서브에이전트 자동 등록`,"claude.injectAgentsDesc":`위 '서브에이전트' 탭에서 고른 모델들(+현재 기본 모델)을 Claude Code의 파견 가능한 에이전트(ocx-*)로 자동 등록합니다. 새 세션부터 적용돼요.`,"claude.webSearchSidecar":`웹 검색 사이드카 덮어쓰기`,"claude.webSearchSidecarHint":`Claude Code 요청에만 메인 웹 검색 사이드카 대신 이 설정을 씁니다.`,"claude.visionSidecar":`비전 사이드카 덮어쓰기`,"claude.visionSidecarHint":`Claude Code 요청에만 메인 비전 사이드카 대신 이 설정을 씁니다.`,"claude.useMainSetting":`메인 설정 사용`,"claude.sidecarModelPlaceholder":`메인 설정의 모델`,"claude.quickstart":`시작하기`,"claude.quickstartHint":`{cmd} 을 실행하면 프록시를 거쳐 Claude Code가 열립니다. claude.ai 로그인은 그대로 유지됩니다.`,"claude.manualEnv":`직접 설정하기 (고급)`,"claude.smallFastModel":`백그라운드 보조 모델`,"claude.smallFastModelHint":`Claude Code가 대화 요약, 주제 감지 같은 배후 작업에 쓰는 모델입니다. 서브에이전트의 haiku 별칭도 이 모델을 씁니다. 비워두면 Claude 기본값(Haiku).`,"claude.slotUnset":`Claude 기본값 사용`,"claude.modelMap":`모델 가로채기`,"claude.modelMapHint":`Claude가 특정 모델을 요청하면 가로채서 지정한 모델로 보냅니다. 기본값은 비어 있어요 — 규칙을 추가할 때만 동작합니다.`,"claude.mapFrom":`원래 모델 (예: claude-sonnet-4-5)`,"claude.mapTo":`바꿀 모델 (예: gemini/gemini-3-pro)`,"claude.addMapping":`규칙 추가`,"claude.removeMapping":`규칙 삭제`,"claude.aliases":`사용 가능한 모델`,"claude.aliasesHint":`Claude Code의 /model 메뉴에 표시되는 모델 목록입니다.`,"claude.loading":`불러오는 중…`,"claude.loadFail":`Claude 설정을 불러오지 못했습니다`,"claude.saved":`저장되었습니다.`,"claude.saveFailed":`저장 실패`,"claude.networkError":`네트워크 오류 — 프록시가 실행 중인가요?`,"claude.toggleAria":`Claude 인바운드 켜기/끄기`,"claude.none":`없음`},zh:{"nav.dashboard":`仪表盘`,"nav.providers":`提供方`,"nav.models":`模型`,"nav.subagents":`子代理`,"nav.logs":`日志`,"nav.debug":`调试`,"nav.usage":`用量`,"common.github":`GitHub`,"common.save":`保存`,"common.cancel":`取消`,"common.remove":`移除`,"common.loading":`加载中…`,"theme.label":`主题`,"theme.light":`浅色`,"theme.dark":`深色`,"theme.system":`跟随系统`,"lang.label":`语言`,"dash.subtitle":`本地 opencodex 代理、其提供方以及路由到 Codex 的模型的实时状态。`,"dash.status":`状态`,"dash.online":`在线`,"dash.offline":`离线`,"dash.version":`版本`,"dash.uptime":`运行时间`,"dash.providers":`提供方`,"dash.tokens30d":`Token (30 天)`,"dash.coverage":`覆盖率 {pct}`,"dash.activeProviders":`活跃提供方`,"dash.noProviders":`尚未配置提供方。请运行 {cmd}。`,"dash.col.name":`名称`,"dash.col.adapter":`适配器`,"dash.col.baseUrl":`Base URL`,"dash.col.model":`模型`,"dash.availableModels":`可用模型`,"dash.noModels":`未找到模型。请检查提供方 API 密钥。`,"dash.cannotConnect":`无法连接到代理。它在运行吗?`,"dash.runStart":`运行 {cmd} 以启动代理。`,"dash.stop":`停止代理`,"dash.stopConfirm":`停止代理并恢复原生 Codex 配置?`,"dash.stopping":`正在停止…`,"dash.codexAutoStart":`随 Codex 启动 opencodex`,"dash.codexAutoStartHint":`启用后,Codex shim 会在每次 Codex CLI/App 启动前运行 ocx ensure。关闭后不会改动 Codex。`,"dash.searchModel":`搜索附属模型`,"dash.searchModelHint":`用于非 OpenAI 路由模型的 web_search 的模型。需要 ChatGPT 登录。`,"dash.searchReasoning":`搜索推理强度`,"dash.visionModel":`视觉附属模型`,"dash.visionModelHint":`为纯文本路由模型描述图像的模型。需要 ChatGPT 登录。`,"dash.webSearchSidecar":`网页搜索附属服务`,"dash.webSearchSidecarHint":`选择路由模型进行网页搜索时使用的后端和模型。`,"dash.visionSidecar":`视觉附属服务`,"dash.visionSidecarHint":`选择纯文本路由模型描述图像时使用的后端和模型。`,"dash.sidecarBackend":`后端`,"dash.sidecarModel":`模型`,"dash.backendAuto":`自动`,"dash.backendOpenAI":`OpenAI`,"dash.backendAnthropic":`Anthropic`,"dash.sidecarSaved":`附属设置已保存。将在下一个请求时生效。`,"dash.sidecarSaveFailed":`保存附属设置失败。`,"dash.injectionLabel":`子代理委托`,"dash.injectionHint":`选择要注入委托提示的路由模型。代理将被告知在子任务中使用它。`,"dash.injectionActive":`已激活`,"dash.injectionNone":`无`,"dash.injectionEffortLabel":`推理强度`,"dash.injectionEffortNone":`模型默认`,"dash.effortCapLabel":`V2 ultra 推理强度限制`,"dash.subagentEffortCapLabel":`V2 子代理推理强度限制`,"dash.effortCapHelp":`限制 V2 ultra 模式轮次的推理强度。设置后,来自 ultra 模式的 max 请求将被限制到所选级别。子代理限制仅适用于衍生的子代理。只会降低强度,不会提高。如果模型不支持所选级别,将自动降至最近的支持级别。`,"dash.effortCapNone":`无上限`,"dash.maintenance":`维护`,"dash.maintenanceHint":`刷新 Codex 模型目录,或安装新的 opencodex 版本。`,"dash.syncModels":`同步模型`,"dash.syncing":`同步中…`,"dash.syncOk":`同步完成。已追加 {count} 个模型。`,"dash.syncStaleHint":`如果 Codex App 仍显示旧列表,请重启长期运行的 app-server 进程。`,"dash.syncFailed":`同步失败:{error}`,"dash.projectConfigTitle":`项目 Codex 配置绕过了 OpenCodex`,"dash.projectConfigHint":`这些仓库级设置会覆盖 OpenCodex 代理(例如直接走 OpenCode Go)。请移除它们,以便该项目使用 ~/.codex/config.toml 的代理路由。`,"dash.checkUpdate":`检查更新`,"dash.updateTitle":`更新 opencodex`,"dash.updateDesc":`检查所选 npm 频道的最新版本,然后选择安装后是否重启代理。`,"dash.updateChannel":`频道`,"dash.updateChecking":`正在检查更新…`,"dash.updateInstalled":`已安装`,"dash.updateLatest":`最新`,"dash.updateAvailable":`有可用更新`,"dash.updateCurrent":`已是最新`,"dash.updateCommand":`命令`,"dash.updateSource":`当前是源码检出。请在终端运行显示的命令进行更新。`,"dash.updateUnavailable":`无法从 npm 读取最新版本。请稍后重试。`,"dash.updateRetry":`重试`,"dash.updateRecheck":`重新检查`,"dash.updateCannotAuto":`无法一键更新({reason})。`,"dash.updateReason.source_checkout":`源码检出`,"dash.updateReason.latest_unavailable":`无法连接 npm 注册表`,"dash.updateReason.already_latest":`已是最新版本`,"dash.updateReason.unknown":`无法更新`,"dash.updateRestart":`更新后重启`,"dash.updateRestartHint":`推荐开启。代理重启前,当前 GUI 仍运行旧代码。`,"dash.runUpdate":`更新`,"dash.updateReconnecting":`正在等待重启后的代理…`,"dash.updateStatus.running":`正在更新 opencodex。`,"dash.updateStatus.restarting":`更新已安装。正在重启代理。`,"dash.updateStatus.succeeded":`更新完成。`,"dash.updateStatus.failed":`更新失败。`,"prov.subtitle":`配置 opencodex 路由到 Codex 的上游提供方。使用账户登录、添加提供方,或编辑原始配置。`,"prov.add":`添加提供方`,"prov.editJson":`编辑 JSON`,"prov.accountLogin":`账户登录`,"prov.noOauth":`没有可用的 OAuth 提供方。`,"prov.loggedIn":`已登录`,"prov.notLoggedIn":`未登录`,"prov.logout":`退出登录`,"prov.login":`登录`,"prov.loginWith":`使用 {provider} 登录`,"prov.waitingBrowser":`等待浏览器…`,"prov.didntOpen":`没有打开?点击这里`,"prov.port":`端口`,"prov.default":`默认`,"prov.loadingConfig":`加载中…`,"prov.saved":`已保存!重启代理以生效。`,"prov.loadConfigFail":`加载配置失败`,"prov.invalidJson":`无效的 JSON`,"prov.saveFailed":`保存失败`,"prov.loginFailStart":`{provider} 登录启动失败`,"prov.loginError":`{provider} 登录错误:{error}`,"prov.loginRequestFail":`{provider} 登录请求失败`,"prov.loginOk":`已登录到 {provider}。运行 {cmd}(或实时生效)以列出其模型。`,"prov.logoutOk":`已退出 {provider}。`,"prov.removed":`已移除 "{name}"。`,"prov.removeFail":`移除 "{name}" 失败。`,"prov.added":`已添加 "{name}"。现已生效 — 运行 {cmd}(或重启)以在 Codex 选择器中列出其模型。`,"prov.removeConfirm":`移除提供方 "{name}"?其模型将从 Codex 选择器中消失。`,"prov.hasApiKey":`已配置 API 密钥`,"prov.hasHeaders":`已配置自定义请求头`,"prov.accounts":`账户({n})`,"prov.accountsAria":`展开/收起 {name} 账户`,"prov.accountActive":`使用中`,"prov.accountReauth":`需重新登录`,"prov.accountAdd":`添加账户`,"prov.accountNoLabel":`账户 {id}`,"prov.accountSwitchTitle":`使用此账户`,"prov.accountSwitched":`已切换到 {email}。`,"prov.accountSwitchFail":`切换账户失败`,"prov.accountRemoved":`已移除 {email}。`,"prov.accountRemoveAria":`移除 {email}`,"prov.accountRemoveConfirm":`移除账户 {email}?其登录将从此代理中删除。`,"prov.keyAdd":`添加 API 密钥`,"prov.keyAdded":`已为 {name} 添加 API 密钥。`,"prov.keyAddFail":`添加 API 密钥失败`,"prov.keyPlaceholder":`粘贴 API 密钥`,"prov.keySwitchTitle":`使用此密钥`,"prov.keySwitched":`已切换到密钥 {key}。`,"prov.keySwitchFail":`切换密钥失败`,"prov.keyRemoved":`已移除密钥 {key}。`,"prov.keyRemoveAria":`移除密钥 {key}`,"prov.keyRemoveConfirm":`移除 API 密钥 {key}?它将从此代理的配置中删除。`,"prov.activeBadge":`已启用`,"prov.disabledBadge":`已禁用`,"prov.defaultBadge":`默认`,"prov.enable":`启用`,"prov.disable":`禁用`,"prov.enabled":`已启用 "{name}"。其模型可再次出现在 Codex 中。`,"prov.disabled":`已禁用 "{name}"。设置会保留,但模型会被隐藏。`,"prov.enableFail":`启用 "{name}" 失败。`,"prov.disableFail":`禁用 "{name}" 失败。`,"prov.enableAria":`启用提供方 {name}`,"prov.disableAria":`禁用提供方 {name}`,"prov.defaultCannotDisable":`默认提供方不能被禁用`,"models.subtitle":`开关 Codex 可见的模型 — 原生 GPT passthrough 与已路由模型按提供方分组(点击标题可折叠)。已禁用的模型会从目录和模型选择器中隐藏。更改在下一个 Codex 回合生效 — opencodex 会使 Codex 的 5 分钟模型缓存失效,因此无需重启。`,"models.nativeGroupLabel":`OpenAI 原生`,"models.nativeHint":`通过你的 ChatGPT 登录提供的 passthrough 模型。关闭后会从 Codex 选择器中隐藏(目录条目保留,重新开启即可完整恢复)。`,"models.active":`{active}/{total} 已启用`,"models.allOn":`全部开启`,"models.allOff":`全部关闭`,"models.cap350k":`限制 350k`,"models.capApplied":`上下文限制已应用 — 将在下一个 Codex 回合生效。`,"models.capSaveFailed":`保存上下文限制失败`,"models.contextCapped":`350k 限制`,"models.contextCapLabel":`上下文限制`,"models.v2Label":`子代理`,"models.v2Mode_v1":`v1`,"models.v2Mode_default":`base`,"models.v2Mode_v2":`v2`,"models.v2ModeDesc_v1":`所有模型 → v1 界面`,"models.v2ModeDesc_default":`上游默认值 (sol/terra=v2, luna=v1)`,"models.v2ModeDesc_v2":`所有模型 → v2 界面`,"models.v2Help":`控制所有模型的多代理界面。
|
|
28
|
+
|
|
29
|
+
v1: 经典单线程代理。所有模型使用 v1 协作界面。
|
|
30
|
+
base: 上游默认值 — sol/terra 使用 v2,luna 使用 v1,其余跟随 codex 功能标志。
|
|
31
|
+
v2: 多线程代理(spawn_agent)。所有模型使用 v2 协作界面。
|
|
32
|
+
|
|
33
|
+
更改在新会话中生效。`,"models.v2DocsLink":`v1 / v2 是什么?`,"dash.multiAgent":`子代理`,"models.v2Conflict":`[agents] max_threads 仍存在 — codex 将拒绝启动,请从 config.toml 移除`,"models.v2Applied":`multi_agent_v2 已更新 — 新会话生效(重启 Codex 应用以刷新选择器)`,"models.v2ThreadsLabel":`最大线程`,"models.v2ThreadsDefault":`默认 (4)`,"models.v2ThreadsApplied":`线程上限已更新 — 新会话生效`,"models.v2ThreadsInvalid":`线程上限必须为 >= 1 的整数`,"models.v2ThreadsApply":`应用`,"models.capValue":`限制 {value}`,"models.contextCappedValue":`{value} 限制`,"models.setAll":`全部设置`,"models.custom":`自定义…`,"models.customApply":`应用`,"models.customPlaceholder":`令牌 (例如 420000)`,"models.applied":`已应用 — 将在下一个 Codex 回合生效。`,"models.saveFailed":`保存失败`,"models.networkError":`网络错误 — 代理在运行吗?`,"models.loadFail":`加载模型失败 — 代理在运行吗?`,"models.noRouted":`没有已路由的模型`,"models.noRoutedHint":`请先登录提供方或添加一个。`,"models.loading":`加载中…`,"models.search":`搜索模型…`,"models.showMore":`再显示 {n} 个`,"models.allowlistLabel":`仅所选`,"models.allowlistHint":`仅勾选的模型进入目录(留空 = 全部)。适用于暴露成千上万模型的提供商。`,"models.selectedCount":`已选 {n} 个`,"models.orderHint":`选择器顺序:Subagents 中的选择(按所选顺序)→ 其余已路由模型(依次按提供方、模型 ID 字母排序)→ 原生模型。可见性开关仅用于筛选,不会改变此顺序。`,"sub.subtitle":`Codex 的 {cmd} 仅将优先级最高的前 5 个模型作为覆盖项公开。在此最多选择 5 个 — 原生 gpt 或已路由模型 — opencodex 会设置它们的目录优先级,使其正好排在前面。其他模型仍可按确切名称调用;此设置仅控制显示项。`,"sub.featured":`精选`,"sub.orderHint":`此处所选并显示的顺序决定 Codex 模型选择器顶部第 1–5 位,以及 {cmd} 的默认模型候选。`,"sub.noneSelected":`未选择 — 请从下方列表选择。`,"sub.models":`模型`,"sub.search":`搜索模型(原生 gpt + 已路由)…`,"sub.noModels":`没有模型 — 请先登录提供方或添加一个。`,"sub.saved":`已保存 {n} 个模型。启动新的 Codex 会话(或运行 {cmd})以将它们作为 spawn_agent 覆盖项查看。`,"sub.saveFailed":`保存失败`,"sub.networkError":`网络错误 — 代理在运行吗?`,"sub.loadFail":`加载模型失败 — 代理在运行吗?`,"sub.loading":`加载中…`,"sub.moveUp":`上移 {m}`,"sub.moveDown":`下移 {m}`,"sub.removeAria":`移除 {m}`,"logs.title":`请求日志`,"logs.subtitle":`经过本地 opencodex 代理的最近请求,最新在前。`,"logs.autoRefresh":`自动刷新`,"logs.noRequests":`暂无请求。`,"logs.filter.surface.label":`界面`,"logs.filter.surface.all":`全部`,"logs.filter.surface.claude":`Claude`,"logs.filter.surface.codex":`Codex`,"logs.badge.claude":`Claude`,"logs.col.time":`时间`,"logs.col.request":`请求`,"logs.col.model":`模型`,"logs.col.effort":`推理强度`,"logs.col.provider":`提供方`,"logs.col.status":`状态`,"logs.col.tokens":`Token 数`,"logs.col.error":`错误`,"logs.col.upstreamReason":`上游原因`,"logs.col.duration":`耗时`,"logs.tokens.reported":`已上报`,"logs.tokens.unreported":`未上报`,"logs.tokens.unsupported":`不支持`,"logs.tokens.estimated":`估算`,"logs.tokens.input":`输入`,"logs.tokens.output":`输出`,"logs.tokens.cacheRead":`缓存命中 (c)`,"logs.tokens.cacheWrite":`缓存写入 (w)`,"logs.tokens.reasoning":`推理`,"logs.tokens.noCache":`无缓存数据`,"logs.tokens.noCacheNote":`该提供商不报告缓存 token 数`,"logs.tokens.estimatedNote":`估算值(提供商不报告精确用量)`,"logs.details":`查看详情`,"logs.detailTitle":`请求详情`,"logs.detailRaw":`原始日志`,"debug.title":`调试`,"debug.subtitle":`可选的 provider transport 与 usage 提取诊断。请求错误和 502 在 Logs 页面。`,"debug.debug":`Provider debug`,"debug.usage":`Usage 提取`,"debug.injection":`注入日志`,"debug.claude":`Claude 入站`,"debug.claudeInbound.title":`Claude 入站请求`,"debug.claudeInbound.sub":`显示 Claude Code/Desktop 实际发送的内容(thinking、effort、metadata)— 不保存提示词原文。`,"debug.claudeInbound.empty":`尚未捕获任何请求。开启后从 Claude 发送一条消息试试。`,"debug.claudeInbound.time":`时间`,"debug.claudeInbound.endpoint":`端点`,"debug.claudeInbound.model":`模型`,"debug.claudeInbound.none":`无`,"debug.reset":`清除运行时覆盖`,"debug.refresh":`刷新`,"debug.follow":`跟随滚动`,"debug.streamProvider":`Provider`,"debug.streamUsage":`Usage`,"debug.streamInjection":`Injection`,"debug.loading":`正在加载调试设置…`,"debug.emptyTitle":`调试日志已关闭`,"debug.empty":`请在上方卡片中开启 Provider debug 或 Usage extraction。通过代理发送请求后,诊断行会显示在这里。`,"debug.noLinesTitle":`等待诊断行`,"debug.noLines.provider":`提供商调试已开启,但仅记录传输异常(丢弃或格式错误的帧,以及 Cursor dial/retry 事件)。通过 Anthropic 等提供商的正常请求可能不会产生任何行。`,"debug.noLines.usage":`用量提取已开启但尚未捕获任何内容。请通过 Codex 发送请求,随后会显示在此处。`,"debug.noLines.injection":`注入日志已开启但尚未捕获任何内容。它记录协作和子代理回合中的多代理指导注入与 effort-cap 决策。`,"usage.title":`用量`,"usage.subtitle":`代理本地的 Token 用量统计。缺失的用量不会显示为零。`,"usage.loading":`正在加载用量数据…`,"usage.empty":`尚无用量记录。通过代理发送请求后将在此显示。`,"usage.range.all":`全部`,"usage.range.30d":`30 天`,"usage.range.7d":`7 天`,"usage.card.requests":`请求数`,"usage.card.measured":`已计量`,"usage.card.reported":`已上报`,"usage.card.totalTokens":`Token 总数`,"usage.card.cachedTokens":`缓存命中 Token`,"usage.card.cachedTokensHint":`从提供商缓存读取的提示 Token(命中)。缓存写入在下方单独显示。`,"usage.card.cacheWriteTokens":`缓存写入`,"usage.card.coverage":`覆盖率`,"usage.card.activeDays":`活跃天数`,"usage.section.heatmap":`每日活动`,"usage.section.models":`模型`,"usage.section.providers":`提供方`,"usage.section.coverage":`覆盖率明细`,"usage.coverage.measured":`已计量`,"usage.coverage.reported":`提供方上报`,"usage.coverage.estimated":`估算`,"usage.coverage.note":`已计量包含提供方上报和估算的 Token 数。未上报 / 不支持请求仅做计数,不会被算作 0 Token。`,"usage.search.models":`搜索模型…`,"usage.col.requests":`请求数`,"usage.col.measured":`已计量`,"usage.col.reported":`已上报`,"usage.col.tokens":`Token 数`,"usage.col.share":`占比`,"usage.heatmap.less":`少`,"usage.heatmap.more":`多`,"modal.addNamed":`添加:{label}`,"modal.add":`添加提供方`,"modal.search":`搜索提供方…`,"modal.logInWith":`使用 {label} 登录`,"modal.waitingBrowser":`等待浏览器…`,"modal.providerName":`提供方名称`,"modal.adapter":`适配器`,"modal.baseUrl":`Base URL`,"modal.defaultModel":`默认模型(可选)`,"modal.nameRequired":`提供方名称为必填项`,"modal.baseUrlRequired":`Base URL 为必填项`,"modal.networkError":`网络错误 — 代理在运行吗?`,"modal.loginFailStart":`登录启动失败`,"modal.waitingLogin":`等待浏览器登录…`,"modal.loggingIn":`登录中…`,"modal.loginTimeout":`登录超时 — 请重试。`,"nav.api":`API`,"nav.codexAuth":`Codex 认证`,"codexAuth.mainAccount":`主账号`,"codexAuth.appLogin":`应用登录`,"codexAuth.accountPool":`账号池`,"codexAuth.add":`添加`,"codexAuth.refreshQuota":`刷新额度`,"codexAuth.refreshingQuota":`刷新中...`,"codexAuth.quotaRefreshed":`额度已刷新`,"codexAuth.quotaRefreshFailed":`额度刷新失败`,"codexAuth.noPool":`尚未添加池账号。`,"codexAuth.weekly":`每周`,"codexAuth.fiveHour":`5h`,"codexAuth.monthly":`30天`,"codexAuth.resets":`重置`,"codexAuth.today":`今天`,"codexAuth.current":`当前`,"codexAuth.nextSession":`下次会话`,"codexAuth.switchTitle":`切换活跃账号?`,"codexAuth.switchDesc":`从下次 Codex 会话开始生效。当前会话保持现有账号。`,"codexAuth.cacheWarning":`切换账号会重置提示缓存。新会话从空缓存开始。`,"codexAuth.setAsNext":`设为下次会话`,"codexAuth.cancel":`取消`,"codexAuth.switchBack":`切换回主账号?`,"codexAuth.switchBackDesc":`下次 Codex 会话将使用应用登录账号。`,"codexAuth.autoSwitch":`超过 80% 时自动切换`,"codexAuth.autoSwitchDesc":`新会话会在相关额度窗口达到阈值时切换;Go/Free 只使用 30天`,"codexAuth.switched":`下次会话将使用 {email}`,"codexAuth.removeConfirm":`删除 {id}?`,"codexAuth.addTitle":`添加 Codex 账号`,"codexAuth.addIdLabel":`账号 ID(标识符)`,"codexAuth.addJsonLabel":`auth.json 内容`,"codexAuth.addHelp":`从另一台机器的 ~/.codex/auth.json 复制,或使用 codex-auth export。`,"codexAuth.importBtn":`导入`,"codexAuth.importInvalidJson":`无效的 JSON`,"codexAuth.importMissingTokens":`JSON 中缺少 access_token 或 refresh_token`,"codexAuth.importMissingId":`请输入账号 ID`,"codexAuth.accountAdded":`账号已添加到池中`,"codexAuth.addPickDesc":`使用另一个 ChatGPT 账号登录以添加到池中。`,"codexAuth.oauthLogin":`OAuth 登录`,"codexAuth.oauthDesc":`在浏览器中打开 ChatGPT 登录`,"codexAuth.importAuthJson":`导入 auth.json`,"codexAuth.importAuthJsonDesc":`从另一个 Codex 安装或 codex-auth 导出`,"codexAuth.back":`返回`,"codexAuth.oauthAlreadyInProgress":`登录已在进行中。请在浏览器中完成。`,"codexAuth.oauthWaiting":`等待浏览器中完成 ChatGPT 登录...`,"codexAuth.copyLoginLink":`复制登录链接`,"codexAuth.loginLinkCopied":`登录链接已复制`,"codexAuth.loginLinkCopyFailed":`无法复制登录链接。`,"codexAuth.oauthCancelled":`登录已取消。`,"codexAuth.needsReauth":`重新登录`,"codexAuth.tokenExpired":`令牌已过期 — 重新添加此账号以刷新`,"codexAuth.emailCollision":`此账号与您的主 Codex 登录相同。请使用其他账号。`,"codexAuth.resetCreditsTitle":`重置额度`,"codexAuth.resetCreditsAvailable":`您有 {count} 个可用重置额度。`,"codexAuth.resetCreditsDesc":`每个额度可立即重置您当前的小时和每周使用限制。`,"codexAuth.noResetCredits":`没有可用的重置额度。`,"codexAuth.earnCreditsHint":`额度每月自动发放,也可通过推荐计划获得。`,"codexAuth.creditsExpireNote":`额度在获得后 30 天过期。`,"codexAuth.useOneCredit":`使用 1 个额度`,"codexAuth.confirmResetTitle":`使用重置额度?`,"codexAuth.confirmResetDesc":`这将立即重置您当前的使用限制。剩余额度:{count} 个。`,"codexAuth.irreversible":`此操作不可撤销。`,"codexAuth.useCredit":`使用额度`,"codexAuth.redeeming":`重置中...`,"codexAuth.resetSuccess":`使用限制已重置!剩余额度:{remaining} 个。`,"codexAuth.resetNothingToReset":`当前没有需要重置的使用窗口。`,"codexAuth.resetNoCredit":`没有可用的重置额度。`,"codexAuth.resetError":`重置额度使用失败,请重试。`,"codexAuth.fifoNote":`最早获得的额度优先使用。`,"codexAuth.confirmWhichCredit":`将使用 {date} 获得的额度。`,"codexAuth.creditNext":`即将使用`,"codexAuth.creditLabel":`额度 #{n}`,"codexAuth.creditNextBadge":`NEXT`,"codexAuth.creditGranted":`获得 {date}`,"codexAuth.creditExpires":`过期 {date}(剩余 {days} 天)`,"api.title":`API 访问`,"api.subtitle":`使用生成的 API 密钥从外部应用访问 opencodex 代理。通过 {authHeader} 或 {altHeader} 请求头进行认证。`,"api.endpoint":`端点`,"api.endpointNote":`兼容 OpenAI Responses API 格式。`,"api.newKeyTitle":`已创建新密钥`,"api.newKeyNote":`请立即复制此密钥,它不会再次显示。`,"api.copy":`复制`,"api.copied":`已复制`,"api.dismiss":`关闭`,"api.generateTitle":`生成密钥`,"api.keyNamePlaceholder":`密钥名称(可选)`,"api.generate":`生成`,"api.generating":`创建中…`,"api.activeKeys":`活跃密钥({count})`,"api.noKeys":`还没有 API 密钥。请在上方生成一个。`,"api.colName":`名称`,"api.colKey":`密钥`,"api.colCreated":`创建时间`,"api.confirm":`确认`,"api.deleteAria":`删除 API 密钥`,"api.usageTitle":`使用示例`,"nav.claude":`Claude`,"claude.subtitle":`在 Claude Code 中使用 GPT、Gemini 等其他模型。`,"claude.enabledLabel":`Claude 连接`,"claude.enabledHint":`关闭后 Claude Code 无法使用此代理。`,"claude.systemEnv":`自动连接`,"claude.systemEnvDesc":`开启后,在任意终端运行 claude 会自动通过代理。`,"claude.systemEnvWarn":`⚠ 需要完全退出并重新打开终端应用才能生效。不推荐使用。`,"claude.fastMode":`Fast Mode (OpenAI)`,"claude.fastModeDesc":`控制 OpenAI 模型的推理速度。ON = 优先级(更快)。OFF = 默认速度。Auto = 透传客户端设置。`,"claude.fastAuto":`Auto`,"claude.fastOn":`ON`,"claude.fastOff":`OFF`,"claude.autoContext":`自动利用大上下文`,"claude.autoContextDesc":`决定 1M 标记的范围。开:所有超过 20 万 token 的模型(GPT 系列等)都有大上下文条目;关:仅真正的 1M 模型有。`,"claude.autoContextInert":`配置文件中存在旧式上下文大小值(maxContextTokens),此功能暂不生效。删除该值即可恢复。`,"claude.autoCompactWindow":`自动摘要触发点`,"claude.autoCompactDefault":`350k(默认)`,"claude.autoCompactWindowDesc":`对话达到该点时自动摘要旧内容。不会超过各模型自身上限,因此 200k 模型不受影响。`,"claude.autoCompactWindowWarn":`修改该值可能导致 GPT 模型异常——若超过模型真实上限,会在摘要触发前报错。`,"claude.injectAgents":`自动注册子代理`,"claude.injectAgentsDesc":`将“子代理”页选中的模型(以及当前默认模型)注册为 Claude Code 可派遣的代理(ocx-*)。从下一个会话开始生效。`,"claude.webSearchSidecar":`网页搜索附属服务覆盖`,"claude.webSearchSidecarHint":`仅对 Claude Code 请求覆盖主网页搜索附属服务设置。`,"claude.visionSidecar":`视觉附属服务覆盖`,"claude.visionSidecarHint":`仅对 Claude Code 请求覆盖主视觉附属服务设置。`,"claude.useMainSetting":`使用主设置`,"claude.sidecarModelPlaceholder":`主设置中的模型`,"claude.quickstart":`开始使用`,"claude.quickstartHint":`{cmd} 通过代理打开 Claude Code。你的 claude.ai 登录保持不变。`,"claude.manualEnv":`手动配置(高级)`,"claude.smallFastModel":`后台辅助模型`,"claude.smallFastModelHint":`Claude Code 用于对话摘要、主题识别等后台工作的模型。子代理的 haiku 别名也使用它。留空 = Claude 默认(Haiku)。`,"claude.slotUnset":`使用 Claude 默认值`,"claude.modelMap":`模型拦截`,"claude.modelMapHint":`拦截对特定模型的请求并重定向到你指定的模型。默认为空——添加规则后才生效。`,"claude.mapFrom":`原始模型(如 claude-sonnet-4-5)`,"claude.mapTo":`替换为(如 gemini/gemini-3-pro)`,"claude.addMapping":`添加规则`,"claude.removeMapping":`删除规则`,"claude.aliases":`可用模型`,"claude.aliasesHint":`Claude Code 的 /model 菜单中显示的模型列表。`,"claude.loading":`加载中…`,"claude.loadFail":`加载 Claude 设置失败`,"claude.saved":`已保存。`,"claude.saveFailed":`保存失败`,"claude.networkError":`网络错误 — 代理是否在运行?`,"claude.toggleAria":`切换 Claude 连接`,"claude.none":`无`}},ye=[{code:`en`,name:`English`,htmlLang:`en`},{code:`de`,name:`Deutsch`,htmlLang:`de`},{code:`ko`,name:`한국어`,htmlLang:`ko`},{code:`zh`,name:`中文`,htmlLang:`zh-CN`}],be=`ocx-lang`;function xe(){try{let e=localStorage.getItem(be);if(e===`en`||e===`de`||e===`ko`||e===`zh`)return e}catch{}let e=typeof navigator<`u`?navigator.language.toLowerCase():`en`;return e.startsWith(`de`)?`de`:e.startsWith(`ko`)?`ko`:e.startsWith(`zh`)?`zh`:`en`}var Se=(0,_.createContext)(null);function Ce(e,t){if(!t)return e;let n=e;for(let e of Object.keys(t))n=n.split(`{${e}}`).join(String(t[e]));return n}function we(){let e=(0,_.useContext)(Se);if(!e)throw Error(`useI18n must be used within LanguageProvider`);return e}function Te(){return we().t}function Ee({children:e}){let[t,n]=(0,_.useState)(xe);return(0,_.useEffect)(()=>{let e=ye.find(e=>e.code===t)??ye[0];document.documentElement.lang=e.htmlLang;try{localStorage.setItem(`ocx-lang`,t)}catch{}},[t]),(0,S.jsx)(Se.Provider,{value:{locale:t,setLocale:n,t:(e,n)=>Ce(ve[t][e]??_e[e]??e,n)},children:e})}function De({k:e,cmd:t,vars:n}){let{t:r}=we(),[i,a=``]=r(e,n).split(`{cmd}`);return(0,S.jsxs)(S.Fragment,{children:[i,(0,S.jsx)(`code`,{className:`chip`,children:t}),a]})}var Oe={ko:[{v:0x2386f26fc10000,s:`경`},{v:0xe8d4a51000,s:`조`},{v:1e8,s:`억`},{v:1e4,s:`만`}],zh:[{v:0x2386f26fc10000,s:`京`},{v:0xe8d4a51000,s:`兆`},{v:1e8,s:`亿`},{v:1e4,s:`万`}]};function ke(e){return e.replace(/\.0+$/,``).replace(/(\.\d*?)0+$/,`$1`)}function Ae(e,t){let n=Oe[t];if(n){for(let t of n)if(e>=t.v)return`${ke((e/t.v).toFixed(1))}${t.s}`;return String(e)}return e<1e4?String(e):e<1e6?`${ke((e/1e3).toFixed(1))}K`:e<1e9?`${ke((e/1e6).toFixed(1))}M`:e<0xe8d4a51000?`${ke((e/1e9).toFixed(1))}B`:`${ke((e/0xe8d4a51000).toFixed(1))}T`}function je({on:e,onClick:t,disabled:n,label:r}){return(0,S.jsx)(`button`,{type:`button`,className:`switch${e?` on`:``}`,onClick:t,disabled:n,"aria-pressed":e,"aria-label":r??(e?`enabled`:`disabled`),children:(0,S.jsx)(`span`,{className:`knob`})})}function Me({tone:e,children:t}){return(0,S.jsxs)(`div`,{className:`notice ${e===`ok`?`notice-ok`:`notice-err`}`,role:`status`,children:[e===`ok`?(0,S.jsx)(O,{}):(0,S.jsx)(j,{}),(0,S.jsx)(`span`,{children:t})]})}function Ne({value:e,options:t,onChange:n,disabled:r,label:i,style:a,align:o,placement:s,dropdownStyle:c}){let[l,u]=(0,_.useState)(!1),d=(0,_.useRef)(null),f=t.find(t=>t.value===e);return(0,_.useEffect)(()=>{if(!l)return;let e=e=>{d.current&&!d.current.contains(e.target)&&u(!1)},t=e=>{e.key===`Escape`&&u(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[l]),(0,S.jsxs)(`div`,{ref:d,className:`custom-select`,style:{position:`relative`,display:`inline-block`,...a},children:[(0,S.jsxs)(`button`,{type:`button`,className:`select-trigger`,onClick:()=>!r&&u(e=>!e),disabled:r,"aria-haspopup":`listbox`,"aria-expanded":l,"aria-label":i,children:[(0,S.jsx)(`span`,{children:f?.label??e}),(0,S.jsx)(oe,{style:{width:12,height:12,color:`var(--muted)`,transform:l?`rotate(90deg)`:`none`,transition:`transform .12s`}})]}),l&&(0,S.jsx)(`div`,{className:`select-dropdown${o===`right`?` select-dropdown-right`:``}${s===`right`?` select-dropdown-beside`:``}`,role:`listbox`,"aria-label":i,style:c,children:t.map(t=>(0,S.jsx)(`button`,{type:`button`,role:`option`,"aria-selected":t.value===e,className:`select-option${t.value===e?` active`:``}`,onClick:()=>{n(t.value),u(!1)},children:t.label},t.value))})]})}function Pe({icon:e,title:t,children:n,className:r,style:i}){return(0,S.jsxs)(`div`,{className:r?`empty ${r}`:`empty`,style:i,children:[e,(0,S.jsx)(`div`,{className:`title`,children:t}),n&&(0,S.jsx)(`div`,{style:{fontSize:13},children:n})]})}var Fe={"gpt-5.6-sol":fe,"gpt-5.6-terra":he,"gpt-5.6-luna":pe},Ie={width:14,height:14,flexShrink:0,verticalAlign:`text-bottom`,marginRight:4};function Le(e){return e.slice(e.lastIndexOf(`/`)+1)}function Re(e){return Fe[e]??Fe[Le(e)]??null}function L(e){let t=Re(e);return t?(0,_.createElement)(`span`,{style:{display:`inline-flex`,alignItems:`center`,gap:4}},(0,_.createElement)(t,{style:Ie}),e):e}var ze=[`gpt-5.6-luna`,`gpt-5.4-mini`,`gpt-5.4`,`gpt-5.5`,`gpt-5.3-codex-spark`,`gpt-5.6-sol`,`gpt-5.6-terra`],Be=[`gpt-5.6-luna`,`gpt-5.4-mini`,`gpt-5.4`,`gpt-5.5`,`gpt-5.6-sol`,`gpt-5.6-terra`],Ve=[`low`,`medium`,`high`,`xhigh`],He=2,Ue=800;function We(e){return e?.includes(`-preview.`)?`preview`:`latest`}function Ge(e,t){switch(e){case`source_checkout`:return t(`dash.updateReason.source_checkout`);case`latest_unavailable`:return t(`dash.updateReason.latest_unavailable`);case`already_latest`:return t(`dash.updateReason.already_latest`);default:return t(`dash.updateReason.unknown`)}}function Ke({apiBase:e}){let{locale:t,t:n}=we(),[r,i]=(0,_.useState)(null),[a,o]=(0,_.useState)([]),[s,c]=(0,_.useState)([]),[l,u]=(0,_.useState)(null),[d,f]=(0,_.useState)(null),[p,m]=(0,_.useState)(null),[h,g]=(0,_.useState)(!1),[v,y]=(0,_.useState)(!1),[x,C]=(0,_.useState)(!1),[w,T]=(0,_.useState)(!1),[E,ee]=(0,_.useState)(`default`),[D,te]=(0,_.useState)(!1),[ne,O]=(0,_.useState)(!1),[re,ie]=(0,_.useState)(!1),[ae,N]=(0,_.useState)(``),[P,oe]=(0,_.useState)(``),[F,I]=(0,_.useState)([]),[ce,le]=(0,_.useState)([]),[ue,de]=(0,_.useState)(!1),[fe,pe]=(0,_.useState)(``),[me,he]=(0,_.useState)(``),[ge,_e]=(0,_.useState)(!1),[ve,ye]=(0,_.useState)(null),[be,xe]=(0,_.useState)(null),[Se,Ce]=(0,_.useState)([]),[Te,Ee]=(0,_.useState)(!1),[Oe,ke]=(0,_.useState)(`latest`),[je,Me]=(0,_.useState)(!0),[Fe,Ie]=(0,_.useState)(!1),Le=(0,_.useRef)(0),Re=(0,_.useRef)(null),Ke=(0,_.useRef)(0),[qe,Je]=(0,_.useState)(null),[Ye,Xe]=(0,_.useState)(null),[Ze,Qe]=(0,_.useState)(null),[$e,et]=(0,_.useState)(!1),[tt,nt]=(0,_.useState)(!1);(0,_.useEffect)(()=>()=>{Ke.current+=1,Re.current!==null&&(window.clearTimeout(Re.current),Re.current=null)},[]),(0,_.useEffect)(()=>{let t=async()=>{try{let[t,n,r,a,s]=await Promise.all([fetch(`${e}/healthz`),fetch(`${e}/api/providers`),fetch(`${e}/api/settings`),fetch(`${e}/api/sidecar-settings`),fetch(`${e}/api/usage?range=30d`)]);i(await t.json()),o(await n.json()),u(await r.json()),f(await a.json());try{m(s.ok?await s.json():null)}catch{m(null)}nt(!1);try{let t=await fetch(`${e}/api/v2`);if(t.ok){let e=await t.json();e.multiAgentMode===`v1`||e.multiAgentMode===`v2`?ee(e.multiAgentMode):ee(`default`)}}catch{}try{let t=await fetch(`${e}/api/injection-model`);if(t.ok){let e=await t.json();N(e.model??``),oe(e.effort??``),I(e.efforts??[]),le(e.available??[])}}catch{}try{let t=await fetch(`${e}/api/effort-caps`);if(t.ok){let e=await t.json();pe(e.effortCap??``),he(e.subagentEffortCap??``)}}catch{}}catch{nt(!0)}};t();let n=setInterval(t,5e3);return()=>clearInterval(n)},[e]),(0,_.useEffect)(()=>{let t=async()=>{try{let t=await fetch(`${e}/api/diagnostics/project-config`);Ce((t.ok?await t.json():null)?.grouped??[])}catch{Ce([])}};t();let n=setInterval(()=>void t(),3e4);return()=>clearInterval(n)},[e]);let rt=(0,_.useCallback)(async()=>{y(!0);try{c(await(await fetch(`${e}/api/models`)).json())}catch{}finally{y(!1)}},[e]);(0,_.useEffect)(()=>{if(tt)return;let e=window.setTimeout(()=>{rt()},0);return()=>window.clearTimeout(e)},[tt,rt]),(0,_.useEffect)(()=>{if(!Ze?.id||!Ze.restart)return;let t=!1,n=Ze.latestVersion,r=async()=>{try{let n=await fetch(`${e}/api/update/status?jobId=${encodeURIComponent(Ze.id)}`);if(n.ok){let e=await n.json();if(!t&&e.job&&(Qe(e.job),e.job.status===`failed`)){et(!1);return}}}catch{t||et(!0)}if(n)try{let r=await fetch(`${e}/healthz`,{cache:`no-store`});if(!r.ok)throw Error(`health failed`);let i=await r.json();!t&&i.version===n&&(et(!1),window.location.reload())}catch{t||et(!0)}};r();let i=setInterval(r,1500);return()=>{t=!0,clearInterval(i)}},[e,Ze?.id,Ze?.latestVersion,Ze?.restart]);let it=(0,_.useMemo)(()=>{let e={};for(let t of s)(e[t.provider]??=[]).push(t);return Object.entries(e).sort(([e],[t])=>e.localeCompare(t))},[s]);if(tt)return(0,S.jsx)(Pe,{style:{marginTop:40},icon:(0,S.jsx)(j,{}),title:(0,S.jsx)(`span`,{style:{color:`var(--red)`},children:n(`dash.cannotConnect`)}),children:(0,S.jsx)(De,{k:`dash.runStart`,cmd:`ocx start`})});let at=r?.status===`ok`,ot=async t=>{if(!d||h)return;let n=(e,t)=>{let n={...e};return t?.model!==void 0&&(n.model=t.model),t?.backend===null?delete n.backend:t?.backend!==void 0&&(n.backend=t.backend),n},r={webSearch:n(d.webSearch,t.webSearch),vision:n(d.vision,t.vision)};g(!0),f(r);try{let n=await fetch(`${e}/api/sidecar-settings`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)});if(!n.ok)throw Error(`save failed`);let r=await n.json();f({webSearch:r.webSearch,vision:r.vision})}catch{f(d)}finally{g(!1)}},st=async t=>{if(!(D||E===t)){te(!0);try{(await fetch(`${e}/api/v2`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({multiAgentMode:t})})).ok&&ee(t)}catch{}finally{te(!1)}}},ct=async()=>{if(!l||x)return;let t=!l.codexAutoStart;C(!0),u({...l,codexAutoStart:t});try{let n=await fetch(`${e}/api/settings`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({codexAutoStart:t})});if(!n.ok)throw Error(`save failed`);let r=await n.json();u(e=>e&&{...e,codexAutoStart:r.codexAutoStart})}catch{u(e=>e&&{...e,codexAutoStart:!t}),nt(!0)}finally{C(!1)}},lt=async()=>{if(!w){T(!0),ye(null),xe(null);try{let t=await fetch(`${e}/api/sync`,{method:`POST`}),n=await t.json();if(!t.ok)throw Error(`error`in n&&n.error?n.error:`sync failed`);ye(n);let r=n.projectConfigGrouped;r&&Ce(r)}catch(e){xe(e instanceof Error?e.message:String(e))}finally{T(!1)}}},ut=async(t,n=!1)=>{n&&(Le.current=0),Re.current!==null&&(window.clearTimeout(Re.current),Re.current=null);let r=++Ke.current;Ie(!0),Xe(null),Je(null);try{let n=await fetch(`${e}/api/update/check?tag=${t}`),i=await n.json();if(!n.ok)throw Error(`error`in i&&i.error?i.error:`update check failed`);if(r!==Ke.current)return;let a=i;if(Je(a),a.reason===`latest_unavailable`&&Le.current<He){let e=++Le.current;Re.current=window.setTimeout(()=>{r===Ke.current&&(Re.current=null,ut(t))},Ue*e);return}a.reason!==`latest_unavailable`&&(Le.current=0),Ie(!1)}catch(e){if(r!==Ke.current)return;Xe(e instanceof Error?e.message:String(e)),Ie(!1)}},dt=()=>{Ke.current+=1,Re.current!==null&&(window.clearTimeout(Re.current),Re.current=null),Ie(!1),Ee(!1)},ft=()=>{let e=We(r?.version);ke(e),Me(!0),Ee(!0),ut(e,!0)},pt=e=>{ke(e),ut(e,!0)},mt=async()=>{if(qe?.canUpdate){Xe(null);try{let t=await fetch(`${e}/api/update/run`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({tag:Oe,restart:je})}),n=await t.json();if(!t.ok||!n.job)throw Error(n.error??`update failed to start`);Qe(n.job),et(!1),dt()}catch(e){Xe(e instanceof Error?e.message:String(e))}}},ht=e=>{switch(e){case`running`:return n(`dash.updateStatus.running`);case`restarting`:return n(`dash.updateStatus.restarting`);case`succeeded`:return n(`dash.updateStatus.succeeded`);case`failed`:return n(`dash.updateStatus.failed`)}};return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(`div`,{className:`page-head`,children:(0,S.jsx)(`h2`,{children:n(`nav.dashboard`)})}),(0,S.jsx)(`p`,{className:`page-sub`,children:n(`dash.subtitle`)}),(0,S.jsxs)(`div`,{className:`stat-row`,children:[(0,S.jsxs)(`div`,{className:`stat`,children:[(0,S.jsxs)(`div`,{className:`label`,style:{display:`flex`,alignItems:`center`,gap:6},children:[n(`dash.multiAgent`),(0,S.jsx)(`button`,{type:`button`,className:`btn btn-ghost btn-sm`,style:{width:24,height:24,minWidth:24,flex:`0 0 24px`,padding:0,borderRadius:999,color:`var(--muted)`},onClick:()=>O(!0),"aria-label":n(`dash.multiAgent`),"aria-haspopup":`dialog`,children:(0,S.jsx)(M,{width:14,height:14,"aria-hidden":`true`})})]}),(0,S.jsx)(`div`,{className:`value`,style:{display:`flex`,alignItems:`center`,justifyContent:`center`},children:(0,S.jsx)(`div`,{role:`radiogroup`,"aria-label":n(`dash.multiAgent`),style:{display:`inline-flex`,borderRadius:999,background:`var(--surface-soft, var(--raised))`,padding:3,gap:2},children:[`v1`,`default`,`v2`].map(e=>(0,S.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":E===e,className:`btn btn-sm${E===e?` btn-primary`:` btn-ghost`}`,style:{borderRadius:999,minWidth:36,fontSize:11,padding:`5px 10px`,border:`none`,background:E===e?void 0:`transparent`,color:E===e?void 0:`var(--muted)`},disabled:D,onClick:()=>void st(e),children:e==="default"?`base`:e},e))})})]}),(0,S.jsxs)(`div`,{className:`stat`,children:[(0,S.jsx)(`div`,{className:`label`,children:n(`dash.status`)}),(0,S.jsxs)(`div`,{className:`value`,style:{display:`flex`,alignItems:`center`,gap:9,color:at?`var(--green)`:`var(--red)`},children:[(0,S.jsx)(`span`,{className:`dot ${at?`dot-green`:`dot-red`}`}),n(at?`dash.online`:`dash.offline`)]})]}),(0,S.jsxs)(`div`,{className:`stat`,children:[(0,S.jsx)(`div`,{className:`label`,children:n(`dash.version`)}),(0,S.jsx)(`div`,{className:`value mono`,children:r?.version??`—`})]}),(0,S.jsxs)(`div`,{className:`stat`,children:[(0,S.jsx)(`div`,{className:`label`,children:n(`dash.uptime`)}),(0,S.jsx)(`div`,{className:`value mono`,children:r?b(r.uptime,t):`—`})]}),(0,S.jsxs)(`div`,{className:`stat`,children:[(0,S.jsx)(`div`,{className:`label`,children:n(`dash.providers`)}),(0,S.jsx)(`div`,{className:`value`,children:a.length})]}),(0,S.jsxs)(`div`,{className:`stat`,children:[(0,S.jsx)(`div`,{className:`label`,children:n(`dash.tokens30d`)}),(0,S.jsx)(`div`,{className:`value mono`,children:p&&p.summary.requests>0?Ae(p.summary.totalTokens,t):`—`}),p&&p.summary.requests>0&&(0,S.jsx)(`div`,{className:`muted`,style:{fontSize:12,marginTop:2},children:n(`dash.coverage`).replace(`{pct}`,`${Math.round(p.summary.coverageRatio*100)}%`)})]})]}),Se.length>0&&(0,S.jsxs)(`div`,{className:`notice notice-err maintenance-notice`,style:{marginBottom:24},role:`alert`,children:[(0,S.jsx)(j,{}),(0,S.jsxs)(`div`,{children:[(0,S.jsx)(`div`,{style:{fontWeight:650},children:n(`dash.projectConfigTitle`)}),(0,S.jsx)(`div`,{className:`muted`,style:{fontSize:13,marginTop:4},children:n(`dash.projectConfigHint`)}),(0,S.jsx)(`ul`,{style:{margin:`10px 0 0`,paddingLeft:18,fontSize:13},children:Se.map(e=>(0,S.jsxs)(`li`,{style:{marginBottom:8},children:[(0,S.jsx)(`code`,{children:e.path}),` — `,e.issues.join(`, `),(0,S.jsx)(`div`,{className:`muted`,style:{marginTop:2},children:e.bypass})]},e.path))})]})]}),E!==`v1`&&(0,S.jsx)(`div`,{className:`panel`,style:{marginBottom:24},children:(0,S.jsxs)(`div`,{className:`injection-head`,children:[(0,S.jsxs)(`span`,{className:`injection-label`,style:{display:`inline-flex`,alignItems:`center`,gap:6},children:[n(`dash.effortCapLabel`),(0,S.jsxs)(`span`,{style:{position:`relative`,display:`inline-flex`},children:[(0,S.jsx)(`button`,{type:`button`,className:`btn btn-ghost btn-sm`,style:{width:22,height:22,minWidth:22,padding:0,borderRadius:999,color:`var(--muted)`},onClick:()=>ie(e=>!e),"aria-label":n(`dash.effortCapLabel`),"aria-expanded":re,"aria-haspopup":`dialog`,children:(0,S.jsx)(M,{width:13,height:13,"aria-hidden":`true`})}),re&&(0,S.jsxs)(`div`,{role:`dialog`,className:`help-popup`,style:{position:`absolute`,top:`calc(100% + 8px)`,left:0,width:`min(360px, calc(100vw - 48px))`,padding:`12px 16px`,border:`1px solid var(--border)`,borderRadius:8,background:`var(--bg)`,boxShadow:`0 8px 24px rgba(0, 0, 0, 0.14)`,color:`var(--text)`,fontSize:13,fontWeight:400,lineHeight:1.5,zIndex:10},children:[(0,S.jsx)(`button`,{type:`button`,className:`btn btn-ghost btn-icon`,style:{position:`absolute`,top:4,right:4,width:24,height:24,minWidth:24},onClick:()=>ie(!1),"aria-label":`Close`,children:(0,S.jsx)(k,{width:14,height:14})}),(0,S.jsx)(`div`,{style:{paddingRight:16},children:n(`dash.effortCapHelp`)})]})]})]}),(0,S.jsx)(Ne,{value:fe,options:[{value:``,label:n(`dash.effortCapNone`)},...Ve.map(e=>({value:e,label:e}))],onChange:async t=>{if(!ge){_e(!0);try{let n=await fetch(`${e}/api/effort-caps`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({effortCap:t||null})});if(n.ok){let e=await n.json();pe(e.effortCap??``),he(e.subagentEffortCap??``)}}catch{}finally{_e(!1)}}},disabled:ge,label:n(`dash.effortCapLabel`)}),(0,S.jsx)(Ne,{value:me,options:[{value:``,label:n(`dash.effortCapNone`)},...Ve.map(e=>({value:e,label:e}))],onChange:async t=>{if(!ge){_e(!0);try{let n=await fetch(`${e}/api/effort-caps`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({subagentEffortCap:t||null})});if(n.ok){let e=await n.json();pe(e.effortCap??``),he(e.subagentEffortCap??``)}}catch{}finally{_e(!1)}}},disabled:ge,label:n(`dash.subagentEffortCapLabel`)})]})}),(0,S.jsxs)(`div`,{className:`panel`,style:{marginBottom:24},children:[(0,S.jsxs)(`div`,{className:`injection-head`,children:[(0,S.jsx)(`span`,{className:`injection-label`,children:n(`dash.injectionLabel`)}),(0,S.jsx)(Ne,{value:ae,options:[{value:``,label:n(`dash.injectionNone`)},...ce.map(e=>({value:e.namespaced,label:`${e.provider} / ${e.model}`}))],onChange:async t=>{if(!ue){de(!0);try{let n=await fetch(`${e}/api/injection-model`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({model:t||null,effort:P||null})});if(n.ok){let e=await n.json();N(e.model??``),oe(e.effort??``)}}catch{}finally{de(!1)}}},disabled:ue,label:n(`dash.injectionLabel`)}),ae&&F.length>0&&(0,S.jsx)(Ne,{value:P,options:[{value:``,label:n(`dash.injectionEffortNone`)},...F.map(e=>({value:e,label:e}))],onChange:async t=>{if(!ue){de(!0);try{let n=await fetch(`${e}/api/injection-model`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({model:ae||null,effort:t||null})});if(n.ok){let e=await n.json();N(e.model??``),oe(e.effort??``)}}catch{}finally{de(!1)}}},disabled:ue,label:n(`dash.injectionEffortLabel`)}),ae&&(0,S.jsx)(`span`,{className:`badge badge-green`,style:{fontSize:10},children:n(`dash.injectionActive`)})]}),(0,S.jsx)(`div`,{className:`muted`,style:{fontSize:13,marginTop:6},children:n(`dash.injectionHint`)})]}),(0,S.jsxs)(`div`,{className:`panel maintenance-panel`,style:{marginBottom:24},children:[(0,S.jsxs)(`div`,{className:`spread maintenance-head`,children:[(0,S.jsxs)(`div`,{children:[(0,S.jsx)(`div`,{style:{fontWeight:650},children:n(`dash.maintenance`)}),(0,S.jsx)(`div`,{className:`muted`,style:{fontSize:13,marginTop:3},children:n(`dash.maintenanceHint`)})]}),(0,S.jsxs)(`div`,{className:`maintenance-actions`,children:[(0,S.jsxs)(`button`,{type:`button`,className:`btn btn-ghost`,onClick:lt,disabled:w,children:[(0,S.jsx)(A,{}),` `,n(w?`dash.syncing`:`dash.syncModels`)]}),(0,S.jsxs)(`button`,{type:`button`,className:`btn btn-primary`,onClick:ft,disabled:Fe,children:[(0,S.jsx)(se,{}),` `,n(`dash.checkUpdate`)]})]})]}),ve&&(0,S.jsxs)(`div`,{className:`notice notice-ok maintenance-notice`,role:`status`,children:[(0,S.jsx)(A,{}),(0,S.jsxs)(`span`,{children:[n(`dash.syncOk`,{count:ve.added}),ve.warning?` ${ve.warning}`:``,ve.staleAppServerHint?` ${n(`dash.syncStaleHint`)}`:``]})]}),be&&(0,S.jsxs)(`div`,{className:`notice notice-err maintenance-notice`,role:`status`,children:[(0,S.jsx)(j,{}),(0,S.jsx)(`span`,{children:n(`dash.syncFailed`,{error:be})})]}),Ze&&(0,S.jsxs)(`div`,{className:`notice ${Ze.status===`failed`?`notice-err`:`notice-ok`} maintenance-notice`,role:`status`,children:[Ze.status===`failed`?(0,S.jsx)(j,{}):(0,S.jsx)(A,{}),(0,S.jsxs)(`span`,{children:[ht(Ze.status),Ze.latestVersion?` ${Ze.currentVersion} -> ${Ze.latestVersion}.`:``,$e?` ${n(`dash.updateReconnecting`)}`:``,Ze.error?` ${Ze.error}`:``]})]})]}),(0,S.jsx)(`div`,{className:`panel`,style:{marginBottom:24},children:(0,S.jsxs)(`div`,{className:`spread`,children:[(0,S.jsxs)(`div`,{style:{flex:1,minWidth:0},children:[(0,S.jsx)(`div`,{style:{fontWeight:650},children:n(`dash.codexAutoStart`)}),(0,S.jsx)(`div`,{className:`muted setting-hint`,children:n(`dash.codexAutoStartHint`)})]}),(0,S.jsx)(`button`,{className:`switch ${l?.codexAutoStart??!0?`on`:``}`,onClick:ct,disabled:!l||x,"aria-label":n(`dash.codexAutoStart`),"aria-pressed":l?.codexAutoStart??!0,children:(0,S.jsx)(`span`,{className:`knob`})})]})}),(0,S.jsx)(`div`,{className:`panel`,style:{marginBottom:12},children:(0,S.jsxs)(`div`,{className:`spread setting-row`,style:{alignItems:`flex-start`},children:[(0,S.jsxs)(`div`,{className:`setting-copy`,style:{flex:1},children:[(0,S.jsx)(`div`,{style:{fontWeight:650},children:n(`dash.webSearchSidecar`)}),(0,S.jsx)(`div`,{className:`muted setting-hint`,children:n(`dash.webSearchSidecarHint`)})]}),(0,S.jsxs)(`div`,{className:`setting-controls`,style:{display:`flex`,gap:8},children:[(0,S.jsx)(Ne,{value:d?.webSearch.backend??``,options:[{value:``,label:n(`dash.backendAuto`)},{value:`openai`,label:n(`dash.backendOpenAI`)},{value:`anthropic`,label:n(`dash.backendAnthropic`)}],onChange:e=>ot({webSearch:{backend:e===``?null:e}}),disabled:!d||h,label:n(`dash.sidecarBackend`)}),(0,S.jsx)(`input`,{className:`input mono`,value:d?.webSearch.model??``,list:`search-sidecar-models`,onChange:e=>f(t=>t&&{...t,webSearch:{...t.webSearch,model:e.target.value}}),onBlur:e=>ot({webSearch:{model:e.target.value}}),disabled:!d||h,"aria-label":n(`dash.sidecarModel`),style:{minWidth:210}}),(0,S.jsx)(`datalist`,{id:`search-sidecar-models`,children:ze.map(e=>(0,S.jsx)(`option`,{value:e,children:L(e)},e))})]})]})}),(0,S.jsx)(`div`,{className:`panel`,style:{marginBottom:24},children:(0,S.jsxs)(`div`,{className:`spread setting-row`,children:[(0,S.jsxs)(`div`,{className:`setting-copy`,style:{flex:1},children:[(0,S.jsx)(`div`,{style:{fontWeight:650},children:n(`dash.visionSidecar`)}),(0,S.jsx)(`div`,{className:`muted setting-hint`,children:n(`dash.visionSidecarHint`)})]}),(0,S.jsxs)(`div`,{className:`setting-controls`,style:{display:`flex`,gap:8},children:[(0,S.jsx)(Ne,{value:d?.vision.backend??``,options:[{value:``,label:n(`dash.backendAuto`)},{value:`openai`,label:n(`dash.backendOpenAI`)},{value:`anthropic`,label:n(`dash.backendAnthropic`)}],onChange:e=>ot({vision:{backend:e===``?null:e}}),disabled:!d||h,label:n(`dash.sidecarBackend`)}),(0,S.jsx)(`input`,{className:`input mono`,value:d?.vision.model??``,list:`vision-sidecar-models`,onChange:e=>f(t=>t&&{...t,vision:{...t.vision,model:e.target.value}}),onBlur:e=>ot({vision:{model:e.target.value}}),disabled:!d||h,"aria-label":n(`dash.sidecarModel`),style:{minWidth:210}}),(0,S.jsx)(`datalist`,{id:`vision-sidecar-models`,children:Be.map(e=>(0,S.jsx)(`option`,{value:e,children:L(e)},e))})]})]})}),(0,S.jsxs)(`div`,{className:`h-section`,children:[n(`dash.activeProviders`),` `,(0,S.jsx)(`span`,{className:`count`,children:a.length})]}),a.length===0?(0,S.jsx)(Pe,{title:(0,S.jsx)(De,{k:`dash.noProviders`,cmd:`ocx init`})}):(0,S.jsx)(`div`,{className:`tbl-wrap`,children:(0,S.jsxs)(`table`,{className:`tbl`,children:[(0,S.jsx)(`thead`,{children:(0,S.jsxs)(`tr`,{children:[(0,S.jsx)(`th`,{children:n(`dash.col.name`)}),(0,S.jsx)(`th`,{children:n(`dash.col.adapter`)}),(0,S.jsx)(`th`,{children:n(`dash.col.baseUrl`)}),(0,S.jsx)(`th`,{children:n(`dash.col.model`)})]})}),(0,S.jsx)(`tbody`,{children:a.map(e=>(0,S.jsxs)(`tr`,{children:[(0,S.jsx)(`td`,{style:{fontWeight:600},children:e.name}),(0,S.jsx)(`td`,{children:(0,S.jsx)(`span`,{className:`chip`,children:e.adapter})}),(0,S.jsx)(`td`,{className:`muted mono`,style:{fontSize:12},children:e.baseUrl}),(0,S.jsx)(`td`,{className:`muted`,children:e.defaultModel??`—`})]},e.name))})]})}),(0,S.jsxs)(`div`,{className:`h-section`,children:[n(`dash.availableModels`),` `,(0,S.jsx)(`span`,{className:`count`,children:s.length}),v&&(0,S.jsx)(`span`,{className:`spin`,style:{marginLeft:4}})]}),s.length===0&&!v?(0,S.jsx)(Pe,{title:n(`dash.noModels`)}):(0,S.jsx)(`div`,{className:`stack`,style:{gap:16},children:it.map(([e,t])=>(0,S.jsxs)(`div`,{className:`model-group`,children:[(0,S.jsxs)(`div`,{className:`model-group-head`,children:[e,(0,S.jsx)(`span`,{className:`count`,children:t.length})]}),(0,S.jsx)(`div`,{className:`model-grid`,children:t.map(e=>(0,S.jsx)(`div`,{className:`model-card`,children:(0,S.jsx)(`div`,{className:`id`,children:e.id})},`${e.provider}/${e.id}`))})]},e))}),Te&&(0,S.jsx)(`div`,{className:`modal-overlay`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`update-title`,children:(0,S.jsxs)(`div`,{className:`modal-card`,children:[(0,S.jsxs)(`div`,{className:`modal-head`,children:[(0,S.jsx)(`h3`,{id:`update-title`,children:n(`dash.updateTitle`)}),(0,S.jsx)(`button`,{type:`button`,className:`btn btn-ghost btn-icon`,onClick:dt,"aria-label":n(`common.cancel`),children:(0,S.jsx)(k,{})})]}),(0,S.jsx)(`div`,{className:`modal-desc`,children:n(`dash.updateDesc`)}),(0,S.jsxs)(`div`,{className:`update-row`,children:[(0,S.jsx)(`label`,{className:`field-label`,htmlFor:`update-channel`,children:n(`dash.updateChannel`)}),(0,S.jsx)(Ne,{value:Oe,options:[{value:`latest`,label:`latest`},{value:`preview`,label:`preview`}],onChange:e=>pt(e),disabled:Fe,label:n(`dash.updateChannel`)})]}),Fe&&(0,S.jsx)(Pe,{className:`update-empty`,icon:(0,S.jsx)(`span`,{className:`spin`}),title:n(`dash.updateChecking`)}),Ye&&(0,S.jsxs)(`div`,{className:`notice notice-err`,role:`status`,children:[(0,S.jsx)(j,{}),(0,S.jsx)(`span`,{children:Ye})]}),qe&&!Fe&&(0,S.jsxs)(`div`,{className:`update-box`,children:[(0,S.jsxs)(`div`,{className:`spread`,children:[(0,S.jsxs)(`div`,{children:[(0,S.jsx)(`div`,{className:`muted`,style:{fontSize:12},children:n(`dash.updateInstalled`)}),(0,S.jsx)(`div`,{className:`mono`,children:qe.currentVersion})]}),(0,S.jsxs)(`div`,{children:[(0,S.jsx)(`div`,{className:`muted`,style:{fontSize:12},children:n(`dash.updateLatest`)}),(0,S.jsx)(`div`,{className:`mono`,children:qe.latestVersion??`—`})]}),(0,S.jsx)(`span`,{className:`badge ${qe.updateAvailable?`badge-green`:`badge-muted`}`,children:qe.updateAvailable?n(`dash.updateAvailable`):n(`dash.updateCurrent`)})]}),(0,S.jsxs)(`div`,{className:`muted update-command`,children:[n(`dash.updateCommand`),` `,(0,S.jsx)(`code`,{className:`chip`,children:qe.command})]}),qe.reason===`source_checkout`&&(0,S.jsxs)(`div`,{className:`notice-warn`,role:`status`,children:[(0,S.jsx)(j,{}),` `,n(`dash.updateSource`)]}),qe.reason===`latest_unavailable`&&(0,S.jsxs)(`div`,{className:`notice-warn`,role:`status`,children:[(0,S.jsx)(j,{}),` `,n(`dash.updateUnavailable`),(0,S.jsxs)(`button`,{type:`button`,className:`btn btn-ghost btn-sm`,disabled:Fe,onClick:()=>{ut(Oe,!0)},style:{marginLeft:12},children:[(0,S.jsx)(A,{}),` `,n(`dash.updateRetry`)]})]}),!qe.canUpdate&&qe.reason!==`latest_unavailable`&&qe.reason!==`source_checkout`&&(0,S.jsxs)(`div`,{className:`update-recheck`,children:[(0,S.jsx)(`span`,{className:`muted update-recheck-reason`,children:n(`dash.updateCannotAuto`,{reason:Ge(qe.reason,n)})}),(0,S.jsxs)(`button`,{type:`button`,className:`btn btn-ghost btn-sm`,disabled:Fe,onClick:()=>{ut(Oe,!0)},children:[(0,S.jsx)(A,{}),` `,n(Fe?`dash.updateChecking`:`dash.updateRecheck`)]})]}),qe.canUpdate&&(0,S.jsxs)(`div`,{className:`spread update-restart`,children:[(0,S.jsxs)(`div`,{children:[(0,S.jsx)(`div`,{style:{fontWeight:600},children:n(`dash.updateRestart`)}),(0,S.jsx)(`div`,{className:`muted`,style:{fontSize:12},children:n(`dash.updateRestartHint`)})]}),(0,S.jsx)(`button`,{type:`button`,className:`switch ${je?`on`:``}`,onClick:()=>Me(e=>!e),"aria-label":n(`dash.updateRestart`),"aria-pressed":je,children:(0,S.jsx)(`span`,{className:`knob`})})]})]}),(0,S.jsxs)(`div`,{className:`modal-actions`,children:[(0,S.jsx)(`button`,{type:`button`,className:`btn btn-ghost`,onClick:dt,children:n(`common.cancel`)}),(0,S.jsx)(`button`,{type:`button`,className:`btn btn-primary`,onClick:mt,disabled:!qe?.canUpdate||Fe,children:n(`dash.runUpdate`)})]})]})}),ne&&(0,S.jsx)(`div`,{className:`modal-overlay`,role:`dialog`,"aria-modal":`true`,"aria-label":n(`dash.multiAgent`),onClick:()=>O(!1),onKeyDown:e=>{e.key===`Escape`&&O(!1)},children:(0,S.jsxs)(`div`,{className:`modal-card`,onClick:e=>e.stopPropagation(),children:[(0,S.jsxs)(`div`,{className:`modal-head`,children:[(0,S.jsx)(`h3`,{children:n(`dash.multiAgent`)}),(0,S.jsx)(`button`,{type:`button`,className:`btn btn-ghost btn-icon`,onClick:()=>O(!1),"aria-label":`Close`,children:(0,S.jsx)(k,{})})]}),(0,S.jsx)(`div`,{className:`modal-desc`,style:{whiteSpace:`pre-line`,lineHeight:1.6},children:n(`models.v2Help`)}),(0,S.jsx)(`div`,{style:{marginTop:12},children:(0,S.jsx)(`a`,{href:`https://lidge-jun.github.io/opencodex/guides/sub-agent-surface/`,target:`_blank`,rel:`noreferrer`,style:{fontSize:13,color:`var(--accent)`},children:n(`models.v2DocsLink`)})}),(0,S.jsx)(`div`,{className:`modal-actions`,children:(0,S.jsx)(`button`,{type:`button`,className:`btn btn-primary`,onClick:()=>O(!1),children:`OK`})})]})})]})}function qe(e){let t={adapter:e.adapter.trim(),baseUrl:e.baseUrl.trim()};return(e.authMode===`key`||e.authMode===`forward`)&&(t.authMode=e.authMode),e.authMode===`key`&&e.apiKey.trim()&&(t.apiKey=e.apiKey.trim()),e.defaultModel.trim()&&(t.defaultModel=e.defaultModel.trim()),t}var Je=[{id:`custom`,label:`Custom provider`,adapter:`openai-chat`,baseUrl:``,auth:`key`}];function Ye({apiBase:e,existingNames:t,onClose:n,onAdded:r}){let[i,a]=(0,_.useState)(``),[o,s]=(0,_.useState)(null),[c,l]=(0,_.useState)(null),[u,d]=(0,_.useState)(!1),[f,p]=(0,_.useState)(``),[m,h]=(0,_.useState)([]),[g,v]=(0,_.useState)(!1),[y,b]=(0,_.useState)(``),[x,C]=(0,_.useState)(Je),w=(0,_.useRef)(null),T=(0,_.useRef)(!0);(0,_.useEffect)(()=>{w.current?.focus()},[]),(0,_.useEffect)(()=>()=>{T.current=!1},[]),(0,_.useEffect)(()=>{let e=e=>{e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n]),(0,_.useEffect)(()=>{fetch(`${e}/api/oauth/providers`).then(e=>e.json()).then(e=>h(e.providers??[])).catch(()=>{})},[e]),(0,_.useEffect)(()=>{fetch(`${e}/api/provider-presets`).then(e=>e.json()).then(e=>{Array.isArray(e.providers)&&e.providers.length>0&&C(e.providers)}).catch(()=>{})},[e]);let E=(0,_.useMemo)(()=>{let e=i.trim().toLowerCase();return e?x.filter(t=>t.label.toLowerCase().includes(e)||t.id.toLowerCase().includes(e)):x},[i,x]),ee=e=>{s(e),l({name:e.id===`custom`?``:e.id,adapter:e.adapter,baseUrl:e.baseUrl,authMode:e.auth,apiKey:``,defaultModel:e.defaultModel??``}),p(``),b(``)},D=()=>{s(null),l(null),p(``),b(``)},te=async()=>{if(!c)return;let t=c.name.trim();if(!t){p(`Provider name is required`);return}if(!c.baseUrl.trim()){p(`Base URL is required`);return}let n=qe(c);d(!0),p(``);try{let i=await fetch(`${e}/api/providers`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:t,provider:n})});if(!i.ok){p((await i.json().catch(()=>({}))).error||`Failed (${i.status})`);return}r(t)}catch{p(`Network error — is the proxy running?`)}finally{d(!1)}},ne=async t=>{v(!0),b(``);try{let n=await fetch(`${e}/api/oauth/login`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({provider:t})}),i=await n.json();if(!T.current)return;if(!n.ok){b(i.error===`unknown oauth provider`?`OAuth login for this provider arrives in the next update — use an API key for now.`:i.error||`Login failed to start`);return}i.url?(window.open(i.url,`_blank`),b(`Waiting for browser login…`)):b(i.instructions||`Logging in…`);for(let n=0;n<100;n++){if(await new Promise(e=>setTimeout(e,2e3)),!T.current)return;let n=await fetch(`${e}/api/oauth/status?provider=${t}`).then(e=>e.json()).catch(()=>null);if(!T.current)return;if(n?.loggedIn){r(t);return}if(n?.error){b(`Login error: ${n.error}`);return}}b(`Login timed out — try again.`)}catch{T.current&&b(`Network error — is the proxy running?`)}finally{T.current&&v(!1)}},O=c?t.includes(c.name.trim())&&c.name.trim()!==``:!1,re=o?.id===`custom`,A=c?.authMode===`local`;return(0,S.jsx)(`div`,{role:`dialog`,"aria-modal":`true`,"aria-label":`Add provider`,className:`modal-overlay`,onClick:n,children:(0,S.jsxs)(`div`,{className:`modal-card`,onClick:e=>e.stopPropagation(),children:[(0,S.jsxs)(`div`,{className:`modal-head`,children:[(0,S.jsx)(`h3`,{children:o?`Add: ${o.label}`:`Add provider`}),(0,S.jsx)(`button`,{className:`btn btn-ghost btn-icon`,"aria-label":`Close`,onClick:n,children:(0,S.jsx)(k,{})})]}),o?c&&(o.auth===`oauth`&&c.authMode===`oauth`?(0,S.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:14},children:[(0,S.jsx)(`div`,{className:`muted`,style:{fontSize:13},children:o.note??`Log in with your account — no API key needed.`}),m.includes(o.oauthProvider??``)?(0,S.jsxs)(`button`,{className:`btn btn-primary`,onClick:()=>ne(o.oauthProvider),disabled:g,style:{width:`100%`,padding:`12px 16px`,fontSize:14},children:[(0,S.jsx)(le,{}),g?`Waiting for browser…`:`Log in with ${o.label}`]}):(0,S.jsxs)(`div`,{style:{fontSize:13,color:`var(--amber)`,background:`var(--amber-soft)`,border:`1px solid var(--amber)`,borderRadius:`var(--radius-sm)`,padding:`10px 12px`},children:[`OAuth login for `,o.label,` arrives in the next update. Use an API key for now.`]}),y&&(0,S.jsx)(`div`,{style:{fontSize:12,color:/error|update|timed/.test(y)?`var(--amber)`:`var(--accent-hover)`},children:y}),(0,S.jsxs)(`div`,{style:{display:`flex`,gap:8,alignItems:`center`,marginTop:2},children:[(0,S.jsx)(`button`,{className:`link-btn`,onClick:()=>{l({...c,authMode:`key`}),b(``)},children:`Use an API key instead`}),(0,S.jsx)(`div`,{style:{flex:1}}),(0,S.jsx)(`button`,{className:`btn btn-ghost`,onClick:D,children:`Back`})]})]}):(0,S.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:10},children:[!re&&!A&&o.note&&(0,S.jsxs)(`details`,{className:`setup-guide`,children:[(0,S.jsx)(`summary`,{children:`Setup guide`}),(0,S.jsxs)(`ol`,{style:{margin:`8px 0 0`,paddingLeft:18,fontSize:12,color:`var(--muted)`,lineHeight:1.7},children:[(0,S.jsxs)(`li`,{children:[`Go to `,(0,S.jsxs)(`a`,{href:o.dashboardUrl,target:`_blank`,rel:`noreferrer`,children:[o.label,` dashboard`]}),` and copy your API key`]}),(0,S.jsx)(`li`,{children:`Paste it in the API key field below`}),(0,S.jsx)(`li`,{children:`Click Add provider — models are auto-discovered`})]}),o.note&&(0,S.jsx)(`div`,{style:{fontSize:12,color:`var(--muted)`,marginTop:6,fontStyle:`italic`},children:o.note})]}),(0,S.jsx)(Xe,{label:`Provider name`,children:(0,S.jsx)(`input`,{className:`input`,value:c.name,onChange:e=>l({...c,name:e.target.value}),placeholder:`e.g. openrouter`})}),O&&(0,S.jsxs)(`div`,{style:{fontSize:12,color:`var(--amber)`},children:[`Provider "`,c.name.trim(),`" exists and will be overwritten.`]}),(0,S.jsx)(Xe,{label:`Adapter`,children:(0,S.jsx)(`select`,{className:`input`,value:c.adapter,onChange:e=>l({...c,adapter:e.target.value}),children:[`openai-responses`,`openai-chat`,`anthropic`,`google`,`azure-openai`,`cursor`].map(e=>(0,S.jsx)(`option`,{value:e,children:e},e))})}),(0,S.jsx)(Xe,{label:`Base URL`,children:(0,S.jsx)(`input`,{className:`input`,value:c.baseUrl,onChange:e=>l({...c,baseUrl:e.target.value}),placeholder:`https://...`})}),c.authMode===`forward`?(0,S.jsxs)(`div`,{style:{fontSize:12,color:`var(--green)`,background:`var(--green-soft)`,border:`1px solid var(--green)`,borderRadius:`var(--radius-sm)`,padding:`8px 10px`},children:[`No key needed — the proxy forwards your `,(0,S.jsx)(`code`,{className:`chip`,children:`codex login`}),` credentials to this provider.`]}):c.authMode===`local`?(0,S.jsx)(`div`,{style:{fontSize:12,color:`var(--amber)`,background:`var(--amber-soft)`,border:`1px solid var(--amber)`,borderRadius:`var(--radius-sm)`,padding:`8px 10px`,lineHeight:1.55},children:`No API key is stored. This adds Cursor's static public model catalog for Codex, but live Cursor transport and native file/shell execution remain disabled until audited.`}):(0,S.jsxs)(S.Fragment,{children:[o.dashboardUrl&&(0,S.jsxs)(`a`,{href:o.dashboardUrl,target:`_blank`,rel:`noreferrer`,style:{fontSize:12,display:`inline-flex`,alignItems:`center`,gap:5},children:[(0,S.jsx)(ce,{style:{width:14,height:14}}),`Get your `,o.label,` API key`,(0,S.jsx)(se,{style:{width:13,height:13}})]}),(0,S.jsx)(Xe,{label:`API key`,children:(0,S.jsx)(`input`,{className:`input`,type:`password`,value:c.apiKey,onChange:e=>l({...c,apiKey:e.target.value}),placeholder:`sk-… (or $ENV_VAR)`})})]}),(0,S.jsx)(Xe,{label:`Default model (optional)`,children:(0,S.jsx)(`input`,{className:`input`,value:c.defaultModel,onChange:e=>l({...c,defaultModel:e.target.value}),placeholder:`e.g. gpt-5.5`})}),f&&(0,S.jsx)(`div`,{role:`alert`,style:{fontSize:13,color:`var(--red)`},children:f}),(0,S.jsxs)(`div`,{style:{display:`flex`,gap:8,marginTop:4,alignItems:`center`},children:[(0,S.jsx)(`button`,{className:`btn btn-primary`,onClick:te,disabled:u,children:u?`Adding…`:`Add provider`}),o.auth===`oauth`&&(0,S.jsx)(`button`,{className:`link-btn`,onClick:()=>{l({...c,authMode:`oauth`}),p(``)},children:`← Use OAuth login`}),(0,S.jsx)(`div`,{style:{flex:1}}),(0,S.jsx)(`button`,{className:`btn btn-ghost`,onClick:D,children:`Back`})]})]})):(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(`input`,{ref:w,className:`input`,value:i,onChange:e=>a(e.target.value),placeholder:`Search providers…`}),(0,S.jsxs)(`div`,{style:{marginTop:12,maxHeight:360,overflowY:`auto`,display:`flex`,flexDirection:`column`,gap:6},children:[E.map(e=>(0,S.jsxs)(`button`,{className:`list-row`,onClick:()=>ee(e),children:[(0,S.jsxs)(`div`,{children:[(0,S.jsx)(`div`,{className:`title`,children:e.label}),(0,S.jsxs)(`div`,{className:`sub`,children:[(0,S.jsx)(`code`,{className:`chip`,children:e.adapter}),e.note?` · ${e.note}`:``]})]}),e.auth===`oauth`?(0,S.jsx)(`span`,{className:`badge badge-accent`,children:`OAuth`}):e.auth===`forward`?(0,S.jsx)(`span`,{className:`badge badge-green`,children:`Codex login`}):e.auth===`local`?(0,S.jsx)(`span`,{className:`badge badge-amber`,children:`Local`}):(0,S.jsx)(`span`,{className:`badge badge-muted`,children:`API key`})]},e.id)),E.length===0&&(0,S.jsx)(`div`,{className:`muted`,style:{fontSize:13,padding:8},children:`No match.`})]})]})]})})}function Xe({label:e,children:t}){return(0,S.jsxs)(`label`,{style:{display:`block`},children:[(0,S.jsx)(`span`,{className:`field-label`,children:e}),t]})}function Ze(e){let t=e?.trim().toLowerCase();return t===`go`||t===`free`}function Qe(e,t){return!e||!Ze(t)?e:{...e.monthlyPercent===void 0?{}:{monthlyPercent:e.monthlyPercent},...e.monthlyResetAt===void 0?{}:{monthlyResetAt:e.monthlyResetAt},...e.resetCredits===void 0?{}:{resetCredits:e.resetCredits},updatedAt:e.updatedAt}}function $e({quota:e,plan:t,threshold:n,t:r,className:i}){let a=Qe(e,t);if(!a)return null;let o=[typeof a.fiveHourPercent==`number`?{label:r(`codexAuth.fiveHour`),percent:a.fiveHourPercent,resetAt:a.fiveHourResetAt}:null,typeof a.weeklyPercent==`number`?{label:r(`codexAuth.weekly`),percent:a.weeklyPercent,resetAt:a.weeklyResetAt}:null,typeof a.monthlyPercent==`number`?{label:r(`codexAuth.monthly`),percent:a.monthlyPercent,resetAt:a.monthlyResetAt}:null,...a.customWindows??[]].filter(e=>e!==null);return o.length===0?null:(0,S.jsx)(`div`,{className:`quota-compact${i?` ${i}`:``}`,children:o.map((e,t)=>(0,S.jsx)(et,{label:e.label,percent:e.percent,resetAt:e.resetAt,threshold:n,t:r},`${e.label}-${t}`))})}function et({label:e,percent:t,resetAt:n,threshold:r,t:i}){let a=r>0&&t>=r?`bar-amber`:`bar-green`,o=nt(n,i);return(0,S.jsxs)(`div`,{className:`quota-row`,children:[(0,S.jsx)(`span`,{className:`quota-label`,children:e}),(0,S.jsx)(`span`,{className:`quota-reset-label`,children:i(`codexAuth.resets`)}),(0,S.jsx)(`span`,{className:`quota-reset-day`,children:o.day}),(0,S.jsx)(`span`,{className:`quota-reset-time`,children:o.time}),(0,S.jsx)(`div`,{className:`bar`,children:(0,S.jsx)(`div`,{className:`bar-fill ${a}`,style:{width:`${tt(t)}%`}})}),(0,S.jsxs)(`span`,{className:`quota-val`,children:[Math.round(t),`%`]})]})}function tt(e){return Math.max(0,Math.min(100,Math.round(e)))}function nt(e,t){if(typeof e!=`number`||!Number.isFinite(e))return{day:``,time:``};let n=e<1e10?e*1e3:e,r=new Date(n),i=new Date,a=new Intl.DateTimeFormat(void 0,{hour:`2-digit`,minute:`2-digit`,hour12:!1}).format(r);return r.getFullYear()===i.getFullYear()&&r.getMonth()===i.getMonth()&&r.getDate()===i.getDate()?{day:t(`codexAuth.today`),time:a}:{day:new Intl.DateTimeFormat(void 0,{month:`numeric`,day:`numeric`}).format(r),time:a}}var rt={anthropic:`claude-color.svg`,"anthropic-apikey":`claude-color.svg`,"azure-openai":`openai.svg`,chatgpt:`openai.svg`,"cloudflare-ai-gateway":`cloudflare-ai-gateway-color.svg`,cursor:`cursor-color.svg`,deepseek:`deepseek-color.svg`,firepass:`firepass-color.svg`,fireworks:`fireworks-color.svg`,github:`github-copilot-color.svg`,"github-copilot":`copilot-color.svg`,"gitlab-duo":`gitlab-duo-color.svg`,google:`gemini-color.svg`,"google-antigravity":`antigravity-color.svg`,"google-vertex":`gemini-color.svg`,groq:`groq-color.svg`,huggingface:`huggingface-color.svg`,kimi:`kimi-color.svg`,"kimi-code":`kimi-color.svg`,kiro:`kiro-color.svg`,"lm-studio":`lm-studio-color.svg`,mistral:`mistral-color.svg`,moonshot:`moonshot-color.svg`,nvidia:`nvidia-color.svg`,ollama:`ollama-color.svg`,"ollama-cloud":`ollama-color.svg`,openai:`openai.svg`,"openai-apikey":`openai.svg`,"opencode-go":`opencode.svg`,"opencode-zen":`opencode.svg`,openrouter:`openrouter-color.svg`,qianfan:`qianfan-color.svg`,"qwen-portal":`qwen-portal-color.svg`,"vercel-ai-gateway":`vercel-ai-gateway-color.svg`,vllm:`vllm-color.svg`,xai:`grok-color.svg`,xiaomi:`xiaomi-color.svg`};function it(e){let t=rt[e.toLowerCase()];return t?`/provider-icons/${t}`:void 0}var at={xai:`xAI (Grok)`,anthropic:`Anthropic (Claude)`,kimi:`Kimi (Moonshot)`},ot=e=>at[e]??e;function st({apiBase:e}){let t=Te(),[n,r]=(0,_.useState)(null),[i,a]=(0,_.useState)(!1),[o,s]=(0,_.useState)(!1),[c,l]=(0,_.useState)(``),[u,d]=(0,_.useState)(``),[f,p]=(0,_.useState)(!1),[m,h]=(0,_.useState)([]),[g,v]=(0,_.useState)({}),[y,b]=(0,_.useState)({}),[x,C]=(0,_.useState)(null),[w,T]=(0,_.useState)(null),[E,ee]=(0,_.useState)({}),[D,te]=(0,_.useState)({}),[ne,O]=(0,_.useState)({}),[k,A]=(0,_.useState)(null),[j,M]=(0,_.useState)(``),ae=(0,_.useRef)(!0),N=(e,t)=>{d(e),p(t)};(0,_.useEffect)(()=>(ae.current=!0,()=>{ae.current=!1}),[]);let P=(0,_.useCallback)(async()=>{try{let t=await(await fetch(`${e}/api/config`)).json();r(t),l(JSON.stringify(t,null,2))}catch{N(t(`prov.loadConfigFail`),!1)}},[e,t]),F=(0,_.useCallback)(async()=>{try{let t=(await fetch(`${e}/api/oauth/providers`).then(e=>e.json())).providers??[];h(t);let n=await Promise.all(t.map(async t=>[t,await fetch(`${e}/api/oauth/status?provider=${t}`).then(e=>e.json()).catch(()=>({loggedIn:!1}))]));v(Object.fromEntries(n))}catch{}},[e]),ce=(0,_.useCallback)(async(t=!1)=>{try{let n=await fetch(`${e}/api/provider-quotas${t?`?refresh=1`:``}`).then(e=>e.json());b(Object.fromEntries((n.reports??[]).map(e=>[e.provider,e])))}catch{b({})}},[e]),ue=(0,_.useCallback)(async t=>{let n=await Promise.all(t.map(async t=>{let n=await fetch(`${e}/api/oauth/accounts?provider=${t}`).then(e=>e.json()).catch(()=>null);return[t,{activeAccountId:n?.activeAccountId??null,accounts:n?.accounts??[]}]}));ee(Object.fromEntries(n))},[e]),de=async(n,r)=>{if(r.active)return;let i=await fetch(`${e}/api/oauth/accounts/active`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({provider:n,accountId:r.id})});i.ok?(N(t(`prov.accountSwitched`,{email:r.email??r.id}),!0),ue(Object.keys(E)),F(),ce(!0)):N((await i.json().catch(()=>({}))).error||t(`prov.accountSwitchFail`),!1)},fe=(0,_.useCallback)(async t=>{let n=await Promise.all(t.map(async t=>[t,(await fetch(`${e}/api/providers/keys?name=${encodeURIComponent(t)}`).then(e=>e.json()).catch(()=>null))?.keys??[]]));O(Object.fromEntries(n))},[e]),pe=async(n,r)=>{if(r.active)return;let i=await fetch(`${e}/api/providers/keys/active`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:n,id:r.id})});i.ok?(N(t(`prov.keySwitched`,{key:r.label??r.masked}),!0),fe(Object.keys(ne)),ce(!0)):N((await i.json().catch(()=>({}))).error||t(`prov.keySwitchFail`),!1)},me=async(n,r)=>{window.confirm(t(`prov.keyRemoveConfirm`,{key:r.label??r.masked}))&&(await fetch(`${e}/api/providers/keys?name=${encodeURIComponent(n)}&id=${encodeURIComponent(r.id)}`,{method:`DELETE`})).ok&&(N(t(`prov.keyRemoved`,{key:r.label??r.masked}),!0),fe(Object.keys(ne)),P(),ce(!0))},he=async n=>{let r=j.trim();if(!r)return;let i=await fetch(`${e}/api/providers/keys`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:n,key:r})});i.ok?(N(t(`prov.keyAdded`,{name:n}),!0),M(``),A(null),fe(Object.keys(ne).includes(n)?Object.keys(ne):[...Object.keys(ne),n]),P(),ce(!0)):N((await i.json().catch(()=>({}))).error||t(`prov.keyAddFail`),!1)},ge=async(n,r)=>{window.confirm(t(`prov.accountRemoveConfirm`,{email:r.email??r.id}))&&(await fetch(`${e}/api/oauth/accounts?provider=${n}&id=${encodeURIComponent(r.id)}`,{method:`DELETE`})).ok&&(N(t(`prov.accountRemoved`,{email:r.email??r.id}),!0),ue(Object.keys(E)),F(),ce(!0))};(0,_.useEffect)(()=>{let e=window.setTimeout(()=>{P(),F(),ce()},0);return()=>window.clearTimeout(e)},[P,F,ce]);let _e=(0,_.useMemo)(()=>n?Object.entries(n.providers).filter(([,e])=>e.authMode===`oauth`).map(([e])=>e):[],[n]);(0,_.useEffect)(()=>{if(_e.length===0)return;let e=window.setTimeout(()=>{ue(_e)},0);return()=>window.clearTimeout(e)},[ue,_e]);let ve=(0,_.useMemo)(()=>n?Object.entries(n.providers).filter(([,e])=>e.hasApiKey&&e.authMode!==`oauth`&&e.authMode!==`forward`).map(([e])=>e):[],[n]);(0,_.useEffect)(()=>{if(ve.length===0)return;let e=window.setTimeout(()=>{fe(ve)},0);return()=>window.clearTimeout(e)},[fe,ve]);let ye=async()=>{try{let n=JSON.parse(c);(await fetch(`${e}/api/config`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify(n)})).ok?(N(t(`prov.saved`),!0),a(!1),P(),ce(!0)):N(t(`prov.saveFailed`),!1)}catch{N(t(`prov.invalidJson`),!1)}},be=async(n,r=!1)=>{C(n),d(``),T(null);try{let i=await fetch(`${e}/api/oauth/login`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(r?{provider:n,addAccount:!0}:{provider:n})}),a=await i.json();if(!i.ok){N(a.error||t(`prov.loginFailStart`,{provider:ot(n)}),!1);return}(a.url||a.instructions)&&T({provider:n,url:a.url,instructions:a.instructions});let o=E[n]?.accounts.length??0;for(let i=0;i<150&&ae.current;i++){await new Promise(e=>setTimeout(e,2e3));let i=await fetch(`${e}/api/oauth/status?provider=${n}`).then(e=>e.json()).catch(()=>null);if(i){if(r?(i.accounts?.length??0)>o||i.done===!0&&!i.error:i.loggedIn){v(e=>({...e,[n]:i})),N(t(`prov.loginOk`,{provider:ot(n),cmd:`ocx sync`}),!0),T(null),P(),ue(Object.keys(E).includes(n)?Object.keys(E):[...Object.keys(E),n]),ce(!0);break}if(i.error){v(e=>({...e,[n]:i})),N(t(`prov.loginError`,{provider:ot(n),error:i.error}),!1);break}}}}catch{N(t(`prov.loginRequestFail`,{provider:ot(n)}),!1)}finally{ae.current&&C(null)}},xe=async n=>{await fetch(`${e}/api/oauth/logout?provider=${n}`,{method:`POST`}).catch(()=>{}),v(e=>({...e,[n]:{loggedIn:!1}})),N(t(`prov.logoutOk`,{provider:ot(n)}),!0),P(),ce(!0)},Se=async n=>{window.confirm(t(`prov.removeConfirm`,{name:n}))&&((await fetch(`${e}/api/providers?name=${encodeURIComponent(n)}`,{method:`DELETE`})).ok?(N(t(`prov.removed`,{name:n}),!0),P(),F(),ce(!0)):N(t(`prov.removeFail`,{name:n}),!1))},Ce=async(n,r)=>{let i=await fetch(`${e}/api/providers?name=${encodeURIComponent(n)}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({disabled:r})});if(i.ok){N(t(r?`prov.disabled`:`prov.enabled`,{name:n}),!0),P(),F(),ce(!0);return}N((await i.json().catch(()=>({}))).error||t(r?`prov.disableFail`:`prov.enableFail`,{name:n}),!1)};if(!n)return(0,S.jsx)(`div`,{className:`muted`,children:t(`prov.loadingConfig`)});let we=Object.entries(n.providers).filter(([e,t])=>t.hasApiKey&&t.authMode!==`oauth`&&t.authMode!==`forward`&&!m.includes(e)).map(([e])=>e);return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsxs)(`div`,{className:`page-head`,children:[(0,S.jsx)(`h2`,{children:t(`nav.providers`)}),(0,S.jsx)(`div`,{className:`row`,children:i?(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(`button`,{className:`btn btn-primary`,onClick:ye,children:t(`common.save`)}),(0,S.jsx)(`button`,{className:`btn btn-ghost`,onClick:()=>{a(!1),l(JSON.stringify(n,null,2))},children:t(`common.cancel`)})]}):(0,S.jsxs)(S.Fragment,{children:[(0,S.jsxs)(`button`,{className:`btn btn-primary`,onClick:()=>s(!0),children:[(0,S.jsx)(re,{}),t(`prov.add`)]}),(0,S.jsx)(`button`,{className:`btn btn-ghost`,onClick:()=>a(!0),children:t(`prov.editJson`)})]})})]}),(0,S.jsx)(`p`,{className:`page-sub`,children:t(`prov.subtitle`)}),u&&(0,S.jsx)(Me,{tone:f?`ok`:`err`,children:u}),(0,S.jsxs)(`div`,{className:`panel panel-accent`,style:{marginBottom:18},children:[(0,S.jsxs)(`div`,{className:`row`,style:{marginBottom:14},children:[(0,S.jsx)(le,{style:{width:16,height:16,color:`var(--accent)`}}),(0,S.jsx)(`span`,{style:{fontWeight:600},children:t(`prov.accountLogin`)})]}),(0,S.jsxs)(`div`,{className:`oauth-grid`,children:[m.length===0&&we.length===0&&(0,S.jsx)(`span`,{className:`muted`,style:{fontSize:13,gridColumn:`1 / -1`},children:t(`prov.noOauth`)}),m.map(e=>{let n=g[e]??{loggedIn:!1},r=x===e,i=it(e);return(0,S.jsxs)(`div`,{className:`oauth-row`,children:[(0,S.jsxs)(`span`,{className:`oauth-name`,title:ot(e),children:[(0,S.jsx)(`span`,{className:`provider-icon provider-icon-sm`,children:i&&(0,S.jsx)(`img`,{src:i,alt:``,"aria-hidden":`true`})}),(0,S.jsx)(`span`,{className:`oauth-name-text`,children:e})]}),(0,S.jsxs)(`span`,{className:`oauth-status`,children:[(0,S.jsx)(`span`,{className:`dot ${n.loggedIn?`dot-green`:`dot-muted`}`}),n.loggedIn?(0,S.jsx)(`span`,{className:`oauth-email`,style:{color:`var(--green)`},children:n.email??t(`prov.loggedIn`)}):(0,S.jsx)(`span`,{className:`oauth-email muted`,children:t(`prov.notLoggedIn`)})]}),(0,S.jsx)(`span`,{className:`oauth-actions`,children:n.loggedIn?(0,S.jsx)(`button`,{className:`btn btn-ghost btn-sm`,onClick:()=>xe(e),children:t(`prov.logout`)}):(0,S.jsx)(`button`,{className:`btn btn-primary btn-sm`,onClick:()=>be(e),disabled:r,children:r?(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(`span`,{className:`spin`}),t(`prov.waitingBrowser`)]}):(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(le,{}),t(`prov.login`)]})})}),w?.provider===e&&(w.url||w.instructions)&&(0,S.jsxs)(`span`,{className:`oauth-login-hint muted`,children:[w.url&&(0,S.jsxs)(`a`,{href:w.url,target:`_blank`,rel:`noreferrer`,className:`link-btn`,style:{display:`inline-flex`,alignItems:`center`,gap:5},children:[(0,S.jsx)(se,{}),t(`prov.didntOpen`)]}),w.instructions&&(0,S.jsx)(`span`,{children:w.instructions})]})]},e)}),we.map(e=>{let n=it(e);return(0,S.jsxs)(`div`,{className:`oauth-row`,children:[(0,S.jsxs)(`span`,{className:`oauth-name`,title:e,children:[(0,S.jsx)(`span`,{className:`provider-icon provider-icon-sm`,children:n&&(0,S.jsx)(`img`,{src:n,alt:``,"aria-hidden":`true`})}),(0,S.jsx)(`span`,{className:`oauth-name-text`,children:e})]}),(0,S.jsxs)(`span`,{className:`oauth-status`,children:[(0,S.jsx)(`span`,{className:`dot dot-green`}),(0,S.jsx)(`span`,{className:`oauth-email muted`,children:t(`prov.hasApiKey`)})]}),(0,S.jsx)(`span`,{className:`oauth-actions`,"aria-hidden":`true`})]},e)})]})]}),i?(0,S.jsx)(`textarea`,{className:`input`,value:c,onChange:e=>l(e.target.value),style:{height:400}}):(0,S.jsxs)(`div`,{className:`stack`,style:{gap:8},children:[(0,S.jsxs)(`div`,{className:`muted`,style:{fontSize:13,marginBottom:4},children:[t(`prov.port`),`: `,(0,S.jsx)(`code`,{className:`chip`,children:n.port}),` · `,t(`prov.default`),`: `,(0,S.jsx)(`code`,{className:`chip`,children:n.defaultProvider})]}),Object.entries(n.providers).map(([e,r])=>{let i=e===n.defaultProvider,a=r.disabled===!0,o=y[e]?.quota??null,s=it(e),c=r.authMode===`oauth`?E[e]:void 0,l=r.authMode!==`oauth`&&r.authMode!==`forward`&&r.hasApiKey?ne[e]??[]:[],u=!!c&&c.accounts.length>0||l.length>0,d=D[e]===!0,f=c?.accounts.length??l.length;return(0,S.jsxs)(`div`,{className:`card prov-card${a?` prov-card-disabled`:``}`,children:[(0,S.jsxs)(`div`,{className:`prov-card-main`,children:[(0,S.jsxs)(`div`,{className:`prov-card-info`,children:[s&&(0,S.jsx)(`span`,{className:`provider-icon`,children:(0,S.jsx)(`img`,{src:s,alt:``,"aria-hidden":`true`})}),(0,S.jsxs)(`div`,{className:`prov-card-copy`,children:[(0,S.jsxs)(`div`,{className:`prov-title`,children:[(0,S.jsx)(`span`,{style:{fontWeight:600},children:e}),i&&(0,S.jsx)(`span`,{className:`badge badge-primary`,children:t(`prov.defaultBadge`)}),a?(0,S.jsx)(`span`,{className:`badge badge-muted`,children:t(`prov.disabledBadge`)}):(0,S.jsx)(`span`,{className:`badge badge-green`,children:t(`prov.activeBadge`)}),r.authMode===`oauth`&&(0,S.jsx)(`span`,{className:`badge badge-accent`,children:`oauth`}),r.authMode===`forward`&&(0,S.jsx)(`span`,{className:`badge badge-amber`,children:`passthrough`})]}),(0,S.jsxs)(`div`,{className:`muted prov-meta`,style:{fontSize:13},children:[(0,S.jsx)(`code`,{className:`chip`,children:r.adapter}),(0,S.jsx)(`span`,{children:r.baseUrl}),r.defaultModel&&(0,S.jsx)(`span`,{children:r.defaultModel}),r.hasApiKey&&(0,S.jsx)(`span`,{children:t(`prov.hasApiKey`)}),r.hasHeaders&&(0,S.jsx)(`span`,{children:t(`prov.hasHeaders`)})]})]})]}),(0,S.jsxs)(`div`,{className:`provider-actions`,children:[(0,S.jsxs)(`button`,{className:`btn ${a?`btn-primary`:`btn-ghost`} btn-sm`,onClick:()=>Ce(e,!a),disabled:i,title:i?t(`prov.defaultCannotDisable`):void 0,"aria-label":t(a?`prov.enableAria`:`prov.disableAria`,{name:e}),children:[i?(0,S.jsx)(le,{}):(0,S.jsx)(I,{}),t(a?`prov.enable`:`prov.disable`)]}),(0,S.jsxs)(`button`,{className:`btn btn-danger btn-sm`,onClick:()=>Se(e),"aria-label":t(`sub.removeAria`,{m:e}),children:[(0,S.jsx)(ie,{}),t(`common.remove`)]})]})]}),o&&(0,S.jsx)($e,{quota:o,threshold:80,t,className:`provider-quota`}),u&&(0,S.jsxs)(S.Fragment,{children:[(0,S.jsxs)(`button`,{className:`prov-accounts-toggle${d?` open`:``}`,onClick:()=>te(t=>({...t,[e]:!d})),"aria-expanded":d,"aria-label":t(`prov.accountsAria`,{name:e}),children:[t(`prov.accounts`,{n:String(f)}),(0,S.jsx)(`span`,{className:`chev`,children:(0,S.jsx)(oe,{})})]}),d&&(0,S.jsxs)(`div`,{className:`prov-accounts-list`,children:[(c?.accounts??[]).map(n=>(0,S.jsxs)(`button`,{className:`prov-account-row${n.active?` active`:``}`,onClick:()=>de(e,n),title:n.active?void 0:t(`prov.accountSwitchTitle`),children:[(0,S.jsx)(`span`,{className:`dot ${n.needsReauth?`dot-amber`:n.active?`dot-green`:`dot-muted`}`}),(0,S.jsx)(`span`,{className:`prov-account-email`,children:n.email??t(`prov.accountNoLabel`,{id:n.id})}),n.needsReauth&&(0,S.jsx)(`span`,{className:`badge badge-amber`,children:t(`prov.accountReauth`)}),n.active&&(0,S.jsx)(`span`,{className:`badge badge-primary`,children:t(`prov.accountActive`)}),(0,S.jsx)(`span`,{className:`prov-account-remove`,role:`button`,"aria-label":t(`prov.accountRemoveAria`,{email:n.email??n.id}),onClick:t=>{t.stopPropagation(),ge(e,n)},children:(0,S.jsx)(ie,{style:{width:13,height:13}})})]},n.id)),l.map(n=>(0,S.jsxs)(`button`,{className:`prov-account-row${n.active?` active`:``}`,onClick:()=>pe(e,n),title:n.active?void 0:t(`prov.keySwitchTitle`),children:[(0,S.jsx)(`span`,{className:`dot ${n.active?`dot-green`:`dot-muted`}`}),(0,S.jsx)(`span`,{className:`prov-account-email mono`,children:n.label?`${n.label} · ${n.masked}`:n.masked}),n.active&&(0,S.jsx)(`span`,{className:`badge badge-primary`,children:t(`prov.accountActive`)}),(0,S.jsx)(`span`,{className:`prov-account-remove`,role:`button`,"aria-label":t(`prov.keyRemoveAria`,{key:n.label??n.masked}),onClick:t=>{t.stopPropagation(),me(e,n)},children:(0,S.jsx)(ie,{style:{width:13,height:13}})})]},n.id)),c?(0,S.jsx)(`button`,{className:`prov-account-row prov-account-add`,onClick:()=>be(e,!0),disabled:x===e,children:x===e?(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(`span`,{className:`spin`}),t(`prov.waitingBrowser`)]}):(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(re,{style:{width:13,height:13}}),t(`prov.accountAdd`)]})}):k===e?(0,S.jsxs)(`div`,{className:`prov-account-row prov-account-keyform`,children:[(0,S.jsx)(`input`,{className:`input input-sm mono`,type:`password`,autoFocus:!0,placeholder:t(`prov.keyPlaceholder`),value:j,onChange:e=>M(e.target.value),onKeyDown:t=>{t.key===`Enter`&&he(e),t.key===`Escape`&&(A(null),M(``))}}),(0,S.jsx)(`button`,{className:`btn btn-primary btn-sm`,onClick:()=>he(e),disabled:!j.trim(),children:t(`common.save`)}),(0,S.jsx)(`button`,{className:`btn btn-ghost btn-sm`,onClick:()=>{A(null),M(``)},children:t(`common.cancel`)})]}):(0,S.jsxs)(`button`,{className:`prov-account-row prov-account-add`,onClick:()=>{A(e),M(``)},children:[(0,S.jsx)(re,{style:{width:13,height:13}}),t(`prov.keyAdd`)]})]})]})]},e)})]}),o&&(0,S.jsx)(Ye,{apiBase:e,existingNames:Object.keys(n.providers),onClose:()=>s(!1),onAdded:e=>{s(!1),N(t(`prov.added`,{name:e,cmd:`ocx sync`}),!0),P(),F(),ce(!0)}})]})}var ct=Array.from({length:18},(e,t)=>1e5+t*5e4),lt=`custom`,ut=[4,8,16,32,64,128,256,500,1e3],dt=60;function ft(e){return!Number.isFinite(e)||e<=0?String(e):e%1e3==0?`${e/1e3}k`:e.toLocaleString()}function pt({apiBase:e}){let t=Te(),[n,r]=(0,_.useState)([]),[i,a]=(0,_.useState)(new Set),[o,s]=(0,_.useState)({}),[c,l]=(0,_.useState)({}),[u,d]=(0,_.useState)({}),[f,p]=(0,_.useState)(35e4),[m,h]=(0,_.useState)(``),[g,v]=(0,_.useState)(!1),[y,b]=(0,_.useState)(()=>{try{let e=localStorage.getItem(`ocx-models-collapsed`);return e?new Set(JSON.parse(e)):new Set}catch{return new Set}}),[x,C]=(0,_.useState)(``),[w,T]=(0,_.useState)(!1),[ee,D]=(0,_.useState)(!0),[te,ne]=(0,_.useState)(!1),O=(0,_.useRef)(!1),[k,re]=(0,_.useState)(null),[A,ie]=(0,_.useState)(!1),[j,ae]=(0,_.useState)(``),N=(0,_.useRef)(!1),[P,F]=(0,_.useState)(``),[I,se]=(0,_.useState)(!1),[ce,le]=(0,_.useState)(!1),ue=(0,_.useCallback)(async()=>{if(!N.current)try{let t=await fetch(`${e}/api/v2`);if(!t.ok||!(t.headers.get(`content-type`)??``).includes(`application/json`)){re(null);return}let n=await t.json();typeof n.enabled==`boolean`&&re({enabled:n.enabled,agentsMaxThreadsConflict:n.agentsMaxThreadsConflict===!0,maxConcurrentThreadsPerSession:typeof n.maxConcurrentThreadsPerSession==`number`?n.maxConcurrentThreadsPerSession:null,multiAgentMode:n.multiAgentMode===`v1`||n.multiAgentMode===`v2`?n.multiAgentMode:`default`})}catch{re(null)}},[e]),de=(0,_.useCallback)(async()=>{try{let[t,n]=await Promise.all([fetch(`${e}/api/models`).then(e=>e.json()),fetch(`${e}/api/provider-context-caps`).then(e=>e.json())]);ue(),r(t),a(new Set(t.filter(e=>e.disabled).map(e=>e.namespaced)));let i=typeof n.value==`number`&&Number.isFinite(n.value)&&n.value>0?n.value:typeof n.cap==`number`&&Number.isFinite(n.cap)&&n.cap>0?n.cap:void 0;i!==void 0&&p(i),d(n.caps??{})}catch{T(!1),C(t(`models.loadFail`))}finally{D(!1)}},[e,ue,t]);(0,_.useEffect)(()=>{let e=window.setTimeout(()=>{de()},0),t=window.setInterval(()=>{O.current||de()},1e4);return()=>{window.clearTimeout(e),window.clearInterval(t)}},[de]);let fe=(0,_.useMemo)(()=>{let e={};for(let t of n)(e[t.provider]??=[]).push(t);return Object.entries(e).sort(([e,t],[n,r])=>{let i=t.every(e=>e.native);return i===r.every(e=>e.native)?e.localeCompare(n):i?-1:1})},[n]),pe=async n=>{ne(!0),O.current=!0,C(``);try{(await fetch(`${e}/api/disabled-models`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({models:[...n]})})).ok?(a(n),T(!0),C(t(`models.applied`))):(T(!1),C(t(`models.saveFailed`)))}catch{T(!1),C(t(`models.networkError`))}finally{ne(!1),O.current=!1}},me=e=>{let t=new Set(i);t.has(e)?t.delete(e):t.add(e),pe(t)},he=async n=>{ne(!0),O.current=!0,C(``);let r=u[n]!==f;try{let i=await fetch(`${e}/api/provider-context-caps`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({provider:n,enabled:r})});i.ok?(d((await i.json()).caps??{}),T(!0),C(t(`models.capApplied`)),await de()):(T(!1),C(t(`models.capSaveFailed`)))}catch{T(!1),C(t(`models.networkError`))}finally{ne(!1),O.current=!1}},ge=e=>{b(t=>{let n=new Set(t);n.has(e)?n.delete(e):n.add(e);try{localStorage.setItem(`ocx-models-collapsed`,JSON.stringify([...n]))}catch{}return n})},_e=async n=>{ne(!0),O.current=!0,C(``);try{let r=await fetch(`${e}/api/provider-context-caps`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify(n)});if(r.ok){let e=await r.json();typeof e.value==`number`&&Number.isFinite(e.value)&&e.value>0&&p(e.value),d(e.caps??{}),T(!0),C(t(`models.capApplied`)),await de()}else T(!1),C(t(`models.capSaveFailed`))}catch{T(!1),C(t(`models.networkError`))}finally{ne(!1),O.current=!1}},ve=e=>{!Number.isFinite(e)||e<=0||_e({value:Math.floor(e)})},ye=e=>{if(e===lt){v(!0),h(String(f));return}v(!1);let t=Number(e);Number.isFinite(t)&&t>0&&t!==f&&ve(t)},be=()=>{let e=Number(m.replace(/[_,\s]/g,``));if(!Number.isFinite(e)||e<=0){T(!1),C(t(`models.capSaveFailed`));return}v(!1),ve(e)},xe=(0,_.useMemo)(()=>{let e=fe.filter(([,e])=>!e.every(e=>e.native));return e.length>0&&e.every(([e])=>u[e]===f)},[fe,u,f]),Se=()=>{_e({setAll:!xe})},Ce=async n=>{if(!(!k||N.current)&&k.multiAgentMode!==n){ie(!0),N.current=!0,ae(``),C(``);try{let r=await fetch(`${e}/api/v2`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({multiAgentMode:n})}),i=await r.json().catch(()=>null);r.ok&&i?(ue(),T(!0),C(t(`models.v2Applied`)),ae((i.warnings??[]).join(` `))):(T(!1),C(i?.error??t(`models.saveFailed`)))}catch{T(!1),C(t(`models.networkError`))}finally{ie(!1),N.current=!1}}},we=async n=>{if(!(!k||N.current)){if(!Number.isInteger(n)||n<1){T(!1),C(t(`models.v2ThreadsInvalid`));return}if(k.maxConcurrentThreadsPerSession!==n){ie(!0),N.current=!0,ae(``),C(``);try{let r=await fetch(`${e}/api/v2`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({maxConcurrentThreadsPerSession:n})}),i=await r.json().catch(()=>null);r.ok&&i&&typeof i.enabled==`boolean`?(re({enabled:i.enabled,agentsMaxThreadsConflict:i.agentsMaxThreadsConflict===!0,maxConcurrentThreadsPerSession:typeof i.maxConcurrentThreadsPerSession==`number`?i.maxConcurrentThreadsPerSession:null,multiAgentMode:i.multiAgentMode===`v1`||i.multiAgentMode===`v2`?i.multiAgentMode:`default`}),T(!0),C(t(`models.v2ThreadsApplied`)),se(!1)):(T(!1),C(i?.error??t(`models.saveFailed`)))}catch{T(!1),C(t(`models.networkError`))}finally{ie(!1),N.current=!1}}}},Ee=e=>{if(e===lt){se(!0),F(String(k?.maxConcurrentThreadsPerSession??``));return}se(!1),we(Number(e))};return ee?(0,S.jsxs)(`div`,{className:`row muted`,children:[(0,S.jsx)(`span`,{className:`spin`}),` `,t(`models.loading`)]}):(0,S.jsxs)(S.Fragment,{children:[(0,S.jsxs)(`div`,{className:`page-head`,children:[(0,S.jsx)(`h2`,{children:t(`nav.models`)}),(0,S.jsx)(`span`,{className:`muted mono`,style:{fontSize:12},children:t(`models.active`,{active:n.length-i.size,total:n.length})})]}),(0,S.jsx)(`p`,{className:`page-sub`,children:t(`models.subtitle`)}),x&&(0,S.jsx)(Me,{tone:w?`ok`:`err`,children:x}),k&&(0,S.jsxs)(`div`,{className:`row`,style:{gap:8,marginBottom:8,flexWrap:`wrap`,alignItems:`center`},children:[(0,S.jsx)(`span`,{className:`muted`,style:{fontSize:13},children:t(`models.v2Label`)}),(0,S.jsx)(`div`,{className:`segmented`,role:`radiogroup`,"aria-label":t(`models.v2Label`),style:{display:`inline-flex`,borderRadius:999,background:`var(--surface-soft, var(--raised))`,padding:3,gap:2},children:[`v1`,`default`,`v2`].map(e=>(0,S.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":(k.multiAgentMode??`default`)===e,className:`btn btn-sm${(k.multiAgentMode??`default`)===e?` btn-primary`:` btn-ghost`}`,style:{borderRadius:999,minWidth:64,fontSize:12,padding:`5px 12px`,border:`none`,background:(k.multiAgentMode??`default`)===e?void 0:`transparent`,color:(k.multiAgentMode??`default`)===e?void 0:`var(--muted)`},disabled:A,onClick:()=>void Ce(e),children:t(`models.v2Mode_${e}`)},e))}),(0,S.jsx)(`button`,{type:`button`,className:`btn btn-ghost btn-sm`,style:{width:24,height:24,minWidth:24,flex:`0 0 24px`,padding:0,borderRadius:999,color:`var(--muted)`},onClick:()=>le(!0),"aria-label":t(`models.v2Label`),"aria-haspopup":`dialog`,children:(0,S.jsx)(M,{width:14,height:14,"aria-hidden":`true`})}),k.enabled&&(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(`span`,{className:`muted`,style:{fontSize:13,marginLeft:8},children:t(`models.v2ThreadsLabel`)}),(0,S.jsx)(Ne,{value:I?lt:k.maxConcurrentThreadsPerSession!==null&&k.maxConcurrentThreadsPerSession!==void 0?ut.includes(k.maxConcurrentThreadsPerSession)?String(k.maxConcurrentThreadsPerSession):lt:``,options:[...k.maxConcurrentThreadsPerSession===null||k.maxConcurrentThreadsPerSession===void 0?[{value:``,label:t(`models.v2ThreadsDefault`)}]:[],...k.maxConcurrentThreadsPerSession!==null&&k.maxConcurrentThreadsPerSession!==void 0&&!ut.includes(k.maxConcurrentThreadsPerSession)&&!I?[{value:lt,label:String(k.maxConcurrentThreadsPerSession)}]:[],...ut.map(e=>({value:String(e),label:String(e)})),{value:lt,label:t(`models.custom`)}],onChange:e=>Ee(e),disabled:A,label:t(`models.v2ThreadsLabel`)}),I&&(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(`input`,{className:`input`,style:{width:100},inputMode:`numeric`,value:P,onChange:e=>F(e.target.value),onKeyDown:e=>{e.key===`Enter`&&we(Number(P.replace(/[_,\s]/g,``)))},disabled:A}),(0,S.jsx)(`button`,{type:`button`,className:`btn btn-sm`,disabled:A,onClick:()=>{we(Number(P.replace(/[_,\s]/g,``)))},children:t(`models.v2ThreadsApply`)})]})]}),k.enabled&&k.agentsMaxThreadsConflict&&(0,S.jsx)(`span`,{className:`mono`,style:{fontSize:12,color:`var(--err, #e5484d)`},children:t(`models.v2Conflict`)}),j&&(0,S.jsx)(`span`,{className:`muted`,style:{fontSize:12},children:j})]}),(0,S.jsxs)(`div`,{className:`row`,style:{gap:8,marginBottom:8,flexWrap:`wrap`},children:[(0,S.jsx)(`span`,{className:`muted`,style:{fontSize:13},children:t(`models.contextCapLabel`)}),(0,S.jsx)(Ne,{value:g?lt:ct.includes(f)?String(f):lt,options:[...!ct.includes(f)&&!g?[{value:String(f),label:ft(f)}]:[],...ct.map(e=>({value:String(e),label:ft(e)})),{value:lt,label:t(`models.custom`)}],onChange:e=>ye(e),disabled:te,label:t(`models.contextCapLabel`)}),g&&(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(`input`,{className:`input`,style:{width:160},inputMode:`numeric`,placeholder:t(`models.customPlaceholder`),value:m,onChange:e=>h(e.target.value),onKeyDown:e=>{e.key===`Enter`&&be()},disabled:te}),(0,S.jsx)(`button`,{onClick:be,disabled:te,className:`btn btn-ghost btn-sm`,children:t(`models.customApply`)})]}),(0,S.jsx)(`div`,{style:{flex:1}}),(0,S.jsx)(je,{on:xe,onClick:Se,disabled:te,label:t(`models.setAll`)}),(0,S.jsx)(`span`,{className:`muted mono`,style:{fontSize:12},children:t(`models.setAll`)})]}),(0,S.jsxs)(`div`,{className:`row muted`,style:{alignItems:`flex-start`,gap:8,marginBottom:12,maxWidth:`80ch`,fontSize:12.5,lineHeight:1.5},children:[(0,S.jsx)(M,{width:15,height:15,"aria-hidden":`true`,style:{flexShrink:0,marginTop:2}}),(0,S.jsx)(`span`,{children:t(`models.orderHint`)})]}),fe.map(([e,n])=>{let r=y.has(e),a=n.filter(e=>!i.has(e.namespaced)).length,d=u[e]===f,p=n.every(e=>e.native),m=(o[e]??``).trim().toLowerCase(),h=m?n.filter(e=>e.id.toLowerCase().includes(m)):n,g=c[e]??dt,_=h.slice(0,g),v=h.length-_.length,b=n.every(e=>!i.has(e.namespaced)),x=n.every(e=>i.has(e.namespaced)),C=e=>{let t=new Set(i);for(let r of n)e?t.delete(r.namespaced):t.add(r.namespaced);pe(t)};return(0,S.jsxs)(`div`,{className:`card`,style:{marginBottom:8,overflow:`hidden`},children:[(0,S.jsxs)(`div`,{onClick:()=>ge(e),className:`row group-head${r?``:` open`}`,children:[(0,S.jsx)(oe,{style:{width:14,height:14,color:`var(--muted)`,transform:r?`none`:`rotate(90deg)`,transition:`transform .12s`}}),(0,S.jsx)(`span`,{style:{fontWeight:600,fontSize:14},children:e}),p&&(0,S.jsx)(`span`,{className:`muted mono`,style:{fontSize:11,padding:`1px 6px`,border:`1px solid var(--border)`,borderRadius:999},children:t(`models.nativeGroupLabel`)}),(0,S.jsx)(`span`,{className:`muted mono`,style:{fontSize:12},children:t(`models.active`,{active:a,total:n.length})}),(0,S.jsx)(`div`,{style:{flex:1}}),(0,S.jsxs)(`div`,{className:`row`,onClick:e=>e.stopPropagation(),style:{gap:6},children:[(0,S.jsx)(`button`,{className:`btn btn-ghost btn-sm`,disabled:te||b,onClick:()=>C(!0),style:{fontSize:11,padding:`2px 8px`},children:t(`models.allOn`)}),(0,S.jsx)(`button`,{className:`btn btn-ghost btn-sm`,disabled:te||x,onClick:()=>C(!1),style:{fontSize:11,padding:`2px 8px`},children:t(`models.allOff`)}),!p&&(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(je,{on:d,onClick:()=>he(e),disabled:te,label:t(`models.capValue`,{value:ft(f)})}),(0,S.jsx)(`span`,{className:`muted mono`,style:{fontSize:12},children:t(`models.capValue`,{value:ft(f)})})]})]})]}),!r&&(0,S.jsxs)(`div`,{style:{padding:`6px 12px`},children:[p&&(0,S.jsx)(`p`,{className:`muted`,style:{fontSize:12,margin:`2px 0 6px`},children:t(`models.nativeHint`)}),n.length>dt/2&&(0,S.jsx)(`input`,{className:`input`,style:{width:`100%`,marginBottom:6},placeholder:t(`models.search`),value:o[e]??``,onChange:t=>s(n=>({...n,[e]:t.target.value}))}),_.map(e=>{let n=i.has(e.namespaced);return(0,S.jsxs)(`div`,{className:`row`,style:{padding:`5px 0`},children:[(0,S.jsx)(je,{on:!n,onClick:()=>me(e.namespaced),disabled:te,label:e.id}),(0,S.jsx)(`code`,{className:`mono`,style:{fontSize:13,color:n?`var(--faint)`:`var(--text)`,textDecoration:n?`line-through`:`none`},children:L(e.id)}),e.contextCapped&&(0,S.jsx)(`span`,{className:`muted mono`,style:{fontSize:11,padding:`1px 6px`,border:`1px solid var(--border)`,borderRadius:999},children:t(`models.contextCappedValue`,{value:ft(e.contextCap??f)})})]},e.namespaced)}),v>0&&(0,S.jsx)(`button`,{onClick:()=>l(t=>({...t,[e]:g+dt})),className:`btn btn-ghost btn-sm`,style:{marginTop:4},children:t(`models.showMore`,{n:v})})]})]},e)}),fe.length===0&&(0,S.jsx)(Pe,{icon:(0,S.jsx)(E,{}),title:t(`models.noRouted`),children:t(`models.noRoutedHint`)}),ce&&(0,S.jsx)(`div`,{className:`modal-overlay`,role:`dialog`,"aria-modal":`true`,"aria-label":t(`models.v2Label`),onClick:()=>le(!1),onKeyDown:e=>{e.key===`Escape`&&le(!1)},children:(0,S.jsxs)(`div`,{className:`modal-card`,onClick:e=>e.stopPropagation(),children:[(0,S.jsxs)(`div`,{className:`modal-head`,children:[(0,S.jsx)(`h3`,{children:t(`models.v2Label`)}),(0,S.jsx)(`button`,{type:`button`,className:`btn btn-ghost btn-sm`,onClick:()=>le(!1),"aria-label":`Close`,children:`×`})]}),(0,S.jsx)(`div`,{className:`modal-desc`,style:{whiteSpace:`pre-line`,lineHeight:1.6},children:t(`models.v2Help`)}),(0,S.jsx)(`div`,{style:{marginTop:12},children:(0,S.jsx)(`a`,{href:`https://lidge-jun.github.io/opencodex/guides/sub-agent-surface/`,target:`_blank`,rel:`noreferrer`,style:{fontSize:13,color:`var(--accent)`},children:t(`models.v2DocsLink`)})}),(0,S.jsx)(`div`,{className:`modal-actions`,children:(0,S.jsx)(`button`,{type:`button`,className:`btn btn-primary`,onClick:()=>le(!1),children:`OK`})})]})})]})}function mt({apiBase:e}){let t=Te(),[n,r]=(0,_.useState)([]),[i,a]=(0,_.useState)([]),[o,s]=(0,_.useState)(``),[c,l]=(0,_.useState)(``),[u,d]=(0,_.useState)(!1),[f,p]=(0,_.useState)(!0),m=(0,_.useCallback)(async()=>{try{let t=await fetch(`${e}/api/subagent-models`).then(e=>e.json()),n=t.available??[];r(n),a((t.chosen??[]).filter(e=>n.includes(e)))}catch{d(!1),l(t(`sub.loadFail`))}finally{p(!1)}},[e,t]);(0,_.useEffect)(()=>{let e=window.setTimeout(()=>{m()},0);return()=>window.clearTimeout(e)},[m]);let h=e=>{l(``),a(t=>t.includes(e)?t.filter(t=>t!==e):t.length>=5?t:[...t,e])},g=(e,t)=>{a(n=>{let r=[...n],i=e+t;return i<0||i>=r.length?n:([r[e],r[i]]=[r[i],r[e]],r)})},v=async()=>{l(``);try{let n=await fetch(`${e}/api/subagent-models`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({models:i})}),r=await n.json();d(n.ok),l(n.ok?t(`sub.saved`,{n:r.applied?.length??0,cmd:`ocx sync`}):r.error||t(`sub.saveFailed`))}catch{d(!1),l(t(`sub.networkError`))}},y=(0,_.useMemo)(()=>{let e=o.trim().toLowerCase();return n.filter(t=>!e||t.toLowerCase().includes(e))},[n,o]);return f?(0,S.jsx)(`div`,{className:`muted`,style:{padding:8},children:t(`sub.loading`)}):(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(`div`,{className:`page-head`,children:(0,S.jsx)(`h2`,{children:t(`nav.subagents`)})}),(0,S.jsx)(`p`,{className:`page-sub`,children:(0,S.jsx)(De,{k:`sub.subtitle`,cmd:`spawn_agent`})}),c&&(0,S.jsx)(Me,{tone:u?`ok`:`err`,children:c}),(0,S.jsxs)(`div`,{className:`h-section`,children:[t(`sub.featured`),` `,(0,S.jsxs)(`span`,{className:`count`,children:[i.length,`/5`]})]}),(0,S.jsxs)(`div`,{className:`row muted`,style:{alignItems:`flex-start`,gap:8,margin:`-2px 0 10px`,maxWidth:`80ch`,fontSize:12.5,lineHeight:1.5},children:[(0,S.jsx)(M,{width:15,height:15,"aria-hidden":`true`,style:{flexShrink:0,marginTop:2}}),(0,S.jsx)(`span`,{children:(0,S.jsx)(De,{k:`sub.orderHint`,cmd:`spawn_agent`})})]}),i.length===0?(0,S.jsx)(Pe,{title:t(`sub.noneSelected`)}):(0,S.jsx)(`div`,{className:`stack`,style:{gap:8},children:i.map((e,n)=>(0,S.jsxs)(`div`,{className:`card panel-accent row`,style:{padding:`8px 12px`,gap:10},children:[(0,S.jsx)(`span`,{className:`mono`,style:{width:18,color:`var(--accent)`,fontWeight:700},children:n+1}),(0,S.jsx)(`code`,{className:`mono`,style:{flex:1,color:`var(--text)`},children:L(e)}),(0,S.jsx)(`button`,{className:`btn btn-ghost btn-icon btn-sm`,onClick:()=>g(n,-1),disabled:n===0,"aria-label":t(`sub.moveUp`,{m:e}),children:(0,S.jsx)(N,{})}),(0,S.jsx)(`button`,{className:`btn btn-ghost btn-icon btn-sm`,onClick:()=>g(n,1),disabled:n===i.length-1,"aria-label":t(`sub.moveDown`,{m:e}),children:(0,S.jsx)(P,{})}),(0,S.jsx)(`button`,{className:`btn btn-ghost btn-icon btn-sm`,onClick:()=>h(e),"aria-label":t(`sub.removeAria`,{m:e}),style:{color:`var(--red)`},children:(0,S.jsx)(k,{})})]},e))}),(0,S.jsx)(`div`,{style:{marginTop:14},children:(0,S.jsx)(`button`,{className:`btn btn-primary`,onClick:v,children:t(`common.save`)})}),(0,S.jsxs)(`div`,{className:`h-section`,children:[t(`sub.models`),` `,(0,S.jsx)(`span`,{className:`count`,children:y.length})]}),(0,S.jsxs)(`div`,{style:{position:`relative`,marginBottom:10},children:[(0,S.jsx)(ae,{style:{position:`absolute`,left:11,top:`50%`,transform:`translateY(-50%)`,width:15,height:15,color:`var(--faint)`,pointerEvents:`none`}}),(0,S.jsx)(`input`,{className:`input`,value:o,onChange:e=>s(e.target.value),placeholder:t(`sub.search`),style:{paddingLeft:34}})]}),(0,S.jsxs)(`div`,{className:`stack`,style:{gap:6,maxHeight:360,overflowY:`auto`},children:[y.map(e=>{let t=i.includes(e),n=!t&&i.length>=5;return(0,S.jsxs)(`button`,{className:`card row`,onClick:()=>h(e),disabled:n,"aria-pressed":t,style:{padding:`9px 12px`,gap:10,width:`100%`,textAlign:`left`,cursor:n?`not-allowed`:`pointer`,opacity:n?.45:1,background:t?`var(--accent-soft)`:void 0,borderColor:t?`var(--accent-ring)`:void 0},children:[(0,S.jsx)(`span`,{style:{width:16,height:16,flexShrink:0,color:`var(--accent)`,display:`inline-flex`},children:t&&(0,S.jsx)(O,{style:{width:16,height:16}})}),(0,S.jsx)(ee,{style:{width:15,height:15,color:`var(--faint)`,flexShrink:0}}),(0,S.jsx)(`code`,{className:`mono`,style:{color:`var(--text)`},children:L(e)})]},e)}),y.length===0&&(0,S.jsx)(Pe,{title:t(`sub.noModels`)})]})]})}var ht=m();function gt(e,t,n){let r=Array(e);return new Proxy(r,{get(r,i,a){if(typeof i==`string`){let a=i.charCodeAt(0);if(a>=48&&a<=57){let a=+i;if(Number.isInteger(a)&&a>=0&&a<e){let e=r[a];if(!e){let i=t[a*2];e=r[a]={index:a,key:n(a),start:i,size:t[a*2+1],end:i+t[a*2+1],lane:0}}return e}}if(i===`length`)return e}return Reflect.get(r,i,a)}})}function _t(e,t,n){let r=n.initialDeps??[],i,a=!0;function o(){let o=e();return o.length!==r.length||o.some((e,t)=>r[t]!==e)?(r=o,i=t(...o),n?.onChange&&!(a&&n.skipInitialOnChange)&&n.onChange(i),a=!1,i):i}return o.updateDeps=e=>{r=e},o}function vt(e,t){if(e===void 0)throw Error(`Unexpected undefined${t?`: ${t}`:``}`);return e}var yt=(e,t)=>Math.abs(e-t)<1.01,bt=(e,t,n)=>{let r;return function(...i){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,i),n)}},xt,St=()=>{if(xt!==void 0)return xt;if(typeof navigator>`u`)return xt=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return xt=!0;let e=navigator.maxTouchPoints;return xt=navigator.platform===`MacIntel`&&e!==void 0&&e>0},Ct=e=>{let{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},wt=e=>e,Tt=e=>{let t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1)-t+1,r=Array(n);for(let e=0;e<n;e++)r[e]=t+e;return r},Et=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=e.targetWindow;if(!r)return;let i=e=>{let{width:n,height:r}=e;t({width:Math.round(n),height:Math.round(r)})};if(i(Ct(n)),!r.ResizeObserver)return()=>{};let a=new r.ResizeObserver(t=>{let r=()=>{let e=t[0];if(e?.borderBoxSize){let t=e.borderBoxSize[0];if(t){i({width:t.inlineSize,height:t.blockSize});return}}i(Ct(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(r):r()});return a.observe(n,{box:`border-box`}),()=>{a.unobserve(n)}},Dt={passive:!0},Ot=typeof window>`u`?!0:`onscrollend`in window,kt=(e,t,n)=>{let r=e.scrollElement;if(!r)return;let i=e.targetWindow;if(!i)return;let a=e.options.useScrollendEvent&&Ot,o=0,s=a?null:bt(i,()=>t(o,!1),e.options.isScrollingResetDelay),c=e=>()=>{o=n(r),s?.(),t(o,e)},l=c(!0),u=c(!1);return r.addEventListener(`scroll`,l,Dt),a&&r.addEventListener(`scrollend`,u,Dt),()=>{r.removeEventListener(`scroll`,l),a&&r.removeEventListener(`scrollend`,u)}},At=(e,t)=>kt(e,t,t=>{let{horizontal:n,isRtl:r}=e.options;return n?t.scrollLeft*(r&&-1||1):t.scrollTop}),jt=(e,t,n)=>{if(n.options.useCachedMeasurements){let t=n.indexFromElement(e),r=n.options.getItemKey(t);return n.itemSizeCache.get(r)??n.options.estimateSize(t)}if(t?.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[n.options.horizontal?`inlineSize`:`blockSize`])}if(!t){let t=n.indexFromElement(e),r=n.options.getItemKey(t),i=n.itemSizeCache.get(r);if(i!==void 0)return i}return e[n.options.horizontal?`offsetWidth`:`offsetHeight`]},Mt=(e,{adjustments:t=0,behavior:n},r)=>{var i,a;(a=(i=r.scrollElement)?.scrollTo)==null||a.call(i,{[r.options.horizontal?`left`:`top`]:e+t,behavior:n})},Nt=class{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._flatMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this.elementsCache=new Map,this.now=()=>{var e;return((e=this.targetWindow?.performance)?.now)?.call(e)??Date.now()},this.observer=(()=>{let e=null,t=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{let t=e.target,n=this.indexFromElement(t);if(!t.isConnected){this.observer.unobserve(t);for(let[e,n]of this.elementsCache)if(n===t){this.elementsCache.delete(e);break}return}this.shouldMeasureDuringScroll(n)&&this.resizeItem(n,this.options.measureElement(t,e,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}));return{disconnect:()=>{var n;(n=t())==null||n.disconnect(),e=null},observe:e=>t()?.observe(e,{box:`border-box`}),unobserve:e=>t()?.unobserve(e)}})(),this.range=null,this.setOptions=e=>{let t={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:wt,rangeExtractor:Tt,onChange:()=>{},measureElement:jt,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:`data-index`,initialMeasurementsCache:[],lanes:1,anchorTo:`start`,followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:`estimate`,useCachedMeasurements:!1};for(let n in e){let r=e[n];r!==void 0&&(t[n]=r)}let n=this.options,r=null,i=null,a=!1;if(n!==void 0&&n.enabled&&t.enabled&&t.anchorTo===`end`&&this.scrollElement!==null){let e=n.count,o=t.count,s=this.getMeasurements(),c=e>0?s[0]?.key??n.getItemKey(0):null,l=e>0?s[e-1]?.key??n.getItemKey(e-1):null;if(o!==e||e>0&&o>0&&(t.getItemKey(0)!==c||t.getItemKey(o-1)!==l)){a=!0;let c=e>0?this.getVirtualItemForOffset(this.getScrollOffset())??s[0]:null;c&&(r=[c.key,this.getScrollOffset()-c.start]);let u=t.followOnAppend===!0?`auto`:t.followOnAppend||null;u&&o>e&&this.isAtEnd(n.scrollEndThreshold)&&(e===0||t.getItemKey(o-1)!==l)&&(i=u)}}this.options=t,a&&(this.pendingMin=0,this.itemSizeCacheVersion++);let o=!1,s=0;if(r&&this.scrollOffset!==null){let[e,t]=r,n=this.getMeasurements(),{count:i,getItemKey:a}=this.options,c=0;for(;c<i&&a(c)!==e;)c++;if(c<i){let e=n[c];if(e){let n=e.start+t;n!==this.scrollOffset&&(s=n-this.scrollOffset,this.scrollOffset=n,o=!0)}}}(o||i)&&(this.pendingScrollAnchor=[o?r[0]:null,o?r[1]:0,i,s])},this.notify=e=>{var t,n;(n=(t=this.options).onChange)==null||n.call(t,this,e)},this.maybeNotify=_t(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{let e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.maybeNotify();return}if(this.scrollElement=e,this.scrollElement&&`ownerDocument`in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=this.scrollElement?.window??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{if(t&&this._intendedScrollOffset===null&&e===this.scrollOffset)return;this._intendedScrollOffset!==null&&Math.abs(e-this._intendedScrollOffset)<1.5&&(e=this._intendedScrollOffset),this._intendedScrollOffset=null,this.scrollAdjustments=0;let n=this.getScrollOffset();this.scrollDirection=t?n===e?this.scrollDirection:n<e?`forward`:`backward`:null,this.scrollOffset=e,this.isScrolling=t,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),`addEventListener`in this.scrollElement){let e=this.scrollElement,t=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},n=()=>{this._iosTouching=!1,!(!St()||this.targetWindow==null)&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};e.addEventListener(`touchstart`,t,Dt),e.addEventListener(`touchend`,n,Dt),this.unsubs.push(()=>{e.removeEventListener(`touchstart`,t),e.removeEventListener(`touchend`,n),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}let t=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,t&&this.scrollElement&&this.options.enabled){let[e,n,r,i]=t;e!==null&&!r&&(St()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?i!==0&&(this._iosDeferredAdjustment+=i):this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),r&&this.scrollToEnd({behavior:r})}},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;let e=this.getScrollOffset(),t=this.getMaxScrollOffset();if(e<0||e>t)return;let n=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(e,{adjustments:this.scrollAdjustments+=n,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?`width`:`height`]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset==`function`?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{let n=new Map,r=new Map;for(let i=t-1;i>=0;i--){let t=e[i];if(n.has(t.lane))continue;let a=r.get(t.lane);if(a==null||t.end>a.end?r.set(t.lane,t):t.end<a.end&&n.set(t.lane,!0),n.size===this.options.lanes)break}return r.size===this.options.lanes?Array.from(r.values()).sort((e,t)=>e.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=_t(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode],(e,t,n,r,i,a,o)=>(this.prevLanes!==void 0&&this.prevLanes!==a&&(this.lanesChangedFlag=!0),this.prevLanes=a,this.pendingMin=null,{count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o}),{key:!1}),this.getMeasurements=_t(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o},s)=>{let c=this.itemSizeCache;if(!i)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(let t of this.laneAssignments.keys())t>=e&&this.laneAssignments.delete(t);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let l=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1),a===1){let i=this.options.gap,a=e*2,o=this._flatMeasurements;if(!o||o.length<a){let e=new Float64Array(a);o&&l>0&&e.set(o.subarray(0,l*2)),o=e,this._flatMeasurements=o}let s;if(l===0)s=t+n;else{let e=l-1;s=o[e*2]+o[e*2+1]+i}for(let t=l;t<e;t++){let e=r(t),n=c.get(e),a=typeof n==`number`?n:this.options.estimateSize(t);o[t*2]=s,o[t*2+1]=a,s+=a+i}let u=gt(e,o,r);return this.measurementsCache=u,u}let u=this.measurementsCache.slice(0,l),d=Array(a).fill(void 0);for(let e=0;e<l;e++){let t=u[e];t&&(d[t.lane]=e)}for(let i=l;i<e;i++){let e=r(i),a=this.laneAssignments.get(i),s,l,f=o===`estimate`||c.has(e);if(a!==void 0&&this.options.lanes>1){s=a;let e=d[s],r=e===void 0?void 0:u[e];l=r?r.end+this.options.gap:t+n}else{let e=this.options.lanes===1?u[i-1]:this.getFurthestMeasurement(u,i);l=e?e.end+this.options.gap:t+n,s=e?e.lane:i%this.options.lanes,this.options.lanes>1&&f&&this.laneAssignments.set(i,s)}let p=c.get(e),m=typeof p==`number`?p:this.options.estimateSize(i),h=l+m;u[i]={index:i,start:l,size:m,end:h,key:e,lane:s},d[s]=i}return this.measurementsCache=u,u},{key:!1,debug:()=>this.options.debug}),this.calculateRange=_t(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,n,r)=>e.length===0||t===0?(this.range=null,null):(this.range=It(e,t,n,r,r===1&&this._flatMeasurements!=null?this._flatMeasurements:null),this.range),{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=_t(()=>{let e=null,t=null,n=this.calculateRange();return n&&(e=n.startIndex,t=n.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,n,r,i)=>r===null||i===null?[]:e({startIndex:r,endIndex:i,overscan:t,count:n}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=e=>{if(!this.scrollState||this.scrollState.behavior!==`smooth`)return!0;let t=this.scrollState.index??this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)?.index;if(t!==void 0&&this.range){let n=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),r=Math.max(0,t-n),i=Math.min(this.options.count-1,t+n);return e>=r&&e<=i}return!0},this.measureElement=e=>{if(!e){this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))});return}let t=this.indexFromElement(e),n=this.options.getItemKey(t),r=this.elementsCache.get(n);r!==e&&(r&&this.observer.unobserve(r),this.observer.observe(e),this.elementsCache.set(n,e)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(t)&&this.resizeItem(t,this.options.measureElement(e,void 0,this))},this.resizeItem=(e,t)=>{if(e<0||e>=this.options.count)return;let n,r,i,a=this._flatMeasurements;if(this.options.lanes===1&&a!==null)i=this.options.getItemKey(e),r=a[e*2],n=a[e*2+1];else{let t=this.measurementsCache[e];if(!t)return;i=t.key,r=t.start,n=t.size}let o=t-(this.itemSizeCache.get(i)??n);if(o!==0){let a=this.options.anchorTo===`end`&&this.scrollState?.behavior!==`smooth`&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,s=a?this.getTotalSize():0,c=this.scrollState?.behavior!==`smooth`&&(this.shouldAdjustScrollPositionOnItemSizeChange===void 0?r<this.getScrollOffset()+this.scrollAdjustments&&(!this.itemSizeCache.has(i)||this.scrollDirection!==`backward`):this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[e]??{index:e,key:i,start:r,size:n,end:r+n,lane:0},o,this));(this.pendingMin===null||e<this.pendingMin)&&(this.pendingMin=e),this.itemSizeCache.set(i,t),this.itemSizeCacheVersion++,a?this.applyScrollAdjustment(this.getTotalSize()-s):c&&this.applyScrollAdjustment(o),this.notify(!1)}},this.getVirtualItems=_t(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let n=[];for(let r=0,i=e.length;r<i;r++){let i=t[e[r]];n.push(i)}return n},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(t.length===0)return;let n=this._flatMeasurements,r=this.options.lanes===1&&n!=null;return vt(t[Pt(0,t.length-1,r?e=>n[e*2]:e=>vt(t[e]).start,e)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if(`scrollHeight`in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{let e=this.scrollElement.document.documentElement;return this.options.horizontal?e.scrollWidth-this.scrollElement.innerWidth:e.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(e=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=e,this.getOffsetForAlignment=(e,t,n=0)=>{if(!this.scrollElement)return 0;let r=this.getSize(),i=this.getScrollOffset();t===`auto`&&(t=e>=i+r?`end`:`start`),t===`center`?e+=(n-r)/2:t===`end`&&(e-=r);let a=this.getMaxScrollOffset();return Math.max(Math.min(a,e),0)},this.getOffsetForIndex=(e,t=`auto`)=>{e=Math.max(0,Math.min(e,this.options.count-1));let n=this.getSize(),r=this.getScrollOffset(),i=this.measurementsCache[e];if(!i)return;if(t===`auto`)if(i.end>=r+n-this.options.scrollPaddingEnd)t=`end`;else if(i.start<=r+this.options.scrollPaddingStart)t=`start`;else return[r,t];if(t===`end`&&e===this.options.count-1)return[this.getMaxScrollOffset(),t];let a=t===`end`?i.end+this.options.scrollPaddingEnd:i.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(a,t,i.size),t]},this.scrollToOffset=(e,{align:t=`start`,behavior:n=`auto`}={})=>{let r=this.getOffsetForAlignment(e,t),i=this.now();this.scrollState={index:null,align:t,behavior:n,startedAt:i,lastTargetOffset:r,stableFrames:0},this._scrollToOffset(r,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollToIndex=(e,{align:t=`auto`,behavior:n=`auto`}={})=>{e=Math.max(0,Math.min(e,this.options.count-1));let r=this.getOffsetForIndex(e,t);if(!r)return;let[i,a]=r,o=this.now();this.scrollState={index:e,align:a,behavior:n,startedAt:o,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollBy=(e,{behavior:t=`auto`}={})=>{let n=this.getScrollOffset()+e,r=this.now();this.scrollState={index:null,align:`start`,behavior:t,startedAt:r,lastTargetOffset:n,stableFrames:0},this._scrollToOffset(n,{adjustments:void 0,behavior:t}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:e=`auto`}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:`end`,behavior:e});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:e})},this.getTotalSize=()=>{let e=this.getMeasurements(),t;if(e.length===0)t=this.options.paddingStart;else if(this.options.lanes===1){let n=e.length-1,r=this._flatMeasurements;t=r==null?e[n]?.end??0:r[n*2]+r[n*2+1]}else{let n=Array(this.options.lanes).fill(null),r=e.length-1;for(;r>=0&&n.some(e=>e===null);){let t=e[r];n[t.lane]===null&&(n[t.lane]=t.end),r--}t=Math.max(...n.filter(e=>e!==null))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{let e=[];if(this.itemSizeCache.size===0)return e;let t=this.getMeasurements();for(let n of t)n&&this.itemSizeCache.has(n.key)&&e.push({index:n.index,key:n.key,start:n.start,size:n.size,end:n.end,lane:n.lane});return e},this._scrollToOffset=(e,{adjustments:t,behavior:n})=>{this._intendedScrollOffset=e+(t??0),this.options.scrollToFn(e,{behavior:n,adjustments:t},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(e)}applyScrollAdjustment(e,t){e!==0&&(St()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?this._iosDeferredAdjustment+=e:(this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=e,behavior:t}),this.scrollOffset!==null&&(this.scrollOffset+=this.scrollAdjustments,this.scrollAdjustments=0)))}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId??=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()})}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}let e=this.scrollState.index==null?void 0:this.getOffsetForIndex(this.scrollState.index,this.scrollState.align),t=e?e[0]:this.scrollState.lastTargetOffset,n=t!==this.scrollState.lastTargetOffset;if(!n&&yt(t,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=1){this.getScrollOffset()!==t&&this._scrollToOffset(t,{adjustments:void 0,behavior:`auto`}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,n){let e=this.getSize()||600,n=Math.abs(t-this.getScrollOffset()),r=this.scrollState.behavior===`smooth`&&n>e;this.scrollState.lastTargetOffset=t,r||(this.scrollState.behavior=`auto`),this._scrollToOffset(t,{adjustments:void 0,behavior:r?`smooth`:`auto`})}this.scheduleScrollReconcile()}},Pt=(e,t,n,r)=>{for(;e<=t;){let i=(e+t)/2|0,a=n(i);if(a<r)e=i+1;else if(a>r)t=i-1;else return i}return e>0?e-1:0};function Ft(e,t,n){let r=0;for(;r<=t;){let i=(r+t)/2|0,a=e[i*2];if(a<n)r=i+1;else if(a>n)t=i-1;else return i}return r>0?r-1:0}function It(e,t,n,r,i){let a=e.length-1;if(e.length<=r)return{startIndex:0,endIndex:a};if(r===1&&i!==null){let e=Ft(i,a,n),r=e,o=n+t;for(;r<a&&i[r*2]+i[r*2+1]<o;)r++;return{startIndex:e,endIndex:r}}let o=Pt(0,a,t=>e[t].start,n),s=o;if(r===1)for(;s<a&&e[s].end<n+t;)s++;else if(r>1){let i=Array(r).fill(0);for(;s<a&&i.some(e=>e<n+t);){let t=e[s];i[t.lane]=t.end,s++}let c=Array(r).fill(n+t);for(;o>=0&&c.some(e=>e>=n);){let t=e[o];c[t.lane]=t.start,o--}o=Math.max(0,o-o%r),s=Math.min(a,s+(r-1-s%r))}return{startIndex:o,endIndex:s}}var Lt=typeof document<`u`?_.useLayoutEffect:_.useEffect;function Rt({useFlushSync:e=!0,directDomUpdates:t=!1,directDomUpdatesMode:n=`transform`,...r}){let i=_.useReducer(e=>e+1,0)[1],a=_.useRef({enabled:t,mode:n,container:null,lastSize:null,lastPositions:new WeakMap,prevRange:null});a.current.enabled=t,a.current.mode=n;let o=e=>{let t=a.current;if(!t.enabled||!t.container)return;let n=e.getTotalSize();if(n!==t.lastSize){t.lastSize=n;let r=e.options.horizontal?`width`:`height`;t.container.style[r]=`${n}px`}let r=!!e.options.horizontal,i=t.mode===`transform`,o=r?`left`:`top`,s=e.options.scrollMargin,c=e.getVirtualItems();for(let n of c){let a=n.start-s,c=e.elementsCache.get(n.key);c&&t.lastPositions.get(c)!==a&&(t.lastPositions.set(c,a),i?c.style.transform=r?`translate3d(${a}px, 0, 0)`:`translate3d(0, ${a}px, 0)`:c.style[o]=`${a}px`)}},s={...r,onChange:(t,n)=>{var s;let c=a.current,l=!0;if(c.enabled){o(t);let e=t.range,n=c.prevRange;l=!n||n.isScrolling!==t.isScrolling||n.startIndex!==e?.startIndex||n.endIndex!==e?.endIndex,l&&(c.prevRange=e?{startIndex:e.startIndex,endIndex:e.endIndex,isScrolling:t.isScrolling}:null)}l&&(e&&n?(0,ht.flushSync)(i):i()),(s=r.onChange)==null||s.call(r,t,n)}},[c]=_.useState(()=>{let e=new Nt(s);return Object.assign(e,{containerRef:t=>{let n=a.current;if(n.container=t,n.lastSize=null,t&&n.enabled){let r=e.getTotalSize();n.lastSize=r;let i=e.options.horizontal?`width`:`height`;t.style[i]=`${r}px`}}})});return c.setOptions(s),Lt(()=>c._didMount(),[]),Lt(()=>c._willUpdate()),Lt(()=>{o(c)}),c}function zt(e){return Rt({observeElementRect:Et,observeElementOffset:At,scrollToFn:Mt,...e})}var Bt={400:{en:{label:`Bad request`,description:`The proxy could not understand the request. Check the model, message shape, headers, and JSON body before retrying.`},ko:{label:`잘못된 요청`,description:`프록시가 요청을 이해할 수 없습니다. 재시도 전에 모델, 메시지 형식, 헤더, JSON 본문을 확인해야 합니다.`},zh:{label:`错误请求`,description:`代理无法理解该请求。重试前请检查模型、消息结构、标头和 JSON 正文。`},de:{label:`Ungültige Anfrage`,description:`Der Proxy konnte die Anfrage nicht verstehen. Prüfe Modell, Nachrichtenformat, Header und JSON-Body vor einem erneuten Versuch.`}},401:{en:{label:`Unauthorized`,description:`Credentials are missing, expired, or invalid. Re-login or refresh the account/provider credentials used by opencodex.`},ko:{label:`인증 필요`,description:`자격 증명이 없거나 만료되었거나 유효하지 않습니다. opencodex에서 사용하는 계정 또는 제공자 자격 증명을 다시 로그인하거나 갱신해야 합니다.`},zh:{label:`未授权`,description:`凭据缺失、已过期或无效。请重新登录,或刷新 opencodex 使用的账号/提供商凭据。`},de:{label:`Nicht autorisiert`,description:`Anmeldedaten fehlen, sind abgelaufen oder ungültig. Melde dich erneut an oder aktualisiere die von opencodex genutzten Konto-/Anbieter-Zugangsdaten.`}},402:{en:{label:`Payment required`,description:`The upstream provider rejected the request because billing, credits, or plan access is not available. Add credits, update billing, or switch provider.`},ko:{label:`결제 필요`,description:`청구, 크레딧, 플랜 접근 권한 문제로 업스트림 제공자가 요청을 거부했습니다. 크레딧 추가, 결제 정보 갱신, 제공자 전환이 필요합니다.`},zh:{label:`需要付款`,description:`上游提供商因账单、额度或套餐权限不可用而拒绝了请求。请充值、更新账单信息或切换提供商。`},de:{label:`Zahlung erforderlich`,description:`Der Upstream-Anbieter hat die Anfrage abgelehnt, weil Abrechnung, Guthaben oder Planzugriff nicht verfügbar ist. Guthaben aufladen, Abrechnung aktualisieren oder Anbieter wechseln.`}},403:{en:{label:`Forbidden`,description:`The account is authenticated but not allowed to use this model or operation. Check provider permissions, org access, and policy restrictions.`},ko:{label:`권한 없음`,description:`계정 인증은 되었지만 이 모델 또는 작업을 사용할 권한이 없습니다. 제공자 권한, 조직 접근, 정책 제한을 확인해야 합니다.`},zh:{label:`禁止访问`,description:`账号已认证,但无权使用此模型或操作。请检查提供商权限、组织访问权限和策略限制。`},de:{label:`Verboten`,description:`Das Konto ist authentifiziert, darf dieses Modell oder diese Operation aber nicht nutzen. Prüfe Anbieterberechtigungen, Organisationszugriff und Richtlinien.`}},404:{en:{label:`Not found`,description:`The requested route, model, account, or upstream resource was not found. Verify the model name and opencodex provider configuration.`},ko:{label:`찾을 수 없음`,description:`요청한 경로, 모델, 계정 또는 업스트림 리소스를 찾을 수 없습니다. 모델 이름과 opencodex 제공자 설정을 확인해야 합니다.`},zh:{label:`未找到`,description:`找不到请求的路由、模型、账号或上游资源。请确认模型名称和 opencodex 提供商配置。`},de:{label:`Nicht gefunden`,description:`Die angeforderte Route, das Modell, das Konto oder die Upstream-Ressource wurde nicht gefunden. Prüfe Modellname und opencodex-Anbieterkonfiguration.`}},408:{en:{label:`Request timeout`,description:`The request took too long before the proxy or upstream provider could complete it. Retry with a smaller request or a different provider.`},ko:{label:`요청 시간 초과`,description:`프록시 또는 업스트림 제공자가 요청을 완료하기 전에 시간이 초과되었습니다. 더 작은 요청으로 재시도하거나 다른 제공자로 전환해야 합니다.`},zh:{label:`请求超时`,description:`代理或上游提供商未能在限定时间内完成请求。请缩小请求后重试,或切换提供商。`},de:{label:`Anfrage-Timeout`,description:`Die Anfrage dauerte zu lange, bevor Proxy oder Upstream-Anbieter sie abschließen konnten. Mit kleinerer Anfrage oder anderem Anbieter erneut versuchen.`}},409:{en:{label:`Conflict`,description:`The request conflicts with the current account, session, or provider state. Refresh the session or retry after the active operation finishes.`},ko:{label:`상태 충돌`,description:`요청이 현재 계정, 세션 또는 제공자 상태와 충돌합니다. 세션을 갱신하거나 진행 중인 작업이 끝난 뒤 재시도해야 합니다.`},zh:{label:`状态冲突`,description:`请求与当前账号、会话或提供商状态冲突。请刷新会话,或等待当前操作完成后重试。`},de:{label:`Konflikt`,description:`Die Anfrage kollidiert mit dem aktuellen Konto-, Sitzungs- oder Anbieterstatus. Sitzung aktualisieren oder nach Abschluss der laufenden Operation erneut versuchen.`}},413:{en:{label:`Request too large`,description:`The prompt, attachments, or generated payload exceeds a proxy or upstream limit. Reduce tokens, file size, or conversation history.`},ko:{label:`요청 과대`,description:`프롬프트, 첨부 파일 또는 생성 페이로드가 프록시나 업스트림 한도를 초과했습니다. 토큰, 파일 크기, 대화 기록을 줄여야 합니다.`},zh:{label:`请求过大`,description:`提示、附件或生成的负载超过了代理或上游限制。请减少 token、文件大小或对话历史。`},de:{label:`Anfrage zu groß`,description:`Prompt, Anhänge oder generierte Nutzlast überschreiten ein Proxy- oder Upstream-Limit. Tokens, Dateigröße oder Verlauf reduzieren.`}},422:{en:{label:`Invalid content`,description:`The provider accepted the request format but rejected its contents. Check model options, tool definitions, message roles, and unsupported fields.`},ko:{label:`내용 검증 실패`,description:`제공자가 요청 형식은 받았지만 내용을 거부했습니다. 모델 옵션, 도구 정의, 메시지 역할, 지원되지 않는 필드를 확인해야 합니다.`},zh:{label:`内容无效`,description:`提供商接受了请求格式,但拒绝了其中的内容。请检查模型选项、工具定义、消息角色和不支持的字段。`},de:{label:`Ungültiger Inhalt`,description:`Der Anbieter akzeptierte das Anfrageformat, lehnte den Inhalt aber ab. Prüfe Modelloptionen, Tool-Definitionen, Nachrichtenrollen und nicht unterstützte Felder.`}},424:{en:{label:`Provider dependency failed`,description:`A required upstream dependency failed while opencodex was routing the request. Retry later or switch to another configured provider.`},ko:{label:`제공자 의존성 실패`,description:`opencodex가 요청을 라우팅하는 동안 필요한 업스트림 의존성이 실패했습니다. 나중에 재시도하거나 다른 설정된 제공자로 전환해야 합니다.`},zh:{label:`提供商依赖失败`,description:`opencodex 路由请求时,必需的上游依赖失败。请稍后重试,或切换到另一个已配置的提供商。`},de:{label:`Anbieter-Abhängigkeit fehlgeschlagen`,description:`Eine erforderliche Upstream-Abhängigkeit ist fehlgeschlagen, während opencodex die Anfrage geroutet hat. Später erneut versuchen oder zu einem anderen Anbieter wechseln.`}},429:{en:{label:`Rate limited`,description:`The upstream provider rate or quota limit has been reached. Wait for the quota window to reset or switch account/provider.`},ko:{label:`한도 초과`,description:`업스트림 제공자의 속도 또는 할당량 한도에 도달했습니다. 한도 창이 초기화될 때까지 기다리거나 계정/제공자를 전환해야 합니다.`},zh:{label:`限流`,description:`已达到上游提供商的速率或额度限制。请等待额度窗口重置,或切换账号/提供商。`},de:{label:`Ratenlimit erreicht`,description:`Das Raten- oder Kontingentlimit des Upstream-Anbieters ist erreicht. Auf Reset des Kontingentfensters warten oder Konto/Anbieter wechseln.`}},499:{en:{label:`Client closed request`,description:`The client disconnected or canceled the request before opencodex finished routing it. Retry if the cancellation was accidental.`},ko:{label:`클라이언트 취소`,description:`opencodex가 라우팅을 끝내기 전에 클라이언트 연결이 끊기거나 요청이 취소되었습니다. 의도한 취소가 아니면 다시 시도해야 합니다.`},zh:{label:`客户端已取消`,description:`opencodex 完成路由前,客户端已断开连接或取消请求。如果不是有意取消,请重试。`},de:{label:`Client hat Anfrage geschlossen`,description:`Der Client hat die Verbindung getrennt oder die Anfrage abgebrochen, bevor opencodex das Routing abgeschlossen hat. Bei versehentlichem Abbruch erneut versuchen.`}},500:{en:{label:`Proxy error`,description:`opencodex hit an internal error while handling the request. Retry once, then check proxy logs if it repeats.`},ko:{label:`프록시 오류`,description:`opencodex가 요청을 처리하는 동안 내부 오류가 발생했습니다. 한 번 재시도하고 반복되면 프록시 로그를 확인해야 합니다.`},zh:{label:`代理错误`,description:`opencodex 处理请求时发生内部错误。请先重试一次;如果重复出现,请检查代理日志。`},de:{label:`Proxy-Fehler`,description:`opencodex ist bei der Anfragebearbeitung auf einen internen Fehler gestoßen. Einmal erneut versuchen, bei Wiederholung Proxy-Logs prüfen.`}},502:{en:{label:`Bad upstream response`,description:`The upstream provider returned an invalid or failed response through the proxy. Retry or route the request to another provider.`},ko:{label:`업스트림 응답 오류`,description:`업스트림 제공자가 프록시를 통해 유효하지 않거나 실패한 응답을 반환했습니다. 재시도하거나 다른 제공자로 라우팅해야 합니다.`},zh:{label:`上游响应错误`,description:`上游提供商通过代理返回了无效或失败的响应。请重试,或将请求路由到其他提供商。`},de:{label:`Ungültige Upstream-Antwort`,description:`Der Upstream-Anbieter lieferte über den Proxy eine ungültige oder fehlgeschlagene Antwort. Erneut versuchen oder zu einem anderen Anbieter routen.`}},503:{en:{label:`Provider unavailable`,description:`The proxy or upstream provider is temporarily unavailable or overloaded. Wait briefly, then retry or switch provider.`},ko:{label:`제공자 사용 불가`,description:`프록시 또는 업스트림 제공자가 일시적으로 사용할 수 없거나 과부하 상태입니다. 잠시 기다린 뒤 재시도하거나 제공자를 전환해야 합니다.`},zh:{label:`提供商不可用`,description:`代理或上游提供商暂时不可用或过载。请稍后重试,或切换提供商。`},de:{label:`Anbieter nicht verfügbar`,description:`Proxy oder Upstream-Anbieter ist vorübergehend nicht verfügbar oder überlastet. Kurz warten, dann erneut versuchen oder Anbieter wechseln.`}},504:{en:{label:`Upstream timeout`,description:`The upstream provider did not respond before the proxy timeout. Retry with a smaller request or choose a faster provider.`},ko:{label:`업스트림 시간 초과`,description:`프록시 시간 제한 전에 업스트림 제공자가 응답하지 않았습니다. 더 작은 요청으로 재시도하거나 더 빠른 제공자를 선택해야 합니다.`},zh:{label:`上游超时`,description:`上游提供商未在代理超时前响应。请缩小请求后重试,或选择响应更快的提供商。`},de:{label:`Upstream-Timeout`,description:`Der Upstream-Anbieter antwortete nicht vor dem Proxy-Timeout. Mit kleinerer Anfrage erneut versuchen oder schnelleren Anbieter wählen.`}},529:{en:{label:`Provider overloaded`,description:`The upstream provider is overloaded or capacity-limited. Wait and retry, or switch to another account/provider.`},ko:{label:`제공자 과부하`,description:`업스트림 제공자가 과부하 상태이거나 처리 용량이 제한되었습니다. 기다렸다가 재시도하거나 다른 계정/제공자로 전환해야 합니다.`},zh:{label:`提供商过载`,description:`上游提供商过载或容量受限。请等待后重试,或切换到其他账号/提供商。`},de:{label:`Anbieter überlastet`,description:`Der Upstream-Anbieter ist überlastet oder kapazitätsbegrenzt. Warten und erneut versuchen oder anderes Konto/Anbieter nutzen.`}}},Vt={client:{en:{label:`Request error`,description:`The proxy or upstream provider rejected the request. Check the request shape, credentials, model name, and provider configuration.`},ko:{label:`요청 오류`,description:`프록시 또는 업스트림 제공자가 요청을 거부했습니다. 요청 형식, 자격 증명, 모델 이름, 제공자 설정을 확인해야 합니다.`},zh:{label:`请求错误`,description:`代理或上游提供商拒绝了该请求。请检查请求结构、凭据、模型名称和提供商配置。`},de:{label:`Anfragefehler`,description:`Der Proxy oder Upstream-Anbieter hat die Anfrage abgelehnt. Prüfe Anfrageformat, Anmeldedaten, Modellname und Anbieterkonfiguration.`}},server:{en:{label:`Server or upstream error`,description:`opencodex or an upstream provider failed while processing the request. Retry later or route the request to another provider.`},ko:{label:`서버 또는 업스트림 오류`,description:`opencodex 또는 업스트림 제공자가 요청 처리 중 실패했습니다. 나중에 재시도하거나 다른 제공자로 라우팅해야 합니다.`},zh:{label:`服务器或上游错误`,description:`opencodex 或上游提供商处理请求时失败。请稍后重试,或将请求路由到其他提供商。`},de:{label:`Server- oder Upstream-Fehler`,description:`opencodex oder ein Upstream-Anbieter ist bei der Anfragebearbeitung fehlgeschlagen. Später erneut versuchen oder zu einem anderen Anbieter routen.`}}};function Ht(e){return e===`de`||e===`ko`||e===`zh`?e:`en`}function Ut(e,t){if(e<400)return null;let n=Ht(t);return(Bt[Math.trunc(e)]??(e<500?Vt.client:Vt.server))[n]}function Wt(e,t){if(!e.usage)return;let n=Kt(e),r=[`${t(`logs.tokens.input`)}=${e.usage.inputTokens}`,`${t(`logs.tokens.output`)}=${e.usage.outputTokens}`];return n.read!==void 0&&r.push(`${t(`logs.tokens.cacheRead`)}=${n.read}`),n.write!==void 0&&r.push(`${t(`logs.tokens.cacheWrite`)}=${n.write}`),typeof e.usage.reasoningOutputTokens==`number`&&r.push(`${t(`logs.tokens.reasoning`)}=${e.usage.reasoningOutputTokens}`),e.usageStatus===`estimated`&&r.push(t(`logs.tokens.estimatedNote`)),e.usageStatus===`estimated`&&n.read===void 0&&n.write===void 0&&r.push(t(`logs.tokens.noCacheNote`)),r.join(` · `)}function Gt(e){if(!e.usage)return typeof e.totalTokens==`number`?e.totalTokens:void 0;let t=e.usage.inputTokens+e.usage.outputTokens,n=e.usage.totalTokens??e.totalTokens;return typeof n==`number`?Math.max(n,t):t}function Kt(e){let t=e.usage;if(!t)return{};let n=typeof t.cacheCreationInputTokens==`number`?t.cacheCreationInputTokens:void 0;return{read:typeof t.cacheReadInputTokens==`number`?t.cacheReadInputTokens:typeof t.cachedInputTokens==`number`&&n!==void 0?Math.max(0,t.cachedInputTokens-n):t.cachedInputTokens,write:n}}function qt(e){if(e.requestedSpeedLabel)return e.requestedSpeedLabel;if(e.modelSupportsServiceTier&&e.configuredSpeedLabel)return e.configuredSpeedLabel}function Jt(e){return[`model=${e.model}`,e.resolvedModel?`resolved=${e.resolvedModel}`:void 0,e.requestedServiceTier?`requestedTier=${e.requestedServiceTier}`:void 0,e.configuredServiceTier?`configuredTier=${e.configuredServiceTier}`:void 0,e.responseServiceTier?`responseTier=${e.responseServiceTier}`:void 0,e.modelSupportsServiceTier===void 0?void 0:`supportsTier=${e.modelSupportsServiceTier}`].filter(Boolean).join(` · `)}function Yt({apiBase:e}){let{t,locale:n}=we(),[r,i]=(0,_.useState)([]),[a,o]=(0,_.useState)(!0),[s,c]=(0,_.useState)(null),[l,u]=(0,_.useState)(`all`),d=(0,_.useRef)(null),f=ye.find(e=>e.code===n)?.htmlLang;(0,_.useEffect)(()=>{let t=async()=>{try{i(await(await fetch(`${e}/api/logs`)).json())}catch{}};if(t(),!a)return;let n=setInterval(t,2e3);return()=>clearInterval(n)},[e,a]);let p=e=>e>=200&&e<300?`var(--green)`:e>=400?`var(--red)`:`var(--amber)`,m=s?Ut(s.status,n):null,h=r.filter(e=>l===`all`||(l===`claude`?e.surface===`claude`:e.surface!==`claude`)),g=zt({count:h.length,getScrollElement:()=>d.current,estimateSize:()=>44,overscan:15}),v=g.getVirtualItems(),y=v.length>0?v[0].start:0,b=v.length>0?g.getTotalSize()-v[v.length-1].end:0;return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsxs)(`div`,{className:`page-head`,children:[(0,S.jsx)(`h2`,{children:t(`logs.title`)}),(0,S.jsxs)(`label`,{className:`muted`,style:{fontSize:13,cursor:`pointer`,display:`inline-flex`,alignItems:`center`,gap:6},children:[(0,S.jsx)(`input`,{type:`checkbox`,checked:a,onChange:e=>o(e.target.checked)}),t(`logs.autoRefresh`)]})]}),(0,S.jsx)(`p`,{className:`page-sub`,children:t(`logs.subtitle`)}),(0,S.jsxs)(`div`,{className:`row`,style:{gap:8,marginBottom:12,alignItems:`center`},children:[(0,S.jsx)(`span`,{className:`muted`,style:{fontSize:13},children:t(`logs.filter.surface.label`)}),(0,S.jsx)(`div`,{className:`segmented`,role:`radiogroup`,"aria-label":t(`logs.filter.surface.label`),style:{display:`inline-flex`,borderRadius:999,background:`var(--surface-soft, var(--raised))`,padding:3,gap:2},children:[`all`,`claude`,`codex`].map(e=>(0,S.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":l===e,className:`btn btn-sm${l===e?` btn-primary`:` btn-ghost`}`,style:{borderRadius:999,minWidth:64,fontSize:12,padding:`5px 12px`,border:`none`,background:l===e?void 0:`transparent`,color:l===e?void 0:`var(--muted)`},onClick:()=>u(e),children:t(`logs.filter.surface.${e}`)},e))})]}),h.length===0?(0,S.jsx)(Pe,{title:t(`logs.noRequests`)}):(0,S.jsx)(`div`,{ref:d,className:`tbl-wrap`,style:{overflowY:`auto`,maxHeight:`calc(100vh - 260px)`},children:(0,S.jsxs)(`table`,{className:`tbl`,children:[(0,S.jsx)(`thead`,{style:{position:`sticky`,top:0,zIndex:1,background:`var(--surface)`},children:(0,S.jsxs)(`tr`,{children:[(0,S.jsx)(`th`,{children:t(`logs.col.time`)}),(0,S.jsx)(`th`,{className:`num log-col-tokens`,children:t(`logs.col.tokens`)}),(0,S.jsx)(`th`,{className:`log-col-model`,children:t(`logs.col.model`)}),(0,S.jsx)(`th`,{children:t(`logs.col.effort`)}),(0,S.jsx)(`th`,{children:t(`logs.col.provider`)}),(0,S.jsx)(`th`,{children:t(`logs.col.status`)}),(0,S.jsx)(`th`,{children:t(`logs.col.request`)}),(0,S.jsx)(`th`,{className:`num`,children:t(`logs.col.duration`)})]})}),(0,S.jsxs)(`tbody`,{children:[y>0&&(0,S.jsx)(`tr`,{children:(0,S.jsx)(`td`,{colSpan:8,style:{height:y,padding:0,border:0}})}),v.map(e=>{let r=h[h.length-1-e.index];return(0,S.jsxs)(`tr`,{"data-index":e.index,ref:g.measureElement,children:[(0,S.jsx)(`td`,{className:`muted mono`,children:new Date(r.timestamp).toLocaleTimeString(f)}),(0,S.jsx)(`td`,{className:`num mono log-col-tokens`,title:Wt(r,t),children:(()=>{let e=Gt(r),{read:i,write:a}=Kt(r);return e===void 0?(0,S.jsx)(`span`,{className:`muted`,children:t(`logs.tokens.${r.usageStatus??`unreported`}`)}):(0,S.jsxs)(`span`,{style:{display:`inline-flex`,flexDirection:`column`,alignItems:`flex-end`,gap:2},children:[(0,S.jsxs)(`span`,{children:[r.usageStatus===`estimated`?`~`:``,Ae(e,n)]}),i!==void 0&&i>0&&(0,S.jsxs)(`span`,{className:`muted`,style:{fontSize:11,lineHeight:1},children:[`c `,Ae(i,n)]}),a!==void 0&&a>0&&(0,S.jsxs)(`span`,{className:`muted`,style:{fontSize:11,lineHeight:1},children:[`w `,Ae(a,n)]}),r.usageStatus===`estimated`&&i===void 0&&a===void 0&&(0,S.jsx)(`span`,{className:`muted`,style:{fontSize:11,lineHeight:1},children:t(`logs.tokens.noCache`)})]})})()}),(0,S.jsx)(`td`,{className:`mono log-col-model`,title:Jt(r),children:(0,S.jsxs)(`span`,{style:{display:`inline-flex`,alignItems:`center`,gap:6,flexWrap:`wrap`},children:[(0,S.jsx)(`span`,{children:L(r.resolvedModel??r.model)}),r.surface===`claude`&&(0,S.jsx)(`span`,{className:`badge badge-accent`,children:t(`logs.badge.claude`)}),qt(r)&&(0,S.jsx)(`span`,{className:`badge badge-amber`,children:qt(r)})]})}),(0,S.jsx)(`td`,{className:`mono`,children:r.requestedEffort??`-`}),(0,S.jsx)(`td`,{className:`muted`,children:r.provider}),(0,S.jsx)(`td`,{children:(0,S.jsxs)(`span`,{className:`log-status-cell`,children:[(0,S.jsx)(`span`,{className:`mono`,style:{color:p(r.status),fontWeight:600},children:r.status}),r.status>=400&&(0,S.jsx)(`button`,{type:`button`,className:`log-detail-btn`,onClick:()=>c(r),children:t(`logs.details`)})]})}),(0,S.jsx)(`td`,{className:`muted mono`,children:(0,S.jsx)(`span`,{className:`log-reqid`,title:r.requestId,children:r.requestId??`-`})}),(0,S.jsxs)(`td`,{className:`num`,children:[r.durationMs,`ms`]})]},r.requestId??`${r.timestamp}-${e.index}`)}),b>0&&(0,S.jsx)(`tr`,{children:(0,S.jsx)(`td`,{colSpan:8,style:{height:b,padding:0,border:0}})})]})]})}),s&&(0,S.jsx)(`div`,{role:`dialog`,"aria-modal":`true`,"aria-label":t(`logs.detailTitle`),className:`modal-overlay`,onClick:()=>c(null),children:(0,S.jsxs)(`div`,{className:`modal-card`,onClick:e=>e.stopPropagation(),children:[(0,S.jsxs)(`div`,{className:`modal-head`,children:[(0,S.jsxs)(`h3`,{children:[(0,S.jsx)(`span`,{className:`mono`,style:{color:p(s.status)},children:s.status}),m&&(0,S.jsx)(`span`,{style:{marginLeft:8},children:m.label})]}),(0,S.jsx)(`button`,{className:`btn btn-ghost btn-sm`,onClick:()=>c(null),"aria-label":t(`common.cancel`),children:(0,S.jsx)(k,{})})]}),m&&(0,S.jsx)(`p`,{className:`modal-desc`,children:m.description}),(0,S.jsxs)(`div`,{className:`log-detail-grid`,children:[(0,S.jsx)(`span`,{className:`muted`,children:t(`logs.col.time`)}),(0,S.jsx)(`span`,{className:`mono`,children:new Date(s.timestamp).toLocaleString(f)}),(0,S.jsx)(`span`,{className:`muted`,children:t(`logs.col.request`)}),(0,S.jsx)(`span`,{className:`mono log-detail-break`,children:s.requestId??`-`}),(0,S.jsx)(`span`,{className:`muted`,children:t(`logs.col.model`)}),(0,S.jsx)(`span`,{className:`mono`,children:L(s.resolvedModel??s.model)}),(0,S.jsx)(`span`,{className:`muted`,children:t(`logs.col.provider`)}),(0,S.jsx)(`span`,{children:s.provider}),s.errorCode&&(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(`span`,{className:`muted`,children:t(`logs.col.error`)}),(0,S.jsx)(`span`,{className:`mono`,children:s.errorCode})]}),s.upstreamError&&(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(`span`,{className:`muted`,children:t(`logs.col.upstreamReason`)}),(0,S.jsx)(`span`,{className:`mono log-detail-break`,children:s.upstreamError})]}),(0,S.jsx)(`span`,{className:`muted`,children:t(`logs.col.duration`)}),(0,S.jsxs)(`span`,{className:`mono`,children:[s.durationMs,`ms`]})]}),(0,S.jsx)(`div`,{className:`muted`,style:{fontSize:12,margin:`12px 0 6px`},children:t(`logs.detailRaw`)}),(0,S.jsx)(`pre`,{className:`log-detail-json`,children:JSON.stringify(s,null,2)})]})})]})}var Xt=[`provider`,`usage`,`injection`],Zt=e=>e>0?`[${new Date(e).toLocaleTimeString()}] `:``;function Qt({apiBase:e}){let{t}=we(),[n,r]=(0,_.useState)(null),[i,a]=(0,_.useState)(!1),[o,s]=(0,_.useState)(`provider`),[c,l]=(0,_.useState)([]),[u,d]=(0,_.useState)(!0),[f,p]=(0,_.useState)(!1),[m,h]=(0,_.useState)([]),g=(0,_.useRef)(0),v=(0,_.useRef)(null),y=zt({count:c.length,getScrollElement:()=>v.current,estimateSize:()=>20,overscan:30,getItemKey:e=>c[e].seq});(0,_.useEffect)(()=>{let t=async()=>{try{let t=await fetch(`${e}/api/debug`);t.ok&&r(await t.json())}catch{}};t();let n=setInterval(()=>void t(),2e3);return()=>clearInterval(n)},[e]);let b=(0,_.useCallback)(e=>e===`provider`?!!n?.enabled:e===`usage`?!!n?.usage:!!n?.injection,[n]);(0,_.useEffect)(()=>{if(!n||b(o))return;let e=Xt.find(b);if(!e)return;let t=window.setTimeout(()=>s(e),0);return()=>window.clearTimeout(t)},[n,o,b]);let x=b(o),C=o===`provider`?`${e}/api/debug/logs`:o===`usage`?`${e}/api/debug/usage-logs`:`${e}/api/debug/injection-logs`,w=(0,_.useCallback)(async e=>{if(!x){l([]),g.current=0;return}p(!0);try{let t=new URLSearchParams({limit:`500`});!e&&g.current>0&&t.set(`after`,String(g.current));let n=await fetch(`${C}?${t}`);if(!n.ok)return;let r=await n.json();if(r.length===0)return;l(t=>(e?r:[...t,...r]).slice(-2e3)),g.current=r[r.length-1].seq}catch{}finally{p(!1)}},[C,x]);(0,_.useEffect)(()=>{g.current=0;let e=window.setTimeout(()=>{l([]),w(!0)},0);return()=>window.clearTimeout(e)},[o,x,w]),(0,_.useEffect)(()=>{if(!u||!x)return;let e=setInterval(()=>void w(!1),1e3);return()=>clearInterval(e)},[u,x,w]),(0,_.useEffect)(()=>{u&&c.length>0&&y.scrollToIndex(c.length-1,{align:`end`})},[c,u,y]),(0,_.useEffect)(()=>{if(!n?.claude){h([]);return}let t=async()=>{try{let t=await fetch(`${e}/api/claude/inbound-debug`);if(t.ok){let e=await t.json();h(Array.isArray(e.entries)?e.entries:[])}}catch{}};t();let r=setInterval(()=>void t(),2e3);return()=>clearInterval(r)},[e,n?.claude]);let T=async(t,n)=>{a(!0);try{let i=await fetch(`${e}/api/debug`,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify({[t]:n})});i.ok&&r(await i.json())}catch{}finally{a(!1)}},E=async()=>{a(!0);try{let t=await fetch(`${e}/api/debug`,{method:`PUT`,headers:{"content-type":`application/json`},body:JSON.stringify({reset:!0})});t.ok&&r(await t.json())}catch{}finally{a(!1)}};return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsxs)(`div`,{className:`page-head`,children:[(0,S.jsx)(`h2`,{children:t(`debug.title`)}),(0,S.jsxs)(`div`,{style:{display:`inline-flex`,alignItems:`center`,gap:12},children:[(0,S.jsxs)(`button`,{type:`button`,className:`btn btn-ghost btn-sm`,disabled:f||!x,onClick:()=>void w(!0),children:[(0,S.jsx)(A,{}),` `,t(`debug.refresh`)]}),(0,S.jsxs)(`label`,{className:`muted`,style:{fontSize:13,cursor:`pointer`,display:`inline-flex`,alignItems:`center`,gap:6},children:[(0,S.jsx)(`input`,{type:`checkbox`,checked:u,onChange:e=>d(e.target.checked)}),t(`debug.follow`)]})]})]}),(0,S.jsx)(`p`,{className:`page-sub`,children:t(`debug.subtitle`)}),n?(0,S.jsxs)(`div`,{className:`card`,style:{marginBottom:16,padding:`12px 14px`},children:[(0,S.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:12,flexWrap:`wrap`},children:[(0,S.jsx)(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:16},children:[`debug`,`usage`,`injection`,`claude`].map(e=>{let r=e===`debug`?n.enabled:e===`usage`?n.usage:e===`injection`?n.injection:n.claude;return(0,S.jsxs)(`div`,{style:{display:`inline-flex`,alignItems:`center`,gap:10,minWidth:220},children:[(0,S.jsx)(je,{on:r,disabled:i,label:t(`debug.${e}`),onClick:()=>void T(e,!r)}),(0,S.jsx)(`span`,{style:{fontSize:13},children:t(`debug.${e}`)})]},e)})}),(0,S.jsx)(`button`,{type:`button`,className:`btn btn-ghost btn-sm`,disabled:i,onClick:()=>void E(),children:t(`debug.reset`)})]}),(n.enabled||n.usage||n.injection)&&(0,S.jsxs)(`div`,{style:{display:`inline-flex`,gap:6,marginTop:12},children:[n.enabled&&(0,S.jsx)(`button`,{type:`button`,className:`btn btn-sm${o===`provider`?` btn-primary`:` btn-ghost`}`,onClick:()=>s(`provider`),children:t(`debug.streamProvider`)}),n.usage&&(0,S.jsx)(`button`,{type:`button`,className:`btn btn-sm${o===`usage`?` btn-primary`:` btn-ghost`}`,onClick:()=>s(`usage`),children:t(`debug.streamUsage`)}),n.injection&&(0,S.jsx)(`button`,{type:`button`,className:`btn btn-sm${o===`injection`?` btn-primary`:` btn-ghost`}`,onClick:()=>s(`injection`),children:t(`debug.streamInjection`)})]})]}):(0,S.jsx)(`div`,{className:`empty`,children:t(`debug.loading`)}),n?.claude&&(0,S.jsxs)(`div`,{className:`card`,style:{marginBottom:16,padding:`12px 14px`},children:[(0,S.jsx)(`div`,{style:{fontWeight:600,marginBottom:4},children:t(`debug.claudeInbound.title`)}),(0,S.jsx)(`div`,{className:`muted`,style:{fontSize:13,marginBottom:10},children:t(`debug.claudeInbound.sub`)}),m.length===0?(0,S.jsx)(`div`,{className:`muted`,style:{fontSize:13},children:t(`debug.claudeInbound.empty`)}):(0,S.jsx)(`div`,{style:{overflowX:`auto`},children:(0,S.jsxs)(`table`,{className:`table`,style:{fontSize:12},children:[(0,S.jsx)(`thead`,{children:(0,S.jsxs)(`tr`,{children:[(0,S.jsx)(`th`,{children:t(`debug.claudeInbound.time`)}),(0,S.jsx)(`th`,{children:t(`debug.claudeInbound.endpoint`)}),(0,S.jsx)(`th`,{children:t(`debug.claudeInbound.model`)}),(0,S.jsx)(`th`,{children:`thinking`}),(0,S.jsx)(`th`,{children:`effort`}),(0,S.jsx)(`th`,{children:`beta`}),(0,S.jsx)(`th`,{children:`metadata`}),(0,S.jsx)(`th`,{children:`system`})]})}),(0,S.jsx)(`tbody`,{children:m.map((e,n)=>(0,S.jsxs)(`tr`,{children:[(0,S.jsx)(`td`,{className:`muted mono`,children:new Date(e.at).toLocaleTimeString()}),(0,S.jsx)(`td`,{className:`mono`,children:e.endpoint}),(0,S.jsxs)(`td`,{className:`mono`,title:e.resolvedModel,children:[e.model,e.resolvedModel&&e.resolvedModel!==e.model&&(0,S.jsxs)(`span`,{className:`muted`,children:[` → `,e.resolvedModel]})]}),(0,S.jsxs)(`td`,{className:`mono`,children:[e.thinkingType??`-`,e.thinkingBudgetTokens!==void 0&&(0,S.jsxs)(`span`,{className:`muted`,children:[` (`,e.thinkingBudgetTokens,`)`]})]}),(0,S.jsx)(`td`,{className:`mono`,children:e.outputConfigEffort??`-`}),(0,S.jsx)(`td`,{className:`mono`,title:e.anthropicBeta,style:{maxWidth:160,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e.anthropicBeta??`-`}),(0,S.jsx)(`td`,{className:`mono`,title:e.metadataKeys?.join(`, `),children:e.hasMetadataUserId?`user_id ${e.userIdTag??``}`:t(`debug.claudeInbound.none`)}),(0,S.jsx)(`td`,{className:`mono`,children:e.hasSystem?e.systemTag??`yes`:t(`debug.claudeInbound.none`)})]},`${e.at}-${n}`))})]})})]}),n&&!x?(0,S.jsxs)(`div`,{className:`empty`,children:[(0,S.jsx)(`div`,{style:{fontWeight:600,marginBottom:6},children:t(`debug.emptyTitle`)}),(0,S.jsx)(`div`,{className:`muted`,style:{fontSize:13,maxWidth:560,marginInline:`auto`},children:t(`debug.empty`)})]}):n&&x&&c.length===0?(0,S.jsxs)(`div`,{className:`empty`,children:[(0,S.jsx)(`div`,{style:{fontWeight:600,marginBottom:6},children:t(`debug.noLinesTitle`)}),(0,S.jsx)(`div`,{className:`muted`,style:{fontSize:13,maxWidth:560,marginInline:`auto`},children:t(`debug.noLines.${o}`)})]}):n&&x?(0,S.jsx)(`div`,{ref:v,className:`log-detail-json`,style:{maxHeight:`calc(100vh - 280px)`,overflow:`auto`},children:(0,S.jsx)(`div`,{style:{position:`relative`,height:y.getTotalSize(),width:`100%`},children:y.getVirtualItems().map(e=>(0,S.jsx)(`div`,{ref:y.measureElement,"data-index":e.index,style:{position:`absolute`,top:0,left:0,width:`100%`,transform:`translateY(${e.start}px)`},children:`${Zt(c[e.index].at)}${c[e.index].line}`},e.key))})}):null]})}function $t(e){return`${Math.round(e*100)}%`}function en(e,t){let n=`${t}/${e}`,r=0;for(let e=0;e<n.length;e++)r=r*31+n.charCodeAt(e)>>>0;return`hsl(${r%360} 55% 55%)`}function tn(e){let t=new Map(e.map(e=>[e.date,e])),n=[],r=new Date;r.setHours(0,0,0,0),r.setDate(r.getDate()-6);for(let e=0;e<7;e++){let e=`${r.getFullYear()}-${String(r.getMonth()+1).padStart(2,`0`)}-${String(r.getDate()).padStart(2,`0`)}`,i=t.get(e);n.push({date:e,requests:i?.requests??0,measuredRequests:i?.measuredRequests??0,reportedRequests:i?.reportedRequests??0,totalTokens:i?.totalTokens??0,models:i?.models??[]}),r.setDate(r.getDate()+1)}return n}function nn(e){let t=e.filter(e=>e>0).sort((e,t)=>e-t);if(t.length===0)return[0,0,0,0];let n=e=>t[Math.min(t.length-1,Math.floor(e*t.length))];return[n(.25),n(.5),n(.75),n(.95)]}function rn(e,t){return e<=0?0:e<=t[0]?1:e<=t[1]?2:e<=t[2]?3:4}function an(e){let t=nn(e.map(e=>e.totalTokens)),n=new Map(e.map(e=>[e.date,e])),r=new Date;r.setHours(0,0,0,0);let i=new Date(r);i.setDate(i.getDate()-364),i.setDate(i.getDate()-i.getDay());let a=[],o=[],s=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],c=-4,l=-1,u=[],d=new Date(i);for(;d<=r;){let e=`${d.getFullYear()}-${String(d.getMonth()+1).padStart(2,`0`)}-${String(d.getDate()).padStart(2,`0`)}`,r=d.getMonth();d.getDay()===0&&r!==l&&a.length-c>=4&&(o.push({label:s[r],col:a.length}),c=a.length,l=r);let i=n.get(e);u.push({date:e,requests:i?.requests??0,totalTokens:i?.totalTokens??0,level:i?rn(i.totalTokens,t):0,dayOfWeek:d.getDay()}),d.getDay()===6&&(a.push(u),u=[]),d.setDate(d.getDate()+1)}if(u.length>0){for(;u.length<7;)u.push({date:``,requests:0,totalTokens:0,level:0,dayOfWeek:u.length});a.push(u)}return{weeks:a,months:o,buckets:t}}function on({apiBase:e}){let{t,locale:n}=we(),[r,i]=(0,_.useState)(`30d`),[a,o]=(0,_.useState)(null),[s,c]=(0,_.useState)(!0),[l,u]=(0,_.useState)(``),[d,f]=(0,_.useState)(null),[p,m]=(0,_.useState)(null),h=(0,_.useCallback)(async(t,n)=>{c(!0);try{let r=await fetch(`${e}/api/usage?range=${t}`,{signal:n});if(!r.ok)throw Error(`fetch failed`);let i=await r.json();if(n.aborted)return;o(i)}catch{if(n.aborted)return;o(null)}finally{n.aborted||c(!1)}},[e]);(0,_.useEffect)(()=>{let e=new AbortController,t=window.setTimeout(()=>{h(r,e.signal)},0);return()=>{window.clearTimeout(t),e.abort()}},[h,r]);let g=(0,_.useMemo)(()=>an(a?.days??[]),[a?.days]),v=(0,_.useRef)(null);(0,_.useEffect)(()=>{let e=v.current;if(!e)return;let t=()=>{e.scrollLeft=e.scrollWidth};t();let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[g,r,s]);let y=(0,_.useMemo)(()=>tn(a?.days??[]),[a?.days]),b=(0,_.useMemo)(()=>(a?.days??[]).filter(e=>e.requests>0).length,[a?.days]),x=(0,_.useMemo)(()=>{let e=l.trim().toLowerCase(),t=[...a?.models??[]].sort((e,t)=>t.totalTokens-e.totalTokens);return e?t.filter(t=>t.model.toLowerCase().includes(e)||t.provider.toLowerCase().includes(e)||(t.resolvedModel??``).toLowerCase().includes(e)).slice(0,100):t.slice(0,100)},[a?.models,l]),C=(0,_.useMemo)(()=>[...a?.providers??[]].sort((e,t)=>t.totalTokens-e.totalTokens),[a?.providers]);return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsxs)(`div`,{className:`page-head`,children:[(0,S.jsx)(`h2`,{children:t(`usage.title`)}),(0,S.jsx)(`div`,{className:`usage-range`,role:`group`,"aria-label":t(`usage.title`),children:[`all`,`30d`,`7d`].map(e=>(0,S.jsx)(`button`,{type:`button`,className:`usage-range-btn${r===e?` active`:``}`,onClick:()=>i(e),children:t(`usage.range.${e}`)},e))})]}),(0,S.jsx)(`p`,{className:`page-sub`,children:t(`usage.subtitle`)}),s&&!a?(0,S.jsx)(Pe,{title:t(`usage.loading`)}):!a||a.summary.requests===0?(0,S.jsx)(Pe,{title:t(`usage.empty`)}):(0,S.jsxs)(S.Fragment,{children:[(0,S.jsxs)(`div`,{className:`usage-cards usage-cards-3x2`,children:[(0,S.jsxs)(`div`,{className:`stat`,children:[(0,S.jsx)(`div`,{className:`muted`,children:t(`usage.card.requests`)}),(0,S.jsx)(`div`,{className:`stat-value`,children:a.summary.requests})]}),(0,S.jsxs)(`div`,{className:`stat`,children:[(0,S.jsx)(`div`,{className:`muted`,children:t(`usage.card.measured`)}),(0,S.jsx)(`div`,{className:`stat-value`,children:a.summary.measuredRequests})]}),(0,S.jsxs)(`div`,{className:`stat`,children:[(0,S.jsx)(`div`,{className:`muted`,children:t(`usage.card.totalTokens`)}),(0,S.jsx)(`div`,{className:`stat-value`,children:Ae(a.summary.totalTokens,n)})]}),(0,S.jsxs)(`div`,{className:`stat`,title:t(`usage.card.cachedTokensHint`),children:[(0,S.jsx)(`div`,{className:`muted`,children:t(`usage.card.cachedTokens`)}),(0,S.jsx)(`div`,{className:`stat-value`,children:Ae(a.summary.cacheReadInputTokens??a.summary.cachedInputTokens,n)}),(a.summary.cacheCreationInputTokens??0)>0&&(0,S.jsxs)(`div`,{className:`muted`,style:{fontSize:11},children:[t(`usage.card.cacheWriteTokens`),`: `,Ae(a.summary.cacheCreationInputTokens??0,n)]})]}),(0,S.jsxs)(`div`,{className:`stat`,children:[(0,S.jsx)(`div`,{className:`muted`,children:t(`usage.card.coverage`)}),(0,S.jsx)(`div`,{className:`stat-value`,children:$t(a.summary.coverageRatio)})]}),(0,S.jsxs)(`div`,{className:`stat`,children:[(0,S.jsx)(`div`,{className:`muted`,children:t(`usage.card.activeDays`)}),(0,S.jsx)(`div`,{className:`stat-value`,children:b})]})]}),(0,S.jsxs)(`section`,{className:`panel`,style:{marginTop:16},children:[(0,S.jsx)(`h3`,{className:`panel-title`,children:t(`usage.section.heatmap`)}),r===`7d`?(0,S.jsx)(`div`,{className:`daybars`,children:y.map((e,t)=>{let r=Math.max(1,...y.map(e=>e.totalTokens)),i=Math.round(e.totalTokens/r*100),a=e.date.slice(5);return(0,S.jsxs)(`div`,{className:`daybar`,onMouseEnter:()=>f(t),onMouseLeave:()=>f(e=>e===t?null:e),children:[(0,S.jsx)(`div`,{className:`daybar-track`,children:(0,S.jsxs)(`div`,{className:`daybar-stack`,style:{height:`${i}%`},children:[e.models.map(e=>(0,S.jsx)(`div`,{className:`daybar-seg`,style:{flexGrow:e.totalTokens,background:en(e.model,e.provider)}},`${e.provider}/${e.model}`)),e.models.length===0&&e.totalTokens>0&&(0,S.jsx)(`div`,{className:`daybar-seg`,style:{flexGrow:1,background:`var(--green)`}})]})}),d===t&&e.totalTokens>0&&(0,S.jsxs)(`div`,{className:`daybar-tip`,children:[(0,S.jsx)(`div`,{className:`daybar-tip-date`,children:e.date}),e.models.slice(0,8).map(e=>(0,S.jsxs)(`div`,{className:`daybar-tip-row`,children:[(0,S.jsx)(`span`,{className:`daybar-tip-swatch`,style:{background:en(e.model,e.provider)}}),(0,S.jsx)(`span`,{className:`daybar-tip-name`,children:L(e.model)}),(0,S.jsx)(`span`,{className:`daybar-tip-val`,children:Ae(e.totalTokens,n)})]},`${e.provider}/${e.model}`))]}),(0,S.jsx)(`span`,{className:`daybar-count`,children:Ae(e.totalTokens,n)}),(0,S.jsx)(`span`,{className:`daybar-label muted`,children:a})]},t)})}):(0,S.jsxs)(`div`,{className:`heatmap`,ref:v,children:[(0,S.jsxs)(`div`,{className:`heatmap-months`,style:{gridTemplateColumns:`28px repeat(${g.weeks.length}, calc(var(--hm-cell) + var(--hm-gap)))`},children:[(0,S.jsx)(`span`,{className:`heatmap-day-spacer`}),g.months.map((e,t)=>(0,S.jsx)(`span`,{className:`heatmap-month`,style:{gridColumn:e.col+2},children:e.label},t))]}),(0,S.jsxs)(`div`,{className:`heatmap-body`,children:[(0,S.jsxs)(`div`,{className:`heatmap-days`,children:[(0,S.jsx)(`span`,{}),(0,S.jsx)(`span`,{children:`Mon`}),(0,S.jsx)(`span`,{}),(0,S.jsx)(`span`,{children:`Wed`}),(0,S.jsx)(`span`,{}),(0,S.jsx)(`span`,{children:`Fri`}),(0,S.jsx)(`span`,{})]}),(0,S.jsx)(`div`,{className:`heatmap-grid`,style:{gridTemplateColumns:`repeat(${g.weeks.length}, var(--hm-cell))`},children:g.weeks.map((e,t)=>(0,S.jsx)(`div`,{className:`heatmap-week`,children:e.map((e,n)=>(0,S.jsx)(`div`,{className:`heatmap-cell heatmap-cell-${e.level}`,onMouseEnter:r=>{if(!e.date)return;let i=r.target.getBoundingClientRect();m({wi:t,di:n,x:i.left+i.width/2,y:i.top})},onMouseLeave:()=>m(e=>e?.wi===t&&e?.di===n?null:e)},`${t}-${n}`))},t))})]}),p&&(()=>{let e=g.weeks[p.wi]?.[p.di];return e?.date?(0,S.jsxs)(`div`,{className:`heatmap-tip`,style:{left:p.x,top:p.y},children:[(0,S.jsx)(`div`,{className:`heatmap-tip-date`,children:e.date}),(0,S.jsxs)(`div`,{className:`heatmap-tip-val`,children:[Ae(e.totalTokens,n),` tokens`]}),(0,S.jsxs)(`div`,{className:`heatmap-tip-req muted`,children:[e.requests,` requests`]})]}):null})(),(0,S.jsxs)(`div`,{className:`heatmap-legend muted`,children:[(0,S.jsx)(`span`,{children:t(`usage.heatmap.less`)}),[0,1,2,3,4].map(e=>(0,S.jsx)(`span`,{className:`heatmap-cell heatmap-cell-${e}`},e)),(0,S.jsx)(`span`,{children:t(`usage.heatmap.more`)})]})]})]}),(0,S.jsxs)(`section`,{className:`panel`,style:{marginTop:16},children:[(0,S.jsxs)(`div`,{className:`panel-head`,children:[(0,S.jsx)(`h3`,{className:`panel-title`,children:t(`usage.section.models`)}),(0,S.jsx)(`input`,{className:`input`,placeholder:t(`usage.search.models`),value:l,onChange:e=>u(e.target.value)})]}),(0,S.jsx)(`div`,{className:`tbl-wrap usage-scroll`,children:(0,S.jsxs)(`table`,{className:`tbl`,children:[(0,S.jsx)(`thead`,{children:(0,S.jsxs)(`tr`,{children:[(0,S.jsx)(`th`,{children:t(`logs.col.model`)}),(0,S.jsx)(`th`,{children:t(`logs.col.provider`)}),(0,S.jsx)(`th`,{className:`num`,children:t(`usage.col.requests`)}),(0,S.jsx)(`th`,{className:`num`,children:t(`usage.col.measured`)}),(0,S.jsx)(`th`,{className:`num`,children:t(`usage.col.tokens`)}),(0,S.jsx)(`th`,{children:t(`usage.col.share`)})]})}),(0,S.jsx)(`tbody`,{children:x.map(e=>(0,S.jsxs)(`tr`,{children:[(0,S.jsx)(`td`,{className:`mono`,children:L(e.resolvedModel??e.model)}),(0,S.jsx)(`td`,{className:`muted`,children:e.provider}),(0,S.jsx)(`td`,{className:`num`,children:e.requests}),(0,S.jsx)(`td`,{className:`num`,children:e.measuredRequests}),(0,S.jsx)(`td`,{className:`num mono`,children:Ae(e.totalTokens,n)}),(0,S.jsx)(`td`,{children:(0,S.jsx)(`div`,{className:`usage-bar`,children:(0,S.jsx)(`div`,{className:`usage-bar-fill`,style:{width:`${Math.round(e.shareRatio*100)}%`}})})})]},`${e.provider}/${e.model}/${e.resolvedModel??``}`))})]})})]}),(0,S.jsxs)(`section`,{className:`panel`,style:{marginTop:16},children:[(0,S.jsx)(`h3`,{className:`panel-title`,children:t(`usage.section.providers`)}),(0,S.jsx)(`div`,{className:`tbl-wrap usage-scroll`,children:(0,S.jsxs)(`table`,{className:`tbl`,children:[(0,S.jsx)(`thead`,{children:(0,S.jsxs)(`tr`,{children:[(0,S.jsx)(`th`,{children:t(`logs.col.provider`)}),(0,S.jsx)(`th`,{className:`num`,children:t(`usage.col.requests`)}),(0,S.jsx)(`th`,{className:`num`,children:t(`usage.col.measured`)}),(0,S.jsx)(`th`,{className:`num`,children:t(`usage.col.tokens`)}),(0,S.jsx)(`th`,{children:t(`usage.col.share`)})]})}),(0,S.jsx)(`tbody`,{children:C.map(e=>(0,S.jsxs)(`tr`,{children:[(0,S.jsx)(`td`,{className:`mono`,children:e.provider}),(0,S.jsx)(`td`,{className:`num`,children:e.requests}),(0,S.jsx)(`td`,{className:`num`,children:e.measuredRequests}),(0,S.jsx)(`td`,{className:`num mono`,children:Ae(e.totalTokens,n)}),(0,S.jsx)(`td`,{children:(0,S.jsx)(`div`,{className:`usage-bar`,children:(0,S.jsx)(`div`,{className:`usage-bar-fill`,style:{width:`${Math.round(e.shareRatio*100)}%`}})})})]},e.provider))})]})})]}),(0,S.jsxs)(`section`,{className:`panel`,style:{marginTop:16},children:[(0,S.jsx)(`h3`,{className:`panel-title`,children:t(`usage.section.coverage`)}),(0,S.jsxs)(`div`,{className:`usage-cards usage-cards-3x2`,children:[(0,S.jsxs)(`div`,{className:`stat`,children:[(0,S.jsx)(`div`,{className:`muted`,children:t(`usage.coverage.measured`)}),(0,S.jsx)(`div`,{className:`stat-value`,children:a.summary.measuredRequests})]}),(0,S.jsxs)(`div`,{className:`stat`,children:[(0,S.jsx)(`div`,{className:`muted`,children:t(`usage.coverage.reported`)}),(0,S.jsx)(`div`,{className:`stat-value`,children:a.summary.reportedRequests})]}),(0,S.jsxs)(`div`,{className:`stat`,children:[(0,S.jsx)(`div`,{className:`muted`,children:t(`usage.coverage.estimated`)}),(0,S.jsx)(`div`,{className:`stat-value`,children:a.summary.estimatedRequests})]}),(0,S.jsxs)(`div`,{className:`stat`,children:[(0,S.jsx)(`div`,{className:`muted`,children:t(`logs.tokens.unreported`)}),(0,S.jsx)(`div`,{className:`stat-value`,children:a.summary.unreportedRequests})]}),(0,S.jsxs)(`div`,{className:`stat`,children:[(0,S.jsx)(`div`,{className:`muted`,children:t(`logs.tokens.unsupported`)}),(0,S.jsx)(`div`,{className:`stat-value`,children:a.summary.unsupportedRequests})]})]}),(0,S.jsx)(`p`,{className:`muted`,style:{marginTop:12,fontSize:13},children:t(`usage.coverage.note`)})]})]})]})}function sn({apiBase:e,onClose:t,onAdded:n}){let r=Te(),i=(0,_.useRef)(!0),a=(0,_.useRef)(null),o=(0,_.useRef)(null),s=(0,_.useRef)(null),c=(0,_.useRef)(null);(0,_.useEffect)(()=>()=>{i.current=!1,a.current&&=(clearInterval(a.current),null),o.current&&=(clearTimeout(o.current),null)},[]);let[l,u]=(0,_.useState)(`pick`),[d,f]=(0,_.useState)(``),[p,m]=(0,_.useState)(``),[h,g]=(0,_.useState)(``),[v,y]=(0,_.useState)(!1),b=()=>{a.current&&=(clearInterval(a.current),null),o.current&&=(clearTimeout(o.current),null)},x=async()=>{let t=s.current;s.current=null,c.current=null,g(``),b(),t&&await fetch(`${e}/api/codex-auth/login/cancel`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({flowId:t})}).catch(()=>{})},C=()=>{l===`oauth-waiting`&&x(),t()};return(0,_.useEffect)(()=>{let e=e=>{e.key===`Escape`&&C()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)}),(0,S.jsx)(`div`,{className:`modal-overlay`,onClick:C,children:(0,S.jsxs)(`div`,{className:`modal-card`,onClick:e=>e.stopPropagation(),style:{maxWidth:440},children:[l===`pick`&&(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(`h3`,{style:{marginBottom:4},children:r(`codexAuth.addTitle`)}),(0,S.jsx)(`p`,{className:`modal-desc`,children:r(`codexAuth.addPickDesc`)}),(0,S.jsx)(`label`,{className:`field-label`,children:r(`codexAuth.addIdLabel`)}),(0,S.jsx)(`input`,{className:`input`,placeholder:`codex-work, codex-alt, team...`,value:d,onChange:e=>f(e.target.value),style:{marginBottom:12}}),(0,S.jsx)(`button`,{className:`list-row`,onClick:async()=>{m(``);try{let l=d.trim(),f=await fetch(`${e}/api/codex-auth/login`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(l?{id:l}:{})}),p=await f.json();if(f.status===409){m(r(`codexAuth.oauthAlreadyInProgress`));return}if(p.url){s.current=p.flowId??null,g(p.url),c.current=window.open(p.url,`_blank`),c.current&&(c.current.opener=null),u(`oauth-waiting`),b();let d=p.flowId??``,f=d?`${e}/api/codex-auth/login-status?flowId=${encodeURIComponent(d)}${l?`&accountId=${encodeURIComponent(l)}`:``}`:`${e}/api/codex-auth/login-status`;a.current=setInterval(async()=>{try{let e=await fetch(f).then(e=>e.json());e.status===`done`?(b(),s.current=null,c.current=null,n(),t()):e.status===`error`||e.status===`expired`?(b(),s.current=null,c.current=null,i.current&&(u(`pick`),m(e.error??`Login failed`))):c.current?.closed&&(await x(),i.current&&(u(`pick`),m(r(`codexAuth.oauthCancelled`))))}catch{}},2e3),o.current=setTimeout(()=>{a.current&&(x(),i.current&&(u(`pick`),m(r(`modal.loginTimeout`))))},3e5)}p.error&&!p.url&&m(p.error)}catch(e){m(String(e))}},style:{marginBottom:8},children:(0,S.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:10},children:[(0,S.jsx)(he,{width:20}),(0,S.jsxs)(`div`,{children:[(0,S.jsx)(`div`,{className:`title`,children:r(`codexAuth.oauthLogin`)}),(0,S.jsx)(`div`,{className:`sub`,children:r(`codexAuth.oauthDesc`)})]})]})}),p&&(0,S.jsx)(`div`,{className:`notice notice-err`,style:{marginTop:8},children:p}),(0,S.jsx)(`button`,{className:`btn btn-ghost`,onClick:C,style:{width:`100%`},children:r(`codexAuth.cancel`)})]}),l===`oauth-waiting`&&(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(`h3`,{style:{marginBottom:4},children:r(`codexAuth.oauthLogin`)}),(0,S.jsx)(`p`,{className:`modal-desc`,children:r(`codexAuth.oauthWaiting`)}),(0,S.jsxs)(`button`,{className:`btn btn-ghost`,onClick:async()=>{if(h)try{if(navigator.clipboard?.writeText)await navigator.clipboard.writeText(h);else{let e=document.createElement(`textarea`);e.value=h,e.style.position=`fixed`,e.style.opacity=`0`,document.body.appendChild(e),e.select(),document.execCommand(`copy`),document.body.removeChild(e)}y(!0),setTimeout(()=>{i.current&&y(!1)},2500)}catch{m(r(`codexAuth.loginLinkCopyFailed`))}},disabled:!h,style:{width:`100%`,justifyContent:`center`,marginTop:12},children:[(0,S.jsx)(de,{width:14}),` `,r(v?`codexAuth.loginLinkCopied`:`codexAuth.copyLoginLink`)]}),p&&(0,S.jsx)(`div`,{className:`notice notice-err`,style:{marginTop:12},children:p}),(0,S.jsx)(`div`,{style:{textAlign:`center`,padding:`24px 0`},children:(0,S.jsx)(`span`,{className:`spin`,style:{width:24,height:24}})}),(0,S.jsx)(`button`,{className:`btn btn-ghost`,onClick:C,style:{width:`100%`},children:r(`codexAuth.cancel`)})]})]})})}function cn({apiBase:e}){let t=Te(),[n,r]=(0,_.useState)([]),[i,a]=(0,_.useState)(null),[o,s]=(0,_.useState)(80),[c,l]=(0,_.useState)(null),[u,d]=(0,_.useState)(!1),[f,p]=(0,_.useState)(``),[m,h]=(0,_.useState)(!1),[g,v]=(0,_.useState)(null),[y,b]=(0,_.useState)(!1),[x,C]=(0,_.useState)(!1),[w,T]=(0,_.useState)(null),[E,ee]=(0,_.useState)(!1),D=(0,_.useCallback)(async(t=!1)=>{try{let[n,i]=await Promise.all([fetch(`${e}/api/codex-auth/accounts${t?`?refresh=1`:``}`).then(e=>e.json()),fetch(`${e}/api/codex-auth/active`).then(e=>e.json())]);return r(n.accounts??[]),a(i.activeCodexAccountId??null),s(i.autoSwitchThreshold??80),!0}catch{return!1}},[e]);(0,_.useEffect)(()=>{let e=window.setTimeout(()=>{D()},0),t=window.setInterval(()=>{D()},3e4);return()=>{window.clearTimeout(e),window.clearInterval(t)}},[D]);let te=async r=>{await fetch(`${e}/api/codex-auth/active`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({accountId:r})}),a(r),l(null),p(t(`codexAuth.switched`,{email:r&&r!==`__main__`?n.find(e=>e.id===r)?.email??r:`main`})),setTimeout(()=>p(``),5e3)},ne=async n=>{window.confirm(t(`codexAuth.removeConfirm`,{id:n}))&&(await fetch(`${e}/api/codex-auth/accounts?id=${n}`,{method:`DELETE`}),D())},O=async()=>{let t=o>0?0:80;await fetch(`${e}/api/codex-auth/auto-switch`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({threshold:t})}),s(t)},ie=async()=>{h(!0);try{p(t(await D(!0)?`codexAuth.quotaRefreshed`:`codexAuth.quotaRefreshFailed`)),setTimeout(()=>p(``),5e3)}finally{h(!1)}},M=async t=>{v(t),b(!1),T(null),ee(!0);try{let n=await fetch(`${e}/api/codex-auth/reset-credits?accountId=${encodeURIComponent(t.id)}`);n.ok&&T(((await n.json()).credits??[]).sort((e,t)=>new Date(e.granted_at).getTime()-new Date(t.granted_at).getTime()))}catch{}finally{ee(!1)}},ae=async n=>{C(!0);try{let r=await fetch(`${e}/api/codex-auth/reset-credits/consume`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({accountId:n})});if(!r.ok){alert(t(`codexAuth.resetError`));return}let i=await r.json();if(i.code===`reset`||i.code===`already_redeemed`){let e=g?.quota?.resetCredits??1;v(null),b(!1),await D(!0),p(t(`codexAuth.resetSuccess`,{remaining:String(Math.max(0,e-1))})),setTimeout(()=>p(``),5e3)}else i.code===`nothing_to_reset`?alert(t(`codexAuth.resetNothingToReset`)):i.code===`no_credit`?alert(t(`codexAuth.resetNoCredit`)):alert(t(`codexAuth.resetError`))}catch{alert(t(`codexAuth.resetError`))}finally{C(!1)}},N=n.find(e=>e.isMain),P=n.filter(e=>!e.isMain),oe=e=>i===e,F=!i||i===`__main__`;return(0,S.jsxs)(`div`,{children:[(0,S.jsxs)(`div`,{className:`page-head`,children:[(0,S.jsx)(`h2`,{className:`page-title`,children:t(`nav.codexAuth`)}),(0,S.jsxs)(`button`,{className:`btn btn-sm btn-ghost`,onClick:ie,disabled:m,children:[(0,S.jsx)(A,{width:14}),` `,t(m?`codexAuth.refreshingQuota`:`codexAuth.refreshQuota`)]})]}),f&&(0,S.jsx)(Me,{tone:`ok`,children:f}),(0,S.jsxs)(`div`,{className:`card ${F?`card-active`:``}`,onClick:()=>F?void 0:l({id:`__main__`,email:N?.email??`Codex App`,plan:N?.plan,isMain:!0,hasCredential:!0,quota:N?.quota??null}),style:{cursor:F?`default`:`pointer`,marginBottom:12},children:[(0,S.jsxs)(`div`,{className:`card-head`,children:[(0,S.jsx)(`span`,{className:`dot dot-green`}),(0,S.jsx)(`strong`,{children:t(`codexAuth.mainAccount`)}),(0,S.jsxs)(`span`,{className:`card-badges`,children:[N&&(0,S.jsx)(fn,{account:{...N,id:`__main__`},onClick:()=>M({...N,id:`__main__`})}),(0,S.jsx)(`span`,{className:`badge ${F?`badge-primary`:`badge-muted`}`,children:t(F?`codexAuth.nextSession`:`codexAuth.current`)})]}),(0,S.jsxs)(`span`,{className:`card-right`,children:[(0,S.jsx)(le,{width:14}),` `,t(`codexAuth.appLogin`)]})]}),(0,S.jsxs)(`div`,{className:`card-sub`,children:[N?.email??`Codex App login`,N?.plan?` · ${N.plan}`:``]}),N?.quota&&(0,S.jsx)($e,{quota:N.quota,plan:N.plan,threshold:o,t})]}),(0,S.jsxs)(`div`,{className:`section-sep`,children:[(0,S.jsx)(`span`,{className:`section-label`,children:t(`codexAuth.accountPool`)}),(0,S.jsx)(`div`,{className:`sep-line`}),(0,S.jsxs)(`button`,{className:`btn btn-sm btn-ghost`,onClick:()=>d(!0),children:[(0,S.jsx)(re,{width:14}),` `,t(`codexAuth.add`)]})]}),P.length===0&&(0,S.jsx)(Pe,{title:t(`codexAuth.noPool`)}),P.map(e=>(0,S.jsxs)(`div`,{className:`card ${oe(e.id)?`card-active`:``}`,onClick:()=>!e.needsReauth&&l(e),style:{cursor:e.needsReauth?`default`:`pointer`,marginBottom:8},children:[(0,S.jsxs)(`div`,{className:`card-head`,children:[(0,S.jsx)(`span`,{className:`dot ${e.needsReauth?`dot-amber`:oe(e.id)?`dot-blue`:`dot-muted`}`}),(0,S.jsx)(`strong`,{children:e.email}),(0,S.jsxs)(`span`,{className:`card-badges`,children:[e.plan&&(0,S.jsx)(`span`,{className:`badge badge-green`,children:e.plan}),(0,S.jsx)(fn,{account:e,onClick:()=>M(e)}),e.needsReauth&&(0,S.jsx)(`span`,{className:`badge badge-amber`,children:t(`codexAuth.needsReauth`)}),oe(e.id)&&!e.needsReauth&&(0,S.jsx)(`span`,{className:`badge badge-primary`,children:t(`codexAuth.nextSession`)})]}),(0,S.jsx)(`button`,{className:`btn-icon btn-icon-danger card-right`,"aria-label":t(`common.remove`),onClick:t=>{t.stopPropagation(),ne(e.id)},children:(0,S.jsx)(k,{width:14})})]}),e.needsReauth?(0,S.jsx)(`div`,{className:`card-sub faint`,children:t(`codexAuth.tokenExpired`)}):(0,S.jsx)($e,{quota:e.quota,plan:e.plan,threshold:o,t})]},e.id)),(0,S.jsxs)(`div`,{className:`card card-row`,style:{marginTop:16},children:[(0,S.jsxs)(`div`,{children:[(0,S.jsx)(`strong`,{children:t(`codexAuth.autoSwitch`)}),(0,S.jsx)(`div`,{className:`card-sub`,children:t(`codexAuth.autoSwitchDesc`)})]}),(0,S.jsx)(`button`,{className:`toggle ${o>0?`on`:``}`,onClick:O,"aria-pressed":o>0,"aria-label":t(`codexAuth.autoSwitch`),title:t(`codexAuth.autoSwitch`),children:(0,S.jsx)(`span`,{className:`toggle-knob`})})]}),c&&(0,S.jsx)(`div`,{className:`modal-overlay`,onClick:()=>l(null),children:(0,S.jsxs)(`div`,{className:`modal-card`,onClick:e=>e.stopPropagation(),children:[(0,S.jsx)(`h3`,{children:c.id===`__main__`?t(`codexAuth.switchBack`):t(`codexAuth.switchTitle`)}),(0,S.jsx)(`p`,{className:`modal-desc`,children:c.id===`__main__`?t(`codexAuth.switchBackDesc`):t(`codexAuth.switchDesc`)}),(0,S.jsxs)(`div`,{className:`card`,style:{margin:`12px 0`},children:[(0,S.jsx)(`strong`,{children:c.id===`__main__`?N?.email:c.email}),c.plan&&(0,S.jsx)(`span`,{className:`badge badge-green`,style:{marginLeft:8},children:c.plan})]}),c.id!==`__main__`&&(0,S.jsxs)(`div`,{className:`notice-warn`,children:[(0,S.jsx)(j,{width:14}),` `,t(`codexAuth.cacheWarning`)]}),(0,S.jsxs)(`div`,{className:`modal-actions`,children:[(0,S.jsx)(`button`,{className:`btn btn-ghost`,onClick:()=>l(null),children:t(`codexAuth.cancel`)}),(0,S.jsx)(`button`,{className:`btn btn-primary`,onClick:()=>te(c.id===`__main__`?`__main__`:c.id),children:t(`codexAuth.setAsNext`)})]})]})}),g&&(0,S.jsx)(`div`,{className:`modal-overlay`,onClick:()=>{v(null),b(!1),T(null)},children:(0,S.jsx)(`div`,{className:`modal-card`,onClick:e=>e.stopPropagation(),children:y?(0,S.jsxs)(S.Fragment,{children:[(0,S.jsxs)(`div`,{style:{textAlign:`center`,padding:`12px 0`},children:[(0,S.jsx)(`div`,{className:`confirm-icon`,children:(0,S.jsx)(j,{width:22})}),(0,S.jsx)(`h3`,{children:t(`codexAuth.confirmResetTitle`)}),(0,S.jsx)(`p`,{className:`modal-desc`,children:t(`codexAuth.confirmResetDesc`,{count:String(g.quota?.resetCredits??0)})}),w&&w[0]&&(0,S.jsx)(`p`,{className:`faint`,style:{fontSize:12},children:t(`codexAuth.confirmWhichCredit`,{date:ln(w[0].granted_at)})}),(0,S.jsx)(`p`,{className:`faint`,style:{fontSize:12},children:t(`codexAuth.irreversible`)})]}),(0,S.jsxs)(`div`,{className:`modal-actions`,children:[(0,S.jsx)(`button`,{className:`btn btn-ghost`,onClick:()=>b(!1),children:t(`codexAuth.cancel`)}),(0,S.jsx)(`button`,{className:`btn btn-primary`,onClick:()=>ae(g.id),disabled:x,children:t(x?`codexAuth.redeeming`:`codexAuth.useCredit`)})]})]}):(0,S.jsxs)(S.Fragment,{children:[(0,S.jsxs)(`h3`,{children:[(0,S.jsx)(ue,{width:16}),` `,t(`codexAuth.resetCreditsTitle`)]}),(0,S.jsxs)(`div`,{className:`card-sub`,children:[g.email,g.plan?` · ${g.plan}`:``]}),(0,S.jsx)(`div`,{style:{margin:`16px 0`},children:(g.quota?.resetCredits??0)>0?(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(`p`,{style:{marginBottom:12},children:t(`codexAuth.resetCreditsAvailable`,{count:String(g.quota?.resetCredits??0)})}),E&&(0,S.jsx)(`p`,{className:`faint`,style:{fontSize:12},children:`Loading...`}),w&&w.length>0&&(0,S.jsx)(`div`,{className:`credit-list`,children:w.map((e,n)=>(0,S.jsx)(dn,{index:n,grantedAt:e.granted_at,expiresAt:e.expires_at,isNext:n===0,t},n))}),(0,S.jsx)(`button`,{className:`btn btn-primary`,style:{marginTop:12,width:`100%`},onClick:()=>b(!0),disabled:x,children:t(`codexAuth.useOneCredit`)}),(0,S.jsx)(`p`,{className:`card-sub`,style:{fontSize:11,marginTop:8,textAlign:`center`},children:t(`codexAuth.fifoNote`)})]}):(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(`p`,{className:`faint`,children:t(`codexAuth.noResetCredits`)}),(0,S.jsx)(`p`,{className:`modal-desc`,children:t(`codexAuth.earnCreditsHint`)})]})})]})})}),u&&(0,S.jsx)(sn,{apiBase:e,onClose:()=>d(!1),onAdded:()=>{D(),p(t(`codexAuth.accountAdded`)),setTimeout(()=>p(``),5e3)}})]})}function ln(e){let t=new Date(e);return new Intl.DateTimeFormat(void 0,{month:`short`,day:`numeric`,year:`numeric`}).format(t)}function un(e){return Math.max(0,Math.ceil((new Date(e).getTime()-Date.now())/864e5))}function dn({index:e,grantedAt:t,expiresAt:n,isNext:r,t:i}){let a=un(n),o=a<=7;return(0,S.jsxs)(`div`,{className:`credit-item${r?` credit-next`:``}`,children:[(0,S.jsxs)(`div`,{className:`credit-item-head`,children:[(0,S.jsx)(ue,{width:13}),(0,S.jsx)(`span`,{className:`credit-item-label`,children:r?i(`codexAuth.creditNext`):i(`codexAuth.creditLabel`,{n:String(e+1)})}),r&&(0,S.jsx)(`span`,{className:`badge badge-amber`,style:{fontSize:10,padding:`1px 6px`},children:i(`codexAuth.creditNextBadge`)})]}),(0,S.jsxs)(`div`,{className:`credit-item-dates`,children:[(0,S.jsx)(`span`,{children:i(`codexAuth.creditGranted`,{date:ln(t)})}),(0,S.jsx)(`span`,{className:o?`credit-urgent`:``,children:i(`codexAuth.creditExpires`,{date:ln(n),days:String(a)})})]})]})}function fn({account:e,onClick:t}){let n=e.quota?.resetCredits;return n===void 0?null:(0,S.jsxs)(`button`,{type:`button`,className:`badge ${typeof n==`number`&&n>0?`badge-amber`:`badge-muted`} badge-clickable`,onClick:e=>{e.stopPropagation(),t()},"aria-label":`${n} reset credit(s)`,children:[(0,S.jsx)(ue,{width:12}),n]})}function pn({apiBase:e}){let{t,locale:n}=we(),r=ye.find(e=>e.code===n)?.htmlLang,[i,a]=(0,_.useState)([]),[o,s]=(0,_.useState)(``),[c,l]=(0,_.useState)(``),[u,d]=(0,_.useState)(!1),[f,p]=(0,_.useState)(null),[m,h]=(0,_.useState)(!1),[g,v]=(0,_.useState)(null),y=(0,_.useCallback)(async()=>{try{let t=await fetch(`${e}/api/keys`);if(t.ok){let e=await t.json();a(e.keys??[]),s(e.endpoint??``)}}catch{}},[e]);(0,_.useEffect)(()=>{let e=window.setTimeout(()=>{y()},0);return()=>window.clearTimeout(e)},[y]);let b=o||`http://127.0.0.1:10100/v1/responses`,x=async()=>{d(!0);try{let t=await fetch(`${e}/api/keys`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:c||`default`})});t.ok&&(p((await t.json()).key),l(``),y())}finally{d(!1)}},C=async t=>{await fetch(`${e}/api/keys`,{method:`DELETE`,headers:{"Content-Type":`application/json`},body:JSON.stringify({id:t})}),v(null),y()},w=()=>{f&&(navigator.clipboard.writeText(f),h(!0),setTimeout(()=>h(!1),2e3))},T=t(`api.subtitle`).split(/\{authHeader\}|\{altHeader\}/);return(0,S.jsxs)(`section`,{className:`api-page`,children:[(0,S.jsx)(`div`,{className:`page-head`,children:(0,S.jsx)(`h2`,{children:t(`api.title`)})}),(0,S.jsxs)(`p`,{className:`page-sub`,children:[T[0],(0,S.jsx)(`code`,{children:`Authorization: Bearer ocx_...`}),T[1],(0,S.jsx)(`code`,{children:`x-opencodex-api-key`}),T[2]]}),(0,S.jsxs)(`div`,{className:`panel api-panel`,children:[(0,S.jsx)(`h3`,{className:`panel-title`,children:t(`api.endpoint`)}),(0,S.jsx)(`code`,{className:`api-code api-code-inline`,children:b}),(0,S.jsx)(`p`,{className:`muted small`,children:t(`api.endpointNote`)})]}),f&&(0,S.jsxs)(`div`,{className:`panel api-panel panel-accent`,style:{marginTop:`1rem`},children:[(0,S.jsx)(`h3`,{className:`panel-title`,children:t(`api.newKeyTitle`)}),(0,S.jsx)(`p`,{className:`muted small`,children:t(`api.newKeyNote`)}),(0,S.jsxs)(`div`,{className:`api-form-row`,children:[(0,S.jsx)(`code`,{className:`api-code`,style:{flex:1,wordBreak:`break-all`},children:f}),(0,S.jsx)(`button`,{className:`btn btn-sm btn-ghost`,onClick:w,children:m?(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(O,{}),` `,t(`api.copied`)]}):t(`api.copy`)})]}),(0,S.jsx)(`button`,{className:`btn btn-sm btn-ghost`,style:{alignSelf:`flex-start`},onClick:()=>p(null),children:t(`api.dismiss`)})]}),(0,S.jsxs)(`div`,{className:`panel api-panel`,style:{marginTop:`1rem`},children:[(0,S.jsx)(`h3`,{className:`panel-title`,children:t(`api.generateTitle`)}),(0,S.jsxs)(`div`,{className:`api-form-row`,children:[(0,S.jsx)(`input`,{type:`text`,placeholder:t(`api.keyNamePlaceholder`),value:c,onChange:e=>l(e.target.value),className:`input`}),(0,S.jsxs)(`button`,{className:`btn btn-primary`,onClick:x,disabled:u,children:[(0,S.jsx)(re,{}),` `,t(u?`api.generating`:`api.generate`)]})]})]}),(0,S.jsxs)(`div`,{className:`panel api-panel`,style:{marginTop:`1rem`},children:[(0,S.jsx)(`h3`,{className:`panel-title`,children:t(`api.activeKeys`,{count:i.length})}),i.length===0?(0,S.jsx)(`p`,{className:`muted`,children:t(`api.noKeys`)}):(0,S.jsx)(`div`,{className:`tbl-wrap`,children:(0,S.jsxs)(`table`,{className:`tbl`,children:[(0,S.jsx)(`thead`,{children:(0,S.jsxs)(`tr`,{children:[(0,S.jsx)(`th`,{children:t(`api.colName`)}),(0,S.jsx)(`th`,{children:t(`api.colKey`)}),(0,S.jsx)(`th`,{children:t(`api.colCreated`)}),(0,S.jsx)(`th`,{})]})}),(0,S.jsx)(`tbody`,{children:i.map(e=>(0,S.jsxs)(`tr`,{children:[(0,S.jsx)(`td`,{children:e.name}),(0,S.jsx)(`td`,{children:(0,S.jsx)(`code`,{children:e.prefix})}),(0,S.jsx)(`td`,{children:new Date(e.createdAt).toLocaleDateString(r)}),(0,S.jsx)(`td`,{children:g===e.id?(0,S.jsxs)(`span`,{className:`api-actions`,children:[(0,S.jsx)(`button`,{className:`btn btn-sm btn-danger`,onClick:()=>C(e.id),children:t(`api.confirm`)}),(0,S.jsx)(`button`,{className:`btn btn-sm btn-ghost`,onClick:()=>v(null),children:t(`common.cancel`)})]}):(0,S.jsx)(`button`,{className:`btn btn-sm btn-ghost`,"aria-label":t(`api.deleteAria`),onClick:()=>v(e.id),children:(0,S.jsx)(k,{})})})]},e.id))})]})})]}),(0,S.jsxs)(`div`,{className:`panel api-panel`,style:{marginTop:`1rem`},children:[(0,S.jsx)(`h3`,{className:`panel-title`,children:t(`api.usageTitle`)}),(0,S.jsx)(`pre`,{className:`api-code`,children:`curl ${b} \\
|
|
34
|
+
-H "Authorization: Bearer ocx_YOUR_KEY_HERE" \\
|
|
35
|
+
-H "Content-Type: application/json" \\
|
|
36
|
+
-d '{
|
|
37
|
+
"model": "gpt-5.4",
|
|
38
|
+
"input": "Hello, world!"
|
|
39
|
+
}'`})]})]})}function mn({apiBase:e}){let t=Te(),[n,r]=(0,_.useState)(null),[i,a]=(0,_.useState)([]),[o,s]=(0,_.useState)(``),[c,l]=(0,_.useState)(!1),[u,d]=(0,_.useState)(!0),f=(0,_.useCallback)(async()=>{try{let t=await fetch(`${e}/api/claude-code`).then(e=>e.json());r({...t,systemEnv:t.systemEnv!==!1,fastMode:t.fastMode??null,maxContextTokens:t.maxContextTokens??null,autoContext:t.autoContext!==!1,autoCompactWindow:t.autoCompactWindow??null,injectAgents:t.injectAgents!==!1,effectiveModelEnv:t.effectiveModelEnv??{}}),a(Object.entries(t.modelMap??{}).map(([e,t])=>({from:e,to:String(t)})))}catch{l(!1),s(t(`claude.loadFail`))}finally{d(!1)}},[e,t]);(0,_.useEffect)(()=>{let e=window.setTimeout(()=>{f()},0);return()=>window.clearTimeout(e)},[f]);let p=(0,_.useMemo)(()=>{let e=(n?.available??[]).map(e=>({value:e,label:L(e)}));return[{value:``,label:t(`claude.slotUnset`)},...e]},[n?.available,t]),m=(0,_.useMemo)(()=>{let e=[1e5,2e5,25e4,3e5,35e4,4e5,5e5,6e5,75e4,9e5,1e6],r=e=>e>=1e6?`1M`:`${Math.round(e/1e3)}k`,i=n?.autoCompactWindow??null,a=i!==null&&!e.includes(i)?[...e,i].sort((e,t)=>e-t):e;return[{value:``,label:t(`claude.autoCompactDefault`)},...a.map(e=>({value:String(e),label:r(e)}))]},[n?.autoCompactWindow,t]),h=async()=>{if(!n)return;s(``);let r={};for(let e of i)e.from.trim()&&e.to.trim()&&(r[e.from.trim()]=e.to.trim());try{let i=await fetch(`${e}/api/claude-code`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({enabled:n.enabled,systemEnv:n.systemEnv,fastMode:n.fastMode,autoContext:n.autoContext,autoCompactWindow:n.autoCompactWindow,injectAgents:n.injectAgents,smallFastModel:n.smallFastModel,modelMap:r,webSearchSidecar:n.webSearchSidecar?{backend:n.webSearchSidecar.backend??null,model:n.webSearchSidecar.model??``}:null,visionSidecar:n.visionSidecar?{backend:n.visionSidecar.backend??null,model:n.visionSidecar.model??``}:null})}),a=await i.json();l(i.ok),s(i.ok?t(`claude.saved`):a.error||t(`claude.saveFailed`)),i.ok&&await f()}catch{l(!1),s(t(`claude.networkError`))}};if(u)return(0,S.jsx)(`div`,{className:`muted`,style:{padding:8},children:t(`claude.loading`)});if(!n)return(0,S.jsx)(Me,{tone:`err`,children:o||t(`claude.loadFail`)});let g=`http://127.0.0.1:${n.port}`,v=n.effectiveModelEnv,y=n.autoContext&&n.maxContextTokens===null,b=[`export ANTHROPIC_BASE_URL=${g}`,`# no ANTHROPIC_AUTH_TOKEN: your claude.ai login (and connectors) stay active`,`export CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1`,...y?[`export CLAUDE_CODE_AUTO_COMPACT_WINDOW=${n.autoCompactWindow??35e4}`]:[],...[`ANTHROPIC_MODEL`,`ANTHROPIC_DEFAULT_OPUS_MODEL`,`ANTHROPIC_DEFAULT_SONNET_MODEL`,`ANTHROPIC_DEFAULT_HAIKU_MODEL`,`ANTHROPIC_DEFAULT_FABLE_MODEL`].filter(e=>v[e]).map(e=>`export ${e}=${v[e]}`),`claude`].join(`
|
|
40
|
+
`);return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(`div`,{className:`page-head`,children:(0,S.jsxs)(`h2`,{children:[t(`nav.claude`),` Code`]})}),(0,S.jsx)(`p`,{className:`page-sub`,children:t(`claude.subtitle`)}),o&&(0,S.jsx)(Me,{tone:c?`ok`:`err`,children:o}),(0,S.jsxs)(`div`,{className:`card`,style:{overflow:`hidden`},children:[(0,S.jsxs)(`div`,{className:`setting-row`,children:[(0,S.jsxs)(`div`,{className:`setting-label`,children:[(0,S.jsx)(`span`,{className:`title`,children:t(`claude.enabledLabel`)}),(0,S.jsx)(`span`,{className:`desc`,children:t(`claude.enabledHint`)})]}),(0,S.jsxs)(`label`,{className:`toggle`,children:[(0,S.jsx)(`input`,{type:`checkbox`,checked:n.enabled,onChange:e=>r({...n,enabled:e.target.checked})}),(0,S.jsx)(`span`,{className:`slider`})]})]}),(0,S.jsxs)(`div`,{className:`setting-row`,children:[(0,S.jsxs)(`div`,{className:`setting-label`,children:[(0,S.jsx)(`span`,{className:`title`,children:t(`claude.systemEnv`)}),(0,S.jsx)(`span`,{className:`desc`,children:t(`claude.systemEnvDesc`)}),n.systemEnv&&(0,S.jsx)(`span`,{className:`desc`,style:{color:`var(--red)`},children:t(`claude.systemEnvWarn`)})]}),(0,S.jsxs)(`label`,{className:`toggle`,children:[(0,S.jsx)(`input`,{type:`checkbox`,checked:n.systemEnv,onChange:e=>r({...n,systemEnv:e.target.checked})}),(0,S.jsx)(`span`,{className:`slider`})]})]}),(0,S.jsxs)(`div`,{className:`setting-row`,children:[(0,S.jsxs)(`div`,{className:`setting-label`,children:[(0,S.jsx)(`span`,{className:`title`,children:t(`claude.fastMode`)}),(0,S.jsx)(`span`,{className:`desc`,children:t(`claude.fastModeDesc`)})]}),(0,S.jsxs)(`select`,{value:n.fastMode===null?`auto`:n.fastMode?`on`:`off`,onChange:e=>{let t=e.target.value;r({...n,fastMode:t===`auto`?null:t===`on`})},style:{padding:`5px 10px`,borderRadius:`var(--radius-xs)`,border:`1px solid var(--border)`,background:`var(--surface)`,color:`var(--text)`,fontSize:12.5,fontWeight:500},children:[(0,S.jsx)(`option`,{value:`auto`,children:t(`claude.fastAuto`)}),(0,S.jsx)(`option`,{value:`on`,children:t(`claude.fastOn`)}),(0,S.jsx)(`option`,{value:`off`,children:t(`claude.fastOff`)})]})]}),(0,S.jsxs)(`div`,{className:`setting-row`,children:[(0,S.jsxs)(`div`,{className:`setting-label`,children:[(0,S.jsx)(`span`,{className:`title`,children:t(`claude.autoContext`)}),(0,S.jsx)(`span`,{className:`desc`,children:t(`claude.autoContextDesc`)}),n.maxContextTokens!==null&&(0,S.jsx)(`span`,{className:`desc`,style:{color:`var(--muted)`},children:t(`claude.autoContextInert`)})]}),(0,S.jsxs)(`label`,{className:`toggle`,children:[(0,S.jsx)(`input`,{type:`checkbox`,checked:n.autoContext,onChange:e=>r({...n,autoContext:e.target.checked})}),(0,S.jsx)(`span`,{className:`slider`})]})]}),n.autoContext&&(0,S.jsxs)(`div`,{className:`setting-row`,children:[(0,S.jsxs)(`div`,{className:`setting-label`,children:[(0,S.jsx)(`span`,{className:`title`,children:t(`claude.autoCompactWindow`)}),(0,S.jsx)(`span`,{className:`desc`,children:t(`claude.autoCompactWindowDesc`)}),n.autoCompactWindow!==null&&(0,S.jsx)(`span`,{className:`desc`,style:{color:`var(--red)`},children:t(`claude.autoCompactWindowWarn`)})]}),(0,S.jsx)(Ne,{value:n.autoCompactWindow===null?``:String(n.autoCompactWindow),options:m,onChange:e=>r({...n,autoCompactWindow:e===``?null:Number(e)}),label:t(`claude.autoCompactWindow`),style:{minWidth:130}})]}),(0,S.jsxs)(`div`,{className:`setting-row`,children:[(0,S.jsxs)(`div`,{className:`setting-label`,children:[(0,S.jsx)(`span`,{className:`title`,children:t(`claude.injectAgents`)}),(0,S.jsx)(`span`,{className:`desc`,children:t(`claude.injectAgentsDesc`)})]}),(0,S.jsxs)(`label`,{className:`toggle`,children:[(0,S.jsx)(`input`,{type:`checkbox`,checked:n.injectAgents,onChange:e=>r({...n,injectAgents:e.target.checked})}),(0,S.jsx)(`span`,{className:`slider`})]})]}),[`webSearchSidecar`,`visionSidecar`].map(e=>{let i=n[e],a=e===`webSearchSidecar`?`claude.webSearchSidecar`:`claude.visionSidecar`,o=e===`webSearchSidecar`?`claude.webSearchSidecarHint`:`claude.visionSidecarHint`;return(0,S.jsxs)(`div`,{className:`setting-row`,style:{alignItems:`flex-start`},children:[(0,S.jsxs)(`div`,{className:`setting-label setting-copy`,style:{flex:1},children:[(0,S.jsx)(`span`,{className:`title`,children:t(a)}),(0,S.jsx)(`span`,{className:`desc`,children:t(o)})]}),(0,S.jsxs)(`div`,{className:`setting-controls`,style:{display:`flex`,gap:8},children:[(0,S.jsx)(Ne,{value:i?i.backend??`auto`:`inherit`,options:[{value:`inherit`,label:t(`claude.useMainSetting`)},{value:`auto`,label:t(`dash.backendAuto`)},{value:`openai`,label:t(`dash.backendOpenAI`)},{value:`anthropic`,label:t(`dash.backendAnthropic`)}],onChange:t=>r({...n,[e]:t===`inherit`?void 0:{...i,backend:t===`auto`?void 0:t}}),label:t(`dash.sidecarBackend`)}),(0,S.jsx)(`input`,{className:`input mono`,value:i?.model??``,onChange:t=>r({...n,[e]:{...i,model:t.target.value}}),placeholder:t(`claude.sidecarModelPlaceholder`),disabled:!i,"aria-label":t(`dash.sidecarModel`),style:{minWidth:210}})]})]},e)})]}),(0,S.jsx)(`div`,{className:`h-section`,children:t(`claude.quickstart`)}),(0,S.jsx)(`p`,{className:`muted`,style:{fontSize:12.5,margin:`0 0 8px`},children:(0,S.jsx)(De,{k:`claude.quickstartHint`,cmd:`ocx claude`})}),(0,S.jsx)(`pre`,{className:`mono card`,style:{padding:`10px 14px`,overflowX:`auto`,margin:0},children:`ocx claude`}),(0,S.jsxs)(`details`,{style:{margin:`10px 0 0`},children:[(0,S.jsx)(`summary`,{className:`muted`,style:{fontSize:12.5,cursor:`pointer`,padding:`2px 2px`},children:t(`claude.manualEnv`)}),(0,S.jsx)(`pre`,{className:`mono card`,style:{padding:`10px 14px`,overflowX:`auto`,margin:`6px 0 0`,fontSize:12},children:b})]}),(0,S.jsx)(`div`,{className:`h-section`,children:t(`claude.smallFastModel`)}),(0,S.jsx)(`p`,{className:`muted`,style:{fontSize:12.5,margin:`0 0 8px`},children:t(`claude.smallFastModelHint`)}),(0,S.jsx)(Ne,{value:n.smallFastModel,options:p,onChange:e=>r({...n,smallFastModel:e}),label:t(`claude.smallFastModel`),style:{maxWidth:420}}),(0,S.jsxs)(`div`,{className:`h-section`,children:[t(`claude.modelMap`),` `,(0,S.jsx)(`span`,{className:`count`,children:i.length})]}),(0,S.jsx)(`p`,{className:`muted`,style:{fontSize:12.5,margin:`0 0 8px`},children:t(`claude.modelMapHint`)}),(0,S.jsx)(`div`,{className:`stack`,style:{gap:8},children:i.map((e,n)=>(0,S.jsxs)(`div`,{className:`row`,style:{gap:8},children:[(0,S.jsx)(`input`,{className:`input mono`,value:e.from,placeholder:t(`claude.mapFrom`),onChange:e=>a(t=>t.map((t,r)=>r===n?{...t,from:e.target.value}:t)),style:{flex:1}}),(0,S.jsx)(`span`,{className:`muted`,"aria-hidden":!0,children:`→`}),(0,S.jsx)(`input`,{className:`input mono`,value:e.to,placeholder:t(`claude.mapTo`),onChange:e=>a(t=>t.map((t,r)=>r===n?{...t,to:e.target.value}:t)),style:{flex:1}}),(0,S.jsx)(`button`,{className:`btn btn-ghost btn-icon btn-sm`,onClick:()=>a(e=>e.filter((e,t)=>t!==n)),"aria-label":t(`claude.removeMapping`),style:{color:`var(--red)`},children:(0,S.jsx)(k,{})})]},n))}),(0,S.jsx)(`div`,{style:{marginTop:8},children:(0,S.jsxs)(`button`,{className:`btn btn-ghost btn-sm`,onClick:()=>a(e=>[...e,{from:``,to:``}]),children:[(0,S.jsx)(re,{}),` `,t(`claude.addMapping`)]})}),(0,S.jsx)(`div`,{style:{marginTop:14},children:(0,S.jsx)(`button`,{className:`btn btn-primary`,onClick:h,children:t(`common.save`)})}),(0,S.jsxs)(`div`,{className:`h-section`,children:[t(`claude.aliases`),` `,(0,S.jsx)(`span`,{className:`count`,children:n.aliases.length})]}),(0,S.jsx)(`p`,{className:`muted`,style:{fontSize:12.5,margin:`0 0 8px`},children:t(`claude.aliasesHint`)}),n.aliases.length===0?(0,S.jsx)(`div`,{className:`muted`,style:{fontSize:12.5},children:t(`claude.none`)}):(0,S.jsx)(`div`,{className:`stack`,style:{gap:6,maxHeight:320,overflowY:`auto`},children:Array.from(n.aliases.reduce((e,t)=>{let n=/\(([^)]+)\)\s*$/.exec(t.display_name),r=n?n[1]:`etc`;return(e.get(r)??e.set(r,[]).get(r)).push(t),e},new Map)).map(([e,t])=>(0,S.jsxs)(`div`,{children:[(0,S.jsxs)(`div`,{className:`muted`,style:{fontSize:11.5,fontWeight:600,textTransform:`uppercase`,letterSpacing:0,margin:`6px 2px 4px`},children:[e,` · `,t.length]}),(0,S.jsx)(`div`,{className:`stack`,style:{gap:4},children:t.map(e=>(0,S.jsxs)(`div`,{className:`card row`,style:{padding:`6px 12px`,gap:10},children:[(0,S.jsx)(`code`,{className:`mono`,style:{flex:1,fontSize:12},children:e.id}),(0,S.jsx)(`span`,{className:`muted`,style:{fontSize:12},children:e.display_name})]},e.id))})]},e))})]})}var hn=`opencodex-api-token`,gn=!1,_n=null;function vn(e){try{let t=e instanceof Request?e.url:String(e);return new URL(t,window.location.href).pathname}catch{return null}}function yn(e){let t=vn(e);return!!t&&(t.startsWith(`/api/`)||t.startsWith(`/v1/`))}function bn(){try{return sessionStorage.getItem(hn)?.trim()||null}catch{return null}}function xn(e){try{sessionStorage.setItem(hn,e)}catch{}}function Sn(){try{sessionStorage.removeItem(hn)}catch{}}function Cn(e,t,n){let r=new Headers(t?.headers??(e instanceof Request?e.headers:void 0));return r.set(`X-OpenCodex-API-Key`,n),e instanceof Request?[new Request(e,{headers:r}),t?{...t,headers:r}:void 0]:[e,{...t,headers:r}]}async function wn(){return _n||(_n=Promise.resolve().then(()=>window.prompt(`OpenCodex API token`)?.trim()||null).finally(()=>{_n=null}),_n)}function Tn(){if(gn)return;gn=!0;let e=window.fetch.bind(window);window.fetch=async(t,n)=>{if(!yn(t))return e(t,n);let r=bn(),[i,a]=r?Cn(t,n,r):[t,n],o=await e(i,a);if(o.status!==401)return o;r&&Sn();let s=await wn();if(!s)return o;xn(s);let[c,l]=Cn(t,n,s),u=await e(c,l);return u.status===401&&Sn(),u}}Tn();var En=new Set([`dashboard`,`providers`,`models`,`subagents`,`logs`,`debug`,`usage`,`codex-auth`,`api`,`claude`]);function Dn(){let e=location.hash.replace(/^#\/?/,``);return En.has(e)?e:`dashboard`}var On=``,kn=`ocx-theme`,An=[{id:`dashboard`,tkey:`nav.dashboard`,Icon:w},{id:`providers`,tkey:`nav.providers`,Icon:T},{id:`models`,tkey:`nav.models`,Icon:E},{id:`subagents`,tkey:`nav.subagents`,Icon:ee},{id:`logs`,tkey:`nav.logs`,Icon:D},{id:`debug`,tkey:`nav.debug`,Icon:te},{id:`usage`,tkey:`nav.usage`,Icon:ne},{id:`codex-auth`,tkey:`nav.codexAuth`,Icon:ce},{id:`api`,tkey:`nav.api`,Icon:he},{id:`claude`,tkey:`nav.claude`,Icon:ge}],jn={light:fe,dark:pe,system:me},Mn={light:`theme.light`,dark:`theme.dark`,system:`theme.system`};function Nn(e){if(!e||typeof e!=`object`||!(`version`in e))return null;let t=e.version;return typeof t==`string`&&t.length>0?t:null}function Pn(){let e=localStorage.getItem(kn);return e===`light`||e===`dark`?e:`system`}function Fn(){let[e,t]=(0,_.useState)(Dn),[n,r]=(0,_.useState)(Pn),[i,a]=(0,_.useState)(null),{locale:o,setLocale:s}=we(),c=Te();(0,_.useEffect)(()=>{let e=()=>t(Dn());return window.addEventListener(`hashchange`,e),()=>window.removeEventListener(`hashchange`,e)},[]),(0,_.useEffect)(()=>{let t=`#${e}`;window.location.hash!==t&&(window.location.hash=e)},[e]),(0,_.useEffect)(()=>{let e=document.documentElement;n===`system`?(e.removeAttribute(`data-theme`),localStorage.removeItem(kn)):(e.setAttribute(`data-theme`,n),localStorage.setItem(kn,n))},[n]),(0,_.useEffect)(()=>{let e=!1,t=async()=>{try{let t=await fetch(`${On}/healthz`);if(!t.ok)return;let n=Nn(await t.json());!e&&n&&a(n)}catch{}};t();let n=setInterval(t,3e4);return()=>{e=!0,clearInterval(n)}},[]);let l=()=>r(e=>e===`light`?`dark`:e===`dark`?`system`:`light`),u=jn[n],d=i??`2.7.10`,[f,p]=(0,_.useState)(!1),[m,h]=(0,_.useState)(null);return(0,_.useEffect)(()=>{let e=!1;return fetch(`${On}/api/claude-code`).then(e=>e.json()).then(t=>{!e&&typeof t.enabled==`boolean`&&h(t.enabled)}).catch(()=>{}),()=>{e=!0}},[]),(0,S.jsxs)(`div`,{className:`app`,children:[(0,S.jsxs)(`aside`,{className:`sidebar`,children:[(0,S.jsxs)(`div`,{className:`brand`,children:[(0,S.jsx)(`span`,{className:`brand-logo`,role:`img`,"aria-label":`opencodex logo`}),(0,S.jsx)(`span`,{className:`name`,children:`opencodex`}),(0,S.jsxs)(`span`,{className:`ver`,children:[`v`,d]})]}),(0,S.jsx)(`nav`,{children:An.map(({id:n,tkey:r,Icon:i})=>(0,S.jsxs)(`button`,{className:`nav-item${e===n?` active`:``}`,"data-page":n,onClick:()=>t(n),"aria-current":e===n?`page`:void 0,children:[(0,S.jsx)(i,{}),` `,c(r)]},n))}),(0,S.jsxs)(`div`,{className:`sidebar-foot`,children:[m!==null&&(0,S.jsxs)(`button`,{type:`button`,className:`theme-toggle`,onClick:async()=>{if(m===null)return;let e=!m;h(e);try{(await fetch(`${On}/api/claude-code`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({enabled:e})})).ok||h(!e)}catch{h(!e)}},"aria-pressed":m,"aria-label":c(`claude.toggleAria`),title:c(`claude.toggleAria`),style:m?{color:`var(--accent)`}:void 0,children:[(0,S.jsx)(ge,{}),` `,(0,S.jsx)(`span`,{className:`mode`,children:m?`Claude ON`:`Claude OFF`})]}),(0,S.jsxs)(`div`,{className:`lang-toggle`,children:[(0,S.jsx)(he,{"aria-hidden":!0}),(0,S.jsx)(Ne,{value:o,options:ye.map(e=>({value:e.code,label:e.name})),onChange:e=>s(e),label:c(`lang.label`),placement:`right`,style:{flex:1,minWidth:0,width:`100%`}})]}),(0,S.jsxs)(`button`,{type:`button`,className:`theme-toggle`,onClick:l,"aria-label":`${c(`theme.label`)}: ${c(Mn[n])}`,title:`${c(`theme.label`)}: ${c(Mn[n])}`,children:[(0,S.jsx)(u,{}),` `,(0,S.jsx)(`span`,{className:`mode`,children:c(Mn[n])})]}),(0,S.jsxs)(`button`,{type:`button`,className:`theme-toggle stop-toggle`,onClick:async()=>{if(confirm(c(`dash.stopConfirm`))){p(!0);try{await fetch(`${On}/api/stop`,{method:`POST`})}catch{}}},disabled:f,"aria-label":c(`dash.stop`),title:c(`dash.stop`),children:[(0,S.jsx)(I,{}),` `,(0,S.jsx)(`span`,{className:`mode`,children:c(f?`dash.stopping`:`dash.stop`)})]}),(0,S.jsxs)(`a`,{className:`sidebar-link`,href:`https://github.com/lidge-jun/opencodex`,target:`_blank`,rel:`noreferrer`,children:[(0,S.jsx)(F,{}),` `,c(`common.github`)]})]})]}),(0,S.jsx)(`main`,{className:`main`,children:(0,S.jsxs)(`div`,{className:`main-inner`,children:[e===`dashboard`&&(0,S.jsx)(Ke,{apiBase:On}),e===`providers`&&(0,S.jsx)(st,{apiBase:On}),e===`models`&&(0,S.jsx)(pt,{apiBase:On}),e===`subagents`&&(0,S.jsx)(mt,{apiBase:On}),e===`logs`&&(0,S.jsx)(Yt,{apiBase:On}),e===`debug`&&(0,S.jsx)(Qt,{apiBase:On}),e===`usage`&&(0,S.jsx)(on,{apiBase:On}),e===`codex-auth`&&(0,S.jsx)(cn,{apiBase:On}),e===`api`&&(0,S.jsx)(pn,{apiBase:On}),e===`claude`&&(0,S.jsx)(mn,{apiBase:On})]})})]})}v.createRoot(document.getElementById(`root`)).render((0,S.jsx)(_.StrictMode,{children:(0,S.jsx)(Ee,{children:(0,S.jsx)(Fn,{})})}));
|